Cloud Foundry Cloud Controller API v3

The Cloud Controller API (CAPI) v3 is the primary control plane of Cloud Foundry. It manages apps, packages, droplets, builds, deployments, processes, tasks, revisions, routes, domains, organizations, spaces, roles, security groups, service brokers, offerings, plans, instances and credential bindings. The Cloud Foundry Foundation publishes a machine-readable OpenAPI 3.1 description of the surface from the cf-openapi project (158 paths / 248 operations), rendered at cloudfoundry.github.io/cf-openapi. Requests authenticate with OAuth 2.0 bearer tokens issued by the UAA server; there is no single public host because every Cloud Foundry foundation is self-hosted at its own api..

Operations 248

GET / Global API Root #
GET /v3 Get V3 API root #
POST /v3/admin/actions/clear_buildpack_cache Clear the buildpack cache #
GET /v3/apps List apps #
POST /v3/apps Create an app #
GET /v3/apps/{guid} Get an app #
PATCH /v3/apps/{guid} Update an app #
DELETE /v3/apps/{guid} Delete an app #
POST /v3/apps/{guid}/actions/start Start an app #
POST /v3/apps/{guid}/actions/stop Stop an app #
POST /v3/apps/{guid}/actions/restart Restart an app #
GET /v3/apps/{guid}/droplets List droplets for an app #
GET /v3/apps/{guid}/droplets/current Get current droplet #
GET /v3/apps/{guid}/relationships/current_droplet Get current droplet association for an app #
PATCH /v3/apps/{guid}/relationships/current_droplet Set current droplet #
GET /v3/app_usage_events List app usage events #
GET /v3/app_usage_events/{guid} Get an app usage event #
POST /v3/app_usage_events/actions/destructively_purge_all_and_reseed Purge and seed app usage events #
GET /v3/audit_events List audit events #
GET /v3/audit_events/{guid} Get an audit event #
GET /v3/builds List builds #
POST /v3/builds Create a build #
GET /v3/builds/{guid} Get a build #
PATCH /v3/builds/{guid} Update a build #
GET /v3/buildpacks List buildpacks #
POST /v3/buildpacks Create a buildpack #
GET /v3/buildpacks/{guid} Get a buildpack #
PATCH /v3/buildpacks/{guid} Update a buildpack #
DELETE /v3/buildpacks/{guid} Delete a buildpack #
POST /v3/buildpacks/{guid}/upload Upload buildpack bits #
GET /v3/deployments List deployments #
POST /v3/deployments Create a deployment #
GET /v3/deployments/{guid} Get a deployment #
PATCH /v3/deployments/{guid} Update a deployment #
POST /v3/deployments/{guid}/actions/cancel Cancel a deployment #
POST /v3/deployments/{guid}/actions/continue Continue a deployment #
GET /v3/domains List domains #
POST /v3/domains Create a domain #
GET /v3/domains/{guid} Get a domain #
PATCH /v3/domains/{guid} Update a domain #
DELETE /v3/domains/{guid} Delete a domain #
POST /v3/domains/{guid}/relationships/shared_organizations Share a domain #
DELETE /v3/domains/{guid}/relationships/shared_organizations/{org_guid} Unshare a domain #
GET /v3/droplets List droplets #
POST /v3/droplets Create a droplet #
GET /v3/droplets/{guid} Get a droplet #
PATCH /v3/droplets/{guid} Update a droplet #
DELETE /v3/droplets/{guid} Delete a droplet #
GET /v3/droplets/{guid}/download Download droplet bits #
POST /v3/droplets/{guid}/upload Upload droplet bits #
GET /v3/environment_variable_groups/{name} Get an environment variable group #
PATCH /v3/environment_variable_groups/{name} Update environment variable group #
GET /v3/feature_flags List feature flags #
GET /v3/feature_flags/{name} Get a feature flag #
PATCH /v3/feature_flags/{name} Update a feature flag #
GET /v3/info Get platform info #
GET /v3/info/usage_summary Get platform usage summary #
GET /v3/isolation_segments List isolation segments #
POST /v3/isolation_segments Create an isolation segment #
GET /v3/isolation_segments/{guid} Get an isolation segment #
PATCH /v3/isolation_segments/{guid} Update an isolation segment #
DELETE /v3/isolation_segments/{guid} Delete an isolation segment #
POST /v3/isolation_segments/{guid}/relationships/organizations Entitle organizations for isolation segment #
GET /v3/isolation_segments/{guid}/relationships/organizations List organizations relationship #
DELETE /v3/isolation_segments/{guid}/relationships/organizations/{org_guid} Revoke entitlement to isolation segment for an organization #
GET /v3/isolation_segments/{guid}/relationships/spaces List spaces relationship #
GET /v3/isolation_segments/{guid}/organizations List organizations for isolation segment #
GET /v3/jobs/{guid} Get a job #
POST /v3/resource_matches Create a resource match #
GET /v3/revisions/{guid} Get a revision #
PATCH /v3/revisions/{guid} Update a revision #
GET /v3/revisions/{guid}/environment_variables Get environment variables for a revision #
GET /v3/apps/{guid}/revisions List revisions for an app #
GET /v3/apps/{guid}/revisions/deployed List deployed revisions for an app #
GET /v3/roles List roles #
POST /v3/roles Create a role #
GET /v3/roles/{guid} Get a role #
DELETE /v3/roles/{guid} Delete a role #
GET /v3/routes List routes #
POST /v3/routes Create a route #
GET /v3/routes/{guid}/destinations List destinations for a route #
POST /v3/routes/{guid}/destinations Insert destinations for a route #
PATCH /v3/routes/{guid}/destinations Replace all destinations for a route #
PATCH /v3/routes/{guid}/destinations/{destination_guid} Update a destination protocol for a route #
DELETE /v3/routes/{guid}/destinations/{destination_guid} Remove destination for a route #
GET /v3/security_groups List security groups #
POST /v3/security_groups Create a security group #
GET /v3/security_groups/{guid} Get a security group #
PATCH /v3/security_groups/{guid} Update a security group #
DELETE /v3/security_groups/{guid} Delete a security group #
POST /v3/security_groups/{guid}/relationships/running_spaces Bind a running security group to spaces #
DELETE /v3/security_groups/{guid}/relationships/running_spaces/{space_guid} Unbind a running security group from a space #
POST /v3/security_groups/{guid}/relationships/staging_spaces Bind a staging security group to spaces #
DELETE /v3/security_groups/{guid}/relationships/staging_spaces/{space_guid} Unbind a staging security group from a space #
GET /v3/service_brokers List service brokers #
POST /v3/service_brokers Create a service broker #
GET /v3/service_brokers/{guid} Get a service broker #
PATCH /v3/service_brokers/{guid} Update a service broker #
DELETE /v3/service_brokers/{guid} Delete a service broker #
GET /v3/service_credential_bindings List service credential bindings #
POST /v3/service_credential_bindings Create a service credential binding #
GET /v3/service_credential_bindings/{guid} Get a service credential binding #
PATCH /v3/service_credential_bindings/{guid} Update a service credential binding #
DELETE /v3/service_credential_bindings/{guid} Delete a service credential binding #
GET /v3/service_credential_bindings/{guid}/details Get a service credential binding details #
GET /v3/service_credential_bindings/{guid}/parameters Get parameters for a service credential binding #
GET /v3/service_instances List service instances #
POST /v3/service_instances Create a service instance #
GET /v3/service_instances/{guid} Get a service instance #
PATCH /v3/service_instances/{guid} Update a service instance #
DELETE /v3/service_instances/{guid} Delete a service instance #
GET /v3/service_offerings List service offerings #
GET /v3/service_offerings/{guid} Get a service offering #
PATCH /v3/service_offerings/{guid} Update a service offering #
DELETE /v3/service_offerings/{guid} Delete a service offering #
GET /v3/service_plans List service plans #
GET /v3/service_plans/{guid} Get a service plan #
PATCH /v3/service_plans/{guid} Update a service plan #
DELETE /v3/service_plans/{guid} Delete a service plan #
GET /v3/service_plans/{guid}/visibility Get a service plan visibility #
PATCH /v3/service_plans/{guid}/visibility Update a service plan visibility #
POST /v3/service_plans/{guid}/visibility Apply a service plan visibility #
DELETE /v3/service_plans/{guid}/visibility/{organization_guid} Remove organization from a service plan visibility #
GET /v3/service_route_bindings List service route bindings #
POST /v3/service_route_bindings Create a service route binding #
GET /v3/service_route_bindings/{guid} Get a service route binding #
PATCH /v3/service_route_bindings/{guid} Update a service route binding #
DELETE /v3/service_route_bindings/{guid} Delete a service route binding #
GET /v3/service_route_bindings/{guid}/parameters Get parameters for a route binding #
GET /v3/service_usage_events List service usage events #
GET /v3/service_usage_events/{guid} Get a service usage event #
POST /v3/service_usage_events/actions/destructively_purge_all_and_reseed Purge and seed service usage events #
GET /v3/sidecars/{guid} Get a sidecar #
PATCH /v3/sidecars/{guid} Update a sidecar #
DELETE /v3/sidecars/{guid} Delete a sidecar #
GET /v3/apps/{guid}/sidecars List sidecars for app #
POST /v3/apps/{guid}/sidecars Create a sidecar associated with an app #
GET /v3/spaces List spaces #
POST /v3/spaces Create a space #
GET /v3/spaces/{guid} Get a space #
PATCH /v3/spaces/{guid} Update a space #
DELETE /v3/spaces/{guid} Delete a space #
POST /v3/spaces/{guid}/actions/apply_manifest Apply a manifest to a space #
GET /v3/spaces/{guid}/features List space features #
GET /v3/spaces/{guid}/features/{name} Get a space feature #
PATCH /v3/spaces/{guid}/features/{name} Update a space feature #
POST /v3/spaces/{guid}/manifest_diff Create a manifest diff for a space (experimental) #
GET /v3/spaces/{guid}/relationships/isolation_segment Get assigned isolation segment #
PATCH /v3/spaces/{guid}/relationships/isolation_segment Manage isolation segment #
DELETE /v3/spaces/{guid}/routes Delete unmapped routes for a space #
GET /v3/spaces/{guid}/usage_summary Get usage summary for a space #
GET /v3/spaces/{guid}/running_security_groups List running security groups for a space #
GET /v3/spaces/{guid}/staging_security_groups List staging security groups for a space #
GET /v3/spaces/{guid}/users List users for a space #
GET /v3/space_quotas List space quotas #
POST /v3/space_quotas Create a space quota #
GET /v3/space_quotas/{guid} Get a space quota #
PATCH /v3/space_quotas/{guid} Update a space quota #
DELETE /v3/space_quotas/{guid} Delete a space quota #
POST /v3/space_quotas/{quota_guid}/relationships/spaces Apply a space quota to a space #
DELETE /v3/space_quotas/{guid}/relationships/spaces/{space_guid} Remove a space quota from a space #
GET /v3/stacks List stacks #
POST /v3/stacks Create a stack #
GET /v3/stacks/{guid} Get a stack #
PATCH /v3/stacks/{guid} Update a stack #
DELETE /v3/stacks/{guid} Delete a stack #
GET /v3/stacks/{guid}/apps List apps on a stack #
GET /v3/tasks List tasks #
GET /v3/tasks/{guid} Get a task #
PATCH /v3/tasks/{guid} Update a task #
POST /v3/tasks/{guid}/actions/cancel Cancel a task #
PUT /v3/tasks/{guid}/actions/cancel Cancel a task (PUT) #
PUT /v3/tasks/{guid}/cancel DEPRECATED - Cancel a task (short path) #
GET /v3/users List users #
POST /v3/users Create a user #
GET /v3/users/{guid} Get a user #
PATCH /v3/users/{guid} Update a user #
DELETE /v3/users/{guid} Delete a user #
GET /v3/organizations List organizations #
POST /v3/organizations Create an organization #
GET /v3/organizations/{guid} Get an organization #
PATCH /v3/organizations/{guid} Update an organization #
DELETE /v3/organizations/{guid} Delete an organization #
GET /v3/organizations/{guid}/domains/default Get default domain #
GET /v3/organizations/{guid}/usage_summary Get usage summary #
GET /v3/organizations/{guid}/users List users for an organization #
GET /v3/organizations/{guid}/relationships/default_isolation_segment Get default isolation segment #
PATCH /v3/organizations/{guid}/relationships/default_isolation_segment Assign default isolation segment #
GET /v3/organization_quotas List organization quotas #
POST /v3/organization_quotas Create an organization quota #
GET /v3/organization_quotas/{guid} Get an organization quota #
PATCH /v3/organization_quotas/{guid} Update an organization quota #
DELETE /v3/organization_quotas/{guid} Delete an organization quota #
POST /v3/organization_quotas/{quota_guid}/relationships/organizations Apply an organization quota to an organization #
GET /v3/packages List packages #
POST /v3/packages Create a package #
GET /v3/packages/{guid} Get a package #
PATCH /v3/packages/{guid} Update a package #
DELETE /v3/packages/{guid} Delete a package #
GET /v3/packages/{guid}/droplets List droplets for a package #
GET /v3/apps/{guid}/packages List packages for an app #
POST /v3/packages/{guid}/upload Upload package bits #
GET /v3/packages/{guid}/download Download package bits #
GET /v3/processes List processes #
GET /v3/processes/{guid} Get a process #
PATCH /v3/processes/{guid} Update a process #
GET /v3/processes/{guid}/process_instances List instances for a process #
GET /v3/processes/{guid}/stats Get stats for a process #
POST /v3/processes/{guid}/actions/scale Scale a process #
DELETE /v3/processes/{guid}/instances/{index} Terminate a process instance #
GET /v3/apps/{guid}/processes List processes for an app #
GET /v3/apps/{guid}/processes/{type} Get a process for an app #
PATCH /v3/apps/{guid}/processes/{type} Update a process for an app #
GET /v3/apps/{guid}/processes/{type}/stats Get stats for a process for an app #
POST /v3/apps/{guid}/processes/{type}/actions/scale Scale a process for an app #
DELETE /v3/apps/{guid}/processes/{type}/instances/{index} Terminate a process instance for an app #
GET /v3/apps/{guid}/manifest Generate a manifest for an app #
GET /v3/apps/{guid}/builds List builds for an app #
PATCH /v3/apps/{guid}/builds Update a build #
GET /v3/apps/{guid}/tasks List tasks for an app #
POST /v3/apps/{guid}/tasks Create a task #
POST /v3/apps/{guid}/actions/clear_buildpack_cache Clear buildpack cache for application #
GET /v3/apps/{guid}/env Get environment for an app #
GET /v3/apps/{guid}/environment_variables Get environment variables for an app #
PATCH /v3/apps/{guid}/environment_variables Update environment variables for an app #
GET /v3/apps/{guid}/features List app features #
GET /v3/apps/{guid}/features/{name} Get an app feature #
PATCH /v3/apps/{guid}/features/{name} Update an app feature #
GET /v3/apps/{guid}/permissions Get permissions for an app #
GET /v3/apps/{guid}/routes List routes for an app #
GET /v3/apps/{guid}/ssh_enabled Get SSH enabled for an app #
GET /v3/domains/{guid}/route_reservations Check reserved routes for a domain #
GET /v3/organizations/{guid}/domains List domains for an organization #
GET /v3/processes/{guid}/sidecars List sidecars for process #
GET /v3/routes/{guid} Get a route #
PATCH /v3/routes/{guid} Update a route #
DELETE /v3/routes/{guid} Delete a route #
GET /v3/routes/{guid}/relationships/shared_spaces List shared spaces relationship #
POST /v3/routes/{guid}/relationships/shared_spaces Share a route with other spaces (experimental) #
DELETE /v3/routes/{guid}/relationships/shared_spaces/{space_guid} Unshare a route that was shared with another space (experimental) #
PATCH /v3/routes/{guid}/relationships/space Transfer ownership (experimental) #
GET /v3/service_instances/{guid}/credentials Get credentials for a user-provided service instance #
GET /v3/service_instances/{guid}/parameters Get parameters for a managed service instance #
GET /v3/service_instances/{guid}/permissions Get permissions for a service instance #
GET /v3/service_instances/{guid}/relationships/shared_spaces List shared spaces relationship #
POST /v3/service_instances/{guid}/relationships/shared_spaces Share a service instance to other spaces #
GET /v3/service_instances/{guid}/relationships/shared_spaces/usage_summary Get usage summary in shared spaces #
DELETE /v3/service_instances/{guid}/relationships/shared_spaces/{space_guid} Unshare a service instance from another space #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/capi-v3"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

cloud-foundry-capi-v3-openapi.yaml Raw ↑
openapi: 3.1.0
info:
  title: Cloud Foundry V3 API
  description: |-
    # Welcome to the Experimental Cloud Foundry V3 API Docs! 

    # Expermiental Warning
     This OpenAPI specification is a experiment and not ready for productive use.
    # Getting help
    The CAPI team can most easily be reached on our Slack channel for questions and issues regarding the API. To report an issue with the docs or API, please feel free to file a GitHub issue on our API repo, cloud_controller_ng.
    We recommend reaching out to Slack first as we will be most responsive there.
        
    # More resources
    - The Cloud Foundry V2 API is still deprecated but still available for interacting with Cloud Foundry.
    - Running Tasks
    - V3 API Documentation OpenAPI Spec Source Code. 
  version: latest
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  contact:
    name: Cloud Foundry
    url: https://www.cloudfoundry.org/
servers:
  - url: https://api.example.local
    description: Cloud Foundry V3 API server
security:
  - oauth:
      - cloud_controller.read
      - cloud_controller.write
tags:
  - name: Admin
    description: Administrative operations for Cloud Foundry platform management.
  - name: Apps
    description: Apps are top-level objects that link together and contain configuration information for your packages, droplets, processes, tasks, and more.
  - name: App Usage Events
    description: App usage events are a record of changes in the usage of apps and tasks.
  - name: Audit Events
    description: Audit events help Cloud Foundry operators monitor actions taken against resources (such as apps) via user or system actions.
  - name: Builds
    description: Builds represent the process of staging an application package.
  - name: Buildpacks
    description: Buildpacks are used during a build to download external dependencies and transform a package into an executable droplet.
  - name: Deployments
    description: Deployments are objects that manage updates to applications with zero downtime.
  - name: Domains
    description: Domains represent a fully qualified domain name that is used for application routes.
  - name: Droplets
    description: Droplets are the result of staging an application package.
  - name: Environment Variable Groups
    description: 'There are two types of environment variable groups: running and staging.'
  - name: Feature Flags
    description: Feature flags are runtime flags that enable or disable functionality on the API.
  - name: Info
    description: Info endpoints expose Cloud Controller configuration information.
  - name: Internal
    description: Internal endpoints for system monitoring and metrics.
  - name: Isolation Segments
    description: Isolation Segments provide dedicated pools of resources to which apps can be deployed to isolate workloads.
  - name: Jobs
    description: Jobs are created by the platform when performing certain asynchronous actions.
  - name: Manifests
    description: A manifest is a method for applying bulk configurations to apps and their underlying processes.
  - name: Organizations
    description: An org is a development account that an individual or multiple collaborators can own and use.
  - name: Organization Quotas
    description: Organization quotas are named sets of memory, log rate, service, and instance usage quotas.
  - name: Packages
    description: A package is an application’s ‘source code’; either raw bits for your application or a pointer to these bits.
  - name: Processes
    description: Processes define the runnable units of an app.
  - name: Resource Matches
    description: Resource Matches are used to determine if a resource has been previously uploaded to the Cloud Controller.
  - name: Revisions
    description: Revisions represent code used by an application at a specific time.
  - name: Roles
    description: Roles are used to control access to resources.
  - name: Root
    description: Root API endpoints that provide entry points and API information.
  - name: Routes
    description: Routes are used to map a URL to an app.
  - name: Security Groups
    description: Security groups are used to control access to apps.
  - name: Service Brokers
    description: Service brokers are used to manage services.
  - name: Service Credential Bindings
    description: Service credential bindings are used to bind a service instance to an app.
  - name: Service Instances
    description: Service instances are instances of a service.
  - name: Service Offerings
    description: Service offerings are services that are available to be used.
  - name: Service Plans
    description: Service plans are plans for a service.
  - name: Service Route Bindings
    description: Service route bindings are used to bind a route to a service instance.
  - name: Service Usage Events
    description: Service usage events are a record of changes in the usage of services.
  - name: Sidecars
    description: Sidecars are used to run a process alongside an app.
  - name: Spaces
    description: Spaces are used to group apps and services.
  - name: Space Quotas
    description: Space quotas are named sets of memory, log rate, service, and instance usage quotas.
  - name: Stacks
    description: Stacks are used to specify the operating system and runtime environment for an app.
  - name: Tasks
    description: Tasks are one-off commands that can be run against an app.
  - name: Users
    description: Users are the users of the Cloud Foundry platform.
paths:
  /:
    get:
      summary: Global API Root
      description: This endpoint returns links to the APIs available on a given Cloud Foundry deployment.
      operationId: getApiRoot
      tags:
        - Root
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  links:
                    type: object
                    description: Links to related resources
                    properties:
                      self:
                        allOf:
                          - $ref: '#/components/schemas/IndexLink'
                          - description: Link to the current endpoint
                      cloud_controller_v2:
                        allOf:
                          - $ref: '#/components/schemas/IndexLink'
                          - description: Link to the Cloud Controller V2 API
                      cloud_controller_v3:
                        allOf:
                          - $ref: '#/components/schemas/IndexLink'
                          - description: Link to the Cloud Controller V3 API
                      network_policy_v1:
                        allOf:
                          - $ref: '#/components/schemas/IndexLink'
                          - description: Link to the Network Policy V1 API
                      uaa:
                        allOf:
                          - $ref: '#/components/schemas/IndexLink'
                          - description: Link to the UAA API
                      logging:
                        allOf:
                          - $ref: '#/components/schemas/IndexLink'
                          - description: Link to the Logging API
                      log_cache:
                        allOf:
                          - $ref: '#/components/schemas/IndexLink'
                          - description: Link to the Log Cache API
                      log_stream:
                        allOf:
                          - $ref: '#/components/schemas/IndexLink'
                          - description: Link to the Log Stream API
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/500'
  /v3:
    get:
      summary: Get V3 API root
      description: Returns the V3 API root endpoint information.
      operationId: getV3ApiRoot
      tags:
        - Root
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  links:
                    type: object
                    description: Links to related resources
                    properties:
                      self:
                        allOf:
                          - $ref: '#/components/schemas/Link'
                          - description: Link to the current endpoint
                      apps:
                        allOf:
                          - $ref: '#/components/schemas/Link'
                          - description: Link to the apps endpoint
                      builds:
                        allOf:
                          - $ref: '#/components/schemas/Link'
                          - description: Link to the builds endpoint
                      deployments:
                        allOf:
                          - $ref: '#/components/schemas/Link'
                          - description: Link to the deployments endpoint
                      domains:
                        allOf:
                          - $ref: '#/components/schemas/Link'
                          - description: Link to the domains endpoint
                      droplets:
                        allOf:
                          - $ref: '#/components/schemas/Link'
                          - description: Link to the droplets endpoint
                      feature_flags:
                        allOf:
                          - $ref: '#/components/schemas/Link'
                          - description: Link to the feature flags endpoint
                      info:
                        allOf:
                          - $ref: '#/components/schemas/Link'
                          - description: Link to the info endpoint
                      isolation_segments:
                        allOf:
                          - $ref: '#/components/schemas/Link'
                          - description: Link to the isolation segments endpoint
                      organizations:
                        allOf:
                          - $ref: '#/components/schemas/Link'
                          - description: Link to the organizations endpoint
                      packages:
                        allOf:
                          - $ref: '#/components/schemas/Link'
                          - description: Link to the packages endpoint
                      processes:
                        allOf:
                          - $ref: '#/components/schemas/Link'
                          - description: Link to the processes endpoint
                      roles:
                        allOf:
                          - $ref: '#/components/schemas/Link'
                          - description: Link to the roles endpoint
                      routes:
                        allOf:
                          - $ref: '#/components/schemas/Link'
                          - description: Link to the routes endpoint
                      security_groups:
                        allOf:
                          - $ref: '#/components/schemas/Link'
                          - description: Link to the security groups endpoint
                      service_brokers:
                        allOf:
                          - $ref: '#/components/schemas/Link'
                          - description: Link to the service brokers endpoint
                      service_instances:
                        allOf:
                          - $ref: '#/components/schemas/Link'
                          - description: Link to the service instances endpoint
                      service_offerings:
                        allOf:
                          - $ref: '#/components/schemas/Link'
                          - description: Link to the service offerings endpoint
                      service_plans:
                        allOf:
                          - $ref: '#/components/schemas/Link'
                          - description: Link to the service plans endpoint
                      spaces:
                        allOf:
                          - $ref: '#/components/schemas/Link'
                          - description: Link to the spaces endpoint
                      stacks:
                        allOf:
                          - $ref: '#/components/schemas/Link'
                          - description: Link to the stacks endpoint
                      tasks:
                        allOf:
                          - $ref: '#/components/schemas/Link'
                          - description: Link to the tasks endpoint
                      users:
                        allOf:
                          - $ref: '#/components/schemas/Link'
                          - description: Link to the users endpoint
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/500'
  /v3/admin/actions/clear_buildpack_cache:
    post:
      summary: Clear the buildpack cache
      description: This endpoint will delete all of the existing buildpack caches in the blobstore. The buildpack cache is used during staging by buildpacks as a way to cache certain resources, e.g. downloaded Ruby gems. An admin who wants to decrease the size of their blobstore could use this endpoint to delete unnecessary blobs.
      operationId: clearBuildpackCache
      tags:
        - Admin
      responses:
        '202':
          description: Accepted
          headers:
            Location:
              description: URL of the job that is clearing the buildpack cache
              schema:
                type: string
                format: uri
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /v3/apps:
    get:
      summary: List apps
      description: Retrieve all apps the user has access to.
      operationId: listApps
      tags:
        - Apps
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PerPage'
        - $ref: '#/components/parameters/OrderBy'
        - $ref: '#/components/parameters/CreatedAts'
        - $ref: '#/components/parameters/UpdatedAts'
        - $ref: '#/components/parameters/LabelSelector'
        - name: guids
          in: query
          schema:
            type: array
            items:
              type: string
          description: Comma-delimited list of app GUIDs to filter by
        - name: names
          in: query
          schema:
            type: array
            items:
              type: string
          description: Comma-delimited list of app names to filter by
        - name: space_guids
          in: query
          schema:
            type: array
            items:
              type: string
          description: Comma-delimited list of space GUIDs to filter by
        - name: organization_guids
          in: query
          schema:
            type: array
            items:
              type: string
          description: Comma-delimited list of organization GUIDs to filter by
        - name: stacks
          in: query
          schema:
            type: array
            items:
              type: string
          description: Comma-delimited list of stack names to filter by
        - name: lifecycle_type
          in: query
          schema:
            type: string
            enum:
              - buildpack
              - cnb
              - docker
          description: Lifecycle type to filter by
        - name: include
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - space
                - space.organization
          description: Optionally include a list of unique related resources in the response
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppList'
              examples:
                default:
                  summary: default
                  value:
                    pagination:
                      total_results: 3
                      total_pages: 2
                      first:
                        href: https://api.example.org?page=1&per_page=2
                      last:
                        href: https://api.example.org?page=2&per_page=2
                      next:
                        href: https://api.example.org?page=2&per_page=2
                      previous: null
                    resources:
                      - guid: 123e4567-e89b-12d3-a456-426614174000
                        name: my_app
                        state: STARTED
                        created_at: '2016-03-17T21:41:30Z'
                        updated_at: '2016-03-18T11:32:30Z'
                        lifecycle:
                          type: buildpack
                          data:
                            buildpacks:
                              - java_buildpack
                            stack: cflinuxfs4
                        relationships:
                          space:
                            data:
                              guid: 123e4567-e89b-12d3-a456-426614174000
                          current_droplet:
                            data:
                              guid: 123e4567-e89b-12d3-a456-426614174000
                        links:
                          self:
                            href: https://api.example.org/v3/apps/1cb006ee-fb05-47e1-b541-c34179ddc446
                          space:
                            href: https://api.example.org/v3/spaces/2f35885d-0c9d-4423-83ad-fd05066f8576
                          processes:
                            href: https://api.example.org/v3/apps/1cb006ee-fb05-47e1-b541-c34179ddc446/processes
                          packages:
                            href: https://api.example.org/v3/apps/1cb006ee-fb05-47e1-b541-c34179ddc446/packages
                          environment_variables:
                            href: https://api.example.org/v3/apps/1cb006ee-fb05-47e1-b541-c34179ddc446/environment_variables
                          current_droplet:
                            href: https://api.example.org/v3/apps/1cb006ee-fb05-47e1-b541-c34179ddc446/droplets/current
                          droplets:
                            href: https://api.example.org/v3/apps/1cb006ee-fb05-47e1-b541-c34179ddc446/droplets
                          tasks:
                            href: https://api.example.org/v3/apps/1cb006ee-fb05-47e1-b541-c34179ddc446/tasks
                          start:
                            href: https://api.example.org/v3/apps/1cb006ee-fb05-47e1-b541-c34179ddc446/actions/start
                            method: POST
                          stop:
                            href: https://api.example.org/v3/apps/1cb006ee-fb05-47e1-b541-c34179ddc446/actions/stop
                            method: POST
                          revisions:
                            href: https://api.example.org/v3/apps/1cb006ee-fb05-47e1-b541-c34179ddc446/revisions
                          deployed_revisions:
                            href: https://api.example.org/v3/apps/1cb006ee-fb05-47e1-b541-c34179ddc446/revisions/deployed
                          features:
                            href: https://api.example.org/v3/apps/1cb006ee-fb05-47e1-b541-c34179ddc446/features
                        metadata:
                          labels: {}
                          annotations: {}
                      - guid: 123e4567-e89b-12d3-a456-426614174000
                        name: my_app2
                        state: STOPPED
                        created_at: '1970-01-01T00:00:02Z'
                        updated_at: '2016-06-08T16:41:26Z'
                        lifecycle:
                          type: buildpack
                          data:
                            buildpacks:
                              - ruby_buildpack
                            stack: cflinuxfs4
                        relationships:
                          space:
                            data:
                              guid: 123e4567-e89b-12d3-a456-426614174000
                          droplet:
                            data:
                              guid: 123e4567-e89b-12d3-a456-426614174000
                        links:
                          self:
                            href: https://api.example.org/02b4ec9b-94c7-4468-9c23-4e906191a0f8
                          space:
                            href: https://api.example.org/v3/spaces/2f35885d-0c9d-4423-83ad-fd05066f8576
                          processes:
                            href: https://api.example.org/02b4ec9b-94c7-4468-9c23-4e906191a0f8/processes
                          packages:
                            href: https://api.example.org/02b4ec9b-94c7-4468-9c23-4e906191a0f8/packages
                          environment_variables:
                            href: https://api.example.org/02b4ec9b-94c7-4468-9c23-4e906191a0f8/environment_variables
                          current_droplet:
                            href: https://api.example.org/02b4ec9b-94c7-4468-9c23-4e906191a0f8/droplets/current
                          droplets:
                            href: https://api.example.org/02b4ec9b-94c7-4468-9c23-4e906191a0f8/droplets
                          tasks:
                            href: https://api.example.org/02b4ec9b-94c7-4468-9c23-4e906191a0f8/tasks
                          start:
                            href: https://api.example.org/02b4ec9b-94c7-4468-9c23-4e906191a0f8/actions/start
                            method: POST
                          stop:
                            href: https://api.example.org/02b4ec9b-94c7-4468-9c23-4e906191a0f8/actions/stop
                            method: POST
                          revisions:
                            href: https://api.example.org//02b4ec9b-94c7-4468-9c23-4e906191a0f8/revisions
                          deployed_revisions:
                            href: https://api.example.org//02b4ec9b-94c7-4468-9c23-4e906191a0f8/revisions/deployed
                          features:
                            href: https://api.example.org//02b4ec9b-94c7-4468-9c23-4e906191a0f8/features
                        metadata:
                          labels: {}
                          annotations: {}
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '409':
          $ref: '#/components/responses/Conflict'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/500'
        '502':
          $ref: '#/components/responses/BadGateway'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
    post:
      summary: Create an app
      description: Creates a new app.
      operationId: createApp
      tags:
        - Apps
      requestBody:
        $ref: '#/components/requestBodies/AppCreateRequestBody'
      responses:
        '201':
          description: Successfully created app
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/App'
              examples:
                default:
                  summary: default
                  value:
                    guid: 123e4567-e89b-12d3-a456-426614174000
                    name: my_app
                    state: STOPPED
                    created_at: '2016-03-17T21:41:30Z'
                    updated_at: '2016-06-08T16:41:26Z'
                    lifecycle:
                      type: buildpack
                      data:
                        buildpacks:
                          - java_buildpack
                        stack: cflinuxfs4
                    relationships:
                      space:
                        data:
                          guid: 123e4567-e89b-12d3-a456-426614174000
                      current_droplet:
                        data:
                          guid: 123e4567-e89b-12d3-a456-426614174000
                    links:
                      self:
                        href: https://api.example.org/v3/apps/1cb006ee-fb05-47e1-b541-c34179ddc446
                      space:
                        href: https://api.example.org/v3/spaces/2f35885d-0c9d-4423-83ad-fd05066f8576
                      processes:
                        href: https://api.example.org/v3/apps/1cb006ee-fb05-47e1-b541-c34179ddc446/processes
                      packages:
                        href: https://api.example.org/v3/apps/1cb006ee-fb05-47e1-b541-c34179ddc446/packages
                      environment_variables:
                        href: https://api.example.org/v3/apps/1cb006ee-fb05-47e1-b541-c34179ddc446/environment_variables
                      current_droplet:
                        href: https://api.example.org/v3/apps/1cb006ee-fb05-47e1-b541-c34179ddc446/droplets/current
                      droplets:
                        href: https://api.example.org/v3/apps/1cb006ee-fb05-47e1-b541-c34179ddc446/droplets
                      tasks:
                        href: https://api.example.org/v3/apps/1cb006ee-fb05-47e1-b541-c34179ddc446/tasks
                      start:
                        href: https://api.example.org/v3/apps/1cb006ee-fb05-47e1-b541-c34179ddc446/actions/start
                        method: POST
                      stop:
                        href: https://api.example.org/v3/apps/1cb006ee-fb05-47e1-b541-c34179ddc446/actions/stop
                        method: POST
                      revisions:
                        href: https://api.example.org/v3/apps/1cb006ee-fb05-47e1-b541-c34179ddc446/revisions
                      deployed_revisions:
                        href: https://api.example.org/v3/apps/1cb006ee-fb05-47e1-b541-c34179ddc446/revisions/deployed
                      features:
                        href: https://api.example.org/v3/apps/1cb006ee-fb05-47e1-b541-c34179ddc446/features
                    metadata:
                      labels: {}
                      annotations: {}
          links:
            space:
              operationId: getSpace
              parameters:
                guid: $response.body#/relationships/space/data/guid
              description: Retrieve the space for this app
            current_droplet:
              operationId: getDroplet
              parameters:
                guid: $response.body#/relationships/current_droplet/data/guid
              description: Retrieve the current droplet for this app
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '409':
          $ref: '#/components/responses/Conflict'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              examples:
                uniqueness_error:
                  value:
                    errors:
                      - code: 10016
                        title: CF-UniquenessError
                        detail: The given app name is already taken in the targeted space
                feature_disabled:
                  value:
                    errors:
                      - code: 330002
                        title: CF-FeatureDisabled
                        detail: Some feature flag must be enabled by the Cloud Foundry admin in order to push the app as is.
        '500':
          $ref: '#/components/responses/500'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
  /v3/apps/{guid}:
    get:
      summary: Get an app
      description: Retrieve a specific app.
      operationId: getApp
      tags:
        - Apps
      parameters:
        - $ref: '#/components/parameters/Guid'
        - name: include
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - space
                - space.organization
          description: Optionally include a list of unique related resources in the response
      responses:
        '200':
          description: Successfully retrieved app
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/App'
              examples:
                default:
                  summary: default
                  value:
                    guid: 123e4567-e89b-12d3-a456-426614174000
                    name: my_app
                    state: STOPPED
                    created_at: '2016-03-17T21:41:30Z'
                    updated_at: '2016-06-08T16:41:26Z'
                    lifecycle:
                      type: buildpack
                      data:
                        buildpacks:
                          - java_buildpack
                        stack: cflinuxfs4
                    relationships:
                      space:
                        data:
                          guid: 123e4567-e89b-12d3-a456-426614174000
                      current_droplet:
                        data:
                          guid: 123e4567-e89b-12d3-a456-426614174000
                    links:
                      self:
                        href: https://api.example.org/v3/apps/1cb006ee-fb05-47e1-b541-c34179ddc446
                      space:
                        href: https://api.example.org/v3/spaces/2f35885d-0c9d-4423-83ad-fd05066f8576
                      processes:
                        href: https://api.example.org/v3/apps/1cb006ee-fb05-47e1-b541-c34179ddc446/processes
                      packages:
                        href: https://api.example.org/v3/apps/1cb006ee-fb05-47e1-b541-c34179ddc446/packages
                      environment_variables:
                        href: https://api.example.org/v3/apps/1cb006ee-fb05-47e1-b541-c34179ddc446/environment_variables
                      current_droplet:
                        href: https://api.example.org/v3/apps/1cb006ee-fb05-47e1-b541-c34179ddc446/droplets/current
                      droplets:
                        href: https://api.example.org/v3/apps/1cb006ee-fb05-47e1-b541-c34179ddc446/droplets
                      tasks:
                        href: https://api.example.org/v3/apps/1cb006ee-fb05-47e1-b541-c34179ddc446/tasks
                      start:
                        href: https://api.example.org/v3/apps/1cb006ee-fb05-47e1-b541-c34179ddc446/actions/start
                        method: POST
                      stop:
                        href: https://api.example.org/v3/apps/1cb006ee-fb05-47e1-b541-c34179ddc446/actions/stop
                        method: POST
                      revisions:
                        href: https://api.example.org/v3/apps/1cb006ee-fb05-47e1-b541-c34179ddc446/revisions
                      deployed_revisions:
                        href: https://api.example.org/v3/apps/1cb006ee-fb05-47e1-b541-c34179ddc446/revisions/deployed
                      features:
                        href: https://api.example.org/v3/apps/1cb006ee-fb05-47e1-b541-c34179ddc446/features
                    metadata:
                      labels: {}
                      annotations: {}
          links:
            space:
              operationId: getSpace
              parameters:
                guid: $response.body#/relationships/space/data/guid
              description: Retrieve the space for this app
            current_droplet:
              operationId: getDroplet
              parameters:
                guid: $response.body#/relationships/current_droplet/data/guid
              description: Retrieve the current droplet for this app
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    patch:
      summary: Update an app
      description: Update an app.
      operationId: updateApp
      tags:
        - Apps
      p

# --- truncated at 32 KB (726 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/cloud-foundry/refs/heads/main/openapi/cloud-foundry-capi-v3-openapi.yaml