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/cloud-foundry-revisions-api"
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: 3.2.0
info:
title: Cloud Foundry V3 Revisions API
description: '# Welcome to the Experimental Cloud Foundry V3 API Docs!'
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: Revisions
description: Revisions represent code used by an application at a specific time.
paths:
/v3/revisions/{guid}:
get:
summary: Get a revision
description: Retrieve a revision.
operationId: getRevision
tags:
- Revisions
parameters:
- $ref: '#/components/parameters/Guid'
responses:
'200':
description: Successfully retrieved revision
content:
application/json:
schema:
$ref: '#/components/schemas/Revision'
links:
app:
operationId: getApp
parameters:
guid: $response.body#/relationships/app/data/guid
description: Retrieve the app for this revision
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'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'
patch:
summary: Update a revision
description: Update a revision.
operationId: updateRevision
tags:
- Revisions
parameters:
- $ref: '#/components/parameters/Guid'
requestBody:
description: Revision object that needs to be updated
required: true
content:
application/json:
schema:
type: object
properties:
metadata:
$ref: '#/components/schemas/Metadata'
description: Request schema for updating a revision
examples:
default:
summary: default
value:
metadata:
labels:
key: value
annotations:
note: detailed information
responses:
'200':
description: Successfully updated revision
content:
application/json:
schema:
$ref: '#/components/schemas/Revision'
links:
app:
operationId: getApp
parameters:
guid: $response.body#/relationships/app/data/guid
description: Retrieve the app for this revision
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/ServiceUnavailable'
/v3/revisions/{guid}/environment_variables:
get:
summary: Get environment variables for a revision
description: Retrieve the environment variables that are associated with the revision.
operationId: getRevisionEnvironmentVariables
tags:
- Revisions
parameters:
- $ref: '#/components/parameters/Guid'
responses:
'200':
description: Successfully retrieved revision environment variables
content:
application/json:
schema:
type: object
properties:
var:
type: object
description: Environment variables for the revision
additionalProperties:
type: string
links:
type: object
properties:
self:
$ref: '#/components/schemas/Link'
revision:
$ref: '#/components/schemas/Link'
app:
$ref: '#/components/schemas/Link'
examples:
default:
summary: default
value:
var:
RAILS_ENV: production
links:
self:
href: https://api.example.org/v3/revisions/[guid]/environment_variables
revision:
href: https://api.example.org/v3/revisions/[guid]
app:
href: https://api.example.org/v3/apps/[app_guid]
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
/v3/apps/{guid}/revisions:
get:
summary: List revisions for an app
description: Retrieve revisions for an app the user has access to.
operationId: listRevisionsForApp
tags:
- Revisions
parameters:
- $ref: '#/components/parameters/Guid'
- $ref: '#/components/parameters/Page'
- $ref: '#/components/parameters/PerPage'
- $ref: '#/components/parameters/OrderBy'
- $ref: '#/components/parameters/LabelSelector'
- $ref: '#/components/parameters/CreatedAts'
- $ref: '#/components/parameters/UpdatedAts'
- name: versions
in: query
schema:
type: array
items:
type: string
description: Comma-delimited list of revision versions to filter by
responses:
'200':
description: Successfully retrieved revisions for app
content:
application/json:
schema:
$ref: '#/components/schemas/RevisionList'
examples:
default:
summary: default
value:
pagination:
total_results: 1
total_pages: 1
first:
href: https://api.example.org/v3/apps/1cb006ee-fb05-47e1-b541-c34179ddc446/revisions?page=1&per_page=50
last:
href: https://api.example.org/v3/apps/1cb006ee-fb05-47e1-b541-c34179ddc446/revisions?page=1&per_page=50
next: null
previous: null
resources:
- guid: 123e4567-e89b-12d3-a456-426614174000
version: 1
droplet:
guid: 123e4567-e89b-12d3-a456-426614174000
processes:
web:
command: bundle exec rackup
sidecars:
- name: auth-sidecar
command: bundle exec sidecar
process_types:
- web
memory_in_mb: 300
description: Initial revision.
deployable: true
relationships:
app:
data:
guid: 123e4567-e89b-12d3-a456-426614174000
created_at: '2017-02-01T01:33:58Z'
updated_at: '2017-02-01T01:33:58Z'
metadata:
labels: {}
annotations: {}
links:
self:
href: https://api.example.org/v3/revisions/885735b5-aea4-4cf5-8e44-961af0e41920
app:
href: https://api.example.org/v3/apps/1cb006ee-fb05-47e1-b541-c34179ddc446
environment_variables:
href: https://api.example.org/v3/revisions/885735b5-aea4-4cf5-8e44-961af0e41920/environment_variables
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
/v3/apps/{guid}/revisions/deployed:
get:
summary: List deployed revisions for an app
description: Retrieve deployed revisions for an app the user has access to. Deployed revisions are revisions that are linked to started processes in the app.
operationId: listDeployedRevisionsForApp
tags:
- Revisions
parameters:
- $ref: '#/components/parameters/Guid'
- $ref: '#/components/parameters/Page'
- $ref: '#/components/parameters/PerPage'
- $ref: '#/components/parameters/OrderBy'
responses:
'200':
description: Successfully retrieved deployed revisions for app
content:
application/json:
schema:
$ref: '#/components/schemas/RevisionList'
examples:
default:
summary: default
value:
pagination:
total_results: 1
total_pages: 1
first:
href: https://api.example.org/v3/apps/1cb006ee-fb05-47e1-b541-c34179ddc446/revisions?page=1&per_page=50
last:
href: https://api.example.org/v3/apps/1cb006ee-fb05-47e1-b541-c34179ddc446/revisions?page=1&per_page=50
next: null
previous: null
resources:
- guid: 123e4567-e89b-12d3-a456-426614174000
version: 1
droplet:
guid: 123e4567-e89b-12d3-a456-426614174000
processes:
web:
command: bundle exec rackup
sidecars:
- name: auth-sidecar
command: bundle exec sidecar
process_types:
- web
memory_in_mb: 300
description: Initial revision.
deployable: true
relationships:
app:
data:
guid: 123e4567-e89b-12d3-a456-426614174000
created_at: '2017-02-01T01:33:58Z'
updated_at: '2017-02-01T01:33:58Z'
metadata:
labels: {}
annotations: {}
links:
self:
href: https://api.example.org/v3/revisions/885735b5-aea4-4cf5-8e44-961af0e41920
app:
href: https://api.example.org/v3/apps/1cb006ee-fb05-47e1-b541-c34179ddc446
environment_variables:
href: https://api.example.org/v3/revisions/885735b5-aea4-4cf5-8e44-961af0e41920/environment_variables
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
components:
schemas:
Pagination:
type: object
properties:
total_results:
type: integer
description: The total number of results available
total_pages:
type: integer
description: The total number of pages available
first:
allOf:
- $ref: '#/components/schemas/Link'
- description: The first page of results
last:
allOf:
- $ref: '#/components/schemas/Link'
- description: The last page of results
next:
oneOf:
- $ref: '#/components/schemas/Link'
- type: 'null'
description: The next page of results
previous:
oneOf:
- $ref: '#/components/schemas/Link'
- type: 'null'
description: The previous page of results
description: 'Pagination is a technique used to divide a large set of results into smaller, more manageable sets. This allows clients to retrieve results in smaller chunks, reducing the amount of data transferred and improving performance.
The pagination object is a JSON object that contains information about the pagination state of the results. It includes the total number of results available, the total number of pages available, and links to the first, last, next, and previous pages of results.
'
Link:
type: object
properties:
href:
type: string
description: The URL of the link
method:
type: string
description: An optional field containing the HTTP method to be used when following the URL
required:
- href
description: 'Each link is keyed by its type and will include a href for the URL and an optional method for links that cannot be followed using GET.
'
RelationshipToOne:
type: object
properties:
data:
type:
- object
- 'null'
$ref: '#/components/schemas/Relationship'
links:
type: object
properties:
self:
$ref: '#/components/schemas/Link'
related:
$ref: '#/components/schemas/Link'
description: 'Some relationships relate a resource to exactly one other resource. For example an app can belong to only one space.
'
Relationships:
type: object
description: 'Relationships represent associations between resources. When relationships are mutable, they can be used to create, read, update, and delete these associations. An app’s relationship to its current droplet is mutable, but an app’s relationship to its space is not.
Relationships do not affect the fundamental properties of a resource, but may affect their behavior and permissions logic. Relationships are tied to the lifecycles of the associated resources and will be removed if either of the associated resources are deleted. For example, if a user is removed from an organization, both the user and the organization persist, but the relationship between them does not.
Not all resources implement every relationship operation demonstrated in the examples below. See the docs for each resource to see how it interacts with its relationships.
Endpoints that return relationship data list this information under the relationships key.
The relationship object
The relationship object is a key-value pair that uniquely identifies a resource. In practice this is almost always the guid of a resource.
'
RevisionList:
type: object
properties:
pagination:
$ref: '#/components/schemas/Pagination'
resources:
type: array
items:
$ref: '#/components/schemas/Revision'
Metadata:
type: object
properties:
labels:
type: object
additionalProperties:
type:
- string
- 'null'
description: 'A set of key-value pairs that describe the resource. Labels are a JSON object that contains information about a resource. They are used to tag resources with metadata that can be used to filter and group resources. Labels are included in the response body of a request to retrieve a resource.
Labels are user-specified key/value pairs that are attached to API Resources. They are queryable, identifying attributes of a resource, but they do not affect the operation of CloudFoundry.
For example, an app may be assigned a label with key sensitive and possible values true or false.
Users could then find all sensitive apps with a selector for sensitive=true, resulting in a response containing only apps having the label key sensitive with a label value of true.
Labels
Labels allow users to apply identifying attributes to resources that are meaningful to the user, but not the CloudFoundry system.
Examples may include (but are not limited to):
"production" : "true" or "production" : "false"
"env" : "dev" or "env" : "test" or "env" : "prod"
"chargeback-code" : "abc123"
Label keys
Label keys are made up of an (optional) prefix, and name. If a prefix is present, it is separated from the name by a /. Prefixes are dns names intended to enable namespacing of label keys.
A label key prefix must adhere to the following restrictions:
Length: 0-253 characters
Allowed characters: alphanumeric ( [a-z0-9A-Z] ), -, and .
DNS subdomain format (series of subdomain labels separated by .)
A label key name must adhere to the following restrictions:
Length: 1-63 characters
Allowed characters: alphanumeric ( [a-z0-9A-Z] ), -, _, and .
Must begin and end with an alphanumeric character
Label values
Label values must adhere to the following restrictions:
Length: 0-63 characters
Allowed characters: alphanumeric ( [a-z0-9A-Z] ), -, _, and .
Must begin and end with an alphanumeric character
Empty values are allowed
'
annotations:
type: object
additionalProperties:
type:
- string
- 'null'
description: 'A set of key-value pairs that describe the resource. Annotations are a JSON object that contains information about a resource. They are used to tag resources with metadata that can be used to filter and group resources. Annotations are included in the response body of a request to retrieve a resource.
Annotations are user-specified key-value pairs that are attached to API resources. They do not affect the operation of Cloud Foundry. Annotations cannot be used in filters.
When a service instance is being created, the service broker is sent the annotations of the service instance, and the space and organization in which the service instance resides. When a service instance is being updated, the service broker is sent the annotations of the space and organization in which the service instance resides. When a service binding is being created, the service broker is sent annotations of any associated app, and the space and organization in which the binding resides. Only annotations with a prefix (e.g. company.com/contacts) are sent to service brokers.
Examples may include (but are not limited to):
"contact info": "bob@example.com jane@example.com"
"library versions": "Spring: 5.1, Redis Client: a184098. yaml parser: 38"
"git-sha": "d56fe0367554ae5e878e37ed6c5b9a82f5995512"
Annotation keys
Annotation keys are made up of an (optional) prefix and name. If a prefix is present, it is separated from the name by a /. Prefixes are DNS names intended to enable namespacing of annotation keys.
An annotation key prefix must adhere to the following restrictions:
Length: 0-253 characters
Allowed characters: a-z, A-Z, 0-9, -, and .; emojis cannot be used in keys
DNS subdomain format (series of subdomain annotations separated by .)
An annotation key name must adhere to the following restrictions:
Length: 1-63 characters
Allowed characters: a-z, A-Z, 0-9, -, _, and .; emojis cannot be used in keys
Must begin and end with an alphanumeric character
Annotation values
Annotation values must adhere to the following restrictions:
Length: 0-5000 unicode characters
'
description: 'Metadata is a JSON object that contains information about a resource. It includes the GUID of the resource, the time the resource was created, the time the resource was last updated, and links to the resource.
Metadata is included in the response body of a request to retrieve a resource.
'
Errors:
type: object
properties:
errors:
type: array
items:
$ref: '#/components/schemas/Error'
description: 'An error response will always return a list of error objects. Errors appear on the job resource for asynchronous operations.
Clients should use the code and title fields for programmatically handling specific errors. The message in the detail field is subject to change over time.
'
Revision:
type: object
allOf:
- $ref: '#/components/schemas/BaseSchema'
- properties:
version:
type: integer
description: Version number of the revision
description:
type:
- string
- 'null'
description: Description of the revision, created by the user
droplet:
$ref: '#/components/schemas/RelationshipToOne'
relationships:
allOf:
- $ref: '#/components/schemas/Relationships'
- properties:
app:
$ref: '#/components/schemas/RelationshipToOne'
enabled:
type: boolean
description: Whether the revision is enabled or not.
metadata:
$ref: '#/components/schemas/Metadata'
links:
type: object
properties:
self:
$ref: '#/components/schemas/Link'
description: The URL to get this revision
app:
$ref: '#/components/schemas/Link'
description: The URL to get the app for this revision
environment_variables:
$ref: '#/components/schemas/Link'
description: The URL to get the environment variables for this revision
description: An App Revision is an immutable snapshot of an app at a particular point in time. Revisions are identified by a sequential version number. The "current" revision for an app is the revision that is currently deployed for all instances of the app.
Error:
type: object
properties:
code:
type: integer
description: A numeric code for this error
detail:
type: string
description: Detailed description of the error
title:
type: string
description: Name of the error
Relationship:
type: object
properties:
guid:
type: string
format: uuid
description: The GUID of the resource
BaseSchema:
type: object
properties:
guid:
type: string
format: uuid
description: The unique identifier for the resource
created_at:
type: string
format: date-time
description: The ISO8601 compatible date and time when resource was created
updated_at:
type: string
format: date-time
description: The ISO8601 compatible date and time when resource was last updated
description: 'A resource represents an individual object within the system, such as an app or a service. It is represented as a JSON object.
A resource consists of several required resource fields and other attributes specific to the resource.
See Resources and Experimental Resources for specific resources.
'
parameters:
OrderBy:
name: order_by
in: query
required: false
schema:
type: string
description: 'Value to sort by. Defaults to ascending; prepend with `-` to sort descending.
'
example: created_at
CreatedAts:
name: created_ats
in: query
required: false
schema:
type: string
description: 'Timestamp to filter by. When filtering on equality, several comma-delimited timestamps may be passed. Also supports filtering with [relational operators](#relational-operators).
'
example: '2021-01-01T00:00:00Z'
PerPage:
name: per_page
in: query
required: false
schema:
type: integer
description: Number of results per page, valid values are 1 through 5000
example: 50
LabelSelector:
name: label_selector
in: query
description: A query string containing a list of [label selector](#labels-and-selectors) requirements
required: false
schema:
type: string
example: environment=production
Page:
name: page
in: query
required: false
schema:
type: integer
description: Page to display; valid values are integers >= 1
example: 1
UpdatedAts:
name: updated_ats
in: query
required: false
schema:
type: string
description: 'Timestamp to filter by. When filtering on equality, several comma-delimited timestamps may be passed. Also supports filtering with [relational operators](#relational-operators).
'
example: '2021-01-01T00:00:00Z'
Guid:
name: guid
in: path
required: true
schema:
type: string
format: uuid
description: The unique identifier for the resource
responses:
UnprocessableEntity:
description: Unprocessable Entity
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
Unauthorized:
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
BadGateway:
description: Bad Gateway
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
Conflict:
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
NotFound:
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
Forbidden:
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
BadRequest:
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
text/html:
schema:
type: string
ServiceUnavailable:
description: Service Unavailable
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
securitySchemes:
oauth:
type: oauth2
flows:
implicit:
authorizationUrl: https://uaa.cloudfoundry.local/api-oauth/dialog
scopes:
cloud_controller.admin: This scope provides read and write access to all resources
cloud_controller.admin_read_only: This scope provides read only access to all resources
cloud_controller.global_auditor: This scope provides read access to all resources
cloud_controller.read: Read access to the Cloud Controller
cloud_controller.write: Write access to the Cloud Controller
cloud_controller.update_build_state: This scope allows its bearer to update the state of a build; currently only used when updating builds
cloud_controller_service_permissions.read: This scope provides read only access for service instance permissions
bearer:
type: http
scheme: bearer
bearerFormat: JWT
description: Bearer JWT token authentication