openapi: 3.0.3 info: title: Explorium AgentSource API description: >- The Explorium AgentSource API is a single external-data and enrichment API for AI agents and go-to-market teams. It exposes match, fetch, statistics, autocomplete, enrichment, bulk enrichment, and event/enrollment endpoints over a business dataset (150M+ companies) and a prospect dataset (800M+ people) aggregated from 100+ external sources. All endpoints are hosted at https://api.explorium.ai and authenticated with an API key sent in the API_KEY request header. Access is gated behind an Explorium account and a credit balance (a free developer tier of 100 credits is available), so this document is honestly modeled from Explorium's published OpenAPI index and reference pages - the endpoint paths and HTTP methods are confirmed from Explorium's own documentation, while request and response schemas are represented at a representative level. Not every one of the 30+ enrichment endpoints is enumerated here; a representative subset is included. endpointsModeled - request/response bodies are modeled; paths are confirmed. version: '1.0' contact: name: Explorium url: https://developers.explorium.ai servers: - url: https://api.explorium.ai description: Explorium AgentSource API production security: - apiKeyHeader: [] tags: - name: Businesses description: Match, fetch, stat, and autocomplete over the 150M+ company dataset. - name: Business Enrichments description: Firmographic, technographic, financial, and operational company enrichments. - name: Prospects description: Match, fetch, stat, and autocomplete over the 800M+ people dataset. - name: Prospect Enrichments description: Contact information, profile, and social enrichments for people. - name: Events description: Business and prospect event tracking plus enrollment management. - name: Webhooks description: Register endpoints that receive event notifications. - name: Credits description: Inspect the shared credit pool that meters all API usage. paths: /v1/businesses/match: post: operationId: matchBusinesses tags: - Businesses summary: Match businesses description: >- Resolve up to 50 companies to Explorium business_id values from name, domain, URL, or LinkedIn URL. Returns a list the same length and order as the input. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/BusinessMatchRequest' responses: '200': description: Matched business identifiers. content: application/json: schema: $ref: '#/components/schemas/MatchResponse' '401': $ref: '#/components/responses/Unauthorized' /v1/businesses: post: operationId: fetchBusinesses tags: - Businesses summary: Fetch businesses description: >- Retrieve company records that match a set of filters such as industry, company size, location, or technology in use. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/FetchRequest' responses: '200': description: A page of business records. content: application/json: schema: $ref: '#/components/schemas/FetchResponse' '401': $ref: '#/components/responses/Unauthorized' /v1/businesses/stats: post: operationId: fetchBusinessStats tags: - Businesses summary: Fetch business statistics description: >- Gauge the size and scope of a target audience for a set of filters before running large-scale fetches. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/FetchRequest' responses: '200': description: Aggregate counts for the supplied filters. content: application/json: schema: $ref: '#/components/schemas/StatsResponse' '401': $ref: '#/components/responses/Unauthorized' /v1/businesses/autocomplete: get: operationId: autocompleteBusinesses tags: - Businesses summary: Autocomplete businesses description: >- Fuzzy search over business filter values (industries, technologies, locations) to build valid filter payloads. parameters: - name: field in: query required: true schema: type: string description: The filter field to autocomplete, for example country or naics_category. - name: query in: query required: true schema: type: string description: The partial text to match. responses: '200': description: Autocomplete suggestions. content: application/json: schema: $ref: '#/components/schemas/AutocompleteResponse' '401': $ref: '#/components/responses/Unauthorized' /v1/businesses/firmographics/enrich: post: operationId: enrichFirmographics tags: - Business Enrichments summary: Enrich firmographics description: >- Return firmographic attributes (industry, size, revenue band, location, founding year) for a single matched business_id. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/EnrichRequest' responses: '200': description: Firmographic enrichment record. content: application/json: schema: $ref: '#/components/schemas/EnrichResponse' '401': $ref: '#/components/responses/Unauthorized' /v1/businesses/technographics/enrich: post: operationId: enrichTechnographics tags: - Business Enrichments summary: Enrich technographics description: Return the detected technology stack for a matched business_id. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/EnrichRequest' responses: '200': description: Technographic enrichment record. content: application/json: schema: $ref: '#/components/schemas/EnrichResponse' '401': $ref: '#/components/responses/Unauthorized' /v1/businesses/firmographics/bulk_enrich: post: operationId: bulkEnrichFirmographics tags: - Business Enrichments summary: Bulk enrich firmographics description: >- Enrich firmographics for up to 50 business_id values in a single request against the shared credit pool. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/BulkEnrichRequest' responses: '200': description: Firmographic enrichment records. content: application/json: schema: $ref: '#/components/schemas/EnrichResponse' '401': $ref: '#/components/responses/Unauthorized' /v1/businesses/events: post: operationId: fetchBusinessEvents tags: - Events summary: Fetch business events description: >- Retrieve real-time business signals such as funding rounds, hiring surges, office moves, and leadership changes. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/EventsRequest' responses: '200': description: A list of business events. content: application/json: schema: $ref: '#/components/schemas/EventsResponse' '401': $ref: '#/components/responses/Unauthorized' /v1/prospects/match: post: operationId: matchProspects tags: - Prospects summary: Match prospects description: >- Resolve people to Explorium prospect_id values from full name plus company, email, or LinkedIn URL. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ProspectMatchRequest' responses: '200': description: Matched prospect identifiers. content: application/json: schema: $ref: '#/components/schemas/MatchResponse' '401': $ref: '#/components/responses/Unauthorized' /v1/prospects: post: operationId: fetchProspects tags: - Prospects summary: Fetch prospects description: >- Retrieve prospect records filtered by job level, department, title, seniority, or the business they work at. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/FetchRequest' responses: '200': description: A page of prospect records. content: application/json: schema: $ref: '#/components/schemas/FetchResponse' '401': $ref: '#/components/responses/Unauthorized' /v1/prospects/stats: post: operationId: fetchProspectStats tags: - Prospects summary: Fetch prospect statistics description: Estimate the number of prospects matching a set of filters. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/FetchRequest' responses: '200': description: Aggregate prospect counts. content: application/json: schema: $ref: '#/components/schemas/StatsResponse' '401': $ref: '#/components/responses/Unauthorized' /v1/prospects/autocomplete: get: operationId: autocompleteProspects tags: - Prospects summary: Autocomplete prospects description: Fuzzy search over prospect filter values such as job title or department. parameters: - name: field in: query required: true schema: type: string - name: query in: query required: true schema: type: string responses: '200': description: Autocomplete suggestions. content: application/json: schema: $ref: '#/components/schemas/AutocompleteResponse' '401': $ref: '#/components/responses/Unauthorized' /v1/prospects/contacts_information/enrich: post: operationId: enrichProspectContacts tags: - Prospect Enrichments summary: Enrich contact information description: >- Return verified emails and phone numbers for a matched prospect_id. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/EnrichRequest' responses: '200': description: Contact information enrichment record. content: application/json: schema: $ref: '#/components/schemas/EnrichResponse' '401': $ref: '#/components/responses/Unauthorized' /v1/prospects/profiles/enrich: post: operationId: enrichProspectProfiles tags: - Prospect Enrichments summary: Enrich prospect profiles description: >- Return professional profile data - current role, seniority, work history - for a matched prospect_id. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/EnrichRequest' responses: '200': description: Profile enrichment record. content: application/json: schema: $ref: '#/components/schemas/EnrichResponse' '401': $ref: '#/components/responses/Unauthorized' /v1/prospects/events: post: operationId: fetchProspectEvents tags: - Events summary: Fetch prospect events description: >- Retrieve real-time prospect signals such as job changes and role promotions. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/EventsRequest' responses: '200': description: A list of prospect events. content: application/json: schema: $ref: '#/components/schemas/EventsResponse' '401': $ref: '#/components/responses/Unauthorized' /v1/webhooks: post: operationId: addWebhook tags: - Webhooks summary: Add a webhook description: >- Register an HTTPS endpoint to receive event notifications for enrolled businesses or prospects. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/WebhookInput' responses: '200': description: The registered webhook. content: application/json: schema: $ref: '#/components/schemas/Webhook' '401': $ref: '#/components/responses/Unauthorized' /v1/credits: get: operationId: getActiveCredits tags: - Credits summary: Get active credits summary description: >- Return the active credit balance and expiry for the account. All match, fetch, enrich, and event calls draw down the same credit pool. responses: '200': description: Active credit summary. content: application/json: schema: $ref: '#/components/schemas/CreditsSummary' '401': $ref: '#/components/responses/Unauthorized' components: securitySchemes: apiKeyHeader: type: apiKey in: header name: API_KEY description: >- API key issued in the Explorium admin portal at https://admin.explorium.ai/api-key and sent in the API_KEY request header. responses: Unauthorized: description: Missing or invalid API key. content: application/json: schema: $ref: '#/components/schemas/Error' schemas: RequestContext: type: object description: Optional context passed with a request. properties: seller_id: type: string BusinessToMatch: type: object properties: name: type: string domain: type: string url: type: string linkedin_url: type: string BusinessMatchRequest: type: object required: - businesses_to_match properties: request_context: $ref: '#/components/schemas/RequestContext' businesses_to_match: type: array maxItems: 50 items: $ref: '#/components/schemas/BusinessToMatch' ProspectToMatch: type: object properties: full_name: type: string company_name: type: string email: type: string linkedin_url: type: string ProspectMatchRequest: type: object required: - prospects_to_match properties: request_context: $ref: '#/components/schemas/RequestContext' prospects_to_match: type: array maxItems: 50 items: $ref: '#/components/schemas/ProspectToMatch' MatchResponse: type: object properties: data: type: array items: type: object properties: matched_id: type: string FetchRequest: type: object properties: mode: type: string description: preview or full. size: type: integer page_size: type: integer page: type: integer filters: type: object additionalProperties: true description: Field-to-value filter map, for example country_code or company_size. FetchResponse: type: object properties: data: type: array items: type: object additionalProperties: true total_results: type: integer page: type: integer StatsResponse: type: object properties: total_results: type: integer breakdown: type: object additionalProperties: true AutocompleteResponse: type: object properties: data: type: array items: type: object properties: value: type: string display: type: string EnrichRequest: type: object required: - business_id properties: business_id: type: string description: For prospect enrichments this is prospect_id instead. BulkEnrichRequest: type: object properties: business_ids: type: array maxItems: 50 items: type: string prospect_ids: type: array maxItems: 50 items: type: string EnrichResponse: type: object properties: data: type: array items: type: object additionalProperties: true EventsRequest: type: object properties: business_ids: type: array items: type: string prospect_ids: type: array items: type: string event_types: type: array items: type: string timestamp_from: type: string format: date-time EventsResponse: type: object properties: data: type: array items: type: object additionalProperties: true WebhookInput: type: object required: - url properties: url: type: string event_types: type: array items: type: string Webhook: type: object properties: partner_id: type: string url: type: string event_types: type: array items: type: string CreditsSummary: type: object properties: active_credits: type: integer expires_at: type: string format: date-time Error: type: object properties: error: type: string message: type: string