Cycloid Organization API keys API

The Organization API keys API from Cycloid — 2 operation(s) for organization api keys.

Operations 5

GET /organizations/{organization_canonical}/api_keys Get API keys #
POST /organizations/{organization_canonical}/api_keys Create API key #
GET /organizations/{organization_canonical}/api_keys/{api_key_canonical} Get API key #
PUT /organizations/{organization_canonical}/api_keys/{api_key_canonical} Update AP ikey #
DELETE /organizations/{organization_canonical}/api_keys/{api_key_canonical} Delete API key #

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/cycloid:cycloid-organization-api-keys-api"
All apis
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.

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

cycloid-organization-api-keys-api-openapi.yml Raw ↑
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