Cycloid Organization Subscriptions API
Operations on the subscriptions
Operations on the subscriptions
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/cycloid:cycloid-organization-subscriptions-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a 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:
description: This is the Cycloid's API Reference. It provides descriptions, syntax, and usage examples for each of the actions and data types available within our console.
title: Welcome! Organization Subscriptions API
termsOfService: https://console.cycloid.io/terms
contact:
name: The Great Owl
url: https://www.cycloid.io
email: contact@cycloid.io
license:
name: Cycloid @copyrights
url: https://cycloid.io
version: '0'
servers:
- url: https://http-api.cycloid.io
security:
- api_key: []
- api_key_query: []
tags:
- description: Operations on the subscriptions
name: Organization Subscriptions
paths:
/organizations/{organization_canonical}/subscriptions:
parameters:
- $ref: '#/components/parameters/organization_canonical'
get:
description: Get the subscription for the Organization
tags:
- Organization Subscriptions
operationId: getSubscription
responses:
'200':
description: Subscription information
content:
application/json:
schema:
type: object
required:
- data
properties:
data:
$ref: '#/components/schemas/Subscription'
'403':
$ref: '#/components/responses/not_enough_permissions'
'404':
$ref: '#/components/responses/not_found_entity_in_path'
default:
$ref: '#/components/responses/unexpected_error'
summary: Get subscription
x-summary-source: derived
put:
description: Create or update the subscription for the Organization. This operation is idempotent.
tags:
- Organization Subscriptions
operationId: createOrUpdateSubscription
responses:
'200':
description: Subscription created or updated
content:
application/json:
schema:
type: object
required:
- data
properties:
data:
$ref: '#/components/schemas/Subscription'
'403':
$ref: '#/components/responses/not_enough_permissions'
'404':
$ref: '#/components/responses/not_found_entity_in_path'
'411':
$ref: '#/components/responses/required_content_length_header'
'422':
$ref: '#/components/responses/unprocessable_entity'
default:
$ref: '#/components/responses/unexpected_error'
requestBody:
content:
application/vnd.cycloid.io.v1+json:
schema:
$ref: '#/components/schemas/CreateOrUpdateSubscription'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/CreateOrUpdateSubscription'
description: The subscription information to create or update
required: true
summary: Create or update subscription
x-summary-source: derived
post:
description: Creates a subscription for the Organization
tags:
- Organization Subscriptions
operationId: createSubscription
responses:
'204':
description: Created Subscription
'404':
$ref: '#/components/responses/not_found_entity_in_path'
'411':
$ref: '#/components/responses/required_content_length_header'
'422':
$ref: '#/components/responses/unprocessable_entity'
default:
$ref: '#/components/responses/unexpected_error'
requestBody:
content:
application/vnd.cycloid.io.v1+json:
schema:
$ref: '#/components/schemas/NewSubscription'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/NewSubscription'
description: The information of the subscription to create
required: true
summary: Create subscription
x-summary-source: derived
delete:
description: Delete the subscription for the Organization
tags:
- Organization Subscriptions
operationId: deleteSubscription
responses:
'204':
description: Subscription deleted
'403':
$ref: '#/components/responses/not_enough_permissions'
'404':
$ref: '#/components/responses/not_found_entity_in_path'
default:
$ref: '#/components/responses/unexpected_error'
summary: Delete subscription
x-summary-source: derived
components:
responses:
not_found_entity_in_path:
description: The response sent when any of the entities present in the path is not found.
headers:
Content-Length:
description: The length of the response body in octets (8-bit bytes).
schema:
type: integer
format: uint64
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorPayload'
example:
errors:
- code: NotFoundEntity
message: Entity not found
required_content_length_header:
description: The request has a body but it doesn't have a Content-Length header.
not_enough_permissions:
description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation.
headers:
Content-Length:
description: The length of the response body in octets (8-bit bytes).
schema:
type: integer
format: uint64
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorPayload'
example:
errors:
- code: Unauthorized
message: Not enough permissions to perform the operation
unprocessable_entity:
description: All the custom errors that are generated from the Cycloid API
headers:
Content-Length:
description: The length of the response body in octets (8-bit bytes).
schema:
type: integer
format: uint64
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorPayload'
example:
errors:
- code: SomeCode
message: some error
unexpected_error:
description: The response sent when an unexpected error happened, as known as an internal server error.
headers:
Content-Length:
description: The length of the response body in octets (8-bit bytes).
schema:
type: integer
format: uint64
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorPayload'
example:
errors:
- code: Unexpected
message: Server Internal error
schemas:
NewSubscription:
description: It reflects the creation of a Subscription
type: object
title: New Subscription
required:
- plan_canonical
properties:
plan_canonical:
type: string
maxLength: 100
minLength: 2
pattern: ^[a-z0-9]([a-z0-9\-_]*[a-z0-9])?$
ErrorPayload:
description: 'The payload used by the server to response to the client with an Error, those errors could be any of the ones listed [here](https://github.com/cycloidio/youdeploy-http-api/blob/develop/errors/code.go#L10), only the CODE of the error is the one that is guaranteed to not change between the same major version, the MESSAGE could change.
'
title: Error Payload
required:
- errors
properties:
errors:
type: array
items:
$ref: '#/components/schemas/ErrorDetailsItem'
request_id:
type: string
Subscription:
description: 'It reflects the relation between an Organization and a Plan which
could be the Free Trial or others, for more info check https://www.cycloid.io/pricing
'
type: object
title: Subscription
required:
- expires_at
- plan
properties:
current_members:
type: integer
format: uint64
expires_at:
type: integer
format: uint64
members_count:
type: integer
format: uint64
plan:
$ref: '#/components/schemas/SubscriptionPlan'
ErrorDetailsItem:
description: Represents an item of the list of details of an error.
title: Error details item
required:
- message
- code
properties:
code:
type: string
details:
type: array
items:
type: string
message:
type: string
SubscriptionPlan:
description: It reflects the Plan used for the subscription
type: object
title: SubscriptionPlan
required:
- name
- canonical
properties:
canonical:
type: string
maxLength: 100
minLength: 2
pattern: ^[a-z0-9]([a-z0-9\-_]*[a-z0-9])?$
name:
type: string
minLength: 2
CreateOrUpdateSubscription:
description: Idempotent create or update of a Subscription
type: object
title: Create or Update Subscription
properties:
expires_at:
description: The expiration date of the subscription in RFC3339 format
type: string
format: date-time
members_count:
description: The maximum number of members allowed by the subscription
type: integer
format: uint64
minimum: 1
overwrite:
description: When true, allows overwriting an existing subscription. Required to update an existing subscription
type: boolean
plan_canonical:
description: The canonical of the plan. If not provided, defaults to platform_teams which requires root organization privileges
type: string
enum:
- free_trial
- platform_teams
parameters:
organization_canonical:
description: A canonical of an organization.
name: organization_canonical
in: path
required: true
schema:
type: string
maxLength: 100
minLength: 2
pattern: ^[a-z0-9]([a-z0-9\-_]*[a-z0-9])?$
securitySchemes:
api_key:
description: The API authorization is done with JWT tokens
type: apiKey
name: Authorization
in: header
api_key_query:
description: The API authorization is done with JWT tokens in the query string
type: apiKey
name: api_key
in: query