Crunchbase Deleted Entities API

Detect entities removed from the Crunchbase Graph (compliance, data-quality cleanup, inappropriate content) so consumers can reconcile their own databases - the delta / change-detection surface. GET /deleted_entities and GET /deleted_entities/{collection_id} with collection_ids filtering, deleted_at_order sorting, and after_id / before_id keyset pagination.

OpenAPI Specification

crunchbase-data-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Crunchbase Data API v4
  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: Entity Lookup
    description: Retrieve a single entity (and its related cards) by UUID or permalink.
  - name: Search
    description: Query a collection with field filters and keyset pagination.
  - name: Autocomplete
    description: Resolve a query string to matching entity identifiers.
  - name: Deleted Entities
    description: Detect entities removed from the Crunchbase Graph (deltas).
paths:
  /entities/{collection}/{entity_id}:
    parameters:
      - $ref: '#/components/parameters/Collection'
      - $ref: '#/components/parameters/EntityId'
    get:
      operationId: getEntity
      tags:
        - Entity Lookup
      summary: Look up an entity
      description: >-
        Retrieves a single entity from a core collection (organizations,
        people, funding_rounds, acquisitions, and others) by its UUID or
        permalink. Use field_ids to select fields and card_ids to include
        related cards (each card returns at most 100 items).
      parameters:
        - name: field_ids
          in: query
          required: false
          description: Comma-separated list of field ids to return for the entity.
          schema:
            type: string
        - name: card_ids
          in: query
          required: false
          description: >-
            Comma-separated list of related card ids to include. Each card
            returns a maximum of 100 items; use the card endpoint for more.
          schema:
            type: string
      responses:
        '200':
          description: The requested entity with the selected fields and cards.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '426':
          $ref: '#/components/responses/UpgradeRequired'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /entities/{collection}/{entity_id}/cards/{card_id}:
    parameters:
      - $ref: '#/components/parameters/Collection'
      - $ref: '#/components/parameters/EntityId'
      - name: card_id
        in: path
        required: true
        description: The id of the related card to page through (e.g. raised_funding_rounds, investors).
        schema:
          type: string
    get:
      operationId: getEntityCard
      tags:
        - Entity Lookup
      summary: Page an entity card
      description: >-
        Retrieves a single related card for an entity with full pagination,
        used when a card holds more than the 100 items returned inline by the
        entity lookup endpoint.
      parameters:
        - $ref: '#/components/parameters/Limit'
        - $ref: '#/components/parameters/AfterId'
        - $ref: '#/components/parameters/BeforeId'
      responses:
        '200':
          description: A page of card items for the entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CardResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /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'
  /autocompletes:
    get:
      operationId: autocomplete
      tags:
        - Autocomplete
      summary: Autocomplete entities
      description: >-
        Suggests matching entities for a query string, optionally scoped to one
        or more collections (e.g. organization.companies, principal.investors,
        categories). Commonly used to resolve UUIDs or permalinks for downstream
        Search or Entity Lookup calls.
      parameters:
        - name: query
          in: query
          required: true
          description: The search string to autocomplete.
          schema:
            type: string
        - name: collection_ids
          in: query
          required: false
          description: >-
            Comma-separated list of collection ids to scope suggestions to
            (e.g. organization.companies, principal.investors, categories).
          schema:
            type: string
        - name: limit
          in: query
          required: false
          description: Number of results to return (maximum 25).
          schema:
            type: integer
            default: 10
            maximum: 25
      responses:
        '200':
          description: A list of suggested entity identifiers.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AutocompleteResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /deleted_entities:
    get:
      operationId: listDeletedEntities
      tags:
        - Deleted Entities
      summary: List deleted entities
      description: >-
        Returns entities removed from the Crunchbase Graph (for example due to
        compliance, data-quality cleanup, or inappropriate content) so that
        consumers can detect deletions and reconcile their own databases. Scope
        to specific collections with collection_ids, sort with
        deleted_at_order, and page with after_id or before_id.
      parameters:
        - name: collection_ids
          in: query
          required: false
          description: Comma-separated list of collection ids to filter by (e.g. organizations, people, funding_rounds, events).
          schema:
            type: string
        - name: deleted_at_order
          in: query
          required: false
          description: Sort order for the deleted_at timestamp.
          schema:
            type: string
            enum:
              - asc
              - desc
        - $ref: '#/components/parameters/Limit'
        - $ref: '#/components/parameters/AfterId'
        - $ref: '#/components/parameters/BeforeId'
      responses:
        '200':
          description: A page of deleted entity records.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeletedEntitiesResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /deleted_entities/{collection_id}:
    parameters:
      - name: collection_id
        in: path
        required: true
        description: The collection id to scope deleted entities to (e.g. organizations, people, funding_rounds, events).
        schema:
          type: string
    get:
      operationId: listDeletedEntitiesForCollection
      tags:
        - Deleted Entities
      summary: List deleted entities for a collection
      description: >-
        Returns entities removed from a single collection in the Crunchbase
        Graph, with the same ordering and keyset pagination as the general
        deleted-entities endpoint.
      parameters:
        - name: deleted_at_order
          in: query
          required: false
          schema:
            type: string
            enum:
              - asc
              - desc
        - $ref: '#/components/parameters/Limit'
        - $ref: '#/components/parameters/AfterId'
        - $ref: '#/components/parameters/BeforeId'
      responses:
        '200':
          description: A page of deleted entity records for the collection.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeletedEntitiesResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
components:
  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.
  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
    EntityId:
      name: entity_id
      in: path
      required: true
      description: The entity UUID or permalink (e.g. tesla-motors).
      schema:
        type: string
    Limit:
      name: limit
      in: query
      required: false
      description: Number of items to return per page.
      schema:
        type: integer
    AfterId:
      name: after_id
      in: query
      required: false
      description: Keyset cursor - return items after this entity id.
      schema:
        type: string
    BeforeId:
      name: before_id
      in: query
      required: false
      description: Keyset cursor - return items before this entity id.
      schema:
        type: string
  responses:
    BadRequest:
      description: The request body or query was invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Missing, invalid, or unlicensed API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: The requested entity was not found.
      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'
    TooManyRequests:
      description: Rate limit exceeded (200 calls per minute).
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    Error:
      type: object
      properties:
        error:
          type: string
        code:
          type: integer
        message:
          type: string
    Identifier:
      type: object
      description: A lightweight reference to a Crunchbase entity.
      properties:
        uuid:
          type: string
          format: uuid
        value:
          type: string
          description: Human-readable name of the entity.
        permalink:
          type: string
        entity_def_id:
          type: string
          description: The collection/entity type (e.g. organization, person, funding_round).
        image_id:
          type: string
    EntityResponse:
      type: object
      properties:
        properties:
          type: object
          description: The selected field_ids and their values for the entity.
          additionalProperties: true
        cards:
          type: object
          description: Related card collections requested via card_ids.
          additionalProperties: true
    CardResponse:
      type: object
      properties:
        entities:
          type: array
          items:
            type: object
            additionalProperties: true
        count:
          type: integer
    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
    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
    AutocompleteResponse:
      type: object
      properties:
        count:
          type: integer
        entities:
          type: array
          items:
            type: object
            properties:
              identifier:
                $ref: '#/components/schemas/Identifier'
              short_description:
                type: string
    DeletedEntitiesResponse:
      type: object
      properties:
        count:
          type: integer
        entities:
          type: array
          items:
            type: object
            properties:
              uuid:
                type: string
                format: uuid
              deleted_at:
                type: string
                format: date-time
              entity_def_id:
                type: string