Cube Invitations API

The Invitations API from Cube — 3 operation(s) for invitations.

OpenAPI Specification

cubesoftware-invitations-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Cube Agents Invitations 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: Production API URL
tags:
- name: Invitations
paths:
  /company/invitations:
    get:
      operationId: company_invitations_list
      description: Load all invitations for a company
      summary: List invitations
      parameters:
      - in: header
        name: X-Company-ID
        schema:
          type: string
        description: Associates request with company
        required: true
      tags:
      - Invitations
      security:
      - OAuth2: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserInvitation'
          description: ''
    post:
      operationId: company_invitations_create
      description: Invite someone to the company
      summary: Create a new invitation
      parameters:
      - in: header
        name: X-Company-ID
        schema:
          type: string
        description: Associates request with company
        required: true
      tags:
      - Invitations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserInvitation'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UserInvitation'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UserInvitation'
        required: true
      security:
      - OAuth2: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserInvitation'
          description: ''
  /company/invitations/{id}:
    get:
      operationId: company_invitations_retrieve
      description: Retrieves an invitation
      summary: Retrieve an invitation
      parameters:
      - in: header
        name: X-Company-ID
        schema:
          type: string
        description: Associates request with company
        required: true
      - in: path
        name: id
        schema:
          type: string
        required: true
      tags:
      - Invitations
      security:
      - OAuth2: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserInvitation'
          description: ''
    put:
      operationId: company_invitations_update
      description: Update an invitation by sending all editable field data.
      summary: Update an invitation
      parameters:
      - in: header
        name: X-Company-ID
        schema:
          type: string
        description: Associates request with company
        required: true
      - in: path
        name: id
        schema:
          type: string
        required: true
      tags:
      - Invitations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserInvitationUpdateOpenApiDocAttributes_1'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UserInvitationUpdateOpenApiDocAttributes_1'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UserInvitationUpdateOpenApiDocAttributes_1'
        required: true
      security:
      - OAuth2: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserInvitation'
          description: ''
    patch:
      operationId: company_invitations_partial_update
      description: Update one or more editable fields for an invitation.
      summary: Partially update an invitation
      parameters:
      - in: header
        name: X-Company-ID
        schema:
          type: string
        description: Associates request with company
        required: true
      - in: path
        name: id
        schema:
          type: string
        required: true
      tags:
      - Invitations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedUserInvitationUpdateOpenApiDocAttributes_1'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedUserInvitationUpdateOpenApiDocAttributes_1'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedUserInvitationUpdateOpenApiDocAttributes_1'
      security:
      - OAuth2: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserInvitation'
          description: ''
    delete:
      operationId: company_invitations_destroy
      description: Prevents a user from accepting the invitation.
      summary: Deletes a invitation completely
      parameters:
      - in: header
        name: X-Company-ID
        schema:
          type: string
        description: Associates request with company
        required: true
      - in: path
        name: id
        schema:
          type: string
        required: true
      tags:
      - Invitations
      security:
      - OAuth2: []
      responses:
        '204':
          description: No response body
  /company/invitations/{id}/resend:
    put:
      operationId: company_invitations_resend_update
      description: Resends the email to the user. If the invitation has expired this will re-generate the invitation to reset the expiration date.
      summary: Resend an invitation
      parameters:
      - in: header
        name: X-Company-ID
        schema:
          type: string
        description: Associates request with company
        required: true
      - in: path
        name: id
        schema:
          type: string
        required: true
      tags:
      - Invitations
      security:
      - OAuth2: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserInvitation'
          description: ''
components:
  schemas:
    PatchedUserInvitationUpdateOpenApiDocAttributes_1:
      type: object
      properties:
        company_groups:
          type: array
          items:
            type: integer
        metadata: {}
        permission_group:
          type: integer
        can_publish_data:
          type: boolean
        accepted_at:
          type: string
          format: date-time
          nullable: true
    UserInvitation:
      type: object
      description: 'This mixin is used to supplement the serializer with additional fields that are not provided in the request data

        for use in updating either the model being worked with OR any through tables that are used to join the model with

        a related model when the through table holds useful information.'
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        email:
          type: string
          format: email
          maxLength: 254
        company:
          type: string
          format: uuid
        permission_group:
          type: integer
        can_publish_data:
          type: boolean
        accepted_at:
          type: string
          format: date-time
          nullable: true
        created_by:
          type: integer
        created_at:
          type: string
          format: date-time
          readOnly: true
        last_sent:
          type: string
          format: date-time
          readOnly: true
        company_groups:
          type: array
          items:
            type: integer
        metadata: {}
        expired:
          type: boolean
          readOnly: true
      required:
      - company
      - company_groups
      - created_at
      - created_by
      - email
      - expired
      - id
      - last_sent
      - permission_group
    UserInvitationUpdateOpenApiDocAttributes_1:
      type: object
      properties:
        company_groups:
          type: array
          items:
            type: integer
        metadata: {}
        permission_group:
          type: integer
        can_publish_data:
          type: boolean
        accepted_at:
          type: string
          format: date-time
          nullable: true
      required:
      - company_groups
      - permission_group
  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