cubic Organizations API

The Organizations API from cubic — 3 operation(s) for organizations.

GitHub OpenAPI

Operations 4

GET /api/v1/organizations List the organizations you can view #
GET /api/v1/organizations/{org}/members List members #
GET /api/v1/organizations/{org}/members/{githubUserId} Get a member #
PATCH /api/v1/organizations/{org}/members/{githubUserId} Turn a seat on or off, or change a role #

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/cubic-dev:cubic-dev-organizations-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

cubic-dev-organizations-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: cubic Organizations API
  version: 1.0.0
servers:
- url: https://www.cubic.dev
security:
- apiKey: []
tags:
- name: Organizations
paths:
  /api/v1/organizations:
    get:
      operationId: listOrganizations
      summary: List the organizations you can view
      description: An organization API key lists only its own organization.
      parameters:
      - name: cursor
        in: query
        required: false
        description: The nextCursor from the previous page.
        schema:
          type: string
          maxLength: 255
      - name: limit
        in: query
        required: false
        schema:
          default: 20
          type: integer
          minimum: 1
          maximum: 100
      responses:
        '200':
          description: OK
          headers:
            X-RateLimit-Limit:
              description: Requests allowed per 15-minute window.
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: Requests left in the current window.
              schema:
                type: integer
            X-RateLimit-Reset:
              description: When the window resets, in Unix epoch seconds.
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationList'
        '400':
          description: The request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: The API key is missing or invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: The rate limit is exhausted. Retry after the Retry-After header.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Unexpected error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: Temporarily unavailable. Retry shortly.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - Organizations
  /api/v1/organizations/{org}/members:
    get:
      operationId: listMembers
      summary: List members
      parameters:
      - name: org
        in: path
        required: true
        description: GitHub organization login, such as acme.
        schema:
          type: string
          minLength: 1
          maxLength: 255
      - name: search
        in: query
        required: false
        description: Match part of a GitHub login.
        schema:
          type: string
          maxLength: 255
      - name: role
        in: query
        required: false
        schema:
          type: string
          enum:
          - member
          - admin
          - viewer
      - name: seat
        in: query
        required: false
        description: true for members with a seat, false for members without one.
        schema:
          type: string
          enum:
          - 'true'
          - 'false'
      - name: cursor
        in: query
        required: false
        description: The nextCursor from the previous page.
        schema:
          type: string
          maxLength: 255
      - name: limit
        in: query
        required: false
        schema:
          default: 20
          type: integer
          minimum: 1
          maximum: 100
      responses:
        '200':
          description: OK
          headers:
            X-RateLimit-Limit:
              description: Requests allowed per 15-minute window.
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: Requests left in the current window.
              schema:
                type: integer
            X-RateLimit-Reset:
              description: When the window resets, in Unix epoch seconds.
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MemberList'
        '400':
          description: The request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: The API key is missing or invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Your cubic access does not allow this.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: The organization or member was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: The rate limit is exhausted. Retry after the Retry-After header.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Unexpected error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: Temporarily unavailable. Retry shortly.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - Organizations
  /api/v1/organizations/{org}/members/{githubUserId}:
    get:
      operationId: getMember
      summary: Get a member
      parameters:
      - name: org
        in: path
        required: true
        description: GitHub organization login, such as acme.
        schema:
          type: string
          minLength: 1
          maxLength: 255
      - name: githubUserId
        in: path
        required: true
        description: Numeric GitHub user ID of the member.
        schema:
          type: string
          pattern: ^\d{1,20}$
      responses:
        '200':
          description: OK
          headers:
            X-RateLimit-Limit:
              description: Requests allowed per 15-minute window.
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: Requests left in the current window.
              schema:
                type: integer
            X-RateLimit-Reset:
              description: When the window resets, in Unix epoch seconds.
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationMember'
        '400':
          description: The request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: The API key is missing or invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Your cubic access does not allow this.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: The organization or member was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: The rate limit is exhausted. Retry after the Retry-After header.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Unexpected error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: Temporarily unavailable. Retry shortly.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - Organizations
    patch:
      operationId: updateMember
      summary: Turn a seat on or off, or change a role
      description: Needs an organization admin or an organization API key with Admin access, and an active paid subscription. It never buys seats. Turning a seat off does not remove access to cubic. To remove someone, remove them from the GitHub organization.
      parameters:
      - name: org
        in: path
        required: true
        description: GitHub organization login, such as acme.
        schema:
          type: string
          minLength: 1
          maxLength: 255
      - name: githubUserId
        in: path
        required: true
        description: Numeric GitHub user ID of the member.
        schema:
          type: string
          pattern: ^\d{1,20}$
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MemberUpdate'
      responses:
        '200':
          description: OK
          headers:
            X-RateLimit-Limit:
              description: Requests allowed per 15-minute window.
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: Requests left in the current window.
              schema:
                type: integer
            X-RateLimit-Reset:
              description: When the window resets, in Unix epoch seconds.
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MemberUpdateResult'
        '400':
          description: The request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: The API key is missing or invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Your cubic access does not allow this.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: The organization or member was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: The change conflicts with the current member, seat, or billing state.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: This change is not allowed for this member.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: The rate limit is exhausted. Retry after the Retry-After header.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Unexpected error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: Temporarily unavailable. Retry shortly.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - Organizations
components:
  schemas:
    OrganizationMember:
      type: object
      properties:
        githubUserId:
          type: string
        githubLogin:
          anyOf:
          - type: string
          - type: 'null'
        workEmail:
          anyOf:
          - type: string
          - type: 'null'
        role:
          type: string
          enum:
          - member
          - admin
          - viewer
        seat:
          type: boolean
        isBot:
          type: boolean
      required:
      - githubUserId
      - githubLogin
      - workEmail
      - role
      - seat
      - isBot
      additionalProperties: false
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              description: Stable error code. Branch on this, not on the message.
            message:
              type: string
            retriable:
              type: boolean
              description: Whether the same request can succeed if you send it again.
            correlationId:
              description: Quote this ID when you contact support.
              type: string
            details:
              type: array
              items:
                type: object
                properties:
                  path:
                    type: string
                  message:
                    type: string
                required:
                - path
                - message
                additionalProperties: false
          required:
          - code
          - message
          - retriable
          additionalProperties: false
      required:
      - error
      additionalProperties: false
    OrganizationList:
      type: object
      properties:
        organizations:
          type: array
          items:
            type: object
            properties:
              organization:
                type: string
              githubAccountId:
                type: string
              canViewBilling:
                type: boolean
              canManageSeats:
                type: boolean
              canManageRoles:
                type: boolean
              canUpdateSubscription:
                type: boolean
              canUpdateFlexCapacity:
                type: boolean
            required:
            - organization
            - githubAccountId
            - canViewBilling
            - canManageSeats
            - canManageRoles
            - canUpdateSubscription
            - canUpdateFlexCapacity
            additionalProperties: false
        nextCursor:
          anyOf:
          - type: string
          - type: 'null'
      required:
      - organizations
      - nextCursor
      additionalProperties: false
    MemberUpdateResult:
      type: object
      properties:
        githubUserId:
          type: string
        before:
          type: object
          properties:
            seat:
              type: boolean
            role:
              type: string
              enum:
              - member
              - admin
              - viewer
          required:
          - seat
          - role
          additionalProperties: false
        after:
          type: object
          properties:
            seat:
              type: boolean
            role:
              type: string
              enum:
              - member
              - admin
              - viewer
          required:
          - seat
          - role
          additionalProperties: false
        changed:
          type: boolean
        availableSeats:
          type: number
        purchasedQuantityChanged:
          type: boolean
          const: false
      required:
      - githubUserId
      - before
      - after
      - changed
      - availableSeats
      - purchasedQuantityChanged
      additionalProperties: false
    MemberUpdate:
      type: object
      properties:
        seat:
          description: Desired seat state. Send with expectedSeat.
          type: boolean
        role:
          description: Desired role. Send with expectedRole.
          type: string
          enum:
          - member
          - admin
          - viewer
        expectedSeat:
          description: Current seat state from your latest read; send only with seat.
          type: boolean
        expectedRole:
          description: Current role from your latest read; send only with role.
          type: string
          enum:
          - member
          - admin
          - viewer
      additionalProperties: false
    MemberList:
      type: object
      properties:
        members:
          type: array
          items:
            type: object
            properties:
              githubUserId:
                type: string
              githubLogin:
                anyOf:
                - type: string
                - type: 'null'
              workEmail:
                anyOf:
                - type: string
                - type: 'null'
              role:
                type: string
                enum:
                - member
                - admin
                - viewer
              seat:
                type: boolean
              isBot:
                type: boolean
            required:
            - githubUserId
            - githubLogin
            - workEmail
            - role
            - seat
            - isBot
            additionalProperties: false
        nextCursor:
          anyOf:
          - type: string
          - type: 'null'
      required:
      - members
      - nextCursor
      additionalProperties: false
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
      description: A personal API key (cbk_) or an organization API key (cok_) from Settings > API, CLI & MCP. An organization key with Read access can only call the GET operations.
externalDocs:
  url: https://docs.cubic.dev/account/members-api