Cube Integrations API
The Integrations API from Cube — 7 operation(s) for integrations.
The Integrations API from Cube — 7 operation(s) for integrations.
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/cubesoftware-integrations-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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:
title: Cube Integrations API
version: 1.0.0 (1.0)
description: '#### General Description
An API to access underlying Cube functionality.'
termsOfService: https://www.cubesoftware.com/terms-of-service
servers:
- url: https://api.cubesoftware.com
description: Production API URL
tags:
- name: Integrations
paths:
/company/integrations:
get:
operationId: company_integrations_list
summary: List all company integrations
parameters:
- in: header
name: X-Company-ID
schema:
type: string
description: Associates request with company
required: true
tags:
- Integrations
security:
- OAuth2: []
- {}
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CompanyIntegration'
description: ''
post:
operationId: company_integrations_create
summary: Add a new integration to a company
parameters:
- in: header
name: X-Company-ID
schema:
type: string
description: Associates request with company
required: true
tags:
- Integrations
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CompanyIntegration'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/CompanyIntegration'
multipart/form-data:
schema:
$ref: '#/components/schemas/CompanyIntegration'
security:
- OAuth2: []
- {}
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/CompanyIntegration'
description: ''
/company/integrations/{id}:
get:
operationId: company_integrations_retrieve
summary: Retrieve a company integration by ID
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:
- Integrations
security:
- OAuth2: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/CompanyIntegration'
description: ''
patch:
operationId: company_integrations_partial_update
summary: Update a companies integration settings
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:
- Integrations
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PatchedCompanyIntegration'
examples:
UpdateDashboardPermissionGroupIDExample:
value:
settings:
metabase_permission_group_id: TheDashboardID
summary: Update Dashboard Permission Group ID Example
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PatchedCompanyIntegration'
multipart/form-data:
schema:
$ref: '#/components/schemas/PatchedCompanyIntegration'
security:
- OAuth2: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/CompanyIntegration'
description: ''
delete:
operationId: company_integrations_destroy
summary: Remove an integration from a company
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:
- Integrations
security:
- OAuth2: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/CompanyIntegration'
description: Deleted the requested object.
'401':
description: Not authorized
/integrations:
get:
operationId: integrations_list
summary: List all integrations
parameters:
- in: header
name: X-Company-ID
schema:
type: string
description: Associates request with company
required: true
tags:
- Integrations
security:
- OAuth2: []
- {}
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Integration'
description: ''
/integrations/{id}:
get:
operationId: integrations_retrieve
summary: Retrieve an integration by ID
parameters:
- in: header
name: X-Company-ID
schema:
type: string
description: Associates request with company
required: true
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this integration.
required: true
tags:
- Integrations
security:
- OAuth2: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Integration'
description: ''
/integrations/merge/link-complete:
post:
operationId: integrations_merge_link_complete_create
description: 'Shared setup for Merge Link endpoints: permission check, integration validation.'
tags:
- Integrations
security:
- OAuth2: []
- {}
responses:
'200':
description: No response body
summary: Integrations merge link complete create
x-summary-source: derived
/integrations/merge/link-token:
post:
operationId: integrations_merge_link_token_create
description: 'Shared setup for Merge Link endpoints: permission check, integration validation.'
tags:
- Integrations
security:
- OAuth2: []
- {}
responses:
'200':
description: No response body
summary: Integrations merge link token create
x-summary-source: derived
/integrations/merge/webhook:
post:
operationId: integrations_merge_webhook_create
description: 'Handle an inbound Merge webhook POST.
Validates the payload, deduplicates by signature, resolves the
connection, checks sync-status safety from the webhook payload, and
dispatches a transaction refresh task when all preconditions pass.
Args:
request: DRF request with HMAC-verified request.auth signature.
Returns:
JsonResponse with status indicating the outcome: duplicate,
ignored, skipped, or accepted (HTTP 202).'
tags:
- Integrations
security:
- {}
responses:
'200':
description: No response body
summary: Integrations merge webhook create
x-summary-source: derived
components:
schemas:
CategoryEnum:
enum:
- BI
- GL
- HRIS
- SSO
- CRM
- OTHER
- UAP
type: string
description: '* `BI` - Business Intelligence
* `GL` - General Ledger
* `HRIS` - Human Resource Information Service
* `SSO` - Single Sign On
* `CRM` - Customer Relationship Management
* `OTHER` - Other
* `UAP` - Unified API Platform'
PatchedCompanyIntegration:
type: object
description: 'A serializer mixin that allows dynamic inclusion or exclusion of serializer fields by
passing `fields=[...]` or `exclude_fields=[...]` when initializing.'
properties:
id:
type: string
format: uuid
readOnly: true
integration:
allOf:
- $ref: '#/components/schemas/Integration'
readOnly: true
company:
allOf:
- $ref: '#/components/schemas/Company'
readOnly: true
integration_id:
type: integer
writeOnly: true
company_id:
type: string
format: uuid
writeOnly: true
settings: {}
IntegrationSourceEnum:
enum:
- METABASE
- QUICKBOOKS
- XERO
- NETSUITE
- SALESFORCE
- SAGE_INTACCT
- RILLET
- CAMPFIRE
- CHARTHOP
- GOOGLE
- OKTA
- BOOMI
- SAML
- OPEN_EXCHANGE_RATES
- NETSUITE_RATES
- MERGE
type: string
description: '* `METABASE` - Metabase
* `QUICKBOOKS` - QuickBooks
* `XERO` - Xero
* `NETSUITE` - NetSuite
* `SALESFORCE` - Salesforce
* `SAGE_INTACCT` - Sage Intacct
* `RILLET` - Rillet
* `CAMPFIRE` - Campfire
* `CHARTHOP` - ChartHop
* `GOOGLE` - Google SSO
* `OKTA` - Okta (OIDC)
* `BOOMI` - Boomi
* `SAML` - SAML
* `OPEN_EXCHANGE_RATES` - Open Exchange Rates
* `NETSUITE_RATES` - NetSuite Saved Search
* `MERGE` - Cube Universal Connect'
Company:
type: object
description: 'A serializer mixin that allows dynamic inclusion or exclusion of serializer fields by
passing `fields=[...]` or `exclude_fields=[...]` when initializing.'
properties:
id:
type: string
format: uuid
readOnly: true
name:
type: string
maxLength: 255
slug:
type:
- string
- 'null'
readOnly: true
salesforce_id:
type:
- string
- 'null'
maxLength: 32
time_type:
$ref: '#/components/schemas/TimeTypeEnum'
created_at:
type: string
format: date-time
readOnly: true
required:
- created_at
- id
- name
- slug
Integration:
type: object
properties:
id:
type: integer
readOnly: true
source:
$ref: '#/components/schemas/IntegrationSourceEnum'
category:
$ref: '#/components/schemas/CategoryEnum'
name:
type: string
maxLength: 100
logo_url:
type:
- string
- 'null'
readOnly: true
required:
- category
- id
- logo_url
- name
- source
CompanyIntegration:
type: object
description: 'A serializer mixin that allows dynamic inclusion or exclusion of serializer fields by
passing `fields=[...]` or `exclude_fields=[...]` when initializing.'
properties:
id:
type: string
format: uuid
readOnly: true
integration:
allOf:
- $ref: '#/components/schemas/Integration'
readOnly: true
company:
allOf:
- $ref: '#/components/schemas/Company'
readOnly: true
integration_id:
type: integer
writeOnly: true
company_id:
type: string
format: uuid
writeOnly: true
settings: {}
required:
- company
- id
- integration
TimeTypeEnum:
enum:
- STANDARD
- HALF_YEAR
- CUSTOM
type: string
description: '* `STANDARD` - Standard
* `HALF_YEAR` - Half Year
* `CUSTOM` - Custom'
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