Spendesk Companies API

The companies (legal entities) of an organisation. Requires an organisation-level token (experimental). Part of: [Organisation-level access](/reference/organisation-level-access).

Operations 1

GET /v2/companies Get Companies #

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/spendesk:spendesk-companies-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

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

spendesk-companies-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Spendesk Public Companies API
  description: Spendesk Public API
  version: '1.0'
  summary: Spendesk Public API
  contact:
    email: support-public-api@spendesk.com
    url: https://developer.spendesk.com/
    name: Spendesk for Developers
  termsOfService: https://www.spendesk.com/en/legals/terms/api-agreement
servers:
- url: https://public-api.spendesk.com
  description: Production
- url: https://public-api.demo.spendesk.com
  description: Sandbox
tags:
- name: Companies
  description: 'The companies (legal entities) of an organisation. Requires an organisation-level token (experimental). Part of: Organisation-level access.'
paths:
  /v2/companies:
    get:
      operationId: v2-get-companies
      summary: Get Companies
      tags:
      - Companies
      description: '**Allowed Scopes**: _`experimental:company:read`_


        Returns companies (legal entities) in the organisation. Only accessible with an organisation-level token. For OAuth2 (user-consented) tokens, returns only the active companies the authenticated user is a member of; for API-key tokens, returns all active companies in the organisation. Organisation company data is cached for up to 20 minutes. Changes, including those made through the API, can take up to 20 minutes to appear.'
      parameters:
      - schema:
          type: integer
          default: 1
          minimum: 1
        in: query
        name: page
        required: false
        description: Page number
      - schema:
          type: integer
          default: 30
          minimum: 1
          maximum: 30
        in: query
        name: pageSize
        required: false
        description: Page size
      security:
      - Authentication:
        - experimental:company:read
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                properties:
                  meta:
                    $ref: '#/components/schemas/meta'
                  data:
                    description: List of companies in the organisation.
                    type: array
                    items:
                      type: object
                      additionalProperties: false
                      properties:
                        id:
                          type: string
                          description: Company ID.
                        name:
                          type: string
                          description: Company name.
                        appUrl:
                          type: string
                          description: Link to this company's home page in the Spendesk web app.
                          example: https://app.spendesk.com/app/RRbRgeIB7X/home
                      required:
                      - id
                      - name
                      - appUrl
                required:
                - data
                - meta
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/badRequest'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/unauthorized'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/forbidden'
        '429':
          description: Too Many Requests
          headers:
            retry-after:
              schema:
                type: integer
              description: Seconds to wait before retrying the request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/tooManyRequests'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/internalServerError'
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/serviceUnavailableError'
components:
  schemas:
    pagination:
      type: object
      properties:
        page:
          type: integer
          default: 1
          minimum: 1
          description: Page number
        pageSize:
          type: integer
          default: 30
          minimum: 1
          maximum: 30
          description: Page size
        total:
          type: integer
          minimum: 0
          description: Total amount of records for this collection
      required:
      - page
      - pageSize
      - total
      title: pagination
    unauthorized:
      type: object
      description: Unauthorized
      additionalProperties: false
      properties:
        correlationId:
          type: string
        errors:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
                enum:
                - AUTHENTICATION_ERROR
              detail:
                type: string
            required:
            - code
            - detail
      required:
      - errors
      title: unauthorized
    forbidden:
      type: object
      description: Forbidden
      additionalProperties: false
      properties:
        correlationId:
          type: string
        errors:
          type: array
          items:
            type: object
            additionalProperties: false
            properties:
              code:
                type: string
                enum:
                - FORBIDDEN_ERROR
              detail:
                type: string
            required:
            - code
            - detail
      required:
      - errors
      title: forbidden
    serviceUnavailableError:
      type: object
      description: Service Unavailable
      additionalProperties: false
      properties:
        correlationId:
          type: string
        errors:
          type: array
          items:
            type: object
            additionalProperties: false
            properties:
              code:
                type: string
                enum:
                - SERVICE_UNAVAILABLE_ERROR
              detail:
                type: string
            required:
            - code
            - detail
      required:
      - errors
      title: serviceUnavailableError
    tooManyRequests:
      type: object
      description: Too Many Requests
      additionalProperties: false
      properties:
        correlationId:
          type: string
        errors:
          type: array
          items:
            additionalProperties: false
            type: object
            properties:
              code:
                type: string
                enum:
                - TOO_MANY_REQUESTS
              detail:
                type: string
            required:
            - code
            - detail
      required:
      - errors
      title: tooManyRequests
    internalServerError:
      type: object
      description: Internal Server Error
      additionalProperties: false
      properties:
        correlationId:
          type: string
        errors:
          type: array
          items:
            type: object
            additionalProperties: false
            properties:
              code:
                type: string
                enum:
                - INTERNAL_SERVER_ERROR
              detail:
                type: string
                enum:
                - Sorry, something has gone wrong at our end. If this persists please contact support.
            required:
            - code
            - detail
      required:
      - errors
      title: internalServerError
    meta:
      description: Meta object describing pagination
      type: object
      properties:
        pagination:
          type: object
          unevaluatedProperties: false
          allOf:
          - $ref: '#/components/schemas/pagination'
      required:
      - pagination
      title: meta
    badRequest:
      type: object
      description: Bad request
      additionalProperties: false
      properties:
        correlationId:
          type: string
        errors:
          type: array
          items:
            additionalProperties: false
            type: object
            properties:
              code:
                type: string
                enum:
                - BAD_REQUEST_INCORRECT_OR_MISSING_FIELD
                - RESPONSE_TOO_LARGE
              detail:
                type: string
              source:
                type: string
            required:
            - code
            - detail
            - source
      required:
      - errors
      title: badRequest
  securitySchemes:
    Authentication:
      type: oauth2
      description: 'A company-level token acts on the company it was issued for. An organisation-level token (experimental) acts on the companies of an organisation: send the target company in the `X-Company-Id` header on every call, except on `GET /v2/companies` and on `/v2/companies/{companyId}/…` routes, which carry the company in the path. See [Organisation-level access](/reference/organisation-level-access).'
      flows:
        clientCredentials:
          tokenUrl: /v1/auth/token
          scopes:
            analytical-field:read: Analytical Fields (Read)
            bank-fee:read: Spending Bank Fees (Read)
            cost-center:read: Cost Center (Read)
            cost-center:manage: Cost Center (Manage)
            expense-category:read: Expense Category (Read)
            payable:read: Spending Payables (Read)
            payable-attachment:read: Spending Payable Attachments (Read)
            settlement:read: Spending Settlements (Read)
            supplier:read: Suppliers (Read)
            user:read: Users (Read)
            experimental:user:manage: Users (Manage)
            wallet-load:read: Spending Wallet Loads (Read)
            wallet-summary:read: Spending Wallet Summary (Read)
            experimental:accounting-export:read: Accounting exports (Read)
            experimental:accounting-export:write: Accounting exports (Write)
            experimental:accounting:update: Accounting (Update)
            experimental:chart-of-accounts:read: Chart of Accounts (Read)
            experimental:chart-of-accounts:write: Chart of Accounts (Write)
            experimental:purchase-order:read: Purchase Orders (Read)
            experimental:purchase-order:write: Purchase Orders (Write)
            experimental:webhooks:read: Webhooks (Read)
            experimental:webhooks:write: Webhooks (Write)
            experimental:supplier:manage: Suppliers (Manage)
            experimental:company:read: Companies (Read)
            experimental:payable-search:read: Payable Search (Read)
            experimental:payable-attachment:write: Payable Attachments (Write)
            experimental:card:read: Cards (Read)
            experimental:card:write: Cards (Write)
            experimental:request:read: Requests (Read)
            experimental:transaction:read: Transactions (Read)
            experimental:analytical-field-v2:read: Analytical Fields v2 (Read)
            experimental:analytical-field-v2:write: Analytical Fields v2 (Write)
            experimental:expense-category-v2:read: Expense Category Fields v2 (Read)
            experimental:expense-category-v2:write: Expense Category Fields v2 (Write)
            experimental:invoice:read: Invoices (Read) - experimental
            experimental:intake:read: Intakes (Read)
            experimental:intake:write: Intakes (Write)
            experimental:external-reference:read: External References (Read)
            experimental:external-reference:write: External References (Write)
        authorizationCode:
          authorizationUrl: /v1/oauth2/authorize
          tokenUrl: /v1/oauth2/token/create
          scopes:
            analytical-field:read: Analytical Fields (Read)
            bank-fee:read: Spending Bank Fees (Read)
            cost-center:read: Cost Center (Read)
            cost-center:manage: Cost Center (Manage)
            expense-category:read: Expense Category (Read)
            payable:read: Spending Payables (Read)
            payable-attachment:read: Spending Payable Attachments (Read)
            settlement:read: Spending Settlements (Read)
            supplier:read: Suppliers (Read)
            user:read: Users (Read)
            experimental:user:manage: Users (Manage)
            wallet-load:read: Spending Wallet Loads (Read)
            wallet-summary:read: Spending Wallet Summary (Read)
            experimental:accounting-export:read: Accounting exports (Read)
            experimental:accounting-export:write: Accounting exports (Write)
            experimental:accounting:update: Accounting (Update)
            experimental:chart-of-accounts:read: Chart of Accounts (Read)
            experimental:chart-of-accounts:write: Chart of Accounts (Write)
            experimental:purchase-order:read: Purchase Orders (Read)
            experimental:purchase-order:write: Purchase Orders (Write)
            experimental:webhooks:read: Webhooks (Read)
            experimental:webhooks:write: Webhooks (Write)
            experimental:supplier:manage: Suppliers (Manage)
            experimental:company:read: Companies (Read)
            experimental:payable-search:read: Payable Search (Read)
            experimental:payable-attachment:write: Payable Attachments (Write)
            experimental:card:read: Cards (Read)
            experimental:card:write: Cards (Write)
            experimental:request:read: Requests (Read)
            experimental:transaction:read: Transactions (Read)
            experimental:analytical-field-v2:read: Analytical Fields v2 (Read)
            experimental:analytical-field-v2:write: Analytical Fields v2 (Write)
            experimental:expense-category-v2:read: Expense Category Fields v2 (Read)
            experimental:expense-category-v2:write: Expense Category Fields v2 (Write)
            experimental:invoice:read: Invoices (Read) - experimental
            experimental:intake:read: Intakes (Read)
            experimental:intake:write: Intakes (Write)
            experimental:external-reference:read: External References (Read)
            experimental:external-reference:write: External References (Write)
x-provenance:
  method: searched
  source: https://developer.spendesk.com/reference
  harvested: '2026-10-14'
  tool: harvest-readme-openapi.py
  note: Assembled verbatim from the OpenAPI definition ReadMe embeds in each operation page of the provider's developer portal; paths and components merged by API title, nothing authored.
  assembled_from:
  - https://developer.spendesk.com/reference/mcp-authorization-server-metadata.md
  - https://developer.spendesk.com/reference/mcp-protected-resource-metadata-mcp.md
  - https://developer.spendesk.com/reference/v1-assign-creditors-to-accounts.md
  - https://developer.spendesk.com/reference/v1-cancel-purchase-order.md
  - https://developer.spendesk.com/reference/v1-close-purchase-order.md
  - https://developer.spendesk.com/reference/v1-create-account.md
  - https://developer.spendesk.com/reference/v1-create-auth-token.md
  - https://developer.spendesk.com/reference/v1-create-cost-centers.md
  - https://developer.spendesk.com/reference/v1-create-journal.md
  - https://developer.spendesk.com/reference/v1-create-oauth2-token.md
  - https://developer.spendesk.com/reference/v1-create-payable-attachment-upload.md
  - https://developer.spendesk.com/reference/v1-create-purchase-order.md
  - https://developer.spendesk.com/reference/v1-create-snapshot-payables.md
  - https://developer.spendesk.com/reference/v1-create-suppliers.md
  - https://developer.spendesk.com/reference/v1-create-webhook.md
  - https://developer.spendesk.com/reference/v1-delete-account.md
  - https://developer.spendesk.com/reference/v1-delete-cost-centers.md
  - https://developer.spendesk.com/reference/v1-delete-mcp.md
  - https://developer.spendesk.com/reference/v1-delete-webhook.md
  - https://developer.spendesk.com/reference/v1-get-account-by-id.md
  - https://developer.spendesk.com/reference/v1-get-accounts.md
  - https://developer.spendesk.com/reference/v1-get-analytical-field-values.md
  - https://developer.spendesk.com/reference/v1-get-analytical-fields.md
  - https://developer.spendesk.com/reference/v1-get-bank-fees.md
  - https://developer.spendesk.com/reference/v1-get-card-blocking-history.md
  - https://developer.spendesk.com/reference/v1-get-card-order.md
  - https://developer.spendesk.com/reference/v1-get-card.md
  - https://developer.spendesk.com/reference/v1-get-cards.md
  - https://developer.spendesk.com/reference/v1-get-cost-centers.md
  - https://developer.spendesk.com/reference/v1-get-expense-categories.md
  - https://developer.spendesk.com/reference/v1-get-external-references.md
  - https://developer.spendesk.com/reference/v1-get-failed-transactions.md
  - https://developer.spendesk.com/reference/v1-get-integrations-export-status.md
  - https://developer.spendesk.com/reference/v1-get-journal-templates.md
  - https://developer.spendesk.com/reference/v1-get-journal.md
  - https://developer.spendesk.com/reference/v1-get-mcp.md
  - https://developer.spendesk.com/reference/v1-get-payable-attachments.md
  - https://developer.spendesk.com/reference/v1-get-payable-by-id.md
  - https://developer.spendesk.com/reference/v1-get-purchase-order-document.md
  - https://developer.spendesk.com/reference/v1-get-purchase-order.md
  - https://developer.spendesk.com/reference/v1-get-purchase-orders.md
  - https://developer.spendesk.com/reference/v1-get-request.md
  - https://developer.spendesk.com/reference/v1-get-requests.md
  - https://developer.spendesk.com/reference/v1-get-settlements.md
  - https://developer.spendesk.com/reference/v1-get-snapshot-payables.md
  - https://developer.spendesk.com/reference/v1-get-successful-transactions.md
  - https://developer.spendesk.com/reference/v1-get-supplier-by-id.md
  - https://developer.spendesk.com/reference/v1-get-suppliers.md
  - https://developer.spendesk.com/reference/v1-get-transactions.md
  - https://developer.spendesk.com/reference/v1-get-user-by-id.md
  - https://developer.spendesk.com/reference/v1-get-users.md
  - https://developer.spendesk.com/reference/v1-get-wallet-loads.md
  - https://developer.spendesk.com/reference/v1-get-wallet-summary.md
  - https://developer.spendesk.com/reference/v1-get-webhook-by-id.md
  - https://developer.spendesk.com/reference/v1-get-webhook.md
  - https://developer.spendesk.com/reference/v1-patch-accounts.md
  - https://developer.spendesk.com/reference/v1-patch-payable-accounting-fields.md
  - https://developer.spendesk.com/reference/v1-patch-supplier-status.md
  - https://developer.spendesk.com/reference/v1-patch-suppliers-status.md
  - https://developer.spendesk.com/reference/v1-post-experimental-integrations-refresh-settings.md
  - https://developer.spendesk.com/reference/v1-post-mcp.md
  - https://developer.spendesk.com/reference/v1-post-payable-mark-as-ready.md
  - https://developer.spendesk.com/reference/v1-put-payables-bookkeeping-status.md
  - https://developer.spendesk.com/reference/v1-put-settlements-state.md
  - https://developer.spendesk.com/reference/v1-refresh-oauth2-token.md
  - https://developer.spendesk.com/reference/v1-register-oauth2-client.md
  - https://developer.spendesk.com/reference/v1-remove-creditors-from-accounts.md
  - https://developer.spendesk.com/reference/v1-request-authorization.md
  - https://developer.spendesk.com/reference/v1-search-creditor-account-assignments.md
  - https://developer.spendesk.com/reference/v1-search-payables.md
  - https://developer.spendesk.com/reference/v1-set-account-purpose.md
  - https://developer.spendesk.com/reference/v1-sync-accounts.md
  - https://developer.spendesk.com/reference/v1-update-cost-centers.md
  - https://developer.spendesk.com/reference/v1-update-supplier.md
  - https://developer.spendesk.com/reference/v1-update-suppliers.md
  - https://developer.spendesk.com/reference/v1-update-webhook.md
  - https://developer.spendesk.com/reference/v1-upsert-external-references.md
  - https://developer.spendesk.com/reference/v2-create-analytical-field-value.md
  - https://developer.spendesk.com/reference/v2-create-analytical-field.md
  - https://developer.spendesk.com/reference/v2-create-expense-category-field.md
  - https://developer.spendesk.com/reference/v2-create-expense-category.md
  - https://developer.spendesk.com/reference/v2-create-intake-file-upload.md
  - https://developer.spendesk.com/reference/v2-delete-analytical-field-value.md
  - https://developer.spendesk.com/reference/v2-delete-analytical-field.md
  - https://developer.spendesk.com/reference/v2-delete-expense-category-field.md
  - https://developer.spendesk.com/reference/v2-delete-expense-category.md
  - https://developer.spendesk.com/reference/v2-get-analytical-field-value.md
  - https://developer.spendesk.com/reference/v2-get-analytical-field.md
  - https://developer.spendesk.com/reference/v2-get-companies.md
  - https://developer.spendesk.com/reference/v2-get-company-intake.md
  - https://developer.spendesk.com/reference/v2-get-expense-category-field.md
  - https://developer.spendesk.com/reference/v2-get-expense-category.md
  - https://developer.spendesk.com/reference/v2-get-intake-file-upload-status.md
  - https://developer.spendesk.com/reference/v2-get-invoice.md
  - https://developer.spendesk.com/reference/v2-get-invoices-summary.md
  - https://developer.spendesk.com/reference/v2-list-analytical-field-values.md
  - https://developer.spendesk.com/reference/v2-list-analytical-fields.md
  - https://developer.spendesk.com/reference/v2-list-company-intakes.md
  - https://developer.spendesk.com/reference/v2-list-expense-categories.md
  - https://developer.spendesk.com/reference/v2-list-expense-category-fields.md
  - https://developer.spendesk.com/reference/v2-list-invoices.md
  - https://developer.spendesk.com/reference/v2-post-company-intakes.md
  - https://developer.spendesk.com/reference/v2-update-analytical-field-value.md
  - https://developer.spendesk.com/reference/v2-update-analytical-field.md
  - https://developer.spendesk.com/reference/v2-update-expense-category-field.md
  - https://developer.spendesk.com/reference/v2-update-expense-category.md
  merge:
    pages: 106
    deduped: 1705
    conflicts_kept_first: 0