Crunchbase Search API

Query a collection with field filters and keyset pagination.

OpenAPI Specification

crunchbase-data-search-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Crunchbase Data API v4 Autocomplete Search API
  description: 'The Crunchbase Data API (REST v4) provides programmatic access to Crunchbase''s graph of company, funding, investor, and people data - organizations, people, funding rounds, acquisitions, investments, events, and more. It is a read-only RESTful service with four logical surfaces: Entity Lookup (retrieve a single entity and its related "cards"), Search (query a collection with field filters and keyset pagination), Autocomplete (resolve a query string to entity identifiers), and Deleted Entities / Deltas (detect entities removed from the Crunchbase Graph so downstream databases can be reconciled). Access is subscription-gated: the full API requires a Crunchbase Enterprise or Applications license, while a reduced Basic API is available to Crunchbase Basic plan holders. All requests must be made over HTTPS (non-HTTPS calls return 426) and are authenticated with an API key passed either as the `user_key` query parameter or the `X-cb-user-key` header.

    Endpoint paths, HTTP methods, authentication, and rate limits below are grounded in the public Crunchbase developer documentation (data.crunchbase.com/docs). Because live responses are license-gated, request and response object schemas are honestly modeled from the documentation rather than captured from live calls; see x-endpoints-modeled.'
  version: '4.0'
  contact:
    name: Crunchbase
    url: https://about.crunchbase.com/products/crunchbase-api/
  x-endpoints-modeled: Endpoint paths, methods, auth, and rate limits are confirmed from public docs. Detailed field-level request/response schemas are modeled from the documentation because live API responses require a paid Enterprise or Applications license.
servers:
- url: https://api.crunchbase.com/v4/data
  description: Crunchbase Data API v4 (production)
security:
- userKeyQuery: []
- userKeyHeader: []
tags:
- name: Search
  description: Query a collection with field filters and keyset pagination.
paths:
  /searches/{collection}:
    parameters:
    - $ref: '#/components/parameters/Collection'
    post:
      operationId: searchCollection
      tags:
      - Search
      summary: Search a collection
      description: Searches a collection (organizations, people, funding_rounds, acquisitions, and others) using a JSON body of field_ids to return and an array of query filters combined with AND logic. Returns 50 items by default and up to 1000 per request, with keyset pagination via after_id or before_id.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SearchRequest'
      responses:
        '200':
          description: The matching entities for the search query.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '426':
          $ref: '#/components/responses/UpgradeRequired'
        '429':
          $ref: '#/components/responses/TooManyRequests'
components:
  responses:
    TooManyRequests:
      description: Rate limit exceeded (200 calls per minute).
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Missing, invalid, or unlicensed API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: The request body or query was invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    UpgradeRequired:
      description: HTTPS is required, or the endpoint requires a higher license tier.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    QueryPredicate:
      type: object
      required:
      - type
      - field_id
      - operator_id
      - values
      properties:
        type:
          type: string
          example: predicate
        field_id:
          type: string
          example: categories
        operator_id:
          type: string
          description: Comparison operator (e.g. includes, eq, gte, lte, between, contains).
          example: includes
        values:
          type: array
          items: {}
    SearchResponse:
      type: object
      properties:
        count:
          type: integer
          description: Total number of matching entities.
        entities:
          type: array
          items:
            type: object
            properties:
              uuid:
                type: string
              properties:
                type: object
                additionalProperties: true
    SearchRequest:
      type: object
      required:
      - field_ids
      - query
      properties:
        field_ids:
          type: array
          description: The fields to return for each matching entity.
          items:
            type: string
        query:
          type: array
          description: Filter predicates combined with AND logic.
          items:
            $ref: '#/components/schemas/QueryPredicate'
        order:
          type: array
          items:
            type: object
            properties:
              field_id:
                type: string
              sort:
                type: string
                enum:
                - asc
                - desc
        limit:
          type: integer
          description: Items to return (default 50, maximum 1000).
          default: 50
          maximum: 1000
        after_id:
          type: string
        before_id:
          type: string
    Error:
      type: object
      properties:
        error:
          type: string
        code:
          type: integer
        message:
          type: string
  parameters:
    Collection:
      name: collection
      in: path
      required: true
      description: The core entity collection (e.g. organizations, people, funding_rounds, acquisitions).
      schema:
        type: string
        example: organizations
  securitySchemes:
    userKeyQuery:
      type: apiKey
      in: query
      name: user_key
      description: API key passed as the user_key query parameter.
    userKeyHeader:
      type: apiKey
      in: header
      name: X-cb-user-key
      description: API key passed as the X-cb-user-key request header.
Where this information came from

This is an independent, third-party profile of Crunchbase Search API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.