Cube Planning Authentication API

The Cube API supports user authentication via OAuth2 using the OAuth2 Authorization Code Flow. To authenticate via OAuth2, an application must first be registered.

OpenAPI Specification

cube-planning-authentication-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Cube Agents Authentication API
  version: 1.0.0 (1.0)
  description: "#### General Description\nAn API to access underlying Cube functionality. These endpoints are the same endpoints\nthat support Cube's universal add-ons and a plethora of integrations meaning you'll be able to interact with your\nCube data in many powerful ways. Visit the API section of Cube's [Help Center](https://help.cubesoftware.com/hc/en-us/sections/18205290556180-Custom-Integrations)\nfor more usage guides on how you can use this API to integrate with Cube to accomplish various tasks!\n\n#### Versioning\nAll requests to the API require a version to be configured via an `Accept` Header. The value of this Header should look like this:\n```\nAccept: application/json; version=1.0\n```\nNote that the version number may differ depending on which version of the endpoint is needed.\n\n#### Response Structure\nThe general response structure of Cube's API endpoints will contain a `\"data\"` and `\"metadata\"` root level key:\n```json\n{\n    \"data\": { ... object data or list of objects ... },\n    \"metadata\": {\n        \"status\": 200,\n        \"message\": \"Potential message with additional context\",\n        \"error\": false,\n        \"code\": \"\"\n    }\n}\n```\n\n#### Rate Limiting\nAll endpoints have a rate limit configured, most of them default to 5/s.\nWhen the rate limit is encountered, a 429 HTTP code will be returned.\n\n#### Error Handling\nIn the event an error occurs, the response will typically look like this:\n```json\n{\n    \"data\": {},\n    \"metadata\": {\n        \"status\": 400,\n        \"message\": \"Some error message\",\n        \"error\": true,\n        \"code\": \"SOME_ERROR_CODE\"\n    }\n}\n```\n"
  termsOfService: https://www.cubesoftware.com/terms-of-service
servers:
- url: https://api.cubesoftware.com
  description: Cube API Production URL
tags:
- name: Authentication
  description: "The Cube API supports user authentication via OAuth2 using the OAuth2 Authorization Code Flow.\n            To authenticate via OAuth2, an application must first be registered.\n        "
paths:
  /auth/access_token:
    post:
      operationId: auth_access_token_create
      description: Do not use this endpoint, use the standard OAuth 2.0 PKCE flow instead
      summary: Get an Access Token
      tags:
      - Authentication
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthTokenView'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/AuthTokenView'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/AuthTokenView'
        required: true
      security:
      - {}
      deprecated: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthTokenView'
          description: ''
  /auth/permissions/{group_id}:
    get:
      operationId: auth_permissions_retrieve
      description: Retrieves details for a given permissions group
      summary: Retrieve a Permission Group
      parameters:
      - in: header
        name: X-Company-ID
        schema:
          type: string
        description: Associates request with company
        required: true
      - in: path
        name: group_id
        schema:
          type: integer
        description: The ID of the permissions group
        required: true
      tags:
      - Authentication
      security:
      - OAuth2: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthGroupPermissions'
          description: ''
components:
  schemas:
    AuthGroupPermissions:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 150
      required:
      - id
      - name
    AuthTokenView:
      type: object
      properties:
        email:
          type: string
        password:
          type: string
      required:
      - email
      - password
  securitySchemes:
    OAuth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://portal.cubesoftware.com/o/authorize/
          tokenUrl: https://api.cubesoftware.com/o/token/
          scopes: {}
      description: Standard Cube OAuth 2.0 flow