Remote Companies API

Create, retrieve, and update company records

Documentation

📖
Documentation
https://developer.remote.com/reference/welcome-to-remote-api
📖
Documentation
https://developer.remote.com/docs/creating-a-company
📖
Documentation
https://developer.remote.com/docs/create-new-employment
📖
Documentation
https://developer.remote.com/docs/employment-lifecycle-stages
📖
Documentation
https://developer.remote.com/docs/employment-statuses
📖
Documentation
https://developer.remote.com/docs/quick-start-guide-2
📖
Documentation
https://developer.remote.com/docs/working-with-expenses
📖
Documentation
https://developer.remote.com/docs/working-with-incentives
📖
Documentation
https://developer.remote.com/docs/working-with-time-off
📖
Documentation
https://developer.remote.com/docs/leave-policies-summary
📖
Documentation
https://developer.remote.com/docs/working-with-timesheets
📖
Documentation
https://developer.remote.com/docs/benefits-renewal
📖
Documentation
https://developer.remote.com/docs/working-with-files
📖
Documentation
https://developer.remote.com/docs/custom-fields
📖
Documentation
https://developer.remote.com/docs/working-with-countries
📖
Documentation
https://developer.remote.com/docs/employment-cost-estimation
📖
Documentation
https://developer.remote.com/docs/authentication
📖
Documentation
https://developer.remote.com/docs/authorization-for-customers
📖
Documentation
https://developer.remote.com/docs/client-credentials-flow-for-partners
📖
Documentation
https://developer.remote.com/docs/authorization-method-oauth-assertion
📖
Documentation
https://developer.remote.com/docs/refresh-token-flow

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

remote-com-companies-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Remote Benefits Benefit Offers Companies API
  description: 'List, select, and renew localized employee benefits across the countries

    Remote supports. Benefit offers and renewal requests use JSON Schema

    forms that vary per country and employment.

    '
  version: '2026-05-22'
  contact:
    name: Remote API Support
    url: https://support.remote.com/
  x-logo:
    url: https://remote.com/favicon.ico
servers:
- url: https://gateway.remote.com/v1
  description: Production
- url: https://gateway.remote-sandbox.com/v1
  description: Sandbox
security:
- BearerAuth: []
tags:
- name: Companies
  description: Create, retrieve, and update company records
paths:
  /companies:
    get:
      summary: List Companies
      description: List companies accessible to the current partner or customer access token.
      operationId: listCompanies
      tags:
      - Companies
      parameters:
      - $ref: '#/components/parameters/PageQuery'
      - $ref: '#/components/parameters/PageSizeQuery'
      responses:
        '200':
          description: A page of companies.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompanyList'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
    post:
      summary: Create A Company
      description: 'Create a new company on Remote. Returns the company resource together

        with a company-scoped access token that the partner/customer may use

        to call subsequent endpoints on the new company''s behalf.

        '
      operationId: createCompany
      tags:
      - Companies
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CompanyCreateRequest'
      responses:
        '201':
          description: Company created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompanyCreateResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /companies/{company_id}:
    parameters:
    - $ref: '#/components/parameters/CompanyIdPath'
    get:
      summary: Show A Company
      description: Retrieve a company by id.
      operationId: showCompany
      tags:
      - Companies
      responses:
        '200':
          description: Company record.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompanyEnvelope'
        '404':
          $ref: '#/components/responses/NotFound'
    patch:
      summary: Update A Company
      description: Update fields on an existing company.
      operationId: updateCompany
      tags:
      - Companies
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CompanyUpdateRequest'
      responses:
        '200':
          description: Company updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompanyEnvelope'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
  /companies/{company_id}/legal_entities:
    parameters:
    - $ref: '#/components/parameters/CompanyIdPath'
    get:
      summary: List Company Legal Entities
      description: List the legal entities under which the company hires.
      operationId: listCompanyLegalEntities
      tags:
      - Companies
      responses:
        '200':
          description: Legal entities.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegalEntityList'
  /forms/{form_type}:
    parameters:
    - name: form_type
      in: path
      required: true
      schema:
        type: string
        enum:
        - company
        - employment
        - contract_amendment
        - benefit_offer
        - benefit_renewal_request
        - offboarding
        - expense
    get:
      summary: Show A JSON Schema Form
      description: Returns the JSON Schema form definition used by Remote to collect localized data for the given resource type.
      operationId: showSchemaForm
      tags:
      - Companies
      responses:
        '200':
          description: JSON Schema form.
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
components:
  schemas:
    CompanyUpdateRequest:
      type: object
      properties:
        name:
          type: string
        external_id:
          type: string
        address:
          $ref: '#/components/schemas/Address'
        tax_number:
          type: string
    CompanyCreateRequest:
      type: object
      required:
      - name
      - company_owner_email
      properties:
        name:
          type: string
        company_owner_email:
          type: string
          format: email
        company_owner_name:
          type: string
        desired_currency:
          type: string
          default: USD
        external_id:
          type: string
        terms_of_service_accepted_at:
          type: string
          format: date-time
    Address:
      type: object
      properties:
        address:
          type: string
        address_line_2:
          type: string
        city:
          type: string
        country_code:
          type: string
          description: ISO 3166-1 alpha-3 country code.
        local_details:
          type: object
          additionalProperties: true
        postal_code:
          type: string
    CompanyEnvelope:
      type: object
      properties:
        data:
          type: object
          properties:
            company:
              $ref: '#/components/schemas/Company'
    LegalEntity:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        country_code:
          type: string
        type:
          type: string
          enum:
          - remote_entity
          - partner_entity
          - customer_entity
    LegalEntityList:
      type: object
      properties:
        data:
          type: object
          properties:
            legal_entities:
              type: array
              items:
                $ref: '#/components/schemas/LegalEntity'
    Company:
      type: object
      required:
      - id
      - name
      - status
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        slug:
          type: string
        external_id:
          type: string
          nullable: true
        status:
          type: string
          enum:
          - created
          - draft
          - profile_completed
          - activation_pending
          - activated
          - archived
        company_owner_user_id:
          type: string
          format: uuid
        primary_billing_contact:
          type: string
          nullable: true
        bank_account_currency_code:
          type: string
        tax_number:
          type: string
          nullable: true
        address:
          $ref: '#/components/schemas/Address'
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
    CompanyCreateResponse:
      type: object
      properties:
        data:
          type: object
          properties:
            company:
              $ref: '#/components/schemas/Company'
            access_token:
              type: string
              description: Company-scoped access token.
            refresh_token:
              type: string
            expires_in:
              type: integer
    ErrorResponse:
      type: object
      required:
      - errors
      properties:
        errors:
          type: object
          additionalProperties: true
        message:
          type: string
    CompanyList:
      type: object
      properties:
        data:
          type: object
          properties:
            companies:
              type: array
              items:
                $ref: '#/components/schemas/Company'
            current_page:
              type: integer
            total_count:
              type: integer
            total_pages:
              type: integer
  responses:
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    TooManyRequests:
      description: Too Many Requests
      headers:
        x-ratelimit-count:
          schema:
            type: integer
          description: Requests made in the current 60-second window.
        x-ratelimit-remaining:
          schema:
            type: integer
          description: Requests remaining in the current window.
        x-ratelimit-reset:
          schema:
            type: integer
          description: Milliseconds until the rate limit resets.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    BadRequest:
      description: Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    NotFound:
      description: Not Found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  parameters:
    PageSizeQuery:
      name: page_size
      in: query
      schema:
        type: integer
        minimum: 1
        maximum: 100
        default: 20
    CompanyIdPath:
      name: company_id
      in: path
      required: true
      schema:
        type: string
        format: uuid
    PageQuery:
      name: page
      in: query
      schema:
        type: integer
        minimum: 1
        default: 1
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT