CustomerOS CustomerBASE API

The CustomerBASE API API from CustomerOS — 6 operation(s) for customerbase api.

Operations 6

POST /customerbase/v1/contacts Create a new contact #
POST /customerbase/v1/contacts/bulk Create multiple contacts #
POST /customerbase/v1/contacts/import Import contacts from CSV #
POST /customerbase/v1/organizations Create a new organization #
GET /customerbase/v1/organizations/{id} Get organization details #
PUT /customerbase/v1/organizations/{id}/links/{externalSystem}/primary Set primary external system ID #

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/customeros-customerbase-api-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

customeros-customerbase-api-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: CustomerOS API for multiple services (Verify, Enrich, Orgs)
  title: CustomerOS CustomerBASE API
  contact: {}
  version: '1.0'
servers:
- url: https://api.customeros.ai/
tags:
- name: CustomerBASE API
paths:
  /customerbase/v1/contacts:
    post:
      security:
      - ApiKeyAuth: []
      description: Creates a contact from either JSON or CSV upload
      tags:
      - CustomerBASE API
      summary: Create a new contact
      responses:
        '200':
          description: Successfully created single contact
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/customerbase.SingleContactResponse'
        '201':
          description: Successfully processed CSV file
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/customerbase.ContactsResponse'
        '400':
          description: Invalid request data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rest.BaseResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rest.BaseResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rest.BaseResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/customerbase.ContactRecord'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/customerbase.ContactRecord'
        description: Contact information
      operationId: postCustomerbaseV1Contacts
      x-operation-id-source: derived
  /customerbase/v1/contacts/bulk:
    post:
      security:
      - ApiKeyAuth: []
      description: Creates multiple contacts from JSON input
      tags:
      - CustomerBASE API
      summary: Create multiple contacts
      responses:
        '201':
          description: All contacts created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/customerbase.BulkResponse'
        '207':
          description: Contacts created with some failures
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/customerbase.BulkResponseMultipleErrors'
        '400':
          description: Invalid request data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rest.BaseResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rest.BaseResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rest.BaseResponse'
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/customerbase.ContactRecord'
        description: Array of contacts to create
        required: true
      operationId: postCustomerbaseV1ContactsBulk
      x-operation-id-source: derived
  /customerbase/v1/contacts/import:
    post:
      security:
      - ApiKeyAutl: []
      description: Creates multiple contacts from CSV file upload
      tags:
      - CustomerBASE API
      summary: Import contacts from CSV
      responses:
        '201':
          description: All contacts imported successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/customerbase.BulkResponse'
        '207':
          description: Contacts imported with some failures
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/customerbase.BulkResponseMultipleErrors'
        '400':
          description: Invalid file format or data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rest.BaseResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rest.BaseResponse'
        '415':
          description: Unsupported content type
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rest.BaseResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rest.BaseResponse'
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  description: 'CSV file with contact data (required headers: email, linkedin_url)'
                  format: binary
              required:
              - file
      operationId: postCustomerbaseV1ContactsImport
      x-operation-id-source: derived
  /customerbase/v1/organizations:
    post:
      security:
      - ApiKeyAuth: []
      description: Creates an organization if it doesn't exist based on website, custom ID, or LinkedIn URL. Returns existing organization if found.
      tags:
      - CustomerBASE API
      summary: Create a new organization
      responses:
        '201':
          description: Organization created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/customerbase.OrganizationResponse'
        '206':
          description: Organization created with partial data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/customerbase.OrganizationResponse'
        '400':
          description: Invalid request - Missing required fields
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rest.BaseResponse'
        '401':
          description: Unauthorized - Invalid or missing API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rest.BaseResponse'
        '409':
          description: Conflict - Organization already exists with provided identifiers
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rest.BaseResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rest.BaseResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/customerbase.CreateOrganizationRequest'
        description: Organization creation request
        required: true
      operationId: postCustomerbaseV1Organizations
      x-operation-id-source: derived
  /customerbase/v1/organizations/{id}:
    get:
      security:
      - ApiKeyAuth: []
      description: Retrieves detailed organization information by ID or COS ID
      tags:
      - CustomerBASE API
      summary: Get organization details
      parameters:
      - example: org_123
        description: Organization ID or COS ID
        name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Organization found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/customerbase.OrganizationResponse'
        '206':
          description: Organization found with partial data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/customerbase.OrganizationResponse'
        '400':
          description: Invalid organization ID format
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rest.BaseResponse'
        '401':
          description: Unauthorized - Invalid or missing API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rest.BaseResponse'
        '404':
          description: Organization not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rest.BaseResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rest.BaseResponse'
      operationId: getCustomerbaseV1OrganizationsById
      x-operation-id-source: derived
  /customerbase/v1/organizations/{id}/links/{externalSystem}/primary:
    put:
      security:
      - ApiKeyAuth: []
      description: Sets or updates the primary external system identifier for an organization
      tags:
      - CustomerBASE API
      summary: Set primary external system ID
      parameters:
      - example: org_123
        description: Organization ID or COS ID
        name: id
        in: path
        required: true
        schema:
          type: string
      - example: salesforce
        description: External system name
        name: externalSystem
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Primary ID set successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/customerbase.ExternalSystemResponse'
        '400':
          description: Invalid request parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rest.BaseResponse'
        '401':
          description: Unauthorized - Invalid or missing API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rest.BaseResponse'
        '404':
          description: Organization or external system not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rest.BaseResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rest.BaseResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/customerbase.SetPrimaryExternalSystemIdRequest'
        description: External system ID details
        required: true
      operationId: putCustomerbaseV1OrganizationsByIdLinksByExternalSystemPrimary
      x-operation-id-source: derived
components:
  schemas:
    customerbase.ExternalSystemRecord:
      description: External system information and its relationship to an organization
      type: object
      properties:
        externalId:
          description: 'External system identifier

            example: stripe-1234'
          type: string
        externalSystem:
          description: 'Name of the external system

            example: stripe'
          type: string
        organizationId:
          description: 'Associated organization ID

            example: org-789'
          type: string
        primary:
          description: 'Indicates if this is the primary link

            example: true'
          type: boolean
    customerbase.OrganizationResponse:
      description: Response structure for single organization operations
      type: object
      properties:
        organization:
          description: The organization information
          allOf:
          - $ref: '#/components/schemas/customerbase.OrganizationRecord'
        requestId:
          type: string
          example: 1234567890abcdef
        status:
          description: Status indicates the result of the operation ("success" or "error")
          type: string
          example: success
    customerbase.BulkSummary:
      description: Summary statistics for bulk operations
      type: object
      properties:
        failed:
          description: 'Number of failed records

            example: 5'
          type: integer
        success:
          description: 'Number of successfully processed records

            example: 95'
          type: integer
        total:
          description: 'Total number of records processed

            example: 100'
          type: integer
    customerbase.ExternalLink:
      description: External system link information
      type: object
      properties:
        id:
          description: 'External system identifier

            example: cos-12345'
          type: string
        name:
          description: 'External system name

            example: stripe'
          type: string
        primary:
          description: 'Indicates if this is the primary link

            example: true'
          type: boolean
    rest.BaseResponse:
      description: Standard response structure for API operations
      type: object
      properties:
        requestId:
          type: string
          example: 1234567890abcdef
        status:
          description: Status indicates the result of the operation ("success" or "error")
          type: string
          example: success
    customerbase.BulkResponseMultipleErrors:
      description: Response structure for bulk operations with multiple error details
      type: object
      properties:
        details:
          description: List of error details
          type: array
          items:
            $ref: '#/components/schemas/customerbase.BulkErrorDetails'
        requestId:
          type: string
          example: 1234567890abcdef
        status:
          description: Status indicates the result of the operation ("success" or "error")
          type: string
          example: success
        summary:
          description: Summary of the bulk operation
          allOf:
          - $ref: '#/components/schemas/customerbase.BulkSummary'
    customerbase.OrganizationRecord:
      description: Detailed organization information returned by API operations
      type: object
      properties:
        cosId:
          description: 'CustomerOS unique identifier

            example: C-A12-B45'
          type: string
        customId:
          description: 'Custom ID provided by the user

            example: 12345'
          type: string
        domains:
          description: 'Associated domains

            example: ["customeros.com","customeros.ai"]'
          type: array
          items:
            type: string
        externalLinks:
          description: External system links
          type: array
          items:
            $ref: '#/components/schemas/customerbase.ExternalLink'
        icpFit:
          description: 'ICP fit indicator

            example: true'
          type: boolean
        id:
          description: 'Organization''s unique identifier

            example: 123e4567-e89b-12d3-a456-426614174000'
          type: string
        leadSource:
          description: 'Lead source of the organization

            example: Web Search'
          type: string
        name:
          description: 'Organization name

            example: CustomerOS'
          type: string
        relationship:
          description: 'Relationship status with the organization

            example: customer'
          type: string
        stage:
          description: 'Current stage in the organization lifecycle

            example: lead'
          type: string
        website:
          description: 'Organization''s website URL

            example: https://customeros.ai'
          type: string
    customerbase.CreateOrganizationRequest:
      description: Request to create an organization
      type: object
      properties:
        customId:
          description: 'Custom ID provided by the user

            example: 12345'
          type: string
        icpFit:
          description: 'Indicates if the organization is an ICP (Ideal Customer Profile) fit

            example: true'
          type: boolean
        leadSource:
          description: 'Lead source of the organization

            example: Web Search'
          type: string
        linkedinUrl:
          description: 'Organization''s LinkedIn profile URL

            example: https://linkedin.com/company/openline'
          type: string
        name:
          description: 'Organization''s name

            required: true

            example: CustomerOS'
          type: string
        relationship:
          description: 'Relationship status of the organization

            example: customer'
          type: string
        website:
          description: 'Organization''s website URL

            example: https://customeros.ai'
          type: string
    customerbase.SetPrimaryExternalSystemIdRequest:
      description: Request to set or replace the primary external system ID
      type: object
      properties:
        externalId:
          description: 'The ID of the external system to be set as primary

            required: true

            example: stripe-1234'
          type: string
    customerbase.BulkErrorDetails:
      description: Error details for failed operations in bulk processing
      type: object
      properties:
        description:
          description: 'Description of the error

            example: invalid email format'
          type: string
        value:
          description: 'The value that caused the error

            example: invalid@email..com'
          type: string
    customerbase.ContactsResponse:
      description: Response structure for multiple contact operations
      type: object
      properties:
        contacts:
          description: List of contacts
          type: array
          items:
            $ref: '#/components/schemas/customerbase.ContactRecord'
        requestId:
          type: string
          example: 1234567890abcdef
        status:
          description: Status indicates the result of the operation ("success" or "error")
          type: string
          example: success
    customerbase.SingleContactResponse:
      description: Response structure for single contact operations
      type: object
      properties:
        contact:
          description: The contact information
          allOf:
          - $ref: '#/components/schemas/customerbase.ContactRecord'
        requestId:
          type: string
          example: 1234567890abcdef
        status:
          description: Status indicates the result of the operation ("success" or "error")
          type: string
          example: success
    customerbase.ExternalSystemResponse:
      description: Response structure for external system operations
      type: object
      properties:
        organization:
          description: The external system information
          allOf:
          - $ref: '#/components/schemas/customerbase.ExternalSystemRecord'
        requestId:
          type: string
          example: 1234567890abcdef
        status:
          description: Status indicates the result of the operation ("success" or "error")
          type: string
          example: success
    customerbase.ContactRecord:
      description: Request to create a contact
      type: object
      properties:
        contactId:
          description: 'Contact''s unique identifier

            example: contact-123'
          type: string
        email:
          description: 'Contact''s email address

            example: john@example.com'
          type: string
        linkedinUrl:
          description: 'Contact''s LinkedIn profile URL

            example: https://linkedin.com/in/john-doe'
          type: string
    customerbase.BulkResponse:
      description: Response structure for bulk operations with single error detail
      type: object
      properties:
        details:
          description: Error details if any
          allOf:
          - $ref: '#/components/schemas/customerbase.BulkErrorDetails'
        requestId:
          type: string
          example: 1234567890abcdef
        status:
          description: Status indicates the result of the operation ("success" or "error")
          type: string
          example: success
        summary:
          description: Summary of the bulk operation
          allOf:
          - $ref: '#/components/schemas/customerbase.BulkSummary'
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      name: X-CUSTOMER-OS-API-KEY
      in: header