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.