Cycloid Organization API keys API
The Organization API keys API from Cycloid — 2 operation(s) for organization api keys.
The Organization API keys API from Cycloid — 2 operation(s) for organization api keys.
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-api-keys-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 API keys 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:
- name: Organization API keys
paths:
/organizations/{organization_canonical}/api_keys:
parameters:
- $ref: '#/components/parameters/organization_canonical'
get:
description: Get list of API keys of the organization.
tags:
- Organization API keys
operationId: getAPIKeys
parameters:
- $ref: '#/components/parameters/page_index'
- $ref: '#/components/parameters/page_size'
- $ref: '#/components/parameters/owner_query'
responses:
'200':
description: List of the API keys which the organization has.
content:
application/json:
schema:
type: object
required:
- data
- pagination
properties:
data:
type: array
items:
$ref: '#/components/schemas/APIKey'
pagination:
$ref: '#/components/schemas/Pagination'
example:
data:
- canonical: ak-1
description: this is ak-1
id: 5
name: AK 1
owner:
created_at: 1503225026
email: mariana.jimenezo@fakeemail.com
full_name: Mariana Jimenezo
id: 10
picture_url: https://avatars2.githubusercontent.com/u/14579210
role:
canonical: role-can
description: this is the standard role
id: 42
name: standard role
rules:
- action: organization:delete
effect: allow
id: 1
resources:
- organization:org-can
- organization:org-can2
- action: organization:team:create
effect: allow
id: 20
resources: null
- action: organization:team:read
effect: allow
id: 21
resources:
- organization:org-can:team:team-can
username: user-2
role:
description: Role for API key
id: 5
name: Organization API key
policies: null
token: jwt...
- canonical: ak-2
description: this is ak-2
id: 5
name: AK 2
owner:
created_at: 1503225001
email: jorge.hombre@test.com
full_name: Jorge Hombre
id: 2
picture_url: https://avatars2.githubusercontent.com/u/14579203
role:
canonical: role-can
description: this is the standard role
id: 42
name: standard role
rules:
- action: organization:delete
effect: allow
id: 1
resources:
- organization:org-can
- organization:org-can2
- action: organization:team:create
effect: allow
id: 20
resources: null
- action: organization:team:read
effect: allow
id: 21
resources:
- organization:org-can:team:team-can
username: user-3
role:
description: Role for API key
id: 5
name: Organization API key
policies: null
token: jwt...
'403':
$ref: '#/components/responses/not_enough_permissions'
'404':
$ref: '#/components/responses/not_found_entity_in_path'
'422':
$ref: '#/components/responses/unprocessable_entity'
default:
$ref: '#/components/responses/unexpected_error'
summary: Get API keys
x-summary-source: derived
post:
description: Create a new API key in the organization.
tags:
- Organization API keys
operationId: createAPIKey
responses:
'200':
description: API key created. The body contains the information of the new API key of the organization.
content:
application/json:
schema:
type: object
required:
- data
properties:
data:
$ref: '#/components/schemas/APIKey'
example:
data:
canonical: ak-1
description: this is ak-1
id: 5
name: AK 1
owner:
created_at: 1503225026
email: mariana.jimenezo@fakeemail.com
full_name: Mariana Jimenezo
id: 10
picture_url: https://avatars2.githubusercontent.com/u/14579210
role:
canonical: role-can
description: this is the standard role
id: 42
name: standard role
rules:
- action: organization:delete
effect: allow
id: 1
resources:
- organization:org-can
- organization:org-can2
- action: organization:team:create
effect: allow
id: 20
resources: null
- action: organization:team:read
effect: allow
id: 21
resources:
- organization:org-can:team:team-can
username: user-2
role:
description: Role for API key
id: 5
name: Organization API key
policies: null
token: jwt...
'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/NewAPIKey'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/NewAPIKey'
description: The information of the API key to create.
required: true
summary: Create API key
x-summary-source: derived
/organizations/{organization_canonical}/api_keys/{api_key_canonical}:
parameters:
- $ref: '#/components/parameters/organization_canonical'
- $ref: '#/components/parameters/api_key_canonical'
get:
description: Get an API key of the organization.
tags:
- Organization API keys
operationId: getAPIKey
responses:
'200':
description: The information of the API key of the organization which has the specified canonical.
content:
application/json:
schema:
type: object
required:
- data
properties:
data:
$ref: '#/components/schemas/APIKey'
example:
data:
canonical: ak-1
description: this is ak-1
id: 5
name: AK 1
owner:
created_at: 1503225026
email: mariana.jimenezo@fakeemail.com
full_name: Mariana Jimenezo
id: 10
picture_url: https://avatars2.githubusercontent.com/u/14579210
role:
canonical: role-can
description: this is the standard role
id: 42
name: standard role
rules:
- action: organization:delete
effect: allow
id: 1
resources:
- organization:org-can
- organization:org-can2
- action: organization:team:create
effect: allow
id: 20
resources: null
- action: organization:team:read
effect: allow
id: 21
resources:
- organization:org-can:team:team-can
username: user-2
rules:
- action: organization:delete
effect: allow
id: 1
resources:
- organization:org-can
- organization:org-can2
- action: organization:team:create
effect: allow
id: 20
resources: null
- action: organization:team:read
effect: allow
id: 21
resources:
- organization:org-can:team:team-can
token: jwt...
'403':
$ref: '#/components/responses/not_enough_permissions'
'404':
$ref: '#/components/responses/not_found_entity_in_path'
default:
$ref: '#/components/responses/unexpected_error'
summary: Get API key
x-summary-source: derived
put:
description: Update the information of an API key of the organization. If the API key has some information on the fields which aren't required and they are not sent or set to their default values, which depend of their types, the information will be removed.
tags:
- Organization API keys
operationId: updateAPIkey
responses:
'200':
description: API ey updated. The body contains information of the updated API key.
content:
application/json:
schema:
type: object
required:
- data
properties:
data:
$ref: '#/components/schemas/APIKey'
example:
data:
canonical: ak-1
description: this is ak-1
id: 5
name: AK 1
owner:
created_at: 1503225026
email: mariana.jimenezo@fakeemail.com
full_name: Mariana Jimenezo
id: 10
picture_url: https://avatars2.githubusercontent.com/u/14579210
role:
canonical: role-can
description: this is the standard role
id: 42
name: standard role
rules:
- action: organization:delete
effect: allow
id: 1
resources:
- organization:org-can
- organization:org-can2
- action: organization:team:create
effect: allow
id: 20
resources: null
- action: organization:team:read
effect: allow
id: 21
resources:
- organization:org-can:team:team-can
username: user-2
rules:
- action: organization:delete
effect: allow
id: 1
resources:
- organization:org-can
- organization:org-can2
- action: organization:team:create
effect: allow
id: 20
resources: null
- action: organization:team:read
effect: allow
id: 21
resources:
- organization:org-can:team:team-can
token: jwt...
'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/UpdateAPIKey'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/UpdateAPIKey'
description: The information of the API key to update.
required: true
summary: Update AP ikey
x-summary-source: derived
delete:
description: Delete an API key of the organization.
tags:
- Organization API keys
operationId: deleteAPIKey
responses:
'204':
description: API key has been 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 API key
x-summary-source: derived
components:
parameters:
page_index:
description: The page number to request. The first page is 1.
name: page_index
in: query
schema:
type: integer
format: uint32
default: 1
api_key_canonical:
description: A canonical of an API key.
name: api_key_canonical
in: path
required: true
schema:
type: string
maxLength: 100
minLength: 2
pattern: ^[a-z0-9]([a-z0-9\-_]*[a-z0-9])?$
page_size:
description: The number of items at most which the response can have.
name: page_size
in: query
schema:
type: integer
format: uint32
default: 100
owner_query:
description: Search by entity's owner
name: member_id
in: query
schema:
type: integer
format: uint32
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])?$
schemas:
APIKey:
description: The entity which represents the information of an API key. The "token" field is only filled once, upon creation. It can only be used on an organization scope, for example user endpoints will not support it.
type: object
title: API key
required:
- id
- canonical
- name
- rules
- last_seven
properties:
canonical:
type: string
maxLength: 100
minLength: 2
pattern: ^[a-z0-9]([a-z0-9\-_]*[a-z0-9])?$
description:
type: string
id:
type: integer
format: uint32
minimum: 1
last_seven:
description: The last seven characters of API key. Allows user to differentiate between keys.
type: string
last_used:
description: This field contains the date of the last usage of the API key
type: integer
format: uint64
name:
type: string
minLength: 2
owner:
description: 'Organization member that owns this API key. When a user is the owner of an
API key he has all the permissions on it.
In the event where the user has been deleted that field might be empty.
'
$ref: '#/components/schemas/User'
rules:
type: array
items:
$ref: '#/components/schemas/Rule'
token:
description: The actual API key in the format of JWT token, returned only upon creation.
type: string
UpdateAPIKey:
description: 'The entity which represents the information of the API key to be updated.
The API key rules are immutable and cannot be changed.
'
type: object
title: Update API key
required:
- name
properties:
description:
type: string
name:
type: string
minLength: 2
owner:
description: 'User canonical that owns this API key. Only the owner or an
organization admin can update such a field. When a user is the owner
of a API key it has all the permission on it.
'
type: string
User:
description: A summary of a user to be used in places where only the basic information are need or are enough.
type: object
title: Basic info of a user
required:
- id
- username
- full_name
- email
- locale
- created_at
- mfa_enabled
properties:
country_code:
description: Code of a country the user is from in alpha-2 format
type: string
pattern: ^[A-Z]{2}$
created_at:
description: When the user became a member.
type: integer
format: uint64
email:
description: User's primary email.
type: string
format: email
full_name:
type: string
id:
type: integer
format: uint32
minimum: 1
last_login_at:
description: When the user logged in last time.
type: integer
format: uint64
locale:
description: The local that the user prefer.
type: string
pattern: ^[a-z]{2}(?:-[a-z][a-z])?$
mfa_enabled:
type: boolean
picture_url:
type: string
format: uri
updated_at:
description: When the user had the role modified.
type: integer
format: uint64
username:
type: string
maxLength: 30
minLength: 2
pattern: ^[a-z0-9]([a-z0-9\-_]*[a-z0-9])?$
Rule:
description: Rules define the specific access to the platform
title: Rule
required:
- id
- effect
- action
properties:
action:
description: It can be the normal Policy.Code or contain globs like `*` or `**`
type: string
effect:
type: string
enum:
- allow
id:
description: This is the id of the row from the database, but for blocking organizations we generate rules that are not in the database. When this happens the id is allowed to be 0.
type: integer
format: uint32
resources:
description: It is the list of resources in which this Rule applies to, the format of it is the one on the Policy.Code but with the `canonical` of the entities like `organization:org-can:team:team-can` for an action of `organization:team:read`
type: array
items:
type: string
Pagination:
type: object
title: Pagination
required:
- total
- index
- size
properties:
index:
description: The index of the page sent (the first page is 1).
type: integer
format: uint64
minimum: 1
size:
description: The size of the page (the number of entities per page)
type: integer
format: uint64
total:
description: The total number of items.
type: integer
format: uint64
NewAPIKey:
description: The entity which represents the information of a new API key.
type: object
title: Create API key
required:
- name
- rules
properties:
canonical:
type: string
maxLength: 100
minLength: 2
pattern: ^[a-z0-9]([a-z0-9\-_]*[a-z0-9])?$
description:
type: string
name:
type: string
minLength: 2
owner:
description: 'User canonical that owns this API key. If omitted then the person creating this
credential will be assigned as owner. When a user is the owner of an API key he has
all the permissions on it.
'
type: string
rules:
type: array
items:
$ref: '#/components/schemas/NewRule'
NewRule:
description: NewRule represents an existing or new permission or constraint to access to an entity of the system. A Rule is aggregated into roles in order to be applied.
title: NewRule
required:
- action
- effect
properties:
action:
description: It can be the normal Policy.Code or contain globs like `*` or `**`
type: string
effect:
type: string
enum:
- allow
resources:
description: It is the list of resources in which this Rule applies to, the format of it is the one on the Policy.Code but with the `canonical` of the entities like `organization:org-can:team:team-can` for an action of `organization:team:read`
type: array
items:
type: string
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
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
responses:
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
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.
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
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