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