# Running an async enrichment end to end Source: https://developers.explorium.ai/v2/async-guide A complete walkthrough of the AgentSource v2 async flow: upload a CSV of entity IDs, submit an enrichment job, poll for status, and download the results. ## When to use async Every enrichment in v2 comes in two variants: | | Sync (`.../enrich`) | Async (`.../job`) | | :- | :- | :- | | Input | A single ID or a list of **up to 50** | A **dataset** of up to **10,000** IDs | | How you pass input | IDs in the request body | A `list_id` from the upload endpoint | | Results | Returned in the response | Downloaded from a URL when the job finishes | | Best for | Interactive lookups, small batches | Large batches, scheduled jobs | > [!WARNING] > > Async endpoints **do not accept inline IDs**. Every `.../job` request takes a `list_id` and nothing else (some enrichments also take a `parameters` object). You must upload your IDs first — that is step 1 below. ## The flow **1. Upload a CSV of entity IDs** `POST /v2/async/entity-id-datasets/upload` returns a `list_id`. **2. Submit the job** `POST /v2/{entity}/{enrichment}/job` with that `list_id` returns a `job_id`. **3. Poll for status** `GET /v2/jobs/status/{job_id}` until the job finishes. **4. Download the results** The finished job exposes `results.download_url` — a CSV. *** ## Step 1 — Prepare your CSV The upload endpoint takes a CSV of entity IDs. Start from a sample: > **sample-business-ids.csv** > > Ten business IDs — use as-is. > > [**Download CSV ↓**](data:text/csv;charset=utf-8,business_id%0Ad8ff7fac1286c561cb0dac48429d00b0%0A17e22afed8b7d1fb9e19bc0633466339%0A21a68e428d5053f9758bd6983cefaa3a%0A7e038b4d0b2d7f900ef37c6dab7f375f%0A5d44e43bcc66ba56e5b41e8dd76a11a1%0Ac5c1cb0bebd56ae38817b251ad72bedb%0Ad812273cc7fa60a19a36fc87b0502576%0Ae81f1e4fe5b85be7a6619d0b33427e01%0A3c937ad70cc096afaad00ba8a67fbafb%0A03e6c61603f6c550ab49ab6a2d83f793%0A) > **sample-prospect-ids.csv** > > Ten prospect IDs. > > [**Download CSV ↓**](data:text/csv;charset=utf-8,prospect_id%0A6b39e11efd690384ed593ef9bcacfecaf6ed51b7%0Aee936e451b50c70e068e1b54e106cb89173198c4%0Ae3a215816e8b544a2e2b1765dc20ee0bcfaadb05%0A1fdc4b2fcf6d988575babfe3838ae4bf7d35d172%0A2187a6858fc2083a1e466f54540af5f167012335%0A398865d997673dd0fd26188bd5a57018fde6795f%0A4a0e66b4fcb78673d39b4d993ef329187016654b%0A43cba106c62403b408fab17bc16c774713f6f0cb%0A38485a991ed30c2ed57da37a8de6175c2440c73f%0A3b75cbb5e296afb847a448ad65ff569a4d7c960c%0A) ```csv sample-business-ids.csv theme={null} business_id d8ff7fac1286c561cb0dac48429d00b0 17e22afed8b7d1fb9e19bc0633466339 21a68e428d5053f9758bd6983cefaa3a 7e038b4d0b2d7f900ef37c6dab7f375f 5d44e43bcc66ba56e5b41e8dd76a11a1 c5c1cb0bebd56ae38817b251ad72bedb d812273cc7fa60a19a36fc87b0502576 e81f1e4fe5b85be7a6619d0b33427e01 3c937ad70cc096afaad00ba8a67fbafb 03e6c61603f6c550ab49ab6a2d83f793 ``` ```csv sample-prospect-ids.csv theme={null} prospect_id 6b39e11efd690384ed593ef9bcacfecaf6ed51b7 ee936e451b50c70e068e1b54e106cb89173198c4 e3a215816e8b544a2e2b1765dc20ee0bcfaadb05 1fdc4b2fcf6d988575babfe3838ae4bf7d35d172 2187a6858fc2083a1e466f54540af5f167012335 398865d997673dd0fd26188bd5a57018fde6795f 4a0e66b4fcb78673d39b4d993ef329187016654b 43cba106c62403b408fab17bc16c774713f6f0cb 38485a991ed30c2ed57da37a8de6175c2440c73f 3b75cbb5e296afb847a448ad65ff569a4d7c960c ``` Get IDs of your own from [Match businesses](/v2/businesses/match_businesses) or [Fetch businesses](/v2/businesses/fetch_businesses) — or [Match prospects](/v2/prospects/match_prospects) and [Fetch prospects](/v2/prospects/fetch_prospects) for people. > [!NOTE] > > Keep the file within the **10,000-row** async limit. The upload response echoes a `rowCount` so you can confirm every row was ingested. ## Step 2 — Upload the dataset Send the file as `multipart/form-data`. All four fields are required. | Field | Value | | :- | :- | | `file` | Your CSV | | `entity_type` | `business` or `prospect` | | `name` | A short label for the dataset | | `description` | What the dataset contains | ```bash cURL theme={null} curl --request POST \ --url https://api.explorium.ai/v2/async/entity-id-datasets/upload \ --header 'api_key: YOUR_API_KEY' \ --form 'file=@sample-business-ids.csv' \ --form 'entity_type=business' \ --form 'name=Q1 target accounts' \ --form 'description=Business IDs for the Q1 firmographics refresh' ``` ```python Python theme={null} import requests BASE = "https://api.explorium.ai" HEADERS = {"api_key": "YOUR_API_KEY"} with open("sample-business-ids.csv", "rb") as f: resp = requests.post( f"{BASE}/v2/async/entity-id-datasets/upload", headers=HEADERS, files={"file": ("sample-business-ids.csv", f, "text/csv")}, data={ "entity_type": "business", "name": "Q1 target accounts", "description": "Business IDs for the Q1 firmographics refresh", }, ) resp.raise_for_status() dataset = resp.json() list_id = dataset["list_id"] print(f"uploaded {dataset['rowCount']} rows -> list_id={list_id}") print(f"dataset expires at {dataset['expiresAt']}") ``` The response gives you the handle you need for step 2: ```json Response theme={null} { "list_id": "b8f2c1d4-...", "name": "Q1 target accounts", "description": "Business IDs for the Q1 firmographics refresh", "rowCount": 10, "entityType": "business", "tenantId": "...", "expiresAt": "2026-09-06T00:00:00Z" } ``` > [!WARNING] > > Datasets expire. Note `expiresAt` and re-upload before running a job against a stale list. ## Step 3 — Submit the job Post the `list_id` to any `.../job` endpoint. This example uses [Firmographics (async)](/v2/businesses/enrichments/firmographics_job). ```bash cURL theme={null} curl --request POST \ --url https://api.explorium.ai/v2/businesses/firmographics/job \ --header 'api_key: YOUR_API_KEY' \ --header 'Content-Type: application/json' \ --data '{ "list_id": "b8f2c1d4-..." }' ``` ```python Python theme={null} resp = requests.post( f"{BASE}/v2/businesses/firmographics/job", headers={**HEADERS, "Content-Type": "application/json"}, json={"list_id": list_id}, ) resp.raise_for_status() job_id = resp.json()["job_id"] print(f"submitted job {job_id}") ``` > [!NOTE] > > **A few enrichments need a `parameters` object as well.** `company_website_keywords` requires `keywords`, and both research endpoints take `query` or `prompt_template` plus an `output_schema`: > > ```json theme={null} > { > "list_id": "b8f2c1d4-...", > "parameters": { "keywords": ["cloud migration", "data platform"] } > } > ``` > [!NOTE] > > **Prefer an email over polling?** Every job request accepts an optional `notifications` object: > > ```json theme={null} > { > "list_id": "b8f2c1d4-...", > "notifications": { "email": { "enabled": true, "on": ["success", "failure"] } } > } > ``` > > You still poll [job status](/v2/jobs/get_job_status) to collect the download link, but the email tells you when it is worth doing. ## Step 4 — Poll for status Call the status endpoint until the job finishes. A finished job carries a `results` object. ```bash cURL theme={null} curl --request GET \ --url https://api.explorium.ai/v2/jobs/status/JOB_ID \ --header 'api_key: YOUR_API_KEY' ``` ```python Python theme={null} import time while True: resp = requests.get(f"{BASE}/v2/jobs/status/{job_id}", headers=HEADERS) resp.raise_for_status() job = resp.json() if job.get("error"): raise RuntimeError(f"job failed: {job['error']}") if job.get("results", {}).get("download_url"): break print(f"status={job['status']} ... waiting") time.sleep(30) results = job["results"] usage = job.get("credit_usage", {}) print(f"done — {usage.get('total_results')} results, {usage.get('total_credits')} credits") print(f"download ({results['format']}) expires at {results['expires_at']}") ``` A completed response looks like this: ```json Response theme={null} { "job_id": "3f9a...", "status": "...", "input": { "list_id": "b8f2c1d4-...", "row_count": 6, "entity_type": "business" }, "timing": { "created_at": "2026-08-09T10:00:00Z", "started_at": "2026-08-09T10:00:04Z", "finished_at": "2026-08-09T10:02:11Z" }, "credit_usage": { "total_credits": 6, "total_results": 6 }, "results": { "format": "csv", "download_url": "https://...", "expires_at": "2026-08-09T11:02:11Z", "file_expires_at": "2026-08-16T10:02:11Z" } } ``` > [!NOTE] > > Job states are `queued`, `running`, `succeeded`, `failed`, `cancelled`, and `expired`. The sample above keys off `results.download_url` and `error` rather than matching status text — the more robust pattern either way. ## Step 5 — Download the results `results.download_url` points at a CSV. Two expirations apply: | Field | What expires | Lifetime | | :- | :- | :- | | `expires_at` | The **download link** | About an hour after it is issued | | `file_expires_at` | The **result file** | 7 days after the job finishes | An expired link is not a problem — call the [status endpoint](/v2/jobs/get_job_status) again and it returns a freshly signed `download_url`. Once `file_expires_at` passes, though, the results are gone: download anything you want to keep within 7 days. ```bash cURL theme={null} curl --location --output firmographics.csv "PASTE_DOWNLOAD_URL" ``` ```python Python theme={null} csv_bytes = requests.get(results["download_url"]).content with open("firmographics.csv", "wb") as f: f.write(csv_bytes) print(f"wrote {len(csv_bytes):,} bytes to firmographics.csv") ``` *** ## Complete script Everything above, end to end: ```python async_enrich.py theme={null} import time import requests BASE = "https://api.explorium.ai" API_KEY = "YOUR_API_KEY" HEADERS = {"api_key": API_KEY} CSV_PATH = "sample-business-ids.csv" ENRICHMENT = "firmographics" # any business enrichment POLL_SECONDS = 30 def upload(path: str) -> str: """Upload a CSV of entity IDs and return its list_id.""" with open(path, "rb") as f: r = requests.post( f"{BASE}/v2/async/entity-id-datasets/upload", headers=HEADERS, files={"file": (path, f, "text/csv")}, data={ "entity_type": "business", "name": "async guide demo", "description": "Business IDs uploaded by the end-to-end guide", }, ) r.raise_for_status() d = r.json() print(f"uploaded {d['rowCount']} rows -> {d['list_id']}") return d["list_id"] def submit(list_id: str, enrichment: str) -> str: """Submit an async enrichment job and return its job_id.""" r = requests.post( f"{BASE}/v2/businesses/{enrichment}/job", headers={**HEADERS, "Content-Type": "application/json"}, json={"list_id": list_id}, ) r.raise_for_status() job_id = r.json()["job_id"] print(f"submitted job {job_id}") return job_id def wait_for(job_id: str) -> dict: """Poll until the job produces results or fails.""" while True: r = requests.get(f"{BASE}/v2/jobs/status/{job_id}", headers=HEADERS) r.raise_for_status() job = r.json() if job.get("error"): raise RuntimeError(f"job failed: {job['error']}") if job.get("results", {}).get("download_url"): return job print(f" status={job['status']} — checking again in {POLL_SECONDS}s") time.sleep(POLL_SECONDS) def download(job: dict, out_path: str) -> None: content = requests.get(job["results"]["download_url"]).content with open(out_path, "wb") as f: f.write(content) print(f"wrote {len(content):,} bytes to {out_path}") if __name__ == "__main__": list_id = upload(CSV_PATH) job_id = submit(list_id, ENRICHMENT) job = wait_for(job_id) usage = job.get("credit_usage", {}) print(f"{usage.get('total_results')} results for {usage.get('total_credits')} credits") download(job, f"{ENRICHMENT}.csv") ``` ## Cancelling a job If you submitted the wrong list or no longer need a run, cancel it rather than letting it finish and consume credits: ```bash cURL theme={null} curl --request POST \ --url https://api.explorium.ai/v2/jobs/cancel/JOB_ID \ --header 'api_key: YOUR_API_KEY' ``` ## Limits and gotchas | | | | :- | :- | | Max rows per dataset | 10,000 | | Max job run time | 24 hours | | Result format | CSV, via a signed URL | | Download link lifetime | \~1 hour — re-poll [job status](/v2/jobs/get_job_status) for a fresh link | | Result file retention | 7 days after the job finishes (`file_expires_at`) | | Dataset lifetime | Bounded — see `expiresAt` on upload | * **Async never takes inline IDs.** If you send `business_ids` to a `/job` endpoint it will be rejected; upload first and send `list_id`. * **Match `entity_type` to the endpoint.** A `business` dataset belongs to `/v2/businesses/...`, a `prospect` dataset to `/v2/prospects/...`. * **Poll on an interval**, not in a tight loop — jobs can run for a long time. * **Reuse one dataset across enrichments.** Upload once, then submit several jobs against the same `list_id`. ## Related > **[Async jobs](/v2/async-jobs)** > > Concepts and endpoint reference > **[Upload dataset](/v2/jobs/upload_entity_id_dataset)** > > Full request and response schema > **[Get job status](/v2/jobs/get_job_status)** > > Status fields and playground > **[Business enrichments](/v2/businesses/enrichments/overview)** > > Every enrichment and its async variant # Async job infrastructure Source: https://developers.explorium.ai/v2/async-jobs How AgentSource v2 async endpoints work: job submission, status polling, cancellation, dataset upload, and the input and runtime limits. ## Overview Every `.../job` endpoint in v2 runs through a shared async job layer. Instead of returning results inline, a job endpoint accepts your input and returns a job reference. You then poll for state and collect results. **1. Submit** Upload a CSV of entity IDs, then call any `.../job` endpoint with the returned `list_id` — for example [Firmographics (async)](/v2/businesses/enrichments/firmographics_job). **2. Poll** Call [Get job status](/v2/jobs/get_job_status) with the returned job ID to check state and retrieve results once complete. **3. Cancel (optional)** Call [Cancel job](/v2/jobs/cancel_job) to stop a job that is queued or running. ## Endpoints | Purpose | Endpoint | | :- | :- | | Job status and results | `GET /v2/jobs/status/{job_id}` | | List your jobs | `GET /v2/jobs` | | Cancel a job | `POST /v2/jobs/cancel/{job_id}` | | Upload an entity ID dataset as job input | `POST /v2/async/entity-id-datasets/upload` | Every `.../job` request also accepts an optional `notifications` object for email updates instead of polling: ```json theme={null} { "list_id": "b8f2c1d4-...", "notifications": { "email": { "enabled": true, "on": ["success", "failure"] } } } ``` The `on` list picks which terminal states trigger an email — `success`, `failure`, or both. Async jobs take their input **only** as an uploaded dataset — [upload your IDs](/v2/jobs/upload_entity_id_dataset) and pass the returned `list_id`. Inline IDs are not accepted. The [end-to-end guide](/v2/async-guide) walks through the whole flow. ## Limits | Limit | Value | | :- | :- | | Maximum input size per async enrichment | 10,000 records | | Maximum job run time | 24 hours | | Download link lifetime | \~1 hour — [re-poll status](/v2/jobs/get_job_status) for a fresh link | | Result file retention | 7 days after the job finishes | ## Which endpoints are async Every enrichment has an async variant — see the **Async** groups under Business enrichments and Prospect enrichments in the sidebar, or the [business](/v2/businesses/enrichments/overview) and [prospect](/v2/prospects/enrichments/overview) enrichment overviews. These are **sync only**: * Match, fetch, and stats for [businesses](/v2/businesses/fetch_businesses) and [prospects](/v2/prospects/fetch_prospects) * [Autocomplete](/v2/autocomplete) * [Credits](/v2/credits/get_credits) # Autocomplete Source: https://developers.explorium.ai/v2/autocomplete get /v2/autocomplete ## Description The **Autocomplete** endpoint provides **real-time suggestions** for filter fields, helping users quickly find relevant categories, locations, industries, and job attributes based on partial text input. This is useful for creating dynamic search fields and enhancing user experience in filtering interfaces. > [!NOTE] > > **One endpoint in v2.** Autocomplete is consolidated into a single `/v2/autocomplete` endpoint serving both business and prospect fields. The v1 split of `/v1/businesses/autocomplete` and `/v1/prospects/autocomplete` is gone — point every autocomplete call at `/v2/autocomplete` and select what you want with the `field` parameter. > **Coverage** > > | Attribute | Coverage Details | > | :- | :- | > | **Supported Fields** | Country, Region, Google Category, NAICS Category, LinkedIn Category, etc. | > | **Geographic Scope** | Supports 150+ countries | > | **Response Time** | Optimized for real-time autocomplete functionality | > **How It Works** > > * **Input:** Specify a field type (`country`, `region_country`, etc.) and provide a partial query string. > * **Processing:** The system searches through indexed datasets to return the most relevant suggestions. > * **Output:** A structured response containing suggested values for the given input. > **Query Parameters** > > | Parameter | Type | Description | > | :- | :- | :- | > | `field` | String | The field for which autocomplete is requested (e.g., `country`, `industry`). | > | `query` | String | Partial text input to generate suggestions. | > | `semantic_search` | Boolean | Optional. When `true`, enables semantic autocomplete to return a broader, topic-aware set of suggestions. This parameter is intended for use with the `business_intent_topics` field. | > **Example Request (cURL)** > > Example with contry field. > > ```shell Bash theme={null} > curl -X GET \ > "https://api.explorium.ai/v2/autocomplete?field=country&query=unit" \ > -H "API_KEY: your_api_key_here" > ``` > > Example with business\_intent\_topics field. > > ```shell Bash theme={null} > curl -X GET \ > 'https://api.explorium.ai/v2/autocomplete?query=cloude&semantic_search=true&field=business_intent_topics' \ > -H "API_KEY: your_api_key_here" > ``` > **Example Response** > > Example with contry field. > > ```json JSON theme={null} > [ > { > "query": "unit", > "label": "United States", > "value": "us" > }, > { > "query": "unit", > "label": "United Kingdom", > "value": "gb" > }, > { > "query": "unit", > "label": "United Arab Emirates", > "value": "ae" > }, > { > "query": "unit", > "label": "Tanzania, United Republic Of", > "value": "tz" > }, > { > "query": "unit", > "label": "United States Minor Outlying Islands", > "value": "um" > } > ] > ``` > > Example with business\_intent\_topics field. > > ```json JSON theme={null} > > [ > { > "query": "cloude", > "label": "cloud: cloud data", > "value": "cloud: cloud data" > }, > { > "query": "cloude", > "label": "business solutions: cloudapp", > "value": "business solutions: cloudapp" > }, > { > "query": "cloude", > "label": "cloud: cloud integration", > "value": "cloud: cloud integration" > }, > { > "query": "cloude", > "label": "media & advertising: cloudimage", > "value": "media & advertising: cloudimage" > }, > { > "query": "cloude", > "label": "technology: cloudsuite", > "value": "technology: cloudsuite" > }, > { > "query": "cloude", > "label": "cloud: cloud applications", > "value": "cloud: cloud applications" > }, > { > "query": "cloude", > "label": "technology: cloudsense", > "value": "technology: cloudsense" > }, > { > "query": "cloude", > "label": "technology: cloudnine", > "value": "technology: cloudnine" > }, > { > "query": "cloude", > "label": "cloud: cloud server", > "value": "cloud: cloud server" > }, > { > "query": "cloude", > "label": "technology: cloudflare", > "value": "technology: cloudflare" > }, > { > "query": "cloude", > "label": "ecommerce: cloudcraze", > "value": "ecommerce: cloudcraze" > }, > { > "query": "cloude", > "label": "business services: mapp cloud", > "value": "business services: mapp cloud" > }, > { > "query": "cloude", > "label": "business services: cloudbees", > "value": "business services: cloudbees" > }, > { > "query": "cloude", > "label": "cloud: multicloud", > "value": "cloud: multicloud" > }, > { > "query": "cloude", > "label": "technology: content+cloud", > "value": "technology: content+cloud" > }, > { > "query": "cloude", > "label": "cloud: cloud management", > "value": "cloud: cloud management" > }, > { > "query": "cloude", > "label": "cloud: cloud management platform", > "value": "cloud: cloud management platform" > }, > { > "query": "cloude", > "label": "technology: cloud essentials", > "value": "technology: cloud essentials" > }, > { > "query": "cloude", > "label": "technology: cloudinary", > "value": "technology: cloudinary" > } > ] > > ``` > **Supported Autocomplete Fields & Example Inputs** > > The businesses and prospects autocomplete endpoints support the same set of fields. > > | **Filter** | **Description** | **Example Input** | > | :- | :- | :- | > | `country` | Autocomplete for country names | `"Uni"` → United States, United Kingdom | > | `country_code` | Autocomplete for country codes (ISO 2-letter) | `"US"` → United States | > | `region_country_code` | Autocomplete for region-based country codes | `"EU"` → European Union countries | > | `google_category` | Google's business category classification | `"E-com"` → E-commerce | > | `naics_category` | Industry classification based on NAICS codes | `"541512"` → Computer Systems Design Services | > | `linkedin_category` | Industry classification from LinkedIn data — full list also available [as a CSV](https://assets.explorium.ai/reference/linkedin_categories.csv) | `"Retail"` → Retail Industry | > | `company_tech_stack_tech` | Technologies used by a company | `"Cloud"` → Cloud Computing, Cloud Security | > | `company_tech_stack_categories` | Technology categories used by the company | `"Marketing"` → CRM, AdTech | > | `job_title` | Autocomplete for job titles | `"Soft"` → Software Engineer, Software Developer | > | `company_size` | Autocomplete for company sizes (by number of employees) | `"500"` → Companies with \~500 employees | > | `company_revenue` | Revenue-based classification (**K, M, B, T** for thousands, millions, billions, trillions) | `"100M"` → \$100 Million+ | > | `number_of_locations` | Number of physical company locations | `"1"` → Companies with a single location | > | `company_age` | Company age in years | `"10"` → Companies older than 10 years | > | `job_department` | Autocomplete for job departments | `"Eng"` → Engineering, Product Engineering | > | `job_level` | Job seniority levels | `"Senior"` → Senior Manager, Senior Engineer | > | `skills` | Skills listed on a prospect's profile | `"Pyth"` → Python, Python Scripting | > | `interests` | Professional interests listed on a prospect's profile | `"Sustain"` → Sustainability, Sustainable Energy | > | `city_region_country` | Combined location filter by city, region, and country | `"New York, NY, US"` → Companies in New York | > | `company_name` | Filter by company name | `"Meta"` → Meta Platforms Inc. | > | `business_intent_topics` | Business intent topics — It is recommended to use `semantic_search=true` to receive a broader and smarter autocomplete result that identifies wider semantic connections to the searched term. | `"cloud"` → technology: cloudflare, cloud: cloud server | > **Best Practices** > > * **Use precise queries** to get the most relevant autocomplete results. > * Enable `semantic_search=true` when working with **business intent topics** to receive broader, smarter, and semantically-aware suggestions. > * **Optimize search fields** by implementing real-time feedback mechanisms. > * **Restrict field selection** to avoid unnecessary queries and improve API efficiency. > * **Combine with filtering APIs** to refine user selections dynamically. For detailed endpoint explanations, request examples, and integration tips, explore the documentation sections above. ## Body Params - Try Me Example ``` field: country query: unit ``` # Bombora intent Source: https://developers.explorium.ai/v2/businesses/enrichments/bombora_intent_enrich post /v2/businesses/bombora_intent/enrich ### **Description** The **Business Intent Topics (Bombora)** enrichment reveals which topics companies are actively researching online, providing deeper visibility into their current business interests and buying intent. Powered by **Bombora’s weekly intent dataset**, it analyzes topic-level content consumption patterns to detect **surging interest and engagement signals** at the company level. For each input company (`business_id`), the enrichment returns a **ranked list of intent topics** with a **composite score above 60**, grouped by category and timestamped by week. The results highlight which topics a company is researching most intensely and classify them by **intent level** (e.g., *In-Depth, Active, Early*). This enrichment is particularly useful for: * **Sales prioritization:** Identify accounts actively researching your solution space. * **Intent-based marketing:** Personalize outreach based on buyer interest. * **ABM activation:** Power account-based strategies with real-time buying signals. * **Pipeline acceleration:** Engage prospects showing increased purchase readiness. **Refresh cadence:** Weekly Raw intent data powered by: ![Image(1) Pn](https://mintcdn.com/explorium/A57UfI15CwwyCW1n/download.png?fit=max\&auto=format\&n=A57UfI15CwwyCW1n\&q=85\&s=47570f6761a173bc05600b16a228fb01) *** > [!NOTE] > > **v2:** this endpoint accepts either a single ID (a string) or a list of up to 50 IDs — the separate `/bulk_enrich` route is gone. See [v2 conventions](/v2/conventions). ## Enrich by company details instead of IDs `business_ids` is the primary way to call this endpoint. If you don't have Explorium IDs yet, you can send `businesses_to_match` instead: up to 50 companies, described with the same fields the [Match businesses](/v2/businesses/match_businesses) endpoint accepts (`name`, `domain`, `url`, `linkedin_url`). Each company is matched and enriched in the same call. Send **either** `business_ids` **or** `businesses_to_match`, never both (that returns a `422`). Any `parameters` the endpoint takes work the same either way. ```json Request body theme={null} { "businesses_to_match": [ { "name": "Explorium", "domain": "explorium.ai" }, { "name": "Unknown Co", "domain": "unknown-co.example" } ] } ``` ```json Response (data shortened) theme={null} { "response_context": { "correlation_id": "ebe38f2b99ad423e84f93d2be5e75b20", "request_status": "success", "time_taken_in_seconds": 5.38 }, "data": [ { "input": { "name": "Explorium", "domain": "explorium.ai", "url": null, "linkedin_url": null }, "business_id": "340c8040bd50cbab9c7df718bbe51cc9", "data": { "business_id": "340c8040bd50cbab9c7df718bbe51cc9", "...": "same fields as an ID-based request" }, "warnings": [] }, { "input": { "name": "Unknown Co", "domain": "unknown-co.example", "url": null, "linkedin_url": null }, "business_id": null, "data": null, "warnings": [] } ], "total_results": 1, "total_matches": 1 } ``` Each row echoes its `input` and returns the matched `business_id`. Companies that don't match come back with `business_id: null` and `data: null`, and aren't charged. `total_matches` counts the matched rows. > **How It Works** > > ### **Input** > > Provide a list of `business_id` values obtained from the **Match Businesses API**. > > **Parameters:** > > * `topic_parameters` — semicolon-separated list of "category: topic" filters\ > (e.g., `technology: ios;other: vendor profiling`). > > To build this list, use the Autocomplete endpoint with`business_intent_topics` — and preferably `semantic_search=true` — to retrieve a broader, smarter set of intent topics. This ensures your topic list is accurate, relevant, and aligned with Bombora’s taxonomy.\ > You can also download the full topics list if needed (see details below). > > * `min_score` — optional integer > 60. If omitted, the default threshold is 60. > > > 💡 **Recommendation:**\ > > To achieve a meaningful and accurate measurement of intent, it is strongly recommended to include **at least 12 topics** that reflect the company’s genuine areas of interest.\ > > Providing too few topics — or omitting the list entirely — will return *all* available topics for the company, which may include many unrelated subjects and lead to misleading or noisy intent insights. > > ### **Intent Topics Reference List** > > There are two ways to discover valid intent topics for the `topics` parameter: > > > **[Autocomplete API](/reference/businesses/autocomplete)** > > > > Query the Autocomplete endpoint with `business_intent_topics` (preferably with `semantic_search=true`) to interactively find topics relevant to your use case. > > > **[Download Full Topics List (CSV)](https://assets.explorium.ai/reference/bombora/bombora-topics.csv)** > > > > Download the complete list of supported Bombora intent topics as a CSV file. The list is refreshed weekly to stay aligned with Bombora's taxonomy. > > > [!NOTE] > > > > The CSV contains a single `intent_topic` column, with each row formatted as `category: topic` (e.g., `accounting: accounts payable`) — the exact format expected by the `topics` parameter. The file is automatically regenerated **once a week** to reflect the latest Bombora taxonomy, so we recommend re-downloading it periodically rather than caching a local copy long-term. > > ### **Processing** > > The enrichment process queries Bombora’s weekly dataset to identify surging topics for each company in the provided list.\ > Only topics with `composite_score >= threshold` are returned, where: > > * `threshold = min_score` (if provided and >60) > * otherwise `threshold = 60` (default) > > *** > > ### **Output** > > Returns, for each input business\_id, the company’s top intent topics, including the composite score, engagement level, and weekly timestamp. > **Example — Request with `min_score` & Response** > > ```json theme={null} > curl -X 'POST' \ > 'https://api.explorium.ai/v2/businesses/bombora_intent/enrich' \ > -H 'accept: application/json' \ > -H 'api_key: "your api_key" \ > -H 'Content-Type: application/json' \ > -d '{ > "request_context": {}, > "parameters": { > "topics": [ > "training & development: corporate universities;training & development: career management;training & development: group coaching;training & development: classroom management;training & development: experiential learning;training & development: gmat test preparation;training & development: seminars and educational programs;training & development: sat preparation;training & development: team building;training & development: gmat test preparation;training & development: essential skills;training & development: gre test preparation" > ], > "min_score": 76 > }, > "business_id": "8adce3ca1cef0c986b22310e369a0793" > } > ``` > > ```json theme={null} > { > "response_context": { > "correlation_id": "34e96a94f55d40a18994f55b2f36ecb8", > "request_status": "success", > "time_taken_in_seconds": 43.515 > }, > "data": { > "business_id": "8adce3ca1cef0c986b22310e369a0793", > "company_name": "apple", > "company_website": "apple.com", > "date_stamp": "20251102", > "intent_topics": "[{\"topic\":\"training & development: gmat test preparation\",\"composite_score\":76},{\"topic\":\"training & development: seminars and educational programs\",\"composite_score\":82},{\"topic\":\"training & development: classroom management\",\"composite_score\":77},{\"topic\":\"training & development: experiential learning\",\"composite_score\":76}]", > "level_of_intent": "In Depth Research", > "topic_count": "4 / 12" > } > } > ``` > **Best Practices** > > * **`Always provide valid business_id inputs`** retrieved from the **Match Businesses** API. > * **`Specify topic_parameters`** to focus enrichment results on relevant industries or technologies. > * **`Use min_score`** only if you wish to raise the threshold above 60 — values ≤60 are not valid. > * **Check for null values** — if Bombora has no data for a given domain, all topic-related fields will return null. > * **Combine intent data** with firmographic and technographic enrichments for full go-to-market insights. > * **Use the Autocomplete endpoint** with `business_intent_topics` — and preferably `semantic_search=true` — to build accurate and relevant `topic_parameters` before running enrichment. > **Intent Topics Output Signals** > > | Signal | API Name | Description | Data Type | > | - | - | - | - | > | level\_of\_intent | Level of Intent | Indicates how actively a company engaged with selected topics during the past week. **Calculation:** Number of topics with a composite score above 25% **divided by** the total number of input topics. **Ranges:** • >25% → *In-Depth Research* • 5–25% → *Active Research* • \<5% → *Early Research* **Recommendation:** To ensure a meaningful and accurate reflection of intent, it is recommended to input **at least 12 topics**that are relevant to the areas of interest. Returns `null` when no input topics are available. | CATEGORY | > | topic\_count | Topic Count | Shows the number of topics with a composite score above 60, relative to all topics evaluated (e.g., 5/5). When no input topics are provided, all topics are returned. | TEXT | > | intent\_topics | Intent Topics | Contains an array of objects summarizing the company’s active interest in specific Bombora topics over a given week. Each object includes the topic name, category, composite score, and date. | TEXT | > | company\_website | Company Website | The company’s primary website or domain URL. | URL | > | company\_name | Company Name | The official or recognized name of the company. | TEXT | > | date\_stamp | date | The date of the most recent Bombora data file (weekly), in format YYYYMMDD | TEXT | 📌 \_For additional enrichment options, explore related API endpoints below. # Bombora intent (async) Source: https://developers.explorium.ai/v2/businesses/enrichments/bombora_intent_job post /v2/businesses/bombora_intent/job ### **Description** The **Business Intent Topics (Bombora) — Asynchronous** enrichment enables you to retrieve intent topic insights for **multiple businesses in a single request**.\ It reveals which topics each company is actively researching online, offering comprehensive visibility into collective business interests and buying intent across a portfolio of accounts. Powered by **Bombora’s weekly intent dataset**, the enrichment analyzes topic-level content consumption patterns to detect **surging interest signals** and **engagement intensity** at the company level. For each provided company (`business_id`), the enrichment returns a **ranked list of intent topics** with a **composite score above 60**, grouped by category and timestamped by week.\ The results highlight which topics each business is researching most intensely and classify them by **intent level** (*In-Depth, Active, Early*). This enrichment is particularly useful for: * **Account prioritization:** Identify which companies across your target list are currently researching relevant topics. * **Intent-driven segmentation:** Group accounts by research activity and level of engagement. * **ABM automation:** Scale intent-based personalization to entire account lists. * **Pipeline acceleration:** Detect surging interest signals across multiple prospects simultaneously. **Refresh cadence:** Weekly Raw intent data powered by: ![Image(1) Pn](https://mintcdn.com/explorium/A57UfI15CwwyCW1n/download.png?fit=max\&auto=format\&n=A57UfI15CwwyCW1n\&q=85\&s=47570f6761a173bc05600b16a228fb01) *** > [!NOTE] > > **Asynchronous variant.** This submits a job through the [async job infrastructure](/v2/async-jobs) — poll [job status](/v2/jobs/get_job_status) for progress and results. Input comes from an uploaded dataset (`list_id`); limits are 10,000 rows and a 24-hour run time. > > For the full output signal reference, see [the synchronous endpoint](/v2/businesses/enrichments/bombora_intent_enrich). > **How It Works** > > ### **Input** > > Provide a list of `business_id` values obtained from the **Match Businesses API**. > > **Optional parameters:** > > * `topic_parameters` — semicolon-separated list of "category: topic" filters (e.g., `technology: ios;other: vendor profiling`). > * To build this list, use the Autocomplete endpoint with `business_intent_topics` — and preferably `semantic_search=true` — to retrieve a broader, smarter set of intent topics. > > This ensures your topic list is accurate, relevant, and aligned with Bombora’s taxonomy. > > * `min_score` — optional integer > 60. If omitted, the default threshold is 60. > > > 💡 **Recommendation:**\ > > To achieve a meaningful and accurate measurement of intent, it is strongly recommended to include **at least 12 topics** that reflect the company’s genuine areas of interest.\ > > Providing too few topics — or omitting the list entirely — will return *all* available topics for the company, which may include a wide variety of unrelated subjects and lead to misleading or noisy intent insights. > > *** > > ### **Processing** > > The enrichment process queries Bombora’s weekly dataset to identify surging topics for each company in the provided list.\ > Only topics with `composite_score >= threshold` are returned, where: > > * `threshold = min_score` (if provided and >60) > * otherwise `threshold = 60` (default) > > *** > > ### **Output** > > Returns, for each input business\_id, the company’s top intent topics, including the composite score, engagement level, and weekly timestamp. > **Example — Request with `min_score` & Response** > > ```json theme={null} > curl -X 'POST' \ > 'https://api.explorium.ai/v2/businesses/bombora_intent/job' \ > -H 'accept: application/json' \ > -H 'api_key: "your api_key" \ > -H 'Content-Type: application/json' \ > -d '{ > "request_context": {}, > "parameters": { > "topics": [ > "training & development: corporate universities;training & development: career management;training & development: group coaching;training & development: classroom management;training & development: experiential learning;training & development: gmat test preparation;training & development: seminars and educational programs;training & development: sat preparation;training & development: team building;training & development: gmat test preparation;training & development: essential skills;training & development: gre test preparation" > ], > "min_score": 76 > }, > "business_id": ["8adce3ca1cef0c986b22310e369a0793"] > } > ``` > > ```json theme={null} > { > "response_context": { > "correlation_id": "34e96a94f55d40a18994f55b2f36ecb8", > "request_status": "success", > "time_taken_in_seconds": 43.515 > }, > "data": { > "business_id": "8adce3ca1cef0c986b22310e369a0793", > "company_name": "apple", > "company_website": "apple.com", > "date_stamp": "20251102", > "intent_topics": "[{\"topic\":\"training & development: gmat test preparation\",\"composite_score\":76},{\"topic\":\"training & development: seminars and educational programs\",\"composite_score\":82},{\"topic\":\"training & development: classroom management\",\"composite_score\":77},{\"topic\":\"training & development: experiential learning\",\"composite_score\":76}]", > "level_of_intent": "In Depth Research", > "topic_count": "4 / 12" > } > } > ``` > **Best Practices** > > * **`Always provide valid business_id inputs`** retrieved from the **Match Businesses** API. > * **`Specify topic_parameters`** to focus enrichment results on relevant industries or technologies. > * **`Use min_score`** only if you wish to raise the threshold above 60 — values ≤60 are not valid. > * **Check for null values** — if Bombora has no data for a given domain, all topic-related fields will return null. > * **Combine intent data** with firmographic and technographic enrichments for full go-to-market insights. > * **Use the Autocomplete endpoint** with `business_intent_topics` — and preferably `semantic_search=true` — to build accurate and relevant `topic_parameters` before running enrichment. > **Intent Topics Output Signals** > > | Signal | API Name | Description | Data Type | > | - | - | - | - | > | level\_of\_intent | Level of Intent | Indicates how actively a company engaged with selected topics during the past week. **Calculation:** Number of topics with a composite score above 25% **divided by** the total number of input topics. **Ranges:** • >25% → *In-Depth Research* • 5–25% → *Active Research* • \<5% → *Early Research* **Recommendation:** To ensure a meaningful and accurate reflection of intent, it is recommended to input **at least 12 topics**that are relevant to the areas of interest. Returns `null` when no input topics are available. | CATEGORY | > | topic\_count | Topic Count | Shows the number of topics with a composite score above 60, relative to all topics evaluated (e.g., 5/5). When no input topics are provided, all topics are returned. | TEXT | > | intent\_topics | Intent Topics | Contains an array of objects summarizing the company’s active interest in specific Bombora topics over a given week. Each object includes the topic name, category, composite score, and date. | TEXT | > | company\_website | Company Website | The company’s primary website or domain URL. | URL | > | company\_name | Company Name | The official or recognized name of the company. | TEXT | > | date\_stamp | date | The date of the most recent Bombora data file (weekly), in format YYYYMMDD | TEXT | 📌 \_For additional enrichment options, explore related API endpoints below. # Company hierarchies Source: https://developers.explorium.ai/v2/businesses/enrichments/company_hierarchies_enrich post /v2/businesses/company_hierarchies/enrich ## **Description** The **Company Hierarchies Enrichment** endpoint provides a **structured view of a company's corporate hierarchy**, including its parent company, ultimate parent entity, and any known subsidiaries. This proprietary enrichment, developed by **Explorium AI**, enables users to explore the broader organizational structure a company belongs to — supporting **smarter prospect targeting, whitespace discovery, and coordinated expansion strategies** across related entities. In addition to delivering a **full JSON representation** of the organization tree (anchored by a unique ultimate parent ID), the enrichment provides **structured relationship signals** describing connections between entities, such as immediate parents and subsidiaries. This offers both a **comprehensive** and **queryable** view of corporate relationships. By surfacing these connections, the enrichment helps to: * Identify opportunities to grow within enterprise groups. * Tailor engagement by specific business units. * Coordinate account strategies across entities under shared ownership. > [!NOTE] > > **v2:** this endpoint accepts either a single ID (a string) or a list of up to 50 IDs — the separate `/bulk_enrich` route is gone. See [v2 conventions](/v2/conventions). ## Enrich by company details instead of IDs `business_ids` is the primary way to call this endpoint. If you don't have Explorium IDs yet, you can send `businesses_to_match` instead: up to 50 companies, described with the same fields the [Match businesses](/v2/businesses/match_businesses) endpoint accepts (`name`, `domain`, `url`, `linkedin_url`). Each company is matched and enriched in the same call. Send **either** `business_ids` **or** `businesses_to_match`, never both (that returns a `422`). Any `parameters` the endpoint takes work the same either way. ```json Request body theme={null} { "businesses_to_match": [ { "name": "Explorium", "domain": "explorium.ai" }, { "name": "Unknown Co", "domain": "unknown-co.example" } ] } ``` ```json Response (data shortened) theme={null} { "response_context": { "correlation_id": "ebe38f2b99ad423e84f93d2be5e75b20", "request_status": "success", "time_taken_in_seconds": 5.38 }, "data": [ { "input": { "name": "Explorium", "domain": "explorium.ai", "url": null, "linkedin_url": null }, "business_id": "340c8040bd50cbab9c7df718bbe51cc9", "data": { "business_id": "340c8040bd50cbab9c7df718bbe51cc9", "...": "same fields as an ID-based request" }, "warnings": [] }, { "input": { "name": "Unknown Co", "domain": "unknown-co.example", "url": null, "linkedin_url": null }, "business_id": null, "data": null, "warnings": [] } ], "total_results": 1, "total_matches": 1 } ``` Each row echoes its `input` and returns the matched `business_id`. Companies that don't match come back with `business_id: null` and `data: null`, and aren't charged. `total_matches` counts the matched rows. > **How It Works** > > * **Input:** Provide a `business_id` obtained from the **Match Businesses** API. > * **Processing:** The system retrieves all known relationships in the corporate hierarchy from multiple verified datasets. > * **Output:** A structured JSON and set of signals detailing immediate parent companies, ultimate parents, and subsidiaries, as well as a full organization tree view. > **Example Request (cURL)** > > ```bash Bash theme={null} > curl -X 'POST' \ > 'https://api.explorium.ai/v2/businesses/company_hierarchies/enrich' \ > -H 'accept: application/json' \ > -H 'api_key: your_api_key_here' \ > -H 'Content-Type: application/json' \ > -d '{ > "request_context": {}, > "business_id": "f21530ca2ee13d38c434cff9f6f56726" > }' > ``` > **Example Response** > > ```json JSON expandable theme={null} > "data": { > "business_id": "f21530ca2ee13d38c434cff9f6f56726", > "parent_company_id": "e11943a6031a0e6114ae69c257617980", > "parent_company_name": "pepsico", > "ultimate_parent_id": "e11943a6031a0e6114ae69c257617980", > "ultimate_parent_name": "pepsico", > "subsidiaries": [ > { > "id": "57e40bf2ab85ec3c8368dbe8b57830f7", > "name": "soda club worldwide bv" > }, > { > "id": "9d0b83a3cbbba4406a24caae8e3bbadc", > "name": "opm" > } > ], > "organization_tree": [ > { > "level": 0, > "companies": [ > { > "id": "e11943a6031a0e6114ae69c257617980", > "name": "pepsico", > "parent_id": null, > "parent_name": null > } > ] > }, > { > "level": 1, > "companies": [ > { > "id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "name": "frito lay", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "98ad83bef31de50b0ce05ea49f3c8a0c", > "name": "popify healthy popify", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "6a98d376661629d65b4dd896dc8e3c9c", > "name": "lipton distributing", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "a9b71aed7925eb2177271b40384376c1", > "name": "dorios", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "c5bfcfde8643f8870b5c5cbecb75cd22", > "name": "simba", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "2597c8a09330d41031aa5499da6cc6c6", > "name": "school henri sellier", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "8c89053fcc330560fdee8763717fad13", > "name": "sansations", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "89df543ad4398dd304ff649d7ddba629", > "name": "punjab beverages private", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "21ca21c9c039c3bc8ed1eb9a3429758b", > "name": "pepsico zapadni balkan", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "name": "pioneer foods", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "339d5abde32f46bf69757d54f31f4cee", > "name": "pepsi nederland", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "823c0d34f83c8ddf72bcacddc43f46d2", > "name": "penny’s popping delights", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "fb9d57398f2134ec21497da01d6e9401", > "name": "sakata australia", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "ca3536b266deeae3acab935fb706a564", > "name": "burggraaff", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "c84141182fb84e1d5aa60f849baf2a57", > "name": "sete culleres", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "0e3fdbd47e5795aec6bfe78d69ef00b4", > "name": "sietie kale", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "99d9b2f3459599ca2f88fcf2b286df7c", > "name": "the honickman companies", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "ee02469ae419a436f068ecfed4da48b7", > "name": "mothers sppl", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "94040c8c87824a38f04785f53948a207", > "name": "uncle peps", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "5ac3e9bed7f729a9e4eb2a8db401334b", > "name": "frito lay trading", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "78ab069ccb7691aa7fc71f8a03716417", > "name": "quaker oats", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "c78be13c3e2367406861edf85b5a5cfc", > "name": "sodastream uk", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "f202de524e28d8a7a81e3d87c55a75d2", > "name": "cetap distribuidora de produtos alimentícios", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "25f0faf77dc76db9d9a8dfbf921a1423", > "name": "baya daily", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "e23decc05de726103bf49db606eff51a", > "name": "tropicana", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "cc955400fca4c95e1fecdef1d975d2da", > "name": "mid wisconsin beverage", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "eb402529d376e65d4cfdc0a6c75ababf", > "name": "g and j pepsi cola bottlers", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "810d9b260aebe7a239023773d646cf2b", > "name": "aquadina", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "d99efa5dc005d66278458d7866b3c524", > "name": "pepsi arabia", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "bd9fd809bbe83ead5afd8d136c01c917", > "name": "united beverage kscc", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "09b56387febb985ce677adf869869938", > "name": "pepsi cola ogdensburg bottlers", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "c02909917517b52d390c7740b1d35a88", > "name": "marbo promotions", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "b5bbc68c24a953801f069f468d5592be", > "name": "devendra kumar", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "d5dd6578fedb045d1f93daf8f393cd32", > "name": "rockstar energy drink", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "9ce986871ec0fd728ccd5db678aa733c", > "name": "cheetos", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "0d7fe8b2df998fca4666213d38245f07", > "name": "grupo mabel", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "83d303f71ef8937a131dc08415d6ff1b", > "name": "myx beverage", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "89b58d1cf79c96542ac72f5e55a5ba7d", > "name": "pepsi cola and national brand beverage", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "bd0f59ab548e8e670fcd7747c2dddfff", > "name": "naked dates", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "407a7ad5c0dbe373b2928c1635e94102", > "name": "acadiana bottling", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "9d2a94578afaf9d49c96a8251a313683", > "name": "pepsi bottling ventures", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "4d83c1f36eef76160436cb97e1dc7059", > "name": "kfc us", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "7a6bc6936340393d05e7c8f98af25d63", > "name": "natural food international holding", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "7658ab0c2a620e326f8ce0499e1f6070", > "name": "dew drinks", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "c6ea063ff49e32a13a83a290c47ac28c", > "name": "pep abcd/karea", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "61f483dfda0f356d3842d4a80ce8b953", > "name": "pesi oficial", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "b796578810ec189a6e101220cd22fa4d", > "name": "yachak", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "1f8dc3596d1182a41286fe401658a5f6", > "name": "gatorade colombia pepsico", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "0362c29fde7ebb605534d6b8acf16fb1", > "name": "siete suertes", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "c20f2ae69af3b64e34a59583f81ac1b5", > "name": "crown beverages", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "cace29537bcc18f95d72370b76276a6a", > "name": "sodastream switzerland", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "c4c5d723742f6e4a2cbc7d6f6dad63b0", > "name": "sabra dipping", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "8883c9ba1a7e5b4c62197752bc7446e8", > "name": "dubecq", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "ac1639957081867ab311dfe3c48a3f92", > "name": "pepsi cola bottling of bennettsville", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "b54ae2473115787ab98b01616dc31ca1", > "name": "mug lovers", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "de9abe5a3c777ce012c2efef4eec45f0", > "name": "menabev", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "fce54aa61accfd57a46ba4aa43b3ac93", > "name": "pepsi jordan jice", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "6619545e0f4581d13abe21dde8d86cb2", > "name": "poppy incorporation", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "9a599d28b673d4b7207c001593a8a4e9", > "name": "simba foods", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "cba91f9ad2240bf7170d3722dd82f842", > "name": "manzanita sweets", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "528c6f57242b7e9d3dfbebcc5931308a", > "name": "smlc pepsico", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "545161b9e8ee55abb080695e3b95985f", > "name": "pepsi cola of florence", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "3e6c0b944522118787d0646a1120b0a8", > "name": "rockstar energy", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "dc79af02db756e1df6699bfa75559511", > "name": "pl di poppi luigi", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "c790c0f4ee47ea44ab19c3b0827fb15f", > "name": "poppy miles", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "ec5d8c4cb3df83844b61c122aadef27a", > "name": "siete en el", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "c4bebde456a9191939e17445b3b9dc97", > "name": "siete family foods", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "5aa5da5bce3b3bfd2bd6fa135b2060bc", > "name": "go snacks", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "7c17487043008cabdc46192500ef0e43", > "name": "i’ve got the vapors", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "94642ee007bdfe1d29211ace88cc3bd9", > "name": "walkers outdoors", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "28d2354de3979b27017904824b5ca529", > "name": "middle school henri martin", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "6451214c67ba46cc196cd9a38e6f2e32", > "name": "smv beverages", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "2506d1b38988bee8ad5bbc9ba57a7d39", > "name": "pepsi cola bottling of davenport", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "77bbb6ded53339f8c3d295e39d7756ec", > "name": "poppy international", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "6bd184efa33d2583f84251ece3c8fc25", > "name": "poppi", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "4f32da08427f05c42802bd7620c6ace0", > "name": "poppi group", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "82c89e8e7eb5ce7805fd6ac346647dda", > "name": "gatorade dominicana", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "890d36c0c7508149e722dface4c54a72", > "name": "haidri beverages pepsicola international franchise", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "c962eb0dae0b5ac5d62e91743ba72435", > "name": "jksm pepsi cola bottlers multan", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "1d731bc9ce0416f655590993cae433f3", > "name": "sodastream south africa", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "8eb7d933ecc8c801a509c9019d525d56", > "name": "obela fresh dips and spreads anz", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "d2db85ec0503b7031f2ce59d897ecff1", > "name": "gluki", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "d392fea9012b5832635c1bbe2d6c8591", > "name": "rockstar on campus", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "fcee97d3e9a79563355af5289071ded5", > "name": "pephire", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "26b6d54625d0081df08f5ba590bd68a9", > "name": "aquafina india", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "262e5d6ad0be9e81ba280ef9d621dce7", > "name": "sobe gourmet", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "358b57af1dba500174e7daf92c9805f1", > "name": "carolina canners", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "e05340c95125b27413de0977828787ef", > "name": "tropicana uk", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "563bbc252d4ba2ddc1936f4b0d5ec709", > "name": "munchies medley", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "7ef51cb365494cf3f0144d6949cf9f4c", > "name": "pepsico south africa", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "ba3fa1caaf49edc9f136affe733c7783", > "name": "pepsi bottlers azerbaijan mars overseas baku career page", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "a5e22087d44a8692762edcc846a1e61b", > "name": "the smiths snackfood pty", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "afa7448b2bc2ecbafef63f2a13b4b0ee", > "name": "bardal siete", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "7caadae2659c8f59af274e43f501e9c5", > "name": "pepsi cola products philippines incpcppi", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "b753a8e307ed0da0a84ca2cbbe399c0b", > "name": "starry foods usa // savvy foods mx", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "0ce7d42aa27e5fc51d29faadf1d81869", > "name": "van dusen beverages pepsi cola bottling of astoria", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "d6a8f998d5300ab66be83af8bb0ce3fb", > "name": "pissa", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "74db08a8fe585f251950ebb2f41bb338", > "name": "poppy love", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "afd5ad21be3a753f078a16155af682ab", > "name": "rockstar energy drink car wrap", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "5ae2fb8a81f7126d1106297860c17b13", > "name": "rockster south africa", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "75e88a931c836df644af54f5eec48044", > "name": "pepsi naubahar bottling", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "cbd89e6817dc83bfda5010abf772819d", > "name": "sabra int", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "ea65b9c5bdce05c49b0248198ade4d3a", > "name": "stars food", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "8163c9186ce11dec22be1ba406326db3", > "name": "health warriors", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "71f1e474d21289c31bdb61bdc3488a3f", > "name": "poppy and sebastian", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "7e1d04bd63ec4882ad225ec548802d32", > "name": "poppy and pops", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "89af92d2faafbd69f262e558c7131d3d", > "name": "snack and drink", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "36923eebf673c2ee8b27c0816681c078", > "name": "international refreshments pepsico", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "85fdac95ab489a9545bda1d667a5f8c0", > "name": "pepsi cola champaign urbana bottling", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "1677e0f46933df4f5300254617686938", > "name": "siete banderas", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "34c88c2b689c4a1eba64b872ea1880c9", > "name": "future life solution", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "4eb065d04a42b9dd213718c05a0a5db6", > "name": "futured life", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "5d34f3b10fb042e724a72af66a4bb145", > "name": "pangiter", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "d2e9c95e1722ac0a89f3fab4562b76ac", > "name": "bare", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "565bcafb4fd59f15e547aed83ed06187", > "name": "sabra mediterranean grill", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "3da21a761e769bd0ecdefc8d8ff09702", > "name": "pepsi cola bottlers australia", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "a63036881f581ffdf78f4cef2c7ebc87", > "name": "pepi sánchez", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "db6eaf69eef8acf7c6832ca23d7fa753", > "name": "stacys gluten free goodies", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "df828de99c5ae25a6f3db38dae2b26b8", > "name": "pepsi cola bottlers lahore", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "bf8f75f9d571b2e688028333b382947b", > "name": "ип ооо international beverages tashkent pepsico bottlers in uzbekistan", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "4adeb3008e38a0a92d9d3570b732c4e0", > "name": "iberia refreshments pepsico bottler in georgia", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "9fe8340ae191083c6ed933a7f56ed9d6", > "name": "bubbly flavored molasses", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "336d20d58d445ad7b47aa5ad26e83ddb", > "name": "productos percisa", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "3c12144fe2f82e2419390aeb9433ddc4", > "name": "snacks and more", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "187b2aeb6aa6b4bbbceec4a11c39f6cf", > "name": "peps17", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "e10b30b53aa2e7f77df37c1c6dbf7e10", > "name": "obela mx", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "b12f91995e6b5ec1f562f129cabf803f", > "name": "punica getranke", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "a3d6ae087ec58ca699fac0b8803c3217", > "name": "tropicana oil", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "7208053f9abc9af44c0ecb29387eb048", > "name": "paradas 7", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "1c08a1d833d3fdb690f17545c6dce645", > "name": "peps elec", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "688a1bb1e57933221d9801d703a37c6a", > "name": "poptys", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "6d234637bb11df0855221b074c665179", > "name": "dew", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "16473ec4e73f7768409ef1a7fb933c54", > "name": "soda g", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "690cf9fd1c8809ff00adb6bb28878636", > "name": "poppy perspective", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "ffe8ab28ee2377e267f6ee6d2e592cd8", > "name": "pepsclub", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "4bd7146d99a60027394267e022923a91", > "name": "irfan khokhar", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "5e14339911dcae4a7d8c835699cbdb13", > "name": "stacys pita chip", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "9fe4af1a818bafadb0ffcc1ac67a17af", > "name": "frito lay", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "ad2cd213b600ab9091d8407a06f5525a", > "name": "siete onces catering", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "c9294a15612a98f22fead9dd49048516", > "name": "yourfuturelife", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "f21530ca2ee13d38c434cff9f6f56726", > "name": "sodastream international", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "a8e66274246c30ab40c42efb55780139", > "name": "pepcol", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "83904a4165c96c6a59745f73f8deaf0b", > "name": "tropicana alvalle sl", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "a5c6595768cefe781f4fb90bbe3bb5ab", > "name": "tropicana food products", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "c255ef57658322e795d7d960eab0fb87", > "name": "siete mares shop", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "a3318ee6f8388d532ee46b25db0c519b", > "name": "bare foods catering", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "f426a7a32ea7581a37128d1e69805054", > "name": "pepsico india", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "a0546332c6be4b13e71ef32ce9d69ed7", > "name": "pepsi logistics", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "c0828019915d25683d01089dc7854f01", > "name": "futurelife health products", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "3e6fd5168c95dbc7a38d5245baf45092", > "name": "bare foods global", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "53752952641c9d9dbdbfbb79d410097d", > "name": "seven saints", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "add1137ecdce26b36d87d128b2606f87", > "name": "flopipo", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "ff4fdb002b55402aadb0b558440d8293", > "name": "carbonated water making machine", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "141c7b6fd6a585cdd11c75e33877af67", > "name": "pepsico breakout accelerator", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "f0f23c95849490463c500bbbf73b59e6", > "name": "bluebird foods", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "f6274c54c42c5a55a42d73796c933c62", > "name": "gatorade plant indianapolis", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "3ce6770e549581c0c1fb0cd44f021c2a", > "name": "karinto", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "5df85e4cb34988247ca314d8bb3f1f5f", > "name": "sabra", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "28167ab7459bb424caadb68840626624", > "name": "shoarma sabra", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "a381bba5dbedee6210ab394b0584832b", > "name": "city park pepsi tennis center", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "858892393391a2880f7086c8efee1a5e", > "name": "pepsi cola of missoula", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "8aecdfff9a377213bcc676dac40dbe37", > "name": "pepsi cola puerto rico cbc", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "1e942981411db6bb4d0d89bca996d696", > "name": "biolumen", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "b780917e5f24454601c4d1001cd2850e", > "name": "siete", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "d2ce3feaca28f0a80f1c597a03099e82", > "name": "kevita", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "164b4f5a21d5d42a2f1b53cae87b1a6a", > "name": "cape breton beverages", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "4d675e418480d4ba5de41e88c03d357a", > "name": "siete cinco cero", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "f13150bef751d050e04a5ebd770f8078", > "name": "ahmadi industries bsc", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "a5057132cbae25bb77298d2be9f5dd7c", > "name": "7 lézards", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "7ff759933411e30947a0900b2e4bcf0b", > "name": "pepsi cola of bristol", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "0081cf7c381e288e070a86c8b40aa91f", > "name": "pioneer foods roasty tasty", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "0165e2bddd15ca1bfd45945312169876", > "name": "pink poppi", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "04ed85556bfa5b96d3f8ff60b5c0f422", > "name": "northern bottling franchise of pepsi cola international", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "7bed48470d804b661b530cbd005d9e84", > "name": "mabel cereais", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "0dc082da2517d2b834200ed616db2618", > "name": "sodastream denmark", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "8a74f5e566bca7ddfe68e77a386cfab4", > "name": "pepsi cola distributing", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "8d3644d4828fef1160a938be53948ae6", > "name": "pepsi cola bottling of la crosse", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "9922fd037fa909b6d8da9ae01b5dbc9a", > "name": "pt buana distrindo pepsi cola", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "4688f7ecc50124bf7331691d3e47d214", > "name": "potato vending machine", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "dcbbd622d7a646a7f2c516d0d925a9c0", > "name": "mabel treats", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "a4423c634eb95fc6c092892ac0a4d531", > "name": "amacoco", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "7f74c33aa406d84eb415a3a18274c25f", > "name": "sabra kosher bakery and restaurant", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "a891b7871f71f8c718d694eb6a1a0adc", > "name": "pipers crisps", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "c991010cee65cd127927865d6bdb8b08", > "name": "harrington bottling", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "44234543068fa889684b17c36d915aec", > "name": "saudi snack foods", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "878076a2f3a7577123a57449000ec06f", > "name": "wimm bill dann", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "12eaa071b5d68822159e21ea6a12f16f", > "name": "the popcorner", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "cde335de5db1808bc4381c7e9f13643a", > "name": "ma che siete venuti a fa’", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "f0e15a9ea34907cb96ed15d55f22582d", > "name": "little farmer", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "cde4c78013adbe4603aad140f4628bb4", > "name": "henri and scie", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "b3a9cd45210475c6af2f7c765c2b018d", > "name": "pak teem", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "1359d80d799ea5b085ab83b95c566bd5", > "name": "百草味", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "de1517e572584527bf5a7a8caf26b1e4", > "name": "lays market", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "e2a581ad87e2b762490a701ede6264e8", > "name": "bare snacks", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "ceb1a00e87217fb10fdceb772e931cd8", > "name": "snackaroos", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "3250eeb0a3d163f9632d7c038d6b22ac", > "name": "poppi burgos tienda", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "02e9221f16444c0db1500dab27021290", > "name": "sting and honey", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "bba4e67872e98f3f6d4959eb3b308f9b", > "name": "soda club", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "08a299f19f68c2e73c3a537eed9816cd", > "name": "guillaume cerdini", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "6a47df4769dd7c949be94879f07d1089", > "name": "one natural experience", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "124ad4700fe879a92e7427d9312a2185", > "name": "sabra food", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "bbcb7472991a06284f83b0f31824bd45", > "name": "hangzhou minle snacks", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "9497ee2153f449d03d472f6f6e2a3b93", > "name": "siete semanal", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "e5b3c26ecd3fb3d88b52aa6b3282d47f", > "name": "obela deutschland", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "175c7026bd69d0a56b8b0e41459f2a4b", > "name": "hotel poppi", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "33f51878b68ea8838d57106bf1856cae", > "name": "kmbc private a franchise unit of pepsi foods", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "73c10ab62d8936890f9a2f9d633abd83", > "name": "pedro jorge cruz", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "83849fd88868f9a35b4d2480b4af3652", > "name": "pepsico veurne", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "90d9714bd3f0bab9d19dc91d6bb5b80f", > "name": "samabra", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "b55cc1c6011b1e3935961a545d7d1d46", > "name": "aqua fina kitchen emporium", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "e9b588761c446e0989a443db607ccd9a", > "name": "pepsi cola memphis bottling", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "ad0982f6e5c2a651a9cab8915a097c0b", > "name": "lime rock springs", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "bdc41e086724611647aedcf36bd512e0", > "name": "local school henri deglume", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "08d653659cb915f28707737b586ff3f2", > "name": "hummus market", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "2306b62d472c3193811c89fd5b7774ff", > "name": "pepsi cola soccer complex", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "5215af5a6986bba3c030ead796c79a74", > "name": "garza proveedores", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "6aa63fe09032df0e60c0b3c1ae30f070", > "name": "pepsico flavorworks", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "678b2d3a0bc3dc85abfa9d00eb1bfeea", > "name": "futurelife foods private", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "44cece377a7c1f9fdea01c44a8611849", > "name": "siete luminarias", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "543c783cd5f7bbc2d83acf439e87361d", > "name": "riaz bottlers pvt pepsico", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "6464f659789502a61378991cc62891bc", > "name": "pepsi cola bottling of marysville", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "4347e60801eeb84f635297a9291e8cb1", > "name": "frtio lay", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "5a27d94f10c1621027d6734ac246a068", > "name": "frito lay poland sp with oo", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "a422dbf9ccd11b2d2917286c4b6df29c", > "name": "juntos crecemos", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "d50846caf771cf8ac127c27890c028ae", > "name": "miss vickies south", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "f6c5954046da82ac265bac35f1ccf92b", > "name": "boucherie sabra", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "1a029941cd6f8c535e2d35151a44bca2", > "name": "snacks services", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "4f8d74e2129ec02191e12f4c8e531bc3", > "name": "middle school henri barbusse", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "b53e080065f3c4670cadd565a4996eaa", > "name": "pepis shop", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "c4ae8320fc552428a9e73724a905a098", > "name": "mabos snacks", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "d967d7fdfff8e1d507920c5288748450", > "name": "gamesa s de rl de cv", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "141b567e8cbb0f9eb3e13bb8161e14e3", > "name": "gn beverages", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "5ba4fd160e063e79e2f4a2b8e31438ec", > "name": "stacy’s juicebar", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "748d3c73b84334487c93d9c31a647ade", > "name": "what’s poppin", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "75fab642af3e79eaf97aa62313e9d870", > "name": "sodastream professional", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "a37c5dfb4049efea3bc8613ada49c452", > "name": "lebedyansky", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "3b1430d8b99216e8d69fa600eaa449bf", > "name": "brisk trading", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "52513125e5765c7b109688c44762474e", > "name": "spitz international", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "a96abac52d0a36d86bb328fc5f8c59f1", > "name": "aunt jemima mills", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "447888dcf26ce72c8dfb25353baab791", > "name": "pepsi al hayat", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "58762ad3185c48926683cfca6e4dd313", > "name": "captain crunch", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "87da9494afb39a1c09a380f09c554316", > "name": "poppi’s bbq", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "6d0c8ce68ded5fa800e12889353fc6be", > "name": "pepsico pakistan", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "611213ce222e0245ad1368d38475b37b", > "name": "simba pty", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "8e8dbaaad04a881b43b2ff32ed0865b4", > "name": "gatorade uk", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "f4ad2c7dca6cd1036380125c9a08f9bb", > "name": "snacks´n drinks", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "ef157c95212e3aaa9da26b67938f71cf", > "name": "izze", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "1f413071fc570249ef7d95379ba39ce3", > "name": "esspaña", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "9f7202c51e12f4818503aca55deceac9", > "name": "miss vickys", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "5237b1935dd5ed2956fe2b8f0c8148ea", > "name": "tasty rewards", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "5fed9c0b635d4d161b5ec95b147587b3", > "name": "sabra grill", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "6e6d51ef180d3805401eb6650a99aaaa", > "name": "ar tradears", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "7c80675bbb664bbeb75f085c9f5d6204", > "name": "pepsi cola newburgh bottling", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "f44e4a79c01f21637c734d1929564269", > "name": "smith snack service", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "3b57d4abffe9b5bc054e96e3d396df78", > "name": "springfield pepsi cola bottling", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "64bde143777bb30fc41edbe5940f0fec", > "name": "sodastream nordics", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "a379751906e45d3de4f1655492aef3fd", > "name": "sobe", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "66268fa0438c50582a2e92e5cc6e0761", > "name": "health warrior superfoods", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "70888ef7277372bc7eccd0a28916b01b", > "name": "uncle chips", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "8f0a24772de600124077459624d471ee", > "name": "súper distribuidor cabimas", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "d940d92f45e08bc60678418cdb193b34", > "name": "quacker", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "2dcc9ca7148b5f5d14d4383a5e93c2b5", > "name": "sabra beirut mix", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "3164d893e2885850ed6345814ccc8ae7", > "name": "barec", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "c038e4a410304082505801434e2351ac", > "name": "gatorade bolt", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "02c64ce61664eef11d51888a79f708e4", > "name": "sodastream international bv italian branch", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "a3562ba45a819fa2688ffac0bc1c4c4e", > "name": "peps eat", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "eeb06ab5854266d0099aef9f2e00cfae", > "name": "siete azul", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "8be031af03574a36a5c3572ea34f0b1a", > "name": "walker’s popcorn", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "d7e4378eb916b56c0b286df9b774baf6", > "name": "cytosport", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > } > ] > }, > { > "level": 2, > "companies": [ > { > "id": "6e787232b1980a9d9bdeb7d7b7d4f965", > "name": "fritos and foie gras", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "e5175d662bf6e68aa92d9e9888313edc", > "name": "lucy’s hot fries", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "c4ac3cfe8150f4e9439fed547869107a", > "name": "crackerjacks concessions best jerky", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "65f868e7460706e5fef4810b36812a10", > "name": "smartfoods", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "6fe76eaafb7ac09378393e7fe79d6833", > "name": "ruffles pet care", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "525225dfef742bfacc8bf4c60f5c6624", > "name": "togachipguy", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "967324d4b82e36af3f286637c6012232", > "name": "crackerjacks food truck", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "a47d032df330522ae308d7d3348912c0", > "name": "twisty’s potatoes", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "22f94ff218da460e603755d1b9a61ed8", > "name": "ruffles art studio", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "6b0dc1e8e9e907272ffb2dfd20aac35e", > "name": "ruffles and rust vintage", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "d4fa48e39723d73d2f24c0616f326e43", > "name": "smartfoods vending", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "ea152325c1f46ac88ed15a1b2006d08f", > "name": "ruffles and rosesuk", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "ea44de48111e3b845b75e1dc6e5feac8", > "name": "the smart food", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "7007ed40a5653063bfa2d5a8bd4678ff", > "name": "smart food", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "135a12636cf31a90cffe54f412dd89f7", > "name": "aardappelen nijs nw frito", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "d14486d05a3cc89d35b3d7724cd9f388", > "name": "smartfoodies", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "db1018d846a4fbf979d23240cd831d76", > "name": "lay z", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "03ef1e732c62534fe519fc322f689ac5", > "name": "devon lazy spa hire", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "7aeca492efe53edbae651079e428a3a8", > "name": "cracker jack cafe and take away", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "92580114c7886807b08f6a0a306589cb", > "name": "smart corn", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "ef54276722e5b930d2a15e1b0672ae62", > "name": "lay business consulting", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "0eeb317e38c00b7b574f44ed9a8e1b40", > "name": "doritos store rydalmere", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "09e1bd17b3f6532d8a35cf8f013b207e", > "name": "cracker jack auctions", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "65e3209b747bdebce629d4abcfe4b422", > "name": "firito taco", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "ee9187cd088f86fd58914c884207fedc", > "name": "ruffles and relics", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "987a3e8ee74dbd55936e8780b66ea9eb", > "name": "matutano", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "3ed13ba781120b53b6bcb962da115ffb", > "name": "simba smart watch", > "parent_id": "c5bfcfde8643f8870b5c5cbecb75cd22", > "parent_name": "simba" > }, > { > "id": "34c8b1c57a24ed42171831feac0af8f7", > "name": "five star taekwondo", > "parent_id": "c5bfcfde8643f8870b5c5cbecb75cd22", > "parent_name": "simba" > }, > { > "id": "28ad3d18c7caecf4d4bbdba0448c4f74", > "name": "serengeti simba lodge", > "parent_id": "c5bfcfde8643f8870b5c5cbecb75cd22", > "parent_name": "simba" > }, > { > "id": "d864dc3dc42ce2a646568a97491f7099", > "name": "simba 4x", > "parent_id": "c5bfcfde8643f8870b5c5cbecb75cd22", > "parent_name": "simba" > }, > { > "id": "c3e72f35ab574e4987b8287f28e897ad", > "name": "simba towels", > "parent_id": "c5bfcfde8643f8870b5c5cbecb75cd22", > "parent_name": "simba" > }, > { > "id": "fb7bf1f9b81f0d9821af08d113b645c3", > "name": "associated vehicle assemblers", > "parent_id": "c5bfcfde8643f8870b5c5cbecb75cd22", > "parent_name": "simba" > }, > { > "id": "fc26dc62189f6ae194d88199bdabe07d", > "name": "radio simba fm", > "parent_id": "c5bfcfde8643f8870b5c5cbecb75cd22", > "parent_name": "simba" > }, > { > "id": "0b2aa2c568bdf3c55deb6a69ab80ba51", > "name": "ashok leyland kenya by deluxe trucks", > "parent_id": "c5bfcfde8643f8870b5c5cbecb75cd22", > "parent_name": "simba" > }, > { > "id": "0cc608ff9c624a18b6b12bd7d0797c85", > "name": "simba for you", > "parent_id": "c5bfcfde8643f8870b5c5cbecb75cd22", > "parent_name": "simba" > }, > { > "id": "67277e5fa7f036d6e2366b468430dac3", > "name": "roar refreshments", > "parent_id": "c5bfcfde8643f8870b5c5cbecb75cd22", > "parent_name": "simba" > }, > { > "id": "698c5fce64c788624563e54db2139ac9", > "name": "simba water", > "parent_id": "c5bfcfde8643f8870b5c5cbecb75cd22", > "parent_name": "simba" > }, > { > "id": "025d34ba7f5a7780e04dd255364033ab", > "name": "simba enterprises", > "parent_id": "c5bfcfde8643f8870b5c5cbecb75cd22", > "parent_name": "simba" > }, > { > "id": "3c48423207ddc993dac7a2fe14677c49", > "name": "simba dojang taekwondo", > "parent_id": "c5bfcfde8643f8870b5c5cbecb75cd22", > "parent_name": "simba" > }, > { > "id": "1ae13237d6a14e87de238114314c76e3", > "name": "simba queens", > "parent_id": "c5bfcfde8643f8870b5c5cbecb75cd22", > "parent_name": "simba" > }, > { > "id": "82d17001e155f752d063f8acde6d40b3", > "name": "simba money", > "parent_id": "c5bfcfde8643f8870b5c5cbecb75cd22", > "parent_name": "simba" > }, > { > "id": "af0dccb36dd033652e4589b93f047277", > "name": "simba market", > "parent_id": "c5bfcfde8643f8870b5c5cbecb75cd22", > "parent_name": "simba" > }, > { > "id": "04e28e342cbd0912ad6cdf8673f80fe9", > "name": "simba escaliers", > "parent_id": "c5bfcfde8643f8870b5c5cbecb75cd22", > "parent_name": "simba" > }, > { > "id": "b122191703d292cb88ae9b9e22ea0c7d", > "name": "simbas den pub and bistro", > "parent_id": "c5bfcfde8643f8870b5c5cbecb75cd22", > "parent_name": "simba" > }, > { > "id": "0ed5ef7a6d31bd7ff0ea09feb621e9cd", > "name": "simba grill restaurant", > "parent_id": "c5bfcfde8643f8870b5c5cbecb75cd22", > "parent_name": "simba" > }, > { > "id": "0e11e7c2dea95d5b354996c599fac56f", > "name": "yibe subsidiary of simba developers", > "parent_id": "c5bfcfde8643f8870b5c5cbecb75cd22", > "parent_name": "simba" > }, > { > "id": "1dd5c6b784483cb264889ed4856b38e4", > "name": "punjab concrete", > "parent_id": "89df543ad4398dd304ff649d7ddba629", > "parent_name": "punjab beverages private" > }, > { > "id": "e1b9771d4080cc40a5b2c2d2f958bc59", > "name": "punjab food center", > "parent_id": "89df543ad4398dd304ff649d7ddba629", > "parent_name": "punjab beverages private" > }, > { > "id": "1f04cf42bb8e13bab9605a5120742d97", > "name": "punjabs agrotech india private", > "parent_id": "89df543ad4398dd304ff649d7ddba629", > "parent_name": "punjab beverages private" > }, > { > "id": "f45d5f1f93e1bb3accd40a6fab1b6277", > "name": "pivrifine water", > "parent_id": "89df543ad4398dd304ff649d7ddba629", > "parent_name": "punjab beverages private" > }, > { > "id": "2e2f781a1d5532a18cd6ba6f1b288d4e", > "name": "pioneer texas and pioneer lot services", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "5c9b9db8bb6221bf5781ca6592fc9adb", > "name": "crowdform", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "071054f2fea556166875f737abb7f08a", > "name": "pioneer tv and appliances", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "d9ee9a9c0773759f16e6e458cbe14670", > "name": "the pioneer", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "8155522f0f2c717572383fc86618b172", > "name": "ketchikan daily news", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "fd7e51bf85904aa99586c4386ea92673", > "name": "pioneer building supplies", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "3a8fe28be188a2ba4e7f69185e316232", > "name": "pioneer property solutions", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "ecc3036d054ed95037fac20614ccd1b0", > "name": "pioneer nursing service", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "75e12a516341f7059a434e13c67b4d4f", > "name": "pioneer funding group", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "76902fe1a83fe76bfe9ef1a9a37eb1ca", > "name": "bpo pioneers", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "cdd966ff645d80f9fec6b2f2a202bff4", > "name": "pio | communication agency", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "18f502fda75f07fbb5b1772162b5ef62", > "name": "stream foods", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "1a8a8a32b346a61e7eed408ef525e3ca", > "name": "garage w van empel", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "3f3e32925fbd0ffb15e826cf9978c15a", > "name": "pioneer street restaurant downtown ridgefield wa", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "66d69e82e365833df3a666cd6ea6127d", > "name": "pioneer filers", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "30e99b87f3c54dd521c3d2d88aa05201", > "name": "pionex audio solutions", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "cb614e3041c241ef7d79e80fadf41672", > "name": "pioneer flanges and fittings", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "ccb2290b8b76f95195b52d0b6be90f3f", > "name": "pioneer austin", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "94912c83a31ef27edfd582700cfccfa8", > "name": "pioneer systems and projects", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "7dac726aef49642f981c484dd717aa8d", > "name": "pioneer industries bapunagar", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "4ad03cd52ac7651780efc6ef61cc57df", > "name": "pioneer exteriors dallas", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "dd80cf74b635db2ff4ddcbf63e726cca", > "name": "pioneer cleaning specialist rob pound", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "9f669e2519862a83689f0e317ae8ca66", > "name": "pioneer automotives", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "3d47bcefc151702ea9c301177ef41d4f", > "name": "pioneer family pre owned auto", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "8e3c78e7b4ebc3a154b72a4fdf91124a", > "name": "cornerstone church swansea", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "2b821b786541632ce51e198a476479ca", > "name": "pioneer car care", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "502e9f0c4199eaa5f49996dfdd22de4a", > "name": "lone peak lookout", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "cc2562ebcf133cdeb45b8d33f760e878", > "name": "pioneer hospitals p", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "e2eadf2a2235b6112d05f757d748a390", > "name": "pioneer transmission and general repair", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "b8d730faf6fe788432941a36ca078993", > "name": "pioneer abrasive", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "538cad7294ee2a27749530a0e9429484", > "name": "pioneer feeds", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "a784ed9d215ff580d8a5d77278c8a37d", > "name": "pionec electronic systems", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "2bf3f377ae87820827683a20a28d769a", > "name": "heartech precision", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "e4d09a38f82b677b8ceee25dc8529c56", > "name": "pioneerinc", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "41f044e3ddb0e1621bc890fae8125ee8", > "name": "talentgroup asia", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "c347523a50714c4e8491818d3fef2ccd", > "name": "pionerr car music system fittings", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "0f9fd879f7b2e5173116a3e0451923ee", > "name": "talent group asia a pioneer design group", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "3fe7efc7aeb15374743e419bd194ee48", > "name": "pioneer sewing machine", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "cb5c888d91d09126bea07746c1649b94", > "name": "dsl philomath", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "e4cb259e940e66c3e363c19df93f7070", > "name": "gerda doors", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "c225b2e82831716c8acc35c9e1bc2c65", > "name": "universal business computing", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "e23e45acb6ef4111ad5b50e54931519e", > "name": "new pioneer spring", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "f3d9e18274f4f0f7ba4e8c1bb9b7449b", > "name": "first pioneer industries", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "567526e9f96cb54fce1b8c11d3318703", > "name": "bokomo foods uk", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "d8417a3bdb3665296bb9b24cec339305", > "name": "knayam foods", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "dc9f29cd765e92730caa3e58f5f8e173", > "name": "pioneer plasma catalysis for co2 recycling", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "9d5d9b90f2f5ac3372d138e5fc5c9222", > "name": "pioneer textile engineers", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "4b7d83896822023921cd60fc53af9c6c", > "name": "gantry public house", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "abc41a3d706613ea7ad3c54da1d99d79", > "name": "pioneer cuisine", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "9647173bf9d6f51505b42739452ae9cf", > "name": "pioners", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "cd534321d87daa04174b04fdd6bce2d1", > "name": "pioneer concrete and fuel", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "f6781f81389b86064e90f59baf952228", > "name": "pioneer xenergy", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "6b64854c53dfe178b02f409cb50ebcaf", > "name": "pioneer nf forgings india pvt", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "18d66cbfe64b8c4fd08d2cf8d6e85914", > "name": "r and s pioneer pharmacy", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "e717994f0a4361d564237449c76a8a86", > "name": "pioneer autocare", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "b36f93710e9147b0631275446f4f2f29", > "name": "pioneer oil", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "53c12b233d08df0c1a3b5c2a215719f8", > "name": "ceres productos alimenticios", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "6dd1f19f65ea18dca5a7c8c3bc4ac0cc", > "name": "xenergy group", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "75e5837c82ec21ad73ba614e54fdd14b", > "name": "belmont solids control", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "2f8dc4d717d44463d29d136243e2e8cf", > "name": "pioneer florida museum and village", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "aebe2fcbe41548eb90cba851e98d8cb5", > "name": "420 bus tour", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "99ac04ee5694fc0dce7b95b6ab45f585", > "name": "pioneer cad and design solutions", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "227185b77948b3cf4ac3247df6b321d8", > "name": "pioneer outdoor lighting", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "ce111d461469c89e1b00de8f7dadc599", > "name": "bmr logistics savannah agency for pioneer transport", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "be49469ce32ff13e750cdb55a981874d", > "name": "pioneer europe nv uk branch office", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "f6747ffabcdfd37d8ef82bddc3ebb75a", > "name": "pioneer electrical", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "fbfa71f6f771e07083d052381c4014da", > "name": "state tower syracuse", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "81c3ee54e7a4d2e70f7c2253dd9aa3d8", > "name": "pioneer office cleaning", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "2ea00226f05592c25edd21f733b420f3", > "name": "pioneer electrical and telcom", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "0d6bfa2c22b88bdf800b8474341302f5", > "name": "pioneer international campus", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "21311c829ae28ee203a1560895980a55", > "name": "pioneer homes detroit", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "547588b969f768db317b236db7bc822f", > "name": "carl jarl locksmiths", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "e7bc0219e85499a35f4fe51e29803a52", > "name": "pioneer enterprises nagpur", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "f67c078484e0612df874fbf9896dea82", > "name": "pioneer electrical contractors", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "5ed759e55479454b22246d6fe7318876", > "name": "pioneer engineering industries gurgaon", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "158efd7e783845fb399b139c158c8200", > "name": "pioneer road long day", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "8599d5d79bf5f74e1632d5fc82f8d34c", > "name": "pioneer farm and ranch supply", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "eab04fbcf3eef67e4aea8e4cc11d51e4", > "name": "p associates", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "200c3252d0ba8191f938f4778a99d99b", > "name": "pioneer enterprises bengaluru", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "2a1e8a878761e7fcd5ea382075ddc959", > "name": "young pioneer accessories", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "bbe42f48ceedcf76513a125a873631b6", > "name": "pioneer4ou", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "d9052977f28cf45a056a1df8df539b3a", > "name": "arroyo gardens independent and assisted living", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "439a5fe7312082170608be5baf5208e1", > "name": "pioneer audio visuals", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "70b1fa19303b55f77c5a057b44153027", > "name": "pioneer tandoor", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "8a2edab198e29276add26df8ab5c0686", > "name": "pioneer auto", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "0a72b96f5a58468a94151f5bcd7c195d", > "name": "lizis", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "d744ee0179cd2e70e922f9fa74ad0855", > "name": "pioneer compressor", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "008f24b3b2f48eef4d809418e2021ad8", > "name": "jolie hair academy", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "53e20f21c6a7bd64936675d3f43fa3f5", > "name": "greenbank pioneer health general practice", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "97dcfca8453b905d5d9fb0c2b6d7af32", > "name": "pioneer mashroom", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "dc48aaaf9d423e01ce40605e0044213d", > "name": "pioneer storage mesquite", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "d45fd384095ea1683cb6a8174f4f4516", > "name": "yes apartment napoli", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "6001ef5c3face0f2ddb3f4d324c33243", > "name": "bokomo zambia", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "933669c80cd28aeee18bd4dc95d40965", > "name": "changzhou zhongjin medical", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "d0d9cd2722b4943f85a861217c847c86", > "name": "pioneer ford bremen", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "f3f90152bb7da62e2a2c1513ba02e0f6", > "name": "pioneer rubber industry", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "f9b9f41a80530b5a271e5d4757bd3096", > "name": "pioneer development", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "135a3a6af6a3d61cfb10fe25f5990f83", > "name": "pioneer lakeshore café", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "36e89bf3ac4a6ce02b0cba1434236d83", > "name": "pioneer automation solution", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "b859d4bf41cc02bb3311f7a519f6750b", > "name": "pioneer decorator", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "d6f361b3fb3c8dcb6e942bf496d4f056", > "name": "pioneer logistics group", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "1b16322d321d585d3d34b51192c9ba4a", > "name": "xian pioneer dope", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "3585690a5f9fdac25df9a14296878f43", > "name": "pioneer auto desk", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "78cb85ac301afeddc503f289b36f252e", > "name": "pioneer elastoseal", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "9cec1425388d9b396b45a66972ef825e", > "name": "pioneer copper", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "4a3b7be417d3bdae734b861526d2d54d", > "name": "kings church manchester", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "33b913caf8e04527d97480494df3068d", > "name": "pioneer global design and sourcing", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "a7f1e51453689edbf8648346b3bc7555", > "name": "pioneer marine", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "c729a03038d87a8a584540f231febd53", > "name": "pioneer inn motel", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "da59845c44551a33a1aa4545cd09c61d", > "name": "yangzhong pioneer electronics", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "6a26d1c8e472b1685d482ba082b05730", > "name": "pioneers enterprise", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "7a00a840dd6da449ec5b806ab738672a", > "name": "pioneer electro agencies", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "52126663c2d99a7f557dc133d8b03c08", > "name": "pioneers pizza", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "e9fa60064608a6569d0321a97e9c2a0b", > "name": "sensory spaces at pioneer", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "7426ed7cf19b0f43701d45d14f2ddf7d", > "name": "pioneer enterprises", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "ba936da9f1a653b3f4208e21a6f29f5c", > "name": "shenzhen pioneer printing", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "a2365564bcfad9bb66d4b4e42b213e8d", > "name": "pioneer technology", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "6a18208c487d21bc649a858cf283d098", > "name": "the pioneer hotel and motel", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "8bbf669677796cfcc0aeab8b1707091f", > "name": "dominic powell", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "a9366159c0800ebacea57aef02036302", > "name": "pioneer ent", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "ecb3d8e344096d4d29b18f89495852e1", > "name": "pioneer r v storage", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "67495104392936dfc24771e6d8c5adb9", > "name": "pioneer equipments", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "c522ebfd2bafe4311dad1de7483f91fe", > "name": "buffalo billiards", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "a31c90c5ef170a85a7fbbcddb564a5f4", > "name": "car audio rhythm", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "b7db5c2edca3192ff91abdfc5956ae89", > "name": "pioneer compu link", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "a41c113b0237162512387c2ca2c03f52", > "name": "pioneer communications network", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "cbb7cf7123d77c6f5348220e864b4674", > "name": "pioneer trading mumbai", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "11380eeef3c8ad096e7ffa6db8cded4f", > "name": "pioneer electro industries", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "5a13727e4fda84595c56be8de495d80b", > "name": "pioneer forging", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "5eca0147361aab915947ad8dc4db62cc", > "name": "pioneer cameras", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "6492906f08427de290fca94d1172e4bd", > "name": "pioneer screen ii", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "a8a1d8f7eaf77f4f5cc3cfb128cbafdf", > "name": "the pioneer motel", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "a470c782db01668dbe123801d42b85af", > "name": "pioneer sound and light", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "b8bbf797c5d3cd9bdc78c75295ce0d01", > "name": "meri saheli", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "af1caea4b8707b33b0bd098b97ce4c52", > "name": "pioneer europe", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "faed85da80c8a0910b504d52e316d942", > "name": "pioneer caps and cans", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "62ada64a54bec9906cb118e82af6c277", > "name": "pioneerium", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "519bc8c1e0f2156035a39f1b100a198d", > "name": "pioneer electronics coltd", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "a642159add29bc9e7bb2a0030fc28b32", > "name": "driveco motors", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "306d09429fcadc254d5c913c5b3663a7", > "name": "pioner auto", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "bbd467530694ed5144e002450143cb85", > "name": "sasko bakery", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "346a31731d8190b78b078ea9976e1299", > "name": "pioneer procurement", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "348afc630ec6ee3e84138115470a081b", > "name": "pioneer regional school", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "d5513907eea66512aba369120da6834c", > "name": "pioneer marketing research", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "eb19e1860816eca79ead8debdcc87635", > "name": "pioneer drape and sofa comfort", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "7cd5bec12b2a6dcb0964c3a8d949b79b", > "name": "pioneer one consulting", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "ccae222c61c2f137f65ce91fcfebbee6", > "name": "pioneer trading", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "7b281aaf17aa15f71b51d994c41dfb18", > "name": "pioneer cellular event center", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "e5d2bef84c168163d5d78d8d934f39f3", > "name": "pioneer union", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "cfb58bb3d8cc0a258ee9e2b5dcf7f68b", > "name": "zamony venture", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "ff0abe6ccdc306d929a26485aec2052b", > "name": "psi crane and rigging", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "f9df794fd2a942c56c904ea8b3f5b37f", > "name": "community connections program ccp pioneer programs", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "f3c1f3ef55859ffdc4573a9fd0da4037", > "name": "pioneer do brasil", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "091427a4e3f4d84d631ad605c04d40c0", > "name": "pioneer green cbd", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "34b5593f078d2ca9032f4d3e38624199", > "name": "frank’s key and lock shop", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "6c781f56b1fe5b8d5cf7ee275407392a", > "name": "pioneer microsystems", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "5f87fe3a49834d3c431d447dbe1227e1", > "name": "invesco", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "72839a5628303476b2ea493cc8980369", > "name": "jinyun pioneer tool", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "a5afbd91fcea6d2b81e3c9b11540cef5", > "name": "pioneer laminates india", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "e966160d464fa7da7ddaac975f6cd3fa", > "name": "pioneer n f forgings india private", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "0236a9cb780ad5d5c888c6573ba073f1", > "name": "pioneer display systems", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "5681488e7c14a948ba9d34e15a3c520f", > "name": "pioneer decorative mouldings", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "e357eec3b54695c873f0ed7bb3648454", > "name": "pioneer instrumentation", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "dc2289335e416dc898f5d196007c844f", > "name": "pioneer india electronics", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "88268d8e167f9d7afc3b2a33c2c5b9c2", > "name": "pioneer realtor", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "261d3ffc05899235f4299a236f02b834", > "name": "pioneer lodge internet cafe", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "f83deba1c7ae00ea1b086ef88b38ad3d", > "name": "natty rems", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "24e948d3422b2a62dbb49b85159fa9cb", > "name": "pioneer service", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "88926020ae332d638b962f1c4465c479", > "name": "pioneer firewood", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "367834dc82e2cf954cfb726ac6b377cc", > "name": "pioneers partners", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "49bc586879bf1ee52a616b5a17c3154a", > "name": "pioneer used auto and rv sales", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "6c72e138715c84e90ad776eef4b50fb2", > "name": "pioneer lists", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "95f65f6dbbe8e08e9bc5649b7e4b08d6", > "name": "pioneer commnications", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "83f4a61c815ba12dd5b7dab2961af27e", > "name": "pioneer ebc", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "e972fc24035121f38a73f5716cdfefb4", > "name": "pioneer furniture and decoraters", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "1cff078ef4edf534e8600a6d763cb3cf", > "name": "pioneer elastomers", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "b5fc40373304d4403d6fa9434c1e8689", > "name": "splash fruit", > "parent_id": "99d9b2f3459599ca2f88fcf2b286df7c", > "parent_name": "the honickman companies" > }, > { > "id": "e04de9cff435daddd5c5da24e711856d", > "name": "canada dry potomac", > "parent_id": "99d9b2f3459599ca2f88fcf2b286df7c", > "parent_name": "the honickman companies" > }, > { > "id": "9b67a62bbc49e283a6945a383ae22033", > "name": "beverage distribution center", > "parent_id": "99d9b2f3459599ca2f88fcf2b286df7c", > "parent_name": "the honickman companies" > }, > { > "id": "a27fa5c64b4dc5173210c9a5123c1f54", > "name": "canada dry delaware valley", > "parent_id": "99d9b2f3459599ca2f88fcf2b286df7c", > "parent_name": "the honickman companies" > }, > { > "id": "ce16cbb189a22a2b6a1b5e16bf1d4aa5", > "name": "magic pan", > "parent_id": "78ab069ccb7691aa7fc71f8a03716417", > "parent_name": "quaker oats" > }, > { > "id": "78dc90bb6f77d576d0c1cc84af82b34d", > "name": "chicoccino", > "parent_id": "78ab069ccb7691aa7fc71f8a03716417", > "parent_name": "quaker oats" > }, > { > "id": "f3f6126676b7c7fec201192551be40fa", > "name": "stanton cannery", > "parent_id": "78ab069ccb7691aa7fc71f8a03716417", > "parent_name": "quaker oats" > }, > { > "id": "24d8c3ba40d19e1926ff3fcdc946c555", > "name": "quaker brasil", > "parent_id": "78ab069ccb7691aa7fc71f8a03716417", > "parent_name": "quaker oats" > }, > { > "id": "507838cb82baf9048acf9951ed11baff", > "name": "the magic pan", > "parent_id": "78ab069ccb7691aa7fc71f8a03716417", > "parent_name": "quaker oats" > }, > { > "id": "5ab65aa3da6b56acb0b5ed6cf7cbd7e1", > "name": "al maidan dental clinic", > "parent_id": "bd9fd809bbe83ead5afd8d136c01c917", > "parent_name": "united beverage kscc" > }, > { > "id": "65fa16f4a557388158b3ea21d5a4953a", > "name": "rockstar digital", > "parent_id": "d5dd6578fedb045d1f93daf8f393cd32", > "parent_name": "rockstar energy drink" > }, > { > "id": "ba1fbc37a1e4f66c5ed4ae349beabc81", > "name": "mabel kurumsal emlak zi̇nci̇ri̇ franchise direktoru", > "parent_id": "0d7fe8b2df998fca4666213d38245f07", > "parent_name": "grupo mabel" > }, > { > "id": "941d483b6d6c303c432b2b5fe62247e1", > "name": "sorveteria vilela", > "parent_id": "0d7fe8b2df998fca4666213d38245f07", > "parent_name": "grupo mabel" > }, > { > "id": "53aad9ab2dd11a0f2fb8f44da077f48f", > "name": "mabel business consulting", > "parent_id": "0d7fe8b2df998fca4666213d38245f07", > "parent_name": "grupo mabel" > }, > { > "id": "f0b690749fb0ccce0d3b38e94fc4b990", > "name": "mabel’s clothing and gifts", > "parent_id": "0d7fe8b2df998fca4666213d38245f07", > "parent_name": "grupo mabel" > }, > { > "id": "27b1074a05819f13114b660a36ff0e51", > "name": "mabel and zora", > "parent_id": "0d7fe8b2df998fca4666213d38245f07", > "parent_name": "grupo mabel" > }, > { > "id": "6bf200879fd9ac16bfdd9b1ffc3ce33a", > "name": "mabel and fox", > "parent_id": "0d7fe8b2df998fca4666213d38245f07", > "parent_name": "grupo mabel" > }, > { > "id": "c05b9de66bda34fd4bd1097ccf91678c", > "name": "notaria mabel llano", > "parent_id": "0d7fe8b2df998fca4666213d38245f07", > "parent_name": "grupo mabel" > }, > { > "id": "a6b9d69c2217db8bc37976ce45946a14", > "name": "new mabel ricami", > "parent_id": "0d7fe8b2df998fca4666213d38245f07", > "parent_name": "grupo mabel" > }, > { > "id": "8882b0b138eb4f9e3eab4d078157672b", > "name": "lakeside bottling lakeside pepsi", > "parent_id": "89b58d1cf79c96542ac72f5e55a5ba7d", > "parent_name": "pepsi cola and national brand beverage" > }, > { > "id": "a5347bfc8ef899d3b94c53182f96b15b", > "name": "geneva club beverage", > "parent_id": "89b58d1cf79c96542ac72f5e55a5ba7d", > "parent_name": "pepsi cola and national brand beverage" > }, > { > "id": "5aa6f31e83d866cce4e58edc2b222e8c", > "name": "cpf nehf ops", > "parent_id": "89b58d1cf79c96542ac72f5e55a5ba7d", > "parent_name": "pepsi cola and national brand beverage" > }, > { > "id": "ac73aa580e115086a875af3ac8937a94", > "name": "ventures food and beverage", > "parent_id": "9d2a94578afaf9d49c96a8251a313683", > "parent_name": "pepsi bottling ventures" > }, > { > "id": "87c504374b088a97b847e637e0220b89", > "name": "sabra famous kati roll", > "parent_id": "c4c5d723742f6e4a2cbc7d6f6dad63b0", > "parent_name": "sabra dipping" > }, > { > "id": "8d4800ab4496c55361a8140e2b6ae6d5", > "name": "pasticceria siciliana falanga", > "parent_id": "c4c5d723742f6e4a2cbc7d6f6dad63b0", > "parent_name": "sabra dipping" > }, > { > "id": "fdf32e236b58a52b2655a8835fe0f3cb", > "name": "bear mountain at reading", > "parent_id": "c4c5d723742f6e4a2cbc7d6f6dad63b0", > "parent_name": "sabra dipping" > }, > { > "id": "424625ecb91a74d87c9419845eba0c9e", > "name": "sabra travel", > "parent_id": "c4c5d723742f6e4a2cbc7d6f6dad63b0", > "parent_name": "sabra dipping" > }, > { > "id": "51f7ad5c8c61420d98b54b6fc30ee0ad", > "name": "the original hummus", > "parent_id": "c4c5d723742f6e4a2cbc7d6f6dad63b0", > "parent_name": "sabra dipping" > }, > { > "id": "5559c7b23a626f56dd92ffed8d750be5", > "name": "the sabra institute", > "parent_id": "c4c5d723742f6e4a2cbc7d6f6dad63b0", > "parent_name": "sabra dipping" > }, > { > "id": "ae95babe25703d126045987414074c12", > "name": "full hummus", > "parent_id": "c4c5d723742f6e4a2cbc7d6f6dad63b0", > "parent_name": "sabra dipping" > }, > { > "id": "8e08886c376724ca0546c38a0b3dad4f", > "name": "minasbev", > "parent_id": "de9abe5a3c777ce012c2efef4eec45f0", > "parent_name": "menabev" > }, > { > "id": "c4b42312fb78edaedcedc730bdf7e492", > "name": "splitgerber william f", > "parent_id": "528c6f57242b7e9d3dfbebcc5931308a", > "parent_name": "smlc pepsico" > }, > { > "id": "04eeb6ac72171ce0a95d73c1a2e11bc1", > "name": "gadin noventa y siete", > "parent_id": "c4bebde456a9191939e17445b3b9dc97", > "parent_name": "siete family foods" > }, > { > "id": "31e05d55fa05f91739e4b614959b60a0", > "name": "alta baja market", > "parent_id": "c4bebde456a9191939e17445b3b9dc97", > "parent_name": "siete family foods" > }, > { > "id": "c1ca2618a6108ffb602057b948183848", > "name": "sete producoes", > "parent_id": "c4bebde456a9191939e17445b3b9dc97", > "parent_name": "siete family foods" > }, > { > "id": "9ac11b05f0e4fb2c9f00145f5eed956a", > "name": "all in our family foods", > "parent_id": "c4bebde456a9191939e17445b3b9dc97", > "parent_name": "siete family foods" > }, > { > "id": "0c2aa55c24925ba3d4bd8fd69aa4a71b", > "name": "socca chips", > "parent_id": "c4bebde456a9191939e17445b3b9dc97", > "parent_name": "siete family foods" > }, > { > "id": "0382ecfc721f440b1a33120a8ef2f131", > "name": "7agty", > "parent_id": "c4bebde456a9191939e17445b3b9dc97", > "parent_name": "siete family foods" > }, > { > "id": "14bef948735a87c471f0959ad11eb4d7", > "name": "sieteco marketing and strategie", > "parent_id": "c4bebde456a9191939e17445b3b9dc97", > "parent_name": "siete family foods" > }, > { > "id": "83d1910b2c631e97f70fbe423f244a65", > "name": "siete 77", > "parent_id": "c4bebde456a9191939e17445b3b9dc97", > "parent_name": "siete family foods" > }, > { > "id": "c26cf1909750a03b22bc7824599c97d0", > "name": "poppy cards", > "parent_id": "6bd184efa33d2583f84251ece3c8fc25", > "parent_name": "poppi" > }, > { > "id": "c3b3b32f52e100d51a6101892bb8f7cb", > "name": "popy bags", > "parent_id": "6bd184efa33d2583f84251ece3c8fc25", > "parent_name": "poppi" > }, > { > "id": "c6bab7f7e0cf19afbf264c813897dfd8", > "name": "poppis guesthouse", > "parent_id": "6bd184efa33d2583f84251ece3c8fc25", > "parent_name": "poppi" > }, > { > "id": "05a3382c3b3c93b858aa798468e25c1b", > "name": "poppi clementino", > "parent_id": "6bd184efa33d2583f84251ece3c8fc25", > "parent_name": "poppi" > }, > { > "id": "126dd707d7ed06c0b1e8b2788df61e0a", > "name": "mother polycap", > "parent_id": "6bd184efa33d2583f84251ece3c8fc25", > "parent_name": "poppi" > }, > { > "id": "782cc126fe50b537745bf50fa98d8c52", > "name": "franchise feed international claymont de", > "parent_id": "890d36c0c7508149e722dface4c54a72", > "parent_name": "haidri beverages pepsicola international franchise" > }, > { > "id": "8fa1a8f9d3ad0427f24a51b04e14b939", > "name": "international beverages trading", > "parent_id": "890d36c0c7508149e722dface4c54a72", > "parent_name": "haidri beverages pepsicola international franchise" > }, > { > "id": "2638d58526033a5c10b6558890acdc8e", > "name": "pee dee food service", > "parent_id": "358b57af1dba500174e7daf92c9805f1", > "parent_name": "carolina canners" > }, > { > "id": "ff1a3501bc29014ceb4830170294b045", > "name": "sodastream/soda bär/soda magic/co2 tausch von pietrowski", > "parent_id": "f21530ca2ee13d38c434cff9f6f56726", > "parent_name": "sodastream international" > }, > { > "id": "de2400adb073c434641c07ad110078fd", > "name": "kevit", > "parent_id": "d2ce3feaca28f0a80f1c597a03099e82", > "parent_name": "kevita" > } > ] > }, > { > "level": 3, > "companies": [ > { > "id": "c59e80952e445b9125f9866c064e9256", > "name": "smrtfoods", > "parent_id": "65f868e7460706e5fef4810b36812a10", > "parent_name": "smartfoods" > }, > { > "id": "241f1138750df95fa2d1590f682652ae", > "name": "tom and luke", > "parent_id": "65f868e7460706e5fef4810b36812a10", > "parent_name": "smartfoods" > }, > { > "id": "0d8b510e9bb9eb18d76c2271148780a4", > "name": "a associated vehicle sales", > "parent_id": "fb7bf1f9b81f0d9821af08d113b645c3", > "parent_name": "associated vehicle assemblers" > }, > { > "id": "fc569f3c081a5bdc7cf7c5cd62bc0a9a", > "name": "halstead community primary school", > "parent_id": "d9ee9a9c0773759f16e6e458cbe14670", > "parent_name": "the pioneer" > }, > { > "id": "7c1078b150fd1ced5cc2cde86f62cd5e", > "name": "md media publishing service", > "parent_id": "d9ee9a9c0773759f16e6e458cbe14670", > "parent_name": "the pioneer" > }, > { > "id": "68a38860ba09532e8400c3a276bb5d40", > "name": "woodcote primary school", > "parent_id": "d9ee9a9c0773759f16e6e458cbe14670", > "parent_name": "the pioneer" > }, > { > "id": "d80d17b60784c4e3d3e936655fa0bcd0", > "name": "ightham primary school", > "parent_id": "d9ee9a9c0773759f16e6e458cbe14670", > "parent_name": "the pioneer" > }, > { > "id": "70995b2c9bf6fd1ddcae161bf4c21608", > "name": "leslie mock", > "parent_id": "d9ee9a9c0773759f16e6e458cbe14670", > "parent_name": "the pioneer" > }, > { > "id": "5e12f2b23d9c6323d04c17a02666ea8d", > "name": "thepioneersolutions", > "parent_id": "d9ee9a9c0773759f16e6e458cbe14670", > "parent_name": "the pioneer" > }, > { > "id": "fbf16a5a6feb96994868fd34edf76d1a", > "name": "edenbridge primary school", > "parent_id": "d9ee9a9c0773759f16e6e458cbe14670", > "parent_name": "the pioneer" > }, > { > "id": "5d11f23863bd7e4e64daa10c5dd80b41", > "name": "chen honglin sole proprietorship", > "parent_id": "d9ee9a9c0773759f16e6e458cbe14670", > "parent_name": "the pioneer" > }, > { > "id": "5db7233374a5fd65ae8f6753905898f9", > "name": "small market meetings conference", > "parent_id": "d9ee9a9c0773759f16e6e458cbe14670", > "parent_name": "the pioneer" > }, > { > "id": "40f42ad5066562e45b6aeb59b7d6af91", > "name": "pioneer club", > "parent_id": "d9ee9a9c0773759f16e6e458cbe14670", > "parent_name": "the pioneer" > }, > { > "id": "0849813d291e58a800da0431c8583fbf", > "name": "the reader me", > "parent_id": "d9ee9a9c0773759f16e6e458cbe14670", > "parent_name": "the pioneer" > }, > { > "id": "25b6e1c5491057d34a34fbee414eb1a9", > "name": "the south norwood academy", > "parent_id": "d9ee9a9c0773759f16e6e458cbe14670", > "parent_name": "the pioneer" > }, > { > "id": "351099d6db2844fb6930ee2cf562ee62", > "name": "the reader librar", > "parent_id": "d9ee9a9c0773759f16e6e458cbe14670", > "parent_name": "the pioneer" > }, > { > "id": "26eeab9400ce8c9df71a3f932365908e", > "name": "hollington primary academy", > "parent_id": "d9ee9a9c0773759f16e6e458cbe14670", > "parent_name": "the pioneer" > }, > { > "id": "abca11ec5709eb6e3e96a441926da3cf", > "name": "the reader", > "parent_id": "d9ee9a9c0773759f16e6e458cbe14670", > "parent_name": "the pioneer" > }, > { > "id": "30da0acf4dd044f1508948d30a7a77ae", > "name": "downe primary school", > "parent_id": "d9ee9a9c0773759f16e6e458cbe14670", > "parent_name": "the pioneer" > }, > { > "id": "3708a8acb6aae56edb0b822b3a44cf80", > "name": "macauhr", > "parent_id": "41f044e3ddb0e1621bc890fae8125ee8", > "parent_name": "talentgroup asia" > }, > { > "id": "d2eb19c5d4358c5e9e274e647d3c5d28", > "name": "mycloudhr", > "parent_id": "41f044e3ddb0e1621bc890fae8125ee8", > "parent_name": "talentgroup asia" > } > ] > } > ] > } > } > ``` > **Best Practices** > > * **`Always obtain thebusiness_id`** via the **Match Businesses** API before making company hierarchy enrichment requests. > * **Leverage relationship data** to identify new business opportunities across connected entities. > * **Cross-reference** with other enrichment APIs (e.g., Firmographics, Technographics) for deeper business context. > * **Incorporate hierarchy analysis** into account planning for better coordination across business units. > **Company Hierarchies Output Signals** > > | SignalAPI | Name | Description | Data Type | > | :- | :- | :- | :- | > | input\_company\_id | Input company ID | The original business\_id provided as input | EXPLORIUM\_ID | > | input\_company\_name | Input company name | The name of the input company | COMPANY | > | parent\_company\_id | Parent company ID | Business ID of the immediate parent company | EXPLORIUM\_ID | > | parent\_company | Parent company name | The name of the immediate parent company | COMPANY | > | ultimate\_parent\_id | Ultimate parent ID | Business ID of the top-most company in the tree (level\_0) | EXPLORIUM\_ID | > | ultimate\_parent\_name | Ultimate parent name | The name of the top-most company in the tree (level\_0) | COMPANY | > | subsidiaries | Subsidiaries | List of direct subsidiaries | JSON | > | org\_tree\_json | Organization hierarchy Tree | A JSON structure representing the full organizational tree from top to bottom | JSON | *For additional enrichment options, explore related API endpoints below.* # Company hierarchies (async) Source: https://developers.explorium.ai/v2/businesses/enrichments/company_hierarchies_job post /v2/businesses/company_hierarchies/job ## **Description** The **Company Hierarchies Enrichment** endpoint provides a **structured view of a company's corporate hierarchy**, including its parent company, ultimate parent entity, and any known subsidiaries. This proprietary enrichment, developed by **Explorium AI**, enables users to explore the broader organizational structure a company belongs to — supporting **smarter prospect targeting, whitespace discovery, and coordinated expansion strategies** across related entities. In addition to delivering a **full JSON representation** of the organization tree (anchored by a unique ultimate parent ID), the enrichment provides **structured relationship signals** describing connections between entities, such as immediate parents and subsidiaries. This offers both a **comprehensive** and **queryable** view of corporate relationships. By surfacing these connections, the enrichment helps to: * Identify opportunities to grow within enterprise groups. * Tailor engagement by specific business units. * Coordinate account strategies across entities under shared ownership. > [!NOTE] > > **Asynchronous variant.** This submits a job through the [async job infrastructure](/v2/async-jobs) — poll [job status](/v2/jobs/get_job_status) for progress and results. Input comes from an uploaded dataset (`list_id`); limits are 10,000 rows and a 24-hour run time. > > For the full output signal reference, see [the synchronous endpoint](/v2/businesses/enrichments/company_hierarchies_enrich). > **How It Works** > > * **Input:** Provide a `business_id` obtained from the **Match Businesses** API. > * **Processing:** The system retrieves all known relationships in the corporate hierarchy from multiple verified datasets. > * **Output:** A structured JSON and set of signals detailing immediate parent companies, ultimate parents, and subsidiaries, as well as a full organization tree view. > **Example Request (cURL)** > > ```bash Bash theme={null} > curl -X 'POST' \ > 'https://api.explorium.ai/v2/businesses/company_hierarchies/job' \ > -H 'accept: application/json' \ > -H 'api_key: your_api_key_here' \ > -H 'Content-Type: application/json' \ > -d '{ > "request_context": {}, > "business_ids": ["f21530ca2ee13d38c434cff9f6f56726"] > }' > ``` > **Example Response** > > ```json JSON expandable theme={null} > { > "response_context": { > "correlation_id": "1da4b8f4d3594514a31117c2a72d2f75", > "request_status": "success", > "time_taken_in_seconds": 0.37 > }, > "data": [ > { > "business_id": "f21530ca2ee13d38c434cff9f6f56726", > "data": { > "business_id": "f21530ca2ee13d38c434cff9f6f56726", > "parent_company_id": "e11943a6031a0e6114ae69c257617980", > "parent_company_name": "pepsico", > "ultimate_parent_id": "e11943a6031a0e6114ae69c257617980", > "ultimate_parent_name": "pepsico", > "subsidiaries": [ > { > "id": "57e40bf2ab85ec3c8368dbe8b57830f7", > "name": "soda club worldwide bv" > }, > { > "id": "9d0b83a3cbbba4406a24caae8e3bbadc", > "name": "opm" > } > ], > "organization_tree": [ > { > "level": 0, > "companies": [ > { > "id": "e11943a6031a0e6114ae69c257617980", > "name": "pepsico", > "parent_id": null, > "parent_name": null > } > ] > }, > { > "level": 1, > "companies": [ > { > "id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "name": "frito lay", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "98ad83bef31de50b0ce05ea49f3c8a0c", > "name": "popify healthy popify", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "6a98d376661629d65b4dd896dc8e3c9c", > "name": "lipton distributing", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "a9b71aed7925eb2177271b40384376c1", > "name": "dorios", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "c5bfcfde8643f8870b5c5cbecb75cd22", > "name": "simba", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "2597c8a09330d41031aa5499da6cc6c6", > "name": "school henri sellier", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "8c89053fcc330560fdee8763717fad13", > "name": "sansations", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "89df543ad4398dd304ff649d7ddba629", > "name": "punjab beverages private", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "21ca21c9c039c3bc8ed1eb9a3429758b", > "name": "pepsico zapadni balkan", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "name": "pioneer foods", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "339d5abde32f46bf69757d54f31f4cee", > "name": "pepsi nederland", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "823c0d34f83c8ddf72bcacddc43f46d2", > "name": "penny’s popping delights", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "fb9d57398f2134ec21497da01d6e9401", > "name": "sakata australia", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "ca3536b266deeae3acab935fb706a564", > "name": "burggraaff", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "c84141182fb84e1d5aa60f849baf2a57", > "name": "sete culleres", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "0e3fdbd47e5795aec6bfe78d69ef00b4", > "name": "sietie kale", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "99d9b2f3459599ca2f88fcf2b286df7c", > "name": "the honickman companies", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "ee02469ae419a436f068ecfed4da48b7", > "name": "mothers sppl", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "94040c8c87824a38f04785f53948a207", > "name": "uncle peps", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "5ac3e9bed7f729a9e4eb2a8db401334b", > "name": "frito lay trading", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "78ab069ccb7691aa7fc71f8a03716417", > "name": "quaker oats", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "c78be13c3e2367406861edf85b5a5cfc", > "name": "sodastream uk", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "f202de524e28d8a7a81e3d87c55a75d2", > "name": "cetap distribuidora de produtos alimentícios", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "25f0faf77dc76db9d9a8dfbf921a1423", > "name": "baya daily", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "e23decc05de726103bf49db606eff51a", > "name": "tropicana", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "cc955400fca4c95e1fecdef1d975d2da", > "name": "mid wisconsin beverage", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "eb402529d376e65d4cfdc0a6c75ababf", > "name": "g and j pepsi cola bottlers", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "810d9b260aebe7a239023773d646cf2b", > "name": "aquadina", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "d99efa5dc005d66278458d7866b3c524", > "name": "pepsi arabia", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "bd9fd809bbe83ead5afd8d136c01c917", > "name": "united beverage kscc", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "09b56387febb985ce677adf869869938", > "name": "pepsi cola ogdensburg bottlers", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "c02909917517b52d390c7740b1d35a88", > "name": "marbo promotions", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "b5bbc68c24a953801f069f468d5592be", > "name": "devendra kumar", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "d5dd6578fedb045d1f93daf8f393cd32", > "name": "rockstar energy drink", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "9ce986871ec0fd728ccd5db678aa733c", > "name": "cheetos", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "0d7fe8b2df998fca4666213d38245f07", > "name": "grupo mabel", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "83d303f71ef8937a131dc08415d6ff1b", > "name": "myx beverage", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "89b58d1cf79c96542ac72f5e55a5ba7d", > "name": "pepsi cola and national brand beverage", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "bd0f59ab548e8e670fcd7747c2dddfff", > "name": "naked dates", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "407a7ad5c0dbe373b2928c1635e94102", > "name": "acadiana bottling", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "9d2a94578afaf9d49c96a8251a313683", > "name": "pepsi bottling ventures", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "4d83c1f36eef76160436cb97e1dc7059", > "name": "kfc us", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "7a6bc6936340393d05e7c8f98af25d63", > "name": "natural food international holding", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "7658ab0c2a620e326f8ce0499e1f6070", > "name": "dew drinks", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "c6ea063ff49e32a13a83a290c47ac28c", > "name": "pep abcd/karea", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "61f483dfda0f356d3842d4a80ce8b953", > "name": "pesi oficial", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "b796578810ec189a6e101220cd22fa4d", > "name": "yachak", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "1f8dc3596d1182a41286fe401658a5f6", > "name": "gatorade colombia pepsico", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "0362c29fde7ebb605534d6b8acf16fb1", > "name": "siete suertes", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "c20f2ae69af3b64e34a59583f81ac1b5", > "name": "crown beverages", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "cace29537bcc18f95d72370b76276a6a", > "name": "sodastream switzerland", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "c4c5d723742f6e4a2cbc7d6f6dad63b0", > "name": "sabra dipping", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "8883c9ba1a7e5b4c62197752bc7446e8", > "name": "dubecq", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "ac1639957081867ab311dfe3c48a3f92", > "name": "pepsi cola bottling of bennettsville", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "b54ae2473115787ab98b01616dc31ca1", > "name": "mug lovers", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "de9abe5a3c777ce012c2efef4eec45f0", > "name": "menabev", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "fce54aa61accfd57a46ba4aa43b3ac93", > "name": "pepsi jordan jice", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "6619545e0f4581d13abe21dde8d86cb2", > "name": "poppy incorporation", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "9a599d28b673d4b7207c001593a8a4e9", > "name": "simba foods", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "cba91f9ad2240bf7170d3722dd82f842", > "name": "manzanita sweets", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "528c6f57242b7e9d3dfbebcc5931308a", > "name": "smlc pepsico", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "545161b9e8ee55abb080695e3b95985f", > "name": "pepsi cola of florence", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "3e6c0b944522118787d0646a1120b0a8", > "name": "rockstar energy", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "dc79af02db756e1df6699bfa75559511", > "name": "pl di poppi luigi", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "c790c0f4ee47ea44ab19c3b0827fb15f", > "name": "poppy miles", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "ec5d8c4cb3df83844b61c122aadef27a", > "name": "siete en el", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "c4bebde456a9191939e17445b3b9dc97", > "name": "siete family foods", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "5aa5da5bce3b3bfd2bd6fa135b2060bc", > "name": "go snacks", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "7c17487043008cabdc46192500ef0e43", > "name": "i’ve got the vapors", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "94642ee007bdfe1d29211ace88cc3bd9", > "name": "walkers outdoors", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "28d2354de3979b27017904824b5ca529", > "name": "middle school henri martin", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "6451214c67ba46cc196cd9a38e6f2e32", > "name": "smv beverages", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "2506d1b38988bee8ad5bbc9ba57a7d39", > "name": "pepsi cola bottling of davenport", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "77bbb6ded53339f8c3d295e39d7756ec", > "name": "poppy international", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "6bd184efa33d2583f84251ece3c8fc25", > "name": "poppi", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "4f32da08427f05c42802bd7620c6ace0", > "name": "poppi group", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "82c89e8e7eb5ce7805fd6ac346647dda", > "name": "gatorade dominicana", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "890d36c0c7508149e722dface4c54a72", > "name": "haidri beverages pepsicola international franchise", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "c962eb0dae0b5ac5d62e91743ba72435", > "name": "jksm pepsi cola bottlers multan", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "1d731bc9ce0416f655590993cae433f3", > "name": "sodastream south africa", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "8eb7d933ecc8c801a509c9019d525d56", > "name": "obela fresh dips and spreads anz", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "d2db85ec0503b7031f2ce59d897ecff1", > "name": "gluki", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "d392fea9012b5832635c1bbe2d6c8591", > "name": "rockstar on campus", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "fcee97d3e9a79563355af5289071ded5", > "name": "pephire", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "26b6d54625d0081df08f5ba590bd68a9", > "name": "aquafina india", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "262e5d6ad0be9e81ba280ef9d621dce7", > "name": "sobe gourmet", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "358b57af1dba500174e7daf92c9805f1", > "name": "carolina canners", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "e05340c95125b27413de0977828787ef", > "name": "tropicana uk", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "563bbc252d4ba2ddc1936f4b0d5ec709", > "name": "munchies medley", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "7ef51cb365494cf3f0144d6949cf9f4c", > "name": "pepsico south africa", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "ba3fa1caaf49edc9f136affe733c7783", > "name": "pepsi bottlers azerbaijan mars overseas baku career page", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "a5e22087d44a8692762edcc846a1e61b", > "name": "the smiths snackfood pty", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "afa7448b2bc2ecbafef63f2a13b4b0ee", > "name": "bardal siete", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "7caadae2659c8f59af274e43f501e9c5", > "name": "pepsi cola products philippines incpcppi", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "b753a8e307ed0da0a84ca2cbbe399c0b", > "name": "starry foods usa // savvy foods mx", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "0ce7d42aa27e5fc51d29faadf1d81869", > "name": "van dusen beverages pepsi cola bottling of astoria", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "d6a8f998d5300ab66be83af8bb0ce3fb", > "name": "pissa", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "74db08a8fe585f251950ebb2f41bb338", > "name": "poppy love", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "afd5ad21be3a753f078a16155af682ab", > "name": "rockstar energy drink car wrap", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "5ae2fb8a81f7126d1106297860c17b13", > "name": "rockster south africa", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "75e88a931c836df644af54f5eec48044", > "name": "pepsi naubahar bottling", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "cbd89e6817dc83bfda5010abf772819d", > "name": "sabra int", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "ea65b9c5bdce05c49b0248198ade4d3a", > "name": "stars food", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "8163c9186ce11dec22be1ba406326db3", > "name": "health warriors", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "71f1e474d21289c31bdb61bdc3488a3f", > "name": "poppy and sebastian", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "7e1d04bd63ec4882ad225ec548802d32", > "name": "poppy and pops", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "89af92d2faafbd69f262e558c7131d3d", > "name": "snack and drink", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "36923eebf673c2ee8b27c0816681c078", > "name": "international refreshments pepsico", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "85fdac95ab489a9545bda1d667a5f8c0", > "name": "pepsi cola champaign urbana bottling", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "1677e0f46933df4f5300254617686938", > "name": "siete banderas", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "34c88c2b689c4a1eba64b872ea1880c9", > "name": "future life solution", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "4eb065d04a42b9dd213718c05a0a5db6", > "name": "futured life", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "5d34f3b10fb042e724a72af66a4bb145", > "name": "pangiter", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "d2e9c95e1722ac0a89f3fab4562b76ac", > "name": "bare", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "565bcafb4fd59f15e547aed83ed06187", > "name": "sabra mediterranean grill", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "3da21a761e769bd0ecdefc8d8ff09702", > "name": "pepsi cola bottlers australia", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "a63036881f581ffdf78f4cef2c7ebc87", > "name": "pepi sánchez", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "db6eaf69eef8acf7c6832ca23d7fa753", > "name": "stacys gluten free goodies", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "df828de99c5ae25a6f3db38dae2b26b8", > "name": "pepsi cola bottlers lahore", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "bf8f75f9d571b2e688028333b382947b", > "name": "ип ооо international beverages tashkent pepsico bottlers in uzbekistan", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "4adeb3008e38a0a92d9d3570b732c4e0", > "name": "iberia refreshments pepsico bottler in georgia", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "9fe8340ae191083c6ed933a7f56ed9d6", > "name": "bubbly flavored molasses", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "336d20d58d445ad7b47aa5ad26e83ddb", > "name": "productos percisa", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "3c12144fe2f82e2419390aeb9433ddc4", > "name": "snacks and more", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "187b2aeb6aa6b4bbbceec4a11c39f6cf", > "name": "peps17", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "e10b30b53aa2e7f77df37c1c6dbf7e10", > "name": "obela mx", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "b12f91995e6b5ec1f562f129cabf803f", > "name": "punica getranke", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "a3d6ae087ec58ca699fac0b8803c3217", > "name": "tropicana oil", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "7208053f9abc9af44c0ecb29387eb048", > "name": "paradas 7", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "1c08a1d833d3fdb690f17545c6dce645", > "name": "peps elec", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "688a1bb1e57933221d9801d703a37c6a", > "name": "poptys", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "6d234637bb11df0855221b074c665179", > "name": "dew", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "16473ec4e73f7768409ef1a7fb933c54", > "name": "soda g", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "690cf9fd1c8809ff00adb6bb28878636", > "name": "poppy perspective", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "ffe8ab28ee2377e267f6ee6d2e592cd8", > "name": "pepsclub", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "4bd7146d99a60027394267e022923a91", > "name": "irfan khokhar", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "5e14339911dcae4a7d8c835699cbdb13", > "name": "stacys pita chip", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "9fe4af1a818bafadb0ffcc1ac67a17af", > "name": "frito lay", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "ad2cd213b600ab9091d8407a06f5525a", > "name": "siete onces catering", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "c9294a15612a98f22fead9dd49048516", > "name": "yourfuturelife", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "f21530ca2ee13d38c434cff9f6f56726", > "name": "sodastream international", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "a8e66274246c30ab40c42efb55780139", > "name": "pepcol", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "83904a4165c96c6a59745f73f8deaf0b", > "name": "tropicana alvalle sl", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "a5c6595768cefe781f4fb90bbe3bb5ab", > "name": "tropicana food products", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "c255ef57658322e795d7d960eab0fb87", > "name": "siete mares shop", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "a3318ee6f8388d532ee46b25db0c519b", > "name": "bare foods catering", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "f426a7a32ea7581a37128d1e69805054", > "name": "pepsico india", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "a0546332c6be4b13e71ef32ce9d69ed7", > "name": "pepsi logistics", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "c0828019915d25683d01089dc7854f01", > "name": "futurelife health products", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "3e6fd5168c95dbc7a38d5245baf45092", > "name": "bare foods global", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "53752952641c9d9dbdbfbb79d410097d", > "name": "seven saints", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "add1137ecdce26b36d87d128b2606f87", > "name": "flopipo", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "ff4fdb002b55402aadb0b558440d8293", > "name": "carbonated water making machine", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "141c7b6fd6a585cdd11c75e33877af67", > "name": "pepsico breakout accelerator", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "f0f23c95849490463c500bbbf73b59e6", > "name": "bluebird foods", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "f6274c54c42c5a55a42d73796c933c62", > "name": "gatorade plant indianapolis", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "3ce6770e549581c0c1fb0cd44f021c2a", > "name": "karinto", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "5df85e4cb34988247ca314d8bb3f1f5f", > "name": "sabra", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "28167ab7459bb424caadb68840626624", > "name": "shoarma sabra", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "a381bba5dbedee6210ab394b0584832b", > "name": "city park pepsi tennis center", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "858892393391a2880f7086c8efee1a5e", > "name": "pepsi cola of missoula", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "8aecdfff9a377213bcc676dac40dbe37", > "name": "pepsi cola puerto rico cbc", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "1e942981411db6bb4d0d89bca996d696", > "name": "biolumen", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "b780917e5f24454601c4d1001cd2850e", > "name": "siete", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "d2ce3feaca28f0a80f1c597a03099e82", > "name": "kevita", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "164b4f5a21d5d42a2f1b53cae87b1a6a", > "name": "cape breton beverages", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "4d675e418480d4ba5de41e88c03d357a", > "name": "siete cinco cero", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "f13150bef751d050e04a5ebd770f8078", > "name": "ahmadi industries bsc", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "a5057132cbae25bb77298d2be9f5dd7c", > "name": "7 lézards", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "7ff759933411e30947a0900b2e4bcf0b", > "name": "pepsi cola of bristol", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "0081cf7c381e288e070a86c8b40aa91f", > "name": "pioneer foods roasty tasty", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "0165e2bddd15ca1bfd45945312169876", > "name": "pink poppi", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "04ed85556bfa5b96d3f8ff60b5c0f422", > "name": "northern bottling franchise of pepsi cola international", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "7bed48470d804b661b530cbd005d9e84", > "name": "mabel cereais", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "0dc082da2517d2b834200ed616db2618", > "name": "sodastream denmark", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "8a74f5e566bca7ddfe68e77a386cfab4", > "name": "pepsi cola distributing", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "8d3644d4828fef1160a938be53948ae6", > "name": "pepsi cola bottling of la crosse", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "9922fd037fa909b6d8da9ae01b5dbc9a", > "name": "pt buana distrindo pepsi cola", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "4688f7ecc50124bf7331691d3e47d214", > "name": "potato vending machine", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "dcbbd622d7a646a7f2c516d0d925a9c0", > "name": "mabel treats", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "a4423c634eb95fc6c092892ac0a4d531", > "name": "amacoco", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "7f74c33aa406d84eb415a3a18274c25f", > "name": "sabra kosher bakery and restaurant", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "a891b7871f71f8c718d694eb6a1a0adc", > "name": "pipers crisps", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "c991010cee65cd127927865d6bdb8b08", > "name": "harrington bottling", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "44234543068fa889684b17c36d915aec", > "name": "saudi snack foods", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "878076a2f3a7577123a57449000ec06f", > "name": "wimm bill dann", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "12eaa071b5d68822159e21ea6a12f16f", > "name": "the popcorner", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "cde335de5db1808bc4381c7e9f13643a", > "name": "ma che siete venuti a fa’", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "f0e15a9ea34907cb96ed15d55f22582d", > "name": "little farmer", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "cde4c78013adbe4603aad140f4628bb4", > "name": "henri and scie", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "b3a9cd45210475c6af2f7c765c2b018d", > "name": "pak teem", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "1359d80d799ea5b085ab83b95c566bd5", > "name": "百草味", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "de1517e572584527bf5a7a8caf26b1e4", > "name": "lays market", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "e2a581ad87e2b762490a701ede6264e8", > "name": "bare snacks", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "ceb1a00e87217fb10fdceb772e931cd8", > "name": "snackaroos", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "3250eeb0a3d163f9632d7c038d6b22ac", > "name": "poppi burgos tienda", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "02e9221f16444c0db1500dab27021290", > "name": "sting and honey", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "bba4e67872e98f3f6d4959eb3b308f9b", > "name": "soda club", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "08a299f19f68c2e73c3a537eed9816cd", > "name": "guillaume cerdini", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "6a47df4769dd7c949be94879f07d1089", > "name": "one natural experience", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "124ad4700fe879a92e7427d9312a2185", > "name": "sabra food", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "bbcb7472991a06284f83b0f31824bd45", > "name": "hangzhou minle snacks", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "9497ee2153f449d03d472f6f6e2a3b93", > "name": "siete semanal", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "e5b3c26ecd3fb3d88b52aa6b3282d47f", > "name": "obela deutschland", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "175c7026bd69d0a56b8b0e41459f2a4b", > "name": "hotel poppi", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "33f51878b68ea8838d57106bf1856cae", > "name": "kmbc private a franchise unit of pepsi foods", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "73c10ab62d8936890f9a2f9d633abd83", > "name": "pedro jorge cruz", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "83849fd88868f9a35b4d2480b4af3652", > "name": "pepsico veurne", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "90d9714bd3f0bab9d19dc91d6bb5b80f", > "name": "samabra", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "b55cc1c6011b1e3935961a545d7d1d46", > "name": "aqua fina kitchen emporium", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "e9b588761c446e0989a443db607ccd9a", > "name": "pepsi cola memphis bottling", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "ad0982f6e5c2a651a9cab8915a097c0b", > "name": "lime rock springs", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "bdc41e086724611647aedcf36bd512e0", > "name": "local school henri deglume", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "08d653659cb915f28707737b586ff3f2", > "name": "hummus market", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "2306b62d472c3193811c89fd5b7774ff", > "name": "pepsi cola soccer complex", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "5215af5a6986bba3c030ead796c79a74", > "name": "garza proveedores", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "6aa63fe09032df0e60c0b3c1ae30f070", > "name": "pepsico flavorworks", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "678b2d3a0bc3dc85abfa9d00eb1bfeea", > "name": "futurelife foods private", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "44cece377a7c1f9fdea01c44a8611849", > "name": "siete luminarias", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "543c783cd5f7bbc2d83acf439e87361d", > "name": "riaz bottlers pvt pepsico", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "6464f659789502a61378991cc62891bc", > "name": "pepsi cola bottling of marysville", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "4347e60801eeb84f635297a9291e8cb1", > "name": "frtio lay", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "5a27d94f10c1621027d6734ac246a068", > "name": "frito lay poland sp with oo", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "a422dbf9ccd11b2d2917286c4b6df29c", > "name": "juntos crecemos", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "d50846caf771cf8ac127c27890c028ae", > "name": "miss vickies south", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "f6c5954046da82ac265bac35f1ccf92b", > "name": "boucherie sabra", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "1a029941cd6f8c535e2d35151a44bca2", > "name": "snacks services", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "4f8d74e2129ec02191e12f4c8e531bc3", > "name": "middle school henri barbusse", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "b53e080065f3c4670cadd565a4996eaa", > "name": "pepis shop", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "c4ae8320fc552428a9e73724a905a098", > "name": "mabos snacks", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "d967d7fdfff8e1d507920c5288748450", > "name": "gamesa s de rl de cv", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "141b567e8cbb0f9eb3e13bb8161e14e3", > "name": "gn beverages", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "5ba4fd160e063e79e2f4a2b8e31438ec", > "name": "stacy’s juicebar", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "748d3c73b84334487c93d9c31a647ade", > "name": "what’s poppin", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "75fab642af3e79eaf97aa62313e9d870", > "name": "sodastream professional", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "a37c5dfb4049efea3bc8613ada49c452", > "name": "lebedyansky", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "3b1430d8b99216e8d69fa600eaa449bf", > "name": "brisk trading", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "52513125e5765c7b109688c44762474e", > "name": "spitz international", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "a96abac52d0a36d86bb328fc5f8c59f1", > "name": "aunt jemima mills", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "447888dcf26ce72c8dfb25353baab791", > "name": "pepsi al hayat", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "58762ad3185c48926683cfca6e4dd313", > "name": "captain crunch", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "87da9494afb39a1c09a380f09c554316", > "name": "poppi’s bbq", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "6d0c8ce68ded5fa800e12889353fc6be", > "name": "pepsico pakistan", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "611213ce222e0245ad1368d38475b37b", > "name": "simba pty", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "8e8dbaaad04a881b43b2ff32ed0865b4", > "name": "gatorade uk", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "f4ad2c7dca6cd1036380125c9a08f9bb", > "name": "snacks´n drinks", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "ef157c95212e3aaa9da26b67938f71cf", > "name": "izze", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "1f413071fc570249ef7d95379ba39ce3", > "name": "esspaña", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "9f7202c51e12f4818503aca55deceac9", > "name": "miss vickys", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "5237b1935dd5ed2956fe2b8f0c8148ea", > "name": "tasty rewards", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "5fed9c0b635d4d161b5ec95b147587b3", > "name": "sabra grill", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "6e6d51ef180d3805401eb6650a99aaaa", > "name": "ar tradears", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "7c80675bbb664bbeb75f085c9f5d6204", > "name": "pepsi cola newburgh bottling", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "f44e4a79c01f21637c734d1929564269", > "name": "smith snack service", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "3b57d4abffe9b5bc054e96e3d396df78", > "name": "springfield pepsi cola bottling", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "64bde143777bb30fc41edbe5940f0fec", > "name": "sodastream nordics", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "a379751906e45d3de4f1655492aef3fd", > "name": "sobe", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "66268fa0438c50582a2e92e5cc6e0761", > "name": "health warrior superfoods", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "70888ef7277372bc7eccd0a28916b01b", > "name": "uncle chips", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "8f0a24772de600124077459624d471ee", > "name": "súper distribuidor cabimas", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "d940d92f45e08bc60678418cdb193b34", > "name": "quacker", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "2dcc9ca7148b5f5d14d4383a5e93c2b5", > "name": "sabra beirut mix", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "3164d893e2885850ed6345814ccc8ae7", > "name": "barec", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "c038e4a410304082505801434e2351ac", > "name": "gatorade bolt", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "02c64ce61664eef11d51888a79f708e4", > "name": "sodastream international bv italian branch", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "a3562ba45a819fa2688ffac0bc1c4c4e", > "name": "peps eat", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "eeb06ab5854266d0099aef9f2e00cfae", > "name": "siete azul", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "8be031af03574a36a5c3572ea34f0b1a", > "name": "walker’s popcorn", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > }, > { > "id": "d7e4378eb916b56c0b286df9b774baf6", > "name": "cytosport", > "parent_id": "e11943a6031a0e6114ae69c257617980", > "parent_name": "pepsico" > } > ] > }, > { > "level": 2, > "companies": [ > { > "id": "6e787232b1980a9d9bdeb7d7b7d4f965", > "name": "fritos and foie gras", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "e5175d662bf6e68aa92d9e9888313edc", > "name": "lucy’s hot fries", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "c4ac3cfe8150f4e9439fed547869107a", > "name": "crackerjacks concessions best jerky", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "65f868e7460706e5fef4810b36812a10", > "name": "smartfoods", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "6fe76eaafb7ac09378393e7fe79d6833", > "name": "ruffles pet care", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "525225dfef742bfacc8bf4c60f5c6624", > "name": "togachipguy", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "967324d4b82e36af3f286637c6012232", > "name": "crackerjacks food truck", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "a47d032df330522ae308d7d3348912c0", > "name": "twisty’s potatoes", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "22f94ff218da460e603755d1b9a61ed8", > "name": "ruffles art studio", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "6b0dc1e8e9e907272ffb2dfd20aac35e", > "name": "ruffles and rust vintage", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "d4fa48e39723d73d2f24c0616f326e43", > "name": "smartfoods vending", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "ea152325c1f46ac88ed15a1b2006d08f", > "name": "ruffles and rosesuk", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "ea44de48111e3b845b75e1dc6e5feac8", > "name": "the smart food", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "7007ed40a5653063bfa2d5a8bd4678ff", > "name": "smart food", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "135a12636cf31a90cffe54f412dd89f7", > "name": "aardappelen nijs nw frito", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "d14486d05a3cc89d35b3d7724cd9f388", > "name": "smartfoodies", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "db1018d846a4fbf979d23240cd831d76", > "name": "lay z", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "03ef1e732c62534fe519fc322f689ac5", > "name": "devon lazy spa hire", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "7aeca492efe53edbae651079e428a3a8", > "name": "cracker jack cafe and take away", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "92580114c7886807b08f6a0a306589cb", > "name": "smart corn", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "ef54276722e5b930d2a15e1b0672ae62", > "name": "lay business consulting", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "0eeb317e38c00b7b574f44ed9a8e1b40", > "name": "doritos store rydalmere", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "09e1bd17b3f6532d8a35cf8f013b207e", > "name": "cracker jack auctions", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "65e3209b747bdebce629d4abcfe4b422", > "name": "firito taco", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "ee9187cd088f86fd58914c884207fedc", > "name": "ruffles and relics", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "987a3e8ee74dbd55936e8780b66ea9eb", > "name": "matutano", > "parent_id": "6eebb2af6bb0fb54b7ef435a98bb66d9", > "parent_name": "frito lay" > }, > { > "id": "3ed13ba781120b53b6bcb962da115ffb", > "name": "simba smart watch", > "parent_id": "c5bfcfde8643f8870b5c5cbecb75cd22", > "parent_name": "simba" > }, > { > "id": "34c8b1c57a24ed42171831feac0af8f7", > "name": "five star taekwondo", > "parent_id": "c5bfcfde8643f8870b5c5cbecb75cd22", > "parent_name": "simba" > }, > { > "id": "28ad3d18c7caecf4d4bbdba0448c4f74", > "name": "serengeti simba lodge", > "parent_id": "c5bfcfde8643f8870b5c5cbecb75cd22", > "parent_name": "simba" > }, > { > "id": "d864dc3dc42ce2a646568a97491f7099", > "name": "simba 4x", > "parent_id": "c5bfcfde8643f8870b5c5cbecb75cd22", > "parent_name": "simba" > }, > { > "id": "c3e72f35ab574e4987b8287f28e897ad", > "name": "simba towels", > "parent_id": "c5bfcfde8643f8870b5c5cbecb75cd22", > "parent_name": "simba" > }, > { > "id": "fb7bf1f9b81f0d9821af08d113b645c3", > "name": "associated vehicle assemblers", > "parent_id": "c5bfcfde8643f8870b5c5cbecb75cd22", > "parent_name": "simba" > }, > { > "id": "fc26dc62189f6ae194d88199bdabe07d", > "name": "radio simba fm", > "parent_id": "c5bfcfde8643f8870b5c5cbecb75cd22", > "parent_name": "simba" > }, > { > "id": "0b2aa2c568bdf3c55deb6a69ab80ba51", > "name": "ashok leyland kenya by deluxe trucks", > "parent_id": "c5bfcfde8643f8870b5c5cbecb75cd22", > "parent_name": "simba" > }, > { > "id": "0cc608ff9c624a18b6b12bd7d0797c85", > "name": "simba for you", > "parent_id": "c5bfcfde8643f8870b5c5cbecb75cd22", > "parent_name": "simba" > }, > { > "id": "67277e5fa7f036d6e2366b468430dac3", > "name": "roar refreshments", > "parent_id": "c5bfcfde8643f8870b5c5cbecb75cd22", > "parent_name": "simba" > }, > { > "id": "698c5fce64c788624563e54db2139ac9", > "name": "simba water", > "parent_id": "c5bfcfde8643f8870b5c5cbecb75cd22", > "parent_name": "simba" > }, > { > "id": "025d34ba7f5a7780e04dd255364033ab", > "name": "simba enterprises", > "parent_id": "c5bfcfde8643f8870b5c5cbecb75cd22", > "parent_name": "simba" > }, > { > "id": "3c48423207ddc993dac7a2fe14677c49", > "name": "simba dojang taekwondo", > "parent_id": "c5bfcfde8643f8870b5c5cbecb75cd22", > "parent_name": "simba" > }, > { > "id": "1ae13237d6a14e87de238114314c76e3", > "name": "simba queens", > "parent_id": "c5bfcfde8643f8870b5c5cbecb75cd22", > "parent_name": "simba" > }, > { > "id": "82d17001e155f752d063f8acde6d40b3", > "name": "simba money", > "parent_id": "c5bfcfde8643f8870b5c5cbecb75cd22", > "parent_name": "simba" > }, > { > "id": "af0dccb36dd033652e4589b93f047277", > "name": "simba market", > "parent_id": "c5bfcfde8643f8870b5c5cbecb75cd22", > "parent_name": "simba" > }, > { > "id": "04e28e342cbd0912ad6cdf8673f80fe9", > "name": "simba escaliers", > "parent_id": "c5bfcfde8643f8870b5c5cbecb75cd22", > "parent_name": "simba" > }, > { > "id": "b122191703d292cb88ae9b9e22ea0c7d", > "name": "simbas den pub and bistro", > "parent_id": "c5bfcfde8643f8870b5c5cbecb75cd22", > "parent_name": "simba" > }, > { > "id": "0ed5ef7a6d31bd7ff0ea09feb621e9cd", > "name": "simba grill restaurant", > "parent_id": "c5bfcfde8643f8870b5c5cbecb75cd22", > "parent_name": "simba" > }, > { > "id": "0e11e7c2dea95d5b354996c599fac56f", > "name": "yibe subsidiary of simba developers", > "parent_id": "c5bfcfde8643f8870b5c5cbecb75cd22", > "parent_name": "simba" > }, > { > "id": "1dd5c6b784483cb264889ed4856b38e4", > "name": "punjab concrete", > "parent_id": "89df543ad4398dd304ff649d7ddba629", > "parent_name": "punjab beverages private" > }, > { > "id": "e1b9771d4080cc40a5b2c2d2f958bc59", > "name": "punjab food center", > "parent_id": "89df543ad4398dd304ff649d7ddba629", > "parent_name": "punjab beverages private" > }, > { > "id": "1f04cf42bb8e13bab9605a5120742d97", > "name": "punjabs agrotech india private", > "parent_id": "89df543ad4398dd304ff649d7ddba629", > "parent_name": "punjab beverages private" > }, > { > "id": "f45d5f1f93e1bb3accd40a6fab1b6277", > "name": "pivrifine water", > "parent_id": "89df543ad4398dd304ff649d7ddba629", > "parent_name": "punjab beverages private" > }, > { > "id": "2e2f781a1d5532a18cd6ba6f1b288d4e", > "name": "pioneer texas and pioneer lot services", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "5c9b9db8bb6221bf5781ca6592fc9adb", > "name": "crowdform", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "071054f2fea556166875f737abb7f08a", > "name": "pioneer tv and appliances", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "d9ee9a9c0773759f16e6e458cbe14670", > "name": "the pioneer", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "8155522f0f2c717572383fc86618b172", > "name": "ketchikan daily news", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "fd7e51bf85904aa99586c4386ea92673", > "name": "pioneer building supplies", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "3a8fe28be188a2ba4e7f69185e316232", > "name": "pioneer property solutions", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "ecc3036d054ed95037fac20614ccd1b0", > "name": "pioneer nursing service", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "75e12a516341f7059a434e13c67b4d4f", > "name": "pioneer funding group", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "76902fe1a83fe76bfe9ef1a9a37eb1ca", > "name": "bpo pioneers", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "cdd966ff645d80f9fec6b2f2a202bff4", > "name": "pio | communication agency", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "18f502fda75f07fbb5b1772162b5ef62", > "name": "stream foods", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "1a8a8a32b346a61e7eed408ef525e3ca", > "name": "garage w van empel", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "3f3e32925fbd0ffb15e826cf9978c15a", > "name": "pioneer street restaurant downtown ridgefield wa", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "66d69e82e365833df3a666cd6ea6127d", > "name": "pioneer filers", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "30e99b87f3c54dd521c3d2d88aa05201", > "name": "pionex audio solutions", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "cb614e3041c241ef7d79e80fadf41672", > "name": "pioneer flanges and fittings", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "ccb2290b8b76f95195b52d0b6be90f3f", > "name": "pioneer austin", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "94912c83a31ef27edfd582700cfccfa8", > "name": "pioneer systems and projects", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "7dac726aef49642f981c484dd717aa8d", > "name": "pioneer industries bapunagar", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "4ad03cd52ac7651780efc6ef61cc57df", > "name": "pioneer exteriors dallas", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "dd80cf74b635db2ff4ddcbf63e726cca", > "name": "pioneer cleaning specialist rob pound", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "9f669e2519862a83689f0e317ae8ca66", > "name": "pioneer automotives", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "3d47bcefc151702ea9c301177ef41d4f", > "name": "pioneer family pre owned auto", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "8e3c78e7b4ebc3a154b72a4fdf91124a", > "name": "cornerstone church swansea", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "2b821b786541632ce51e198a476479ca", > "name": "pioneer car care", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "502e9f0c4199eaa5f49996dfdd22de4a", > "name": "lone peak lookout", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "cc2562ebcf133cdeb45b8d33f760e878", > "name": "pioneer hospitals p", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "e2eadf2a2235b6112d05f757d748a390", > "name": "pioneer transmission and general repair", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "b8d730faf6fe788432941a36ca078993", > "name": "pioneer abrasive", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "538cad7294ee2a27749530a0e9429484", > "name": "pioneer feeds", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "a784ed9d215ff580d8a5d77278c8a37d", > "name": "pionec electronic systems", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "2bf3f377ae87820827683a20a28d769a", > "name": "heartech precision", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "e4d09a38f82b677b8ceee25dc8529c56", > "name": "pioneerinc", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "41f044e3ddb0e1621bc890fae8125ee8", > "name": "talentgroup asia", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "c347523a50714c4e8491818d3fef2ccd", > "name": "pionerr car music system fittings", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "0f9fd879f7b2e5173116a3e0451923ee", > "name": "talent group asia a pioneer design group", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "3fe7efc7aeb15374743e419bd194ee48", > "name": "pioneer sewing machine", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "cb5c888d91d09126bea07746c1649b94", > "name": "dsl philomath", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "e4cb259e940e66c3e363c19df93f7070", > "name": "gerda doors", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "c225b2e82831716c8acc35c9e1bc2c65", > "name": "universal business computing", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "e23e45acb6ef4111ad5b50e54931519e", > "name": "new pioneer spring", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "f3d9e18274f4f0f7ba4e8c1bb9b7449b", > "name": "first pioneer industries", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "567526e9f96cb54fce1b8c11d3318703", > "name": "bokomo foods uk", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "d8417a3bdb3665296bb9b24cec339305", > "name": "knayam foods", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "dc9f29cd765e92730caa3e58f5f8e173", > "name": "pioneer plasma catalysis for co2 recycling", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "9d5d9b90f2f5ac3372d138e5fc5c9222", > "name": "pioneer textile engineers", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "4b7d83896822023921cd60fc53af9c6c", > "name": "gantry public house", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "abc41a3d706613ea7ad3c54da1d99d79", > "name": "pioneer cuisine", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "9647173bf9d6f51505b42739452ae9cf", > "name": "pioners", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "cd534321d87daa04174b04fdd6bce2d1", > "name": "pioneer concrete and fuel", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "f6781f81389b86064e90f59baf952228", > "name": "pioneer xenergy", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "6b64854c53dfe178b02f409cb50ebcaf", > "name": "pioneer nf forgings india pvt", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "18d66cbfe64b8c4fd08d2cf8d6e85914", > "name": "r and s pioneer pharmacy", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "e717994f0a4361d564237449c76a8a86", > "name": "pioneer autocare", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "b36f93710e9147b0631275446f4f2f29", > "name": "pioneer oil", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "53c12b233d08df0c1a3b5c2a215719f8", > "name": "ceres productos alimenticios", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "6dd1f19f65ea18dca5a7c8c3bc4ac0cc", > "name": "xenergy group", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "75e5837c82ec21ad73ba614e54fdd14b", > "name": "belmont solids control", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "2f8dc4d717d44463d29d136243e2e8cf", > "name": "pioneer florida museum and village", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "aebe2fcbe41548eb90cba851e98d8cb5", > "name": "420 bus tour", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "99ac04ee5694fc0dce7b95b6ab45f585", > "name": "pioneer cad and design solutions", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "227185b77948b3cf4ac3247df6b321d8", > "name": "pioneer outdoor lighting", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "ce111d461469c89e1b00de8f7dadc599", > "name": "bmr logistics savannah agency for pioneer transport", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "be49469ce32ff13e750cdb55a981874d", > "name": "pioneer europe nv uk branch office", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "f6747ffabcdfd37d8ef82bddc3ebb75a", > "name": "pioneer electrical", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "fbfa71f6f771e07083d052381c4014da", > "name": "state tower syracuse", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "81c3ee54e7a4d2e70f7c2253dd9aa3d8", > "name": "pioneer office cleaning", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "2ea00226f05592c25edd21f733b420f3", > "name": "pioneer electrical and telcom", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "0d6bfa2c22b88bdf800b8474341302f5", > "name": "pioneer international campus", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "21311c829ae28ee203a1560895980a55", > "name": "pioneer homes detroit", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "547588b969f768db317b236db7bc822f", > "name": "carl jarl locksmiths", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "e7bc0219e85499a35f4fe51e29803a52", > "name": "pioneer enterprises nagpur", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "f67c078484e0612df874fbf9896dea82", > "name": "pioneer electrical contractors", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "5ed759e55479454b22246d6fe7318876", > "name": "pioneer engineering industries gurgaon", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "158efd7e783845fb399b139c158c8200", > "name": "pioneer road long day", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "8599d5d79bf5f74e1632d5fc82f8d34c", > "name": "pioneer farm and ranch supply", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "eab04fbcf3eef67e4aea8e4cc11d51e4", > "name": "p associates", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "200c3252d0ba8191f938f4778a99d99b", > "name": "pioneer enterprises bengaluru", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "2a1e8a878761e7fcd5ea382075ddc959", > "name": "young pioneer accessories", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "bbe42f48ceedcf76513a125a873631b6", > "name": "pioneer4ou", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "d9052977f28cf45a056a1df8df539b3a", > "name": "arroyo gardens independent and assisted living", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "439a5fe7312082170608be5baf5208e1", > "name": "pioneer audio visuals", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "70b1fa19303b55f77c5a057b44153027", > "name": "pioneer tandoor", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "8a2edab198e29276add26df8ab5c0686", > "name": "pioneer auto", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "0a72b96f5a58468a94151f5bcd7c195d", > "name": "lizis", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "d744ee0179cd2e70e922f9fa74ad0855", > "name": "pioneer compressor", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "008f24b3b2f48eef4d809418e2021ad8", > "name": "jolie hair academy", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "53e20f21c6a7bd64936675d3f43fa3f5", > "name": "greenbank pioneer health general practice", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "97dcfca8453b905d5d9fb0c2b6d7af32", > "name": "pioneer mashroom", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "dc48aaaf9d423e01ce40605e0044213d", > "name": "pioneer storage mesquite", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "d45fd384095ea1683cb6a8174f4f4516", > "name": "yes apartment napoli", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "6001ef5c3face0f2ddb3f4d324c33243", > "name": "bokomo zambia", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "933669c80cd28aeee18bd4dc95d40965", > "name": "changzhou zhongjin medical", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "d0d9cd2722b4943f85a861217c847c86", > "name": "pioneer ford bremen", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "f3f90152bb7da62e2a2c1513ba02e0f6", > "name": "pioneer rubber industry", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "f9b9f41a80530b5a271e5d4757bd3096", > "name": "pioneer development", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "135a3a6af6a3d61cfb10fe25f5990f83", > "name": "pioneer lakeshore café", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "36e89bf3ac4a6ce02b0cba1434236d83", > "name": "pioneer automation solution", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "b859d4bf41cc02bb3311f7a519f6750b", > "name": "pioneer decorator", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "d6f361b3fb3c8dcb6e942bf496d4f056", > "name": "pioneer logistics group", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "1b16322d321d585d3d34b51192c9ba4a", > "name": "xian pioneer dope", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "3585690a5f9fdac25df9a14296878f43", > "name": "pioneer auto desk", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "78cb85ac301afeddc503f289b36f252e", > "name": "pioneer elastoseal", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "9cec1425388d9b396b45a66972ef825e", > "name": "pioneer copper", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "4a3b7be417d3bdae734b861526d2d54d", > "name": "kings church manchester", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "33b913caf8e04527d97480494df3068d", > "name": "pioneer global design and sourcing", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "a7f1e51453689edbf8648346b3bc7555", > "name": "pioneer marine", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "c729a03038d87a8a584540f231febd53", > "name": "pioneer inn motel", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "da59845c44551a33a1aa4545cd09c61d", > "name": "yangzhong pioneer electronics", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "6a26d1c8e472b1685d482ba082b05730", > "name": "pioneers enterprise", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "7a00a840dd6da449ec5b806ab738672a", > "name": "pioneer electro agencies", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "52126663c2d99a7f557dc133d8b03c08", > "name": "pioneers pizza", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "e9fa60064608a6569d0321a97e9c2a0b", > "name": "sensory spaces at pioneer", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "7426ed7cf19b0f43701d45d14f2ddf7d", > "name": "pioneer enterprises", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "ba936da9f1a653b3f4208e21a6f29f5c", > "name": "shenzhen pioneer printing", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "a2365564bcfad9bb66d4b4e42b213e8d", > "name": "pioneer technology", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "6a18208c487d21bc649a858cf283d098", > "name": "the pioneer hotel and motel", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "8bbf669677796cfcc0aeab8b1707091f", > "name": "dominic powell", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "a9366159c0800ebacea57aef02036302", > "name": "pioneer ent", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "ecb3d8e344096d4d29b18f89495852e1", > "name": "pioneer r v storage", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "67495104392936dfc24771e6d8c5adb9", > "name": "pioneer equipments", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "c522ebfd2bafe4311dad1de7483f91fe", > "name": "buffalo billiards", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "a31c90c5ef170a85a7fbbcddb564a5f4", > "name": "car audio rhythm", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "b7db5c2edca3192ff91abdfc5956ae89", > "name": "pioneer compu link", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "a41c113b0237162512387c2ca2c03f52", > "name": "pioneer communications network", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "cbb7cf7123d77c6f5348220e864b4674", > "name": "pioneer trading mumbai", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "11380eeef3c8ad096e7ffa6db8cded4f", > "name": "pioneer electro industries", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "5a13727e4fda84595c56be8de495d80b", > "name": "pioneer forging", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "5eca0147361aab915947ad8dc4db62cc", > "name": "pioneer cameras", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "6492906f08427de290fca94d1172e4bd", > "name": "pioneer screen ii", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "a8a1d8f7eaf77f4f5cc3cfb128cbafdf", > "name": "the pioneer motel", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "a470c782db01668dbe123801d42b85af", > "name": "pioneer sound and light", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "b8bbf797c5d3cd9bdc78c75295ce0d01", > "name": "meri saheli", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "af1caea4b8707b33b0bd098b97ce4c52", > "name": "pioneer europe", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "faed85da80c8a0910b504d52e316d942", > "name": "pioneer caps and cans", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "62ada64a54bec9906cb118e82af6c277", > "name": "pioneerium", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "519bc8c1e0f2156035a39f1b100a198d", > "name": "pioneer electronics coltd", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "a642159add29bc9e7bb2a0030fc28b32", > "name": "driveco motors", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "306d09429fcadc254d5c913c5b3663a7", > "name": "pioner auto", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "bbd467530694ed5144e002450143cb85", > "name": "sasko bakery", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "346a31731d8190b78b078ea9976e1299", > "name": "pioneer procurement", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "348afc630ec6ee3e84138115470a081b", > "name": "pioneer regional school", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "d5513907eea66512aba369120da6834c", > "name": "pioneer marketing research", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "eb19e1860816eca79ead8debdcc87635", > "name": "pioneer drape and sofa comfort", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "7cd5bec12b2a6dcb0964c3a8d949b79b", > "name": "pioneer one consulting", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "ccae222c61c2f137f65ce91fcfebbee6", > "name": "pioneer trading", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "7b281aaf17aa15f71b51d994c41dfb18", > "name": "pioneer cellular event center", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "e5d2bef84c168163d5d78d8d934f39f3", > "name": "pioneer union", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "cfb58bb3d8cc0a258ee9e2b5dcf7f68b", > "name": "zamony venture", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "ff0abe6ccdc306d929a26485aec2052b", > "name": "psi crane and rigging", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "f9df794fd2a942c56c904ea8b3f5b37f", > "name": "community connections program ccp pioneer programs", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "f3c1f3ef55859ffdc4573a9fd0da4037", > "name": "pioneer do brasil", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "091427a4e3f4d84d631ad605c04d40c0", > "name": "pioneer green cbd", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "34b5593f078d2ca9032f4d3e38624199", > "name": "frank’s key and lock shop", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "6c781f56b1fe5b8d5cf7ee275407392a", > "name": "pioneer microsystems", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "5f87fe3a49834d3c431d447dbe1227e1", > "name": "invesco", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "72839a5628303476b2ea493cc8980369", > "name": "jinyun pioneer tool", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "a5afbd91fcea6d2b81e3c9b11540cef5", > "name": "pioneer laminates india", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "e966160d464fa7da7ddaac975f6cd3fa", > "name": "pioneer n f forgings india private", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "0236a9cb780ad5d5c888c6573ba073f1", > "name": "pioneer display systems", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "5681488e7c14a948ba9d34e15a3c520f", > "name": "pioneer decorative mouldings", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "e357eec3b54695c873f0ed7bb3648454", > "name": "pioneer instrumentation", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "dc2289335e416dc898f5d196007c844f", > "name": "pioneer india electronics", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "88268d8e167f9d7afc3b2a33c2c5b9c2", > "name": "pioneer realtor", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "261d3ffc05899235f4299a236f02b834", > "name": "pioneer lodge internet cafe", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "f83deba1c7ae00ea1b086ef88b38ad3d", > "name": "natty rems", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "24e948d3422b2a62dbb49b85159fa9cb", > "name": "pioneer service", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "88926020ae332d638b962f1c4465c479", > "name": "pioneer firewood", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "367834dc82e2cf954cfb726ac6b377cc", > "name": "pioneers partners", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "49bc586879bf1ee52a616b5a17c3154a", > "name": "pioneer used auto and rv sales", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "6c72e138715c84e90ad776eef4b50fb2", > "name": "pioneer lists", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "95f65f6dbbe8e08e9bc5649b7e4b08d6", > "name": "pioneer commnications", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "83f4a61c815ba12dd5b7dab2961af27e", > "name": "pioneer ebc", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "e972fc24035121f38a73f5716cdfefb4", > "name": "pioneer furniture and decoraters", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "1cff078ef4edf534e8600a6d763cb3cf", > "name": "pioneer elastomers", > "parent_id": "c17a9b84c3c3ade4cdce7373958ccb9c", > "parent_name": "pioneer foods" > }, > { > "id": "b5fc40373304d4403d6fa9434c1e8689", > "name": "splash fruit", > "parent_id": "99d9b2f3459599ca2f88fcf2b286df7c", > "parent_name": "the honickman companies" > }, > { > "id": "e04de9cff435daddd5c5da24e711856d", > "name": "canada dry potomac", > "parent_id": "99d9b2f3459599ca2f88fcf2b286df7c", > "parent_name": "the honickman companies" > }, > { > "id": "9b67a62bbc49e283a6945a383ae22033", > "name": "beverage distribution center", > "parent_id": "99d9b2f3459599ca2f88fcf2b286df7c", > "parent_name": "the honickman companies" > }, > { > "id": "a27fa5c64b4dc5173210c9a5123c1f54", > "name": "canada dry delaware valley", > "parent_id": "99d9b2f3459599ca2f88fcf2b286df7c", > "parent_name": "the honickman companies" > }, > { > "id": "ce16cbb189a22a2b6a1b5e16bf1d4aa5", > "name": "magic pan", > "parent_id": "78ab069ccb7691aa7fc71f8a03716417", > "parent_name": "quaker oats" > }, > { > "id": "78dc90bb6f77d576d0c1cc84af82b34d", > "name": "chicoccino", > "parent_id": "78ab069ccb7691aa7fc71f8a03716417", > "parent_name": "quaker oats" > }, > { > "id": "f3f6126676b7c7fec201192551be40fa", > "name": "stanton cannery", > "parent_id": "78ab069ccb7691aa7fc71f8a03716417", > "parent_name": "quaker oats" > }, > { > "id": "24d8c3ba40d19e1926ff3fcdc946c555", > "name": "quaker brasil", > "parent_id": "78ab069ccb7691aa7fc71f8a03716417", > "parent_name": "quaker oats" > }, > { > "id": "507838cb82baf9048acf9951ed11baff", > "name": "the magic pan", > "parent_id": "78ab069ccb7691aa7fc71f8a03716417", > "parent_name": "quaker oats" > }, > { > "id": "5ab65aa3da6b56acb0b5ed6cf7cbd7e1", > "name": "al maidan dental clinic", > "parent_id": "bd9fd809bbe83ead5afd8d136c01c917", > "parent_name": "united beverage kscc" > }, > { > "id": "65fa16f4a557388158b3ea21d5a4953a", > "name": "rockstar digital", > "parent_id": "d5dd6578fedb045d1f93daf8f393cd32", > "parent_name": "rockstar energy drink" > }, > { > "id": "ba1fbc37a1e4f66c5ed4ae349beabc81", > "name": "mabel kurumsal emlak zi̇nci̇ri̇ franchise direktoru", > "parent_id": "0d7fe8b2df998fca4666213d38245f07", > "parent_name": "grupo mabel" > }, > { > "id": "941d483b6d6c303c432b2b5fe62247e1", > "name": "sorveteria vilela", > "parent_id": "0d7fe8b2df998fca4666213d38245f07", > "parent_name": "grupo mabel" > }, > { > "id": "53aad9ab2dd11a0f2fb8f44da077f48f", > "name": "mabel business consulting", > "parent_id": "0d7fe8b2df998fca4666213d38245f07", > "parent_name": "grupo mabel" > }, > { > "id": "f0b690749fb0ccce0d3b38e94fc4b990", > "name": "mabel’s clothing and gifts", > "parent_id": "0d7fe8b2df998fca4666213d38245f07", > "parent_name": "grupo mabel" > }, > { > "id": "27b1074a05819f13114b660a36ff0e51", > "name": "mabel and zora", > "parent_id": "0d7fe8b2df998fca4666213d38245f07", > "parent_name": "grupo mabel" > }, > { > "id": "6bf200879fd9ac16bfdd9b1ffc3ce33a", > "name": "mabel and fox", > "parent_id": "0d7fe8b2df998fca4666213d38245f07", > "parent_name": "grupo mabel" > }, > { > "id": "c05b9de66bda34fd4bd1097ccf91678c", > "name": "notaria mabel llano", > "parent_id": "0d7fe8b2df998fca4666213d38245f07", > "parent_name": "grupo mabel" > }, > { > "id": "a6b9d69c2217db8bc37976ce45946a14", > "name": "new mabel ricami", > "parent_id": "0d7fe8b2df998fca4666213d38245f07", > "parent_name": "grupo mabel" > }, > { > "id": "8882b0b138eb4f9e3eab4d078157672b", > "name": "lakeside bottling lakeside pepsi", > "parent_id": "89b58d1cf79c96542ac72f5e55a5ba7d", > "parent_name": "pepsi cola and national brand beverage" > }, > { > "id": "a5347bfc8ef899d3b94c53182f96b15b", > "name": "geneva club beverage", > "parent_id": "89b58d1cf79c96542ac72f5e55a5ba7d", > "parent_name": "pepsi cola and national brand beverage" > }, > { > "id": "5aa6f31e83d866cce4e58edc2b222e8c", > "name": "cpf nehf ops", > "parent_id": "89b58d1cf79c96542ac72f5e55a5ba7d", > "parent_name": "pepsi cola and national brand beverage" > }, > { > "id": "ac73aa580e115086a875af3ac8937a94", > "name": "ventures food and beverage", > "parent_id": "9d2a94578afaf9d49c96a8251a313683", > "parent_name": "pepsi bottling ventures" > }, > { > "id": "87c504374b088a97b847e637e0220b89", > "name": "sabra famous kati roll", > "parent_id": "c4c5d723742f6e4a2cbc7d6f6dad63b0", > "parent_name": "sabra dipping" > }, > { > "id": "8d4800ab4496c55361a8140e2b6ae6d5", > "name": "pasticceria siciliana falanga", > "parent_id": "c4c5d723742f6e4a2cbc7d6f6dad63b0", > "parent_name": "sabra dipping" > }, > { > "id": "fdf32e236b58a52b2655a8835fe0f3cb", > "name": "bear mountain at reading", > "parent_id": "c4c5d723742f6e4a2cbc7d6f6dad63b0", > "parent_name": "sabra dipping" > }, > { > "id": "424625ecb91a74d87c9419845eba0c9e", > "name": "sabra travel", > "parent_id": "c4c5d723742f6e4a2cbc7d6f6dad63b0", > "parent_name": "sabra dipping" > }, > { > "id": "51f7ad5c8c61420d98b54b6fc30ee0ad", > "name": "the original hummus", > "parent_id": "c4c5d723742f6e4a2cbc7d6f6dad63b0", > "parent_name": "sabra dipping" > }, > { > "id": "5559c7b23a626f56dd92ffed8d750be5", > "name": "the sabra institute", > "parent_id": "c4c5d723742f6e4a2cbc7d6f6dad63b0", > "parent_name": "sabra dipping" > }, > { > "id": "ae95babe25703d126045987414074c12", > "name": "full hummus", > "parent_id": "c4c5d723742f6e4a2cbc7d6f6dad63b0", > "parent_name": "sabra dipping" > }, > { > "id": "8e08886c376724ca0546c38a0b3dad4f", > "name": "minasbev", > "parent_id": "de9abe5a3c777ce012c2efef4eec45f0", > "parent_name": "menabev" > }, > { > "id": "c4b42312fb78edaedcedc730bdf7e492", > "name": "splitgerber william f", > "parent_id": "528c6f57242b7e9d3dfbebcc5931308a", > "parent_name": "smlc pepsico" > }, > { > "id": "04eeb6ac72171ce0a95d73c1a2e11bc1", > "name": "gadin noventa y siete", > "parent_id": "c4bebde456a9191939e17445b3b9dc97", > "parent_name": "siete family foods" > }, > { > "id": "31e05d55fa05f91739e4b614959b60a0", > "name": "alta baja market", > "parent_id": "c4bebde456a9191939e17445b3b9dc97", > "parent_name": "siete family foods" > }, > { > "id": "c1ca2618a6108ffb602057b948183848", > "name": "sete producoes", > "parent_id": "c4bebde456a9191939e17445b3b9dc97", > "parent_name": "siete family foods" > }, > { > "id": "9ac11b05f0e4fb2c9f00145f5eed956a", > "name": "all in our family foods", > "parent_id": "c4bebde456a9191939e17445b3b9dc97", > "parent_name": "siete family foods" > }, > { > "id": "0c2aa55c24925ba3d4bd8fd69aa4a71b", > "name": "socca chips", > "parent_id": "c4bebde456a9191939e17445b3b9dc97", > "parent_name": "siete family foods" > }, > { > "id": "0382ecfc721f440b1a33120a8ef2f131", > "name": "7agty", > "parent_id": "c4bebde456a9191939e17445b3b9dc97", > "parent_name": "siete family foods" > }, > { > "id": "14bef948735a87c471f0959ad11eb4d7", > "name": "sieteco marketing and strategie", > "parent_id": "c4bebde456a9191939e17445b3b9dc97", > "parent_name": "siete family foods" > }, > { > "id": "83d1910b2c631e97f70fbe423f244a65", > "name": "siete 77", > "parent_id": "c4bebde456a9191939e17445b3b9dc97", > "parent_name": "siete family foods" > }, > { > "id": "c26cf1909750a03b22bc7824599c97d0", > "name": "poppy cards", > "parent_id": "6bd184efa33d2583f84251ece3c8fc25", > "parent_name": "poppi" > }, > { > "id": "c3b3b32f52e100d51a6101892bb8f7cb", > "name": "popy bags", > "parent_id": "6bd184efa33d2583f84251ece3c8fc25", > "parent_name": "poppi" > }, > { > "id": "c6bab7f7e0cf19afbf264c813897dfd8", > "name": "poppis guesthouse", > "parent_id": "6bd184efa33d2583f84251ece3c8fc25", > "parent_name": "poppi" > }, > { > "id": "05a3382c3b3c93b858aa798468e25c1b", > "name": "poppi clementino", > "parent_id": "6bd184efa33d2583f84251ece3c8fc25", > "parent_name": "poppi" > }, > { > "id": "126dd707d7ed06c0b1e8b2788df61e0a", > "name": "mother polycap", > "parent_id": "6bd184efa33d2583f84251ece3c8fc25", > "parent_name": "poppi" > }, > { > "id": "782cc126fe50b537745bf50fa98d8c52", > "name": "franchise feed international claymont de", > "parent_id": "890d36c0c7508149e722dface4c54a72", > "parent_name": "haidri beverages pepsicola international franchise" > }, > { > "id": "8fa1a8f9d3ad0427f24a51b04e14b939", > "name": "international beverages trading", > "parent_id": "890d36c0c7508149e722dface4c54a72", > "parent_name": "haidri beverages pepsicola international franchise" > }, > { > "id": "2638d58526033a5c10b6558890acdc8e", > "name": "pee dee food service", > "parent_id": "358b57af1dba500174e7daf92c9805f1", > "parent_name": "carolina canners" > }, > { > "id": "ff1a3501bc29014ceb4830170294b045", > "name": "sodastream/soda bär/soda magic/co2 tausch von pietrowski", > "parent_id": "f21530ca2ee13d38c434cff9f6f56726", > "parent_name": "sodastream international" > }, > { > "id": "de2400adb073c434641c07ad110078fd", > "name": "kevit", > "parent_id": "d2ce3feaca28f0a80f1c597a03099e82", > "parent_name": "kevita" > } > ] > }, > { > "level": 3, > "companies": [ > { > "id": "c59e80952e445b9125f9866c064e9256", > "name": "smrtfoods", > "parent_id": "65f868e7460706e5fef4810b36812a10", > "parent_name": "smartfoods" > }, > { > "id": "241f1138750df95fa2d1590f682652ae", > "name": "tom and luke", > "parent_id": "65f868e7460706e5fef4810b36812a10", > "parent_name": "smartfoods" > }, > { > "id": "0d8b510e9bb9eb18d76c2271148780a4", > "name": "a associated vehicle sales", > "parent_id": "fb7bf1f9b81f0d9821af08d113b645c3", > "parent_name": "associated vehicle assemblers" > }, > { > "id": "fc569f3c081a5bdc7cf7c5cd62bc0a9a", > "name": "halstead community primary school", > "parent_id": "d9ee9a9c0773759f16e6e458cbe14670", > "parent_name": "the pioneer" > }, > { > "id": "7c1078b150fd1ced5cc2cde86f62cd5e", > "name": "md media publishing service", > "parent_id": "d9ee9a9c0773759f16e6e458cbe14670", > "parent_name": "the pioneer" > }, > { > "id": "68a38860ba09532e8400c3a276bb5d40", > "name": "woodcote primary school", > "parent_id": "d9ee9a9c0773759f16e6e458cbe14670", > "parent_name": "the pioneer" > }, > { > "id": "d80d17b60784c4e3d3e936655fa0bcd0", > "name": "ightham primary school", > "parent_id": "d9ee9a9c0773759f16e6e458cbe14670", > "parent_name": "the pioneer" > }, > { > "id": "70995b2c9bf6fd1ddcae161bf4c21608", > "name": "leslie mock", > "parent_id": "d9ee9a9c0773759f16e6e458cbe14670", > "parent_name": "the pioneer" > }, > { > "id": "5e12f2b23d9c6323d04c17a02666ea8d", > "name": "thepioneersolutions", > "parent_id": "d9ee9a9c0773759f16e6e458cbe14670", > "parent_name": "the pioneer" > }, > { > "id": "fbf16a5a6feb96994868fd34edf76d1a", > "name": "edenbridge primary school", > "parent_id": "d9ee9a9c0773759f16e6e458cbe14670", > "parent_name": "the pioneer" > }, > { > "id": "5d11f23863bd7e4e64daa10c5dd80b41", > "name": "chen honglin sole proprietorship", > "parent_id": "d9ee9a9c0773759f16e6e458cbe14670", > "parent_name": "the pioneer" > }, > { > "id": "5db7233374a5fd65ae8f6753905898f9", > "name": "small market meetings conference", > "parent_id": "d9ee9a9c0773759f16e6e458cbe14670", > "parent_name": "the pioneer" > }, > { > "id": "40f42ad5066562e45b6aeb59b7d6af91", > "name": "pioneer club", > "parent_id": "d9ee9a9c0773759f16e6e458cbe14670", > "parent_name": "the pioneer" > }, > { > "id": "0849813d291e58a800da0431c8583fbf", > "name": "the reader me", > "parent_id": "d9ee9a9c0773759f16e6e458cbe14670", > "parent_name": "the pioneer" > }, > { > "id": "25b6e1c5491057d34a34fbee414eb1a9", > "name": "the south norwood academy", > "parent_id": "d9ee9a9c0773759f16e6e458cbe14670", > "parent_name": "the pioneer" > }, > { > "id": "351099d6db2844fb6930ee2cf562ee62", > "name": "the reader librar", > "parent_id": "d9ee9a9c0773759f16e6e458cbe14670", > "parent_name": "the pioneer" > }, > { > "id": "26eeab9400ce8c9df71a3f932365908e", > "name": "hollington primary academy", > "parent_id": "d9ee9a9c0773759f16e6e458cbe14670", > "parent_name": "the pioneer" > }, > { > "id": "abca11ec5709eb6e3e96a441926da3cf", > "name": "the reader", > "parent_id": "d9ee9a9c0773759f16e6e458cbe14670", > "parent_name": "the pioneer" > }, > { > "id": "30da0acf4dd044f1508948d30a7a77ae", > "name": "downe primary school", > "parent_id": "d9ee9a9c0773759f16e6e458cbe14670", > "parent_name": "the pioneer" > }, > { > "id": "3708a8acb6aae56edb0b822b3a44cf80", > "name": "macauhr", > "parent_id": "41f044e3ddb0e1621bc890fae8125ee8", > "parent_name": "talentgroup asia" > }, > { > "id": "d2eb19c5d4358c5e9e274e647d3c5d28", > "name": "mycloudhr", > "parent_id": "41f044e3ddb0e1621bc890fae8125ee8", > "parent_name": "talentgroup asia" > } > ] > } > ] > } > } > ], > "total_results": 1 > } > ``` > **Best Practices** > > * **`Always obtain thebusiness_id`** via the **Match Businesses** API before making company hierarchy enrichment requests. > * **Leverage relationship data** to identify new business opportunities across connected entities. > * **Cross-reference** with other enrichment APIs (e.g., Firmographics, Technographics) for deeper business context. > * **Incorporate hierarchy analysis** into account planning for better coordination across business units. > **Company Hierarchies Output Signals** > > | SignalAPI | Name | Description | Data Type | > | :- | :- | :- | :- | > | input\_company\_id | Input company ID | The original business\_id provided as input | EXPLORIUM\_ID | > | input\_company\_name | Input company name | The name of the input company | COMPANY | > | parent\_company\_id | Parent company ID | Business ID of the immediate parent company | EXPLORIUM\_ID | > | parent\_company | Parent company name | The name of the immediate parent company | COMPANY | > | ultimate\_parent\_id | Ultimate parent ID | Business ID of the top-most company in the tree (level\_0) | EXPLORIUM\_ID | > | ultimate\_parent\_name | Ultimate parent name | The name of the top-most company in the tree (level\_0) | COMPANY | > | subsidiaries | Subsidiaries | List of direct subsidiaries | JSON | > | org\_tree\_json | Organization hierarchy Tree | A JSON structure representing the full organizational tree from top to bottom | JSON | *For additional enrichment options, explore related API endpoints below.* # Company ratings by employees Source: https://developers.explorium.ai/v2/businesses/enrichments/company_ratings_by_employees_enrich post /v2/businesses/company_ratings_by_employees/enrich ## Description The **Company Ratings by Employees Enrichment** endpoint provides **insights into company reputation and workplace experience**. This dataset is based on online ratings and reviews published by **current and former employees, as well as interview candidates**. These ratings cover various aspects of company culture, **management quality, work-life balance, salary satisfaction, and overall employee sentiment**. The data is sourced from leading job review platforms, ensuring **high credibility and relevance**. > [!NOTE] > > **v2:** address signals (`company_city`, `company_country_code`, `company_region`, `company_street`, `company_zip_code`) are no longer returned by this enrichment. > > **v2:** this endpoint accepts either a single ID (a string) or a list of up to 50 IDs — the separate `/bulk_enrich` route is gone. See [v2 conventions](/v2/conventions). ## Enrich by company details instead of IDs `business_ids` is the primary way to call this endpoint. If you don't have Explorium IDs yet, you can send `businesses_to_match` instead: up to 50 companies, described with the same fields the [Match businesses](/v2/businesses/match_businesses) endpoint accepts (`name`, `domain`, `url`, `linkedin_url`). Each company is matched and enriched in the same call. Send **either** `business_ids` **or** `businesses_to_match`, never both (that returns a `422`). Any `parameters` the endpoint takes work the same either way. ```json Request body theme={null} { "businesses_to_match": [ { "name": "Explorium", "domain": "explorium.ai" }, { "name": "Unknown Co", "domain": "unknown-co.example" } ] } ``` ```json Response (data shortened) theme={null} { "response_context": { "correlation_id": "ebe38f2b99ad423e84f93d2be5e75b20", "request_status": "success", "time_taken_in_seconds": 5.38 }, "data": [ { "input": { "name": "Explorium", "domain": "explorium.ai", "url": null, "linkedin_url": null }, "business_id": "340c8040bd50cbab9c7df718bbe51cc9", "data": { "business_id": "340c8040bd50cbab9c7df718bbe51cc9", "...": "same fields as an ID-based request" }, "warnings": [] }, { "input": { "name": "Unknown Co", "domain": "unknown-co.example", "url": null, "linkedin_url": null }, "business_id": null, "data": null, "warnings": [] } ], "total_results": 1, "total_matches": 1 } ``` Each row echoes its `input` and returns the matched `business_id`. Companies that don't match come back with `business_id: null` and `data: null`, and aren't charged. `total_matches` counts the matched rows. > **How It Works** > > * **Input:** Provide a `business_id` obtained from the **Match Businesses** API. > * **Processing:** The system retrieves aggregated ratings and structured feedback. > * **Output:** A structured response with key rating metrics and employee sentiment analysis. > **Best Practices** > > * **Use company ratings** to evaluate employer reputation before partnerships, investments, or sales outreach. > * **Combine ratings with firmographic data** to create a holistic view of a company's stability and employee satisfaction. > * **Monitor trends over time** to detect shifts in employee sentiment and workplace culture. > * **Cross-reference ratings with workforce trends** for deeper insights into employee retention and hiring dynamics. > **Company Ratings by Employees Output Signal** > > | SignalAPI | Name | Description | Data Type | > | :- | :- | :- | :- | > | company\_country | Company's country | The country where the company's headquarters are located. | string | > | company\_name | Company's name | The name of the company. | string | > | company\_url | Company's URL | The URL of the website associated with the company. | url | > | experience\_negative | Negative experience | Percentage out of interviewees who published reviews that reported having a negative sentiment following a job interview. | float | > | experience\_neutral | Neutral experience | Percentage out of interviewees who published reviews that reported having a neutral sentiment following a job interview. | float | > | experience\_positive | Positive experience | Percentage out of interviewees who published reviews that reported having a positive sentiment following a job interview. | float | > | ratings\_all\_reviews\_count | Number of ratings | Overall number of company ratings published by current and former employees. | float | > | ratings\_business\_outlook | Business outlook rating | The percentage out of current and former employees who published reviews that believe the company will succeed in the near future. | float | > | ratings\_career\_opportunities | Career opportunities rating | Current and former Employees rating between 1-5 of the personal career development opportunities at the company. \| 1=low rating, 5=high rating | float | > | ratings\_ceo\_approval | CEO approval rating | The percent of current and former employees that published reviews who approved of the company's CEO. | float | > | ratings\_ceo\_approval\_count | CEO approval ratings count | Number of CEO approval ratings collected. | float | > | ratings\_compensation\_benefits | Compensation benefits rating | Compensation and benefits rating between 1-5 published by its current and former employees. \| 1=low rating, 5=high rating | float | > | ratings\_cutlure\_values | Culture values rating | Culture values rating between 1-5 as rated by its current and former employees. \| 1=low rating, 5=high rating | float | > | ratings\_diversity\_inclusion | Diversity inclusion rating | Diversity inclusion rating between 1-5 as viewed by the company’s current and former employees. \| 1=low rating, 5=high rating | float | > | ratings\_overall | Overall Ratings | A company’s overall score between 1-5 rated by its employees, interviewees and former employees. \| 1=low rating, 5=high rating | float | > | ratings\_recommend\_to\_friend | Recommend to friend rating | The chance that a current or former employee will recommend a friend to work in said company. | float | > | ratings\_senior\_management | Senior management rating | Rating between 1-5 of the senior management as viewed by its current and former employees. \| 1=low rating, 5=high rating | float | > | ratings\_work\_life\_balance | Work life balance rating | Work life balance rating between 1-5 as viewed by its current and former employees. \| 1=low rating, 5=high rating | float | > | total\_reviews\_count | Total reviews count | Total number of company reviews published by current and former employees. | float | > | company\_score | Trend of company rating by employees | A dictionary listing the overall company score rated by current and former employees over the recent year between 1-5. \| 1=low rating, 5=high rating | array | For additional enrichment options, explore related API endpoints below. ## Body Params - Try Me Example ``` business_ids: 8adce3ca1cef0c986b22310e369a0793 ``` # Company ratings by employees (async) Source: https://developers.explorium.ai/v2/businesses/enrichments/company_ratings_by_employees_job post /v2/businesses/company_ratings_by_employees/job > [!NOTE] > > **Asynchronous variant.** This submits a job through the [async job infrastructure](/v2/async-jobs) — poll [job status](/v2/jobs/get_job_status) for progress and results. Input comes from an uploaded dataset (`list_id`); limits are 10,000 rows and a 24-hour run time. > > For the full output signal reference, see [the synchronous endpoint](/v2/businesses/enrichments/company_ratings_by_employees_enrich). > **How It Works** > > * **Input:** Provide a `list_id` from the [dataset upload endpoint](/v2/jobs/upload_entity_id_dataset). Async endpoints do not accept inline IDs. > * **Processing:** The system retrieves company rating data for all submitted businesses in a **single request**. > * **Output:** A structured response with employer reputation and employee satisfaction metrics. > **Example Request (cURL)** > > ```shell Bash theme={null} > curl --request POST \ > --url https://api.explorium.ai/v2/businesses/company_ratings_by_employees/job \ > --header 'accept: application/json' \ > --header 'api_key: your_api_key_here' \ > --header 'content-type: application/json' \ > --data '{ > "business_ids": [ > "8adce3ca1cef0c986b22310e369a0793", > "a34bacf839b923770b2c360eefa26748" > ] > }' > ``` > **Best Practices** > > * **Assess workplace culture and employee satisfaction.** > * **Compare company ratings across industries.** > * **Track trends in employer reputation over time.** **For additional enrichment options, explore related API endpoints below.** ## Body Params - Try Me Example ``` business_ids: ["8adce3ca1cef0c986b22310e369a0793", "a34bacf839b923770b2c360eefa26748"] ``` # Company website keywords Source: https://developers.explorium.ai/v2/businesses/enrichments/company_website_keywords_enrich post /v2/businesses/company_website_keywords/enrich ## Description The **Keyword Search on Websites Enrichment** endpoint enables users to **identify keyword occurrences on a company's website**. This dataset is valuable for **market researchers, competitive analysts, and SEO strategists** looking to **analyze content relevance and online presence**. The data includes: * **Keyword presence detection**, confirming whether a term appears on a site. * **Snippet extraction**, showcasing relevant text segments containing the keyword. * **Direct URLs to content**, allowing for further review and validation. This information is sourced from **real-time website crawls and indexed public web pages** to provide **comprehensive insights into company messaging and search visibility**. > [!NOTE] > > **v2:** this endpoint accepts either a single ID (a string) or a list of up to 50 IDs — the separate `/bulk_enrich` route is gone. See [v2 conventions](/v2/conventions). ## Enrich by company details instead of IDs `business_ids` is the primary way to call this endpoint. If you don't have Explorium IDs yet, you can send `businesses_to_match` instead: up to 50 companies, described with the same fields the [Match businesses](/v2/businesses/match_businesses) endpoint accepts (`name`, `domain`, `url`, `linkedin_url`). Each company is matched and enriched in the same call. Send **either** `business_ids` **or** `businesses_to_match`, never both (that returns a `422`). Any `parameters` the endpoint takes work the same either way. ```json Request body theme={null} { "businesses_to_match": [ { "name": "Explorium", "domain": "explorium.ai" }, { "name": "Unknown Co", "domain": "unknown-co.example" } ] } ``` ```json Response (data shortened) theme={null} { "response_context": { "correlation_id": "ebe38f2b99ad423e84f93d2be5e75b20", "request_status": "success", "time_taken_in_seconds": 5.38 }, "data": [ { "input": { "name": "Explorium", "domain": "explorium.ai", "url": null, "linkedin_url": null }, "business_id": "340c8040bd50cbab9c7df718bbe51cc9", "data": { "business_id": "340c8040bd50cbab9c7df718bbe51cc9", "...": "same fields as an ID-based request" }, "warnings": [] }, { "input": { "name": "Unknown Co", "domain": "unknown-co.example", "url": null, "linkedin_url": null }, "business_id": null, "data": null, "warnings": [] } ], "total_results": 1, "total_matches": 1 } ``` Each row echoes its `input` and returns the matched `business_id`. Companies that don't match come back with `business_id: null` and `data: null`, and aren't charged. `total_matches` counts the matched rows. > **How It Works** > > * **Input:** Provide a `business_id` obtained from the **Match Businesses** API. > * **Processing:** The system scans the target website and retrieves keyword matches. > * **Output:** A structured response highlighting keyword occurrences, extracted snippets, and URLs. > **Best Practices** > > * **Use keyword insights** to track industry-specific terminology and brand messaging. > * **Analyze keyword frequency** to gauge content focus and relevance. > * **Leverage snippet extractions** for competitor research and content benchmarking. > * **Monitor website content** to ensure alignment with marketing and SEO strategies. > **Keyword Search on Websites Output Signal** > > | SignalAPI | Name | Description | Data Type | > | :- | :- | :- | :- | > | text\_results | Keyword search result | JSON-formatted list of search results, indicating the location of the queried keywords within the snippet. Each result includes a snippet of text containing the keywords, the corresponding URL, and a numeric ranking of where the keyword is positioned within the snippet. | array | > | keywords\_indicator | URL has keyword | True if the URL contains the queried keywords. | string | > | url | URL | Website associated with Explorium's entity ID queried for the input keywords. | url | For additional enrichment options, explore related API endpoints below. ## Body Params - Try Me Example ``` business_ids: 8adce3ca1cef0c986b22310e369a0793 keywords: iphone, data ``` # Company website keywords (async) Source: https://developers.explorium.ai/v2/businesses/enrichments/company_website_keywords_job post /v2/businesses/company_website_keywords/job > [!NOTE] > > **Asynchronous variant.** This submits a job through the [async job infrastructure](/v2/async-jobs) — poll [job status](/v2/jobs/get_job_status) for progress and results. Input comes from an uploaded dataset (`list_id`); limits are 10,000 rows and a 24-hour run time. > > For the full output signal reference, see [the synchronous endpoint](/v2/businesses/enrichments/company_website_keywords_enrich). > **How It Works** > > * **Input:** Provide a `list_id` from the [dataset upload endpoint](/v2/jobs/upload_entity_id_dataset) plus a `parameters` object. Async endpoints do not accept inline IDs. > * **Processing:** The system scans websites for specified keywords and retrieves matched snippets. > * **Output:** A structured response listing keyword occurrences, extracted snippets, and URLs. > **Example Request (cURL)** > > ```shell Bash theme={null} > curl --request POST \ > --url https://api.explorium.ai/v2/businesses/company_website_keywords/job \ > --header 'accept: application/json' \ > --header 'api_key: your_api_key_here' \ > --header 'content-type: application/json' \ > --data '{ > "business_ids": [ > "8adce3ca1cef0c986b22310e369a0793", > "a34bacf839b923770b2c360eefa26748" > ] > }' > ``` > **Best Practices** > > * **Analyze competitor website content** to understand keyword strategies. > * **Monitor brand mentions** across industry websites. > * **Track keyword density** to assess SEO effectiveness. **For additional enrichment options, explore related API endpoints below.** ## Body Params - Try Me Example ``` business_ids: ["8adce3ca1cef0c986b22310e369a0793", "a34bacf839b923770b2c360eefa26748"] ``` # Financial indicators Source: https://developers.explorium.ai/v2/businesses/enrichments/financial_indicators_enrich post /v2/businesses/financial_indicators/enrich ## Description The **Financial Metrics Enrichment** endpoint provides key **financial indicators** for publicly traded companies worldwide. This dataset helps users analyze a company's **financial performance, stability, and investment potential**. By querying with a **business\_id**, users can retrieve both **current and historical financial data** spanning up to **20 years**. This data includes: * **Annual and quarterly revenue** * **Return on capital** * **Total shareholder return** * **Profitability ratios** * **Market valuation metrics** The data is sourced from **trusted financial institutions** such as the **SEC (Securities and Exchange Commission), NYSE, NASDAQ, AMEX, EURONEXT, and TSX**. > [!NOTE] > > **v2:** this endpoint accepts either a single ID (a string) or a list of up to 50 IDs — the separate `/bulk_enrich` route is gone. See [v2 conventions](/v2/conventions). ## Enrich by company details instead of IDs `business_ids` is the primary way to call this endpoint. If you don't have Explorium IDs yet, you can send `businesses_to_match` instead: up to 50 companies, described with the same fields the [Match businesses](/v2/businesses/match_businesses) endpoint accepts (`name`, `domain`, `url`, `linkedin_url`). Each company is matched and enriched in the same call. Send **either** `business_ids` **or** `businesses_to_match`, never both (that returns a `422`). Any `parameters` the endpoint takes work the same either way. ```json Request body theme={null} { "businesses_to_match": [ { "name": "Explorium", "domain": "explorium.ai" }, { "name": "Unknown Co", "domain": "unknown-co.example" } ] } ``` ```json Response (data shortened) theme={null} { "response_context": { "correlation_id": "ebe38f2b99ad423e84f93d2be5e75b20", "request_status": "success", "time_taken_in_seconds": 5.38 }, "data": [ { "input": { "name": "Explorium", "domain": "explorium.ai", "url": null, "linkedin_url": null }, "business_id": "340c8040bd50cbab9c7df718bbe51cc9", "data": { "business_id": "340c8040bd50cbab9c7df718bbe51cc9", "...": "same fields as an ID-based request" }, "warnings": [] }, { "input": { "name": "Unknown Co", "domain": "unknown-co.example", "url": null, "linkedin_url": null }, "business_id": null, "data": null, "warnings": [] } ], "total_results": 1, "total_matches": 1 } ``` Each row echoes its `input` and returns the matched `business_id`. Companies that don't match come back with `business_id: null` and `data: null`, and aren't charged. `total_matches` counts the matched rows. > **How It Works** > > * **Input:** Provide a `business_id` obtained from the **Match Businesses** API. > * **Processing:** The system retrieves financial indicators from global stock exchanges and regulatory filings. > * **Output:** A structured response with financial metrics relevant to the selected business. > **Best Practices** > > * **Use financial metrics** to assess company growth trends and investment risks. > * **Combine financial data with firmographics** for a full-picture company analysis. > * **Leverage historical data** to compare performance over different market cycles. > * **Cross-reference stock market insights** with company ratings and workforce trends for a deeper analysis. > **Financial Metrics for Public Companies Output Signal** > > | SignalAPI | Name | Description | Data Type | > | :- | :- | :- | :- | > | asset\_turnover | Asset turnover | The company's quarterly ratio between the total sales or revenue, and the average company assets. Numbers are displayed in the currency of the country where the company is legally registered. | float | > | cagr | Revenue CAGR | The company’s revenue compound annual growth rate. It is calculated by dividing the yearly fiscal revenue by the previous fiscal year revenue and subtracting by 1. Both figures appear on the company’s annual reports. This feature is calculated only per year, so it will not take into account the date that was specified in the input query. The calculations are based on the currency of the country where the company is legally registered. | float | > | cogs | COGS | Cost of goods sold (COGS) refers to the direct costs of producing the goods sold by a company. This amount includes the cost of the materials and labor directly used to create the good. Cost of goods sold is also referred to as 'cost of sales.' Formula: quarterly\_revenue / gross\_profit quarterly\_revenue, gross\_profit - taken from company’s quarterly report | float | > | earnings\_surprises | Earning surprise | The company’s earning surprise occurs when a company reports figures that are drastically different from the stock market estimates, and is calculated per quarter. This feature will display both the estimated earning per share and the actual earning per share. Numbers are displayed in the currency of the country where the company is legally registered. | object | > | ebitda | Quarterly EBITDA | The company’s reported earnings before interest, taxes, depreciation, and amortization. Calculations are based on the currency of the country where the company is legally registered. | float | > | enterprise\_value\_over\_ebdita | Quarterly valuation multiples (EV / EBITDA) | Enterprise multiple, also known as the EV-to-EBITDA multiple, is a ratio used to determine the value of a company. It is computed by dividing enterprise value by EBITDA. The enterprise multiple takes into account a company's debt and cash levels in addition to its stock price and relates that value to the firm's cash profitability. Enterprise multiples can vary depending on the industry. Higher enterprise multiples are expected in high-growth industries and lower multiples in industries with slow growth. Calculated based on quarter values. | float | > | leadership | Leadership | Key executives are the people at the top of a company who make critical decisions that affect the company. We keep track of who they are, what their titles are, and how much money they make. | array | > | peer\_companies | Peer companies | A list of companies that are in the same industry or sector as the company. | object | > | price\_earnings\_ratio | Quarterly valuation multiples (P / E) | The price-to-earnings ratio (P/E ratio) is the ratio for valuing a company that measures its current share price relative to its earnings per share (EPS). The price-to-earnings ratio is also sometimes known as the price multiple or the earnings multiple. Calculated based on quarter values. | float | > | revenue\_yearly | Annual revenue | Company’s yearly revenue. This feature is calculated only per fiscal year, so it will not take into account the date that was specified in the input query. The calculations are based on the currency of the country where the company is legally registered. | float | > | roa | Quarterly ROA | The company’s quarterly Return On Assets. It is calculated by dividing the company’s net income by the company’s total assets. The net income is reported in the company’s cash flow statement, and the company’s total assets are reported in the company’s balance statement. Numbers are displayed in the currency of the country where the company is legally registered. | float | > | roc | Quarterly ROC | Company’s quarterly Return On Capital is calculated in the following way: (net\_income - dividends\_paid) / (total\_debt - total\_equity). Both the dividends paid and net income figures were reported in the company’s cash flow statement. The total debt and total equity figures are from the company’s balance statements. The calculations are based on the currency of the country where the company is legally registered. | float | > | sg\_and\_a | SG\&A | Quarterly Selling General & Administrative expenses is based on the company’s quarterly income report. Numbers are displayed in the currency of the country where the company is legally registered. | float | > | tsr\_1y | TSR (1-year) | Total shareholder return (TSR) is a measure of financial performance, indicating the total amount an investor reaps from an investment—specifically, equities or shares of stock. Total shareholder return factors in capital gains and dividends when measuring the total return generated by a stock. TSR represents an easily understood figure of the overall financial benefits generated for stockholders. TSR is a good gauge of an investment's long-term value, but it is limited to past performance, requires an investment to generate cash flows, and can be sensitive to stock market volatility. Formula: ((year\_stock\_price - previous\_year\_stock\_price) + dividends) / previous\_year\_stock\_price for example: query AAPL 2020-Q3 will be calculated with these values: year\_stock\_price = last stock price of AAPL in 2020 previous\_year\_stock\_price = stock price of AAPL at the beginning of 2020 dividends = dividends given during 2020 | float | > | tsr\_3y | TSR (3-year) | Total shareholder return (TSR) is a measure of financial performance, indicating the total amount an investor reaps from an investment—specifically, equities or shares of stock. Total shareholder return factors in capital gains and dividends when measuring the total return generated by a stock. TSR represents an easily understood figure of the overall financial benefits generated for stockholders. TSR is a good gauge of an investment's long-term value, but it is limited to past performance, requires an investment to generate cash flows, and can be sensitive to stock market volatility. Formula: ((year\_stock\_price - 3\_years\_ago\_stock\_price) + dividends) / 3\_years\_ago\_stock\_price for example: query AAPL 2020-Q3 will be calculated with these values: year\_stock\_price = last stock price of AAPL in 2020 3\_years\_ago\_stock\_price = stock price of AAPL at the beginning of 2018 dividends = dividends given during 2018-2020 | float | > | tsr\_5y | TSR (5-years) | Indication of the total amount an investor reaps from an investment—specifically, equities or shares of stock. Total shareholder return factors in capital gains and dividends when measuring the total return generated by a stock. TSR represents an easily understood figure of the overall financial benefits generated for stockholders. TSR is a good gauge of an investment's long-term value, but it is limited to past performance, requires an investment to generate cash flows, and can be sensitive to stock market volatility. Formula: ((year\_stock\_price - 5\_years\_ago\_stock\_price) + dividends) / 5\_years\_ago\_stock\_price for example: query AAPL 2020-Q3 will be calculated with these values: year\_stock\_price = last stock price of AAPL in 2020 5\_years\_ago\_stock\_price = stock price of AAPL at the beginning of 2016 dividends = dividends given during 2016-2020 | float | > | working\_capital | Working capital | Working capital, also known as net working capital (NWC), is the difference between a company’s current assets - such as cash, accounts receivable/customers’ unpaid bills, and inventories of raw materials and finished goods - and its current liabilities, such as accounts payable and debts. Calculated based on quarter values. | float | > | `cash_and_cash_equivalents` | Cash and Cash Equivalents | Cash and highly liquid near-cash assets, which may be negative if overdrawn or short-term liabilities exceed liquidity. | float | For additional enrichment options, explore related API endpoints below. ## Body Params - Try Me Example ``` business_ids: a34bacf839b923770b2c360eefa26748 ``` # Financial indicators (async) Source: https://developers.explorium.ai/v2/businesses/enrichments/financial_indicators_job post /v2/businesses/financial_indicators/job > [!NOTE] > > **Asynchronous variant.** This submits a job through the [async job infrastructure](/v2/async-jobs) — poll [job status](/v2/jobs/get_job_status) for progress and results. Input comes from an uploaded dataset (`list_id`); limits are 10,000 rows and a 24-hour run time. > > For the full output signal reference, see [the synchronous endpoint](/v2/businesses/enrichments/financial_indicators_enrich). > **How It Works** > > * **Input:** Provide a `list_id` from the [dataset upload endpoint](/v2/jobs/upload_entity_id_dataset). Async endpoints do not accept inline IDs. > * **Processing:** The system retrieves financial metrics data for all submitted businesses in a **single request**. > * **Output:** A structured response with key financial indicators. > **Example Request (cURL)** > > ```shell Bash theme={null} > curl --request POST \ > --url https://api.explorium.ai/v2/businesses/financial_indicators/job \ > --header 'accept: application/json' \ > --header 'api_key: your_api_key_here' \ > --header 'content-type: application/json' \ > --data '{ > "business_ids": [ > "8adce3ca1cef0c986b22310e369a0793", > "a34bacf839b923770b2c360eefa26748" > ] > }' > ``` > **Best Practices** > > * **Analyze revenue trends** to assess financial stability. > * **Compare profitability metrics** to evaluate business performance. > * **Monitor investment returns** to track growth and market value. **For additional enrichment options, explore related API endpoints below.** ## Body Params - Try Me Example ``` business_ids: ["8adce3ca1cef0c986b22310e369a0793", "a34bacf839b923770b2c360eefa26748"] ``` # Firmographics Source: https://developers.explorium.ai/v2/businesses/enrichments/firmographics_enrich post /v2/businesses/firmographics/enrich ## Description The **Firmographics Enrichment** endpoint provides **essential business details**, such as revenue, company size, industry classification, and other key attributes. This data helps businesses segment markets, refine lead generation, and enhance business intelligence efforts. Firmographic data is compiled from multiple **verified sources**, ensuring broad coverage and high accuracy. This dataset is particularly valuable for sales intelligence, B2B marketing, risk assessment, and market research. > [!NOTE] > > **v2:** this endpoint accepts either a single ID (a string) or a list of up to 50 IDs — the separate `/bulk_enrich` route is gone. See [v2 conventions](/v2/conventions). ## Enrich by company details instead of IDs `business_ids` is the primary way to call this endpoint. If you don't have Explorium IDs yet, you can send `businesses_to_match` instead: up to 50 companies, described with the same fields the [Match businesses](/v2/businesses/match_businesses) endpoint accepts (`name`, `domain`, `url`, `linkedin_url`). Each company is matched and enriched in the same call. Send **either** `business_ids` **or** `businesses_to_match`, never both (that returns a `422`). Any `parameters` the endpoint takes work the same either way. ```json Request body theme={null} { "businesses_to_match": [ { "name": "Explorium", "domain": "explorium.ai" }, { "name": "Unknown Co", "domain": "unknown-co.example" } ] } ``` ```json Response (data shortened) theme={null} { "response_context": { "correlation_id": "ebe38f2b99ad423e84f93d2be5e75b20", "request_status": "success", "time_taken_in_seconds": 5.38 }, "data": [ { "input": { "name": "Explorium", "domain": "explorium.ai", "url": null, "linkedin_url": null }, "business_id": "340c8040bd50cbab9c7df718bbe51cc9", "data": { "business_id": "340c8040bd50cbab9c7df718bbe51cc9", "...": "same fields as an ID-based request" }, "warnings": [] }, { "input": { "name": "Unknown Co", "domain": "unknown-co.example", "url": null, "linkedin_url": null }, "business_id": null, "data": null, "warnings": [] } ], "total_results": 1, "total_matches": 1 } ``` Each row echoes its `input` and returns the matched `business_id`. Companies that don't match come back with `business_id: null` and `data: null`, and aren't charged. `total_matches` counts the matched rows. > **How It Works** > > * **Input:** Provide a `business_id` obtained from the **Match Businesses** API. > * **Processing:** The system retrieves firmographic attributes by cross-referencing multiple datasets. > * **Output:** A structured response with company details such as revenue, industry, size, and global presence. > **Best Practices** > > * Ensure you retrieve the` business_id` using the **Match Businesses** API before making firmographic enrichment requests. > * **Leverage firmographic insights** to enhance lead scoring and segmentation. > * **Cross-reference results** with other enrichment APIs (e.g., **Technographics**) for deeper business insights. > * **Regularly update queries** to ensure the most up-to-date business data is retrieved. > **Firmographics Output Signal** > > | SignalAPI | Name | Description | Data Type | > | :- | :- | :- | :- | > | business\_id | Explorium entity ID | Explorium's 32 character unique entity ID associated with a company's specific site, branch, or HQ. | string | > | linkedin\_profile | LinkedIn® profile | Company's LinkedIn® profile page | string | > | website | Company website | Company's main website URL | string | > | name | Company name | Name of the company | string | > | business\_logo | Business logo | Link to the company's logo. | url | > | business\_description | Business description | An overview or summary of the business' mission statement, offered services and general industry. | string | > | sic\_code | SIC code | Company's Standard Industrial Classification four-digit code. | string | > | sic\_code\_description | SIC code description | Description of the Company's Standard Industrial Classification four-digit code. | string | > | linkedin\_industry\_category | LinkedIn industry category | Industry category classification the business was assigned by LinkedIn®. | string | > | naics\_description | NAICS description | Description of the 2017 NAICS industry code. | string | > | naics | NAICS | 2017 North American Industry Classification System code that classifies the particular organization or business. | string | > | yearly\_revenue\_range | Yearly revenue range all sites | Assigned revenue range category, generated at all company sites. All company sites includes the company's headquarters and all company branches. Company revenue is measured per fiscal year. Search 'Firmographics: Yearly revenue bucket categories' in Explorium's resource center for additional information. | object | > | number\_of\_employees\_range | Number of employees range all sites | Value displayed is the range of the company's number of employees falls. The number of employees is the sum of employees from all company sites, including the headquarters and all of the company branches. Search 'Firmographics: number of employees bucket categories' in Explorium's resource center for additional information. | object | > | country\_name | Country | The country where the company's headquarters are located. | string | > | region\_name | Region | State or region where the company's headquarters are located. Region equivalent in the UK is county or shire. | string | > | city\_name | City | The city where the company's headquarters are located. | string | > | street | Street | The company's street name and number | string | > | Locations Distribution | locations\_distribution | JSON containing the country's alpha-2 code, and correlating number of locations the entity has per country. | array\ | > | zip\_code | ZIP code / postal code | Company's postal code or Zipcode | zip code | > | ticker | Ticker symbol | A stock symbol associated with the company, that is compiled of an arrangement of characters representing publicly-traded securities on an exchange. The symbol is used to place trade orders. | string | **For additional enrichment options, explore related API endpoints below.** # Firmographics (async) Source: https://developers.explorium.ai/v2/businesses/enrichments/firmographics_job post /v2/businesses/firmographics/job > [!NOTE] > > **Asynchronous variant.** This submits a job through the [async job infrastructure](/v2/async-jobs) — poll [job status](/v2/jobs/get_job_status) for progress and results. Input comes from an uploaded dataset (`list_id`); limits are 10,000 rows and a 24-hour run time. > > For the full output signal reference, see [the synchronous endpoint](/v2/businesses/enrichments/firmographics_enrich). > **How It Works** > > * **Input:** Provide a `list_id` from the [dataset upload endpoint](/v2/jobs/upload_entity_id_dataset). Async endpoints do not accept inline IDs. > * **Processing:** The system retrieves enriched data for all submitted businesses in a **single request**. > * **Output:** A structured response with the requested enrichment data for each business. > **Example Request (cURL)** > > ```shell Bash theme={null} > curl --request POST \ > --url https://api.explorium.ai/v2/businesses/firmographics/job \ > --header 'accept: application/json' \ > --header 'api_key: your_api_key_here' \ > --header 'content-type: application/json' \ > --data '{ > "business_ids": [ > "8adce3ca1cef0c986b22310e369a0793", > "a34bacf839b923770b2c360eefa26748" > ] > }' > ``` > **Best Practices** > > * **Batch process multiple businesses** to improve API efficiency and reduce request overhead. > * **Use firmographic, technographic, and financial indicators** together for comprehensive business profiling. > * **Monitor funding and workforce trends** to track business growth and hiring activity. > * **Leverage competitive landscape data** to benchmark businesses against industry peers. For additional enrichment options, explore related API endpoints below. ### Body Params - Try Me Example ``` business_ids: ["8adce3ca1cef0c986b22310e369a0793", "a34bacf839b923770b2c360eefa26748"] ``` # Funding and acquisition Source: https://developers.explorium.ai/v2/businesses/enrichments/funding_and_acquisition_enrich post /v2/businesses/funding_and_acquisition/enrich ## Description The **Funding and Acquisitions Enrichment** endpoint provides **detailed insights into funding rounds, acquisitions, and IPOs** for over **300,000 private and public companies**. This data helps users track **investment trends, company growth, and market positioning**. The dataset includes **up to 10 of the most recent transactions per company**, updated quarterly, and covers key funding details such as investors, deal values, and company valuations. > [!NOTE] > > **v2:** this endpoint accepts either a single ID (a string) or a list of up to 50 IDs — the separate `/bulk_enrich` route is gone. See [v2 conventions](/v2/conventions). ## Enrich by company details instead of IDs `business_ids` is the primary way to call this endpoint. If you don't have Explorium IDs yet, you can send `businesses_to_match` instead: up to 50 companies, described with the same fields the [Match businesses](/v2/businesses/match_businesses) endpoint accepts (`name`, `domain`, `url`, `linkedin_url`). Each company is matched and enriched in the same call. Send **either** `business_ids` **or** `businesses_to_match`, never both (that returns a `422`). Any `parameters` the endpoint takes work the same either way. ```json Request body theme={null} { "businesses_to_match": [ { "name": "Explorium", "domain": "explorium.ai" }, { "name": "Unknown Co", "domain": "unknown-co.example" } ] } ``` ```json Response (data shortened) theme={null} { "response_context": { "correlation_id": "ebe38f2b99ad423e84f93d2be5e75b20", "request_status": "success", "time_taken_in_seconds": 5.38 }, "data": [ { "input": { "name": "Explorium", "domain": "explorium.ai", "url": null, "linkedin_url": null }, "business_id": "340c8040bd50cbab9c7df718bbe51cc9", "data": { "business_id": "340c8040bd50cbab9c7df718bbe51cc9", "...": "same fields as an ID-based request" }, "warnings": [] }, { "input": { "name": "Unknown Co", "domain": "unknown-co.example", "url": null, "linkedin_url": null }, "business_id": null, "data": null, "warnings": [] } ], "total_results": 1, "total_matches": 1 } ``` Each row echoes its `input` and returns the matched `business_id`. Companies that don't match come back with `business_id: null` and `data: null`, and aren't charged. `total_matches` counts the matched rows. > **How It Works** > > * **Input:** Provide a `business_id` obtained from the **Match Businesses** API. > * **Processing:** The system retrieves funding history, acquisitions, and IPO-related data. > * **Output:** A structured response with investment details, key investors, and historical funding rounds. > **Best Practices** > > * **Monitor funding rounds** to identify fast-growing companies and emerging market leaders. > * **Leverage acquisition data** to track industry consolidation and M\&A trends. > * **Use IPO insights** to evaluate newly public companies for investment and competitive analysis. > * **Cross-reference funding data** with firmographics and financial metrics for deeper insights into company growth and financial health. > **Funding and Acquisition Output Signal** > > | SignalAPI | Name | Description | Data Type | > | :- | :- | :- | :- | > | domain | Company's domain | Company's domain | string | > | company\_name | Company name | Company name | string | > | investors | Company's investors | List of all company's investors from all funding rounds. | array | > | number\_of\_advisors | Number of advisors | Number of the company''s listed advisors. If the advisor''s data is unavailable, returned value is 'null'. | integer | > | num\_of\_news | Number of company's news events | Selected company's number of listed news appearances, articles, or events. | integer | > | current\_advisors | Names and job titles of current advisors | List of advisors to the company. Includes the advisor name and job title. If the advisor's data is unavailable, returned value is 'null'. | array | > | ipo\_size\_usd | IPO value, US dollars | Amount of money raised in the IPO. If the company didn't go public or the data is unavailable, returned value is 'null'. | string | > | ipo\_date | IPO date | Date the selected company's IPO was announced, formatted YYYY-MM-DD. If the company didn't go public or the data is unavailable, returned value is 'null'. | datetime | > | is\_ipo | Company had IPO | True if the company has gone public. | boolean | > | number\_of\_investors\_for\_first\_funding\_round | First funding round: number of investors | Number of investors involved in the company's first funding round. If the company didn't have a funding round, or the data is unavailable, returned value is 'null'. | integer | > | first\_funding\_round\_value\_usd | First funding round: size | Amount of money raised in first funding round, displayed in US dollars (e.g. how many US dollars were raised by the selected company in a funding round). If the company didn't have founding round, or the data is unavailable, returned value is 'null'. | float | > | first\_funding\_round\_type | First funding round: details | Type of capital raised during the selected company's first funding round. E.g seed, venture, angel, round A, and more. If the company didn't have a funding round, or the data is unavailable, returned value is 'null'. | string | > | first\_funding\_round\_date | First funding round: date | Date the selected company's first funding round was announced, formatted YYYY-MM-DD. If the company didn't have a funding round, or the data is unavailable, returned value is 'null'. | datetime | > | number\_of\_funding\_rounds | Number of funding rounds | Number of funding rounds listed for the company. | integer | > | acquired\_by | Details of company's acquisition by other company | Additional information regarding the company's acquisition by another party, including: name of other party, price of acquisition in US dollars, and date of acquisition formatted YYYY-MM-DD. If acquisitions were not made or data is unavailable, returned value is 'null'. | string | > | latest\_funding\_increase\_percentage | Change trend of company's funding round size | Percent change in funding round size between the most recent funding round and the one that preceded it. Calculation: 100 \* (( previous funding round size - last funding round size) / last funding round size) | string | > | last\_funding\_round\_date | Most recent funding round: date | Date the selected company''s last funding round was announced, formatted YYYY-MM-DD. If the company didn''t have a funding round, or the data is unavailable, returned value is 'null'. | datetime | > | last\_funding\_round\_value\_usd | Most recent funding round: size, US dollars | Amount of money raised in the selected company's most recent funding round, displayed in US dollars. If the company didn't have a funding round, or the data is unavailable, returned value is 'null'. | string | > | last\_funding\_round\_type | Most recent funding round: details | Type of capital raised during the selected company's most recent funding round. E.g seed, venture, angel, round A, and more. If the company didn't have a funding round, or the data is unavailable, returned value is 'null'. | string | > | number\_of\_investors\_for\_last\_funding\_round | Most recent funding round: number of investors | Number of investors involved in the company's last funding round. If the company didn't have a funding round, or the data is unavailable, returned value is 'null'. | integer | > | funding\_rounds\_info | List of all funding rounds | List of all of the company's funding round events, including: announcement date formatted YYYY-MM-DD, names of lead investors, currency of the money raised, value of the money raised, and value of the money raised in US dollars. If the company didn't have a funding round, or the data is unavailable, returned value is 'null'. | array | > | known\_funding\_total\_value | Total funding value, US dollars | Total amount of money raised in all of the company's funding rounds. Calculated using all available data, displayed in US dollars. | float | For additional enrichment options, explore related API endpoints below. ## Body Params - Try Me Example ``` business_ids: 8adce3ca1cef0c986b22310e369a0793 ``` # Funding and acquisition (async) Source: https://developers.explorium.ai/v2/businesses/enrichments/funding_and_acquisition_job post /v2/businesses/funding_and_acquisition/job > [!NOTE] > > **Asynchronous variant.** This submits a job through the [async job infrastructure](/v2/async-jobs) — poll [job status](/v2/jobs/get_job_status) for progress and results. Input comes from an uploaded dataset (`list_id`); limits are 10,000 rows and a 24-hour run time. > > For the full output signal reference, see [the synchronous endpoint](/v2/businesses/enrichments/funding_and_acquisition_enrich). > **How It Works** > > * **Input:** Provide a `list_id` from the [dataset upload endpoint](/v2/jobs/upload_entity_id_dataset). Async endpoints do not accept inline IDs. > * **Processing:** The system retrieves funding and acquisition data for all submitted businesses in a **single request**. > * **Output:** A structured response with historical funding rounds and acquisitions. > **Example Request (cURL)** > > ```shell Bash theme={null} > curl --request POST \ > --url https://api.explorium.ai/v2/businesses/funding_and_acquisition/job \ > --header 'accept: application/json' \ > --header 'api_key: your_api_key_here' \ > --header 'content-type: application/json' \ > --data '{ > "business_ids": [ > "8adce3ca1cef0c986b22310e369a0793", > "a34bacf839b923770b2c360eefa26748" > ] > }' > ``` > **Best Practices** > > * **Track funding rounds** to identify growing companies. > * **Analyze acquisition trends** for market consolidation insights. > * **Assess investor activity** to evaluate market confidence. **For additional enrichment options, explore related API endpoints below.** ## Body Params - Try Me Example ``` business_ids: ["8adce3ca1cef0c986b22310e369a0793", "a34bacf839b923770b2c360eefa26748"] ``` # LinkedIn posts Source: https://developers.explorium.ai/v2/businesses/enrichments/linkedin_posts_enrich post /v2/businesses/linkedin_posts/enrich ## Description The **Company's Social Media Presence Enrichment** endpoint provides insights into a company's **Social media activity, engagement trends, and posting behavior**. This dataset is valuable for **brand analysts, marketers, and business strategists** looking to assess **corporate communication trends and social media reach**. > [!WARNING] > > **Credit usage — charged per requested ID** > > Unlike other enrichment endpoints, which charge credits only for entity IDs that return results, this endpoint charges credits for **every `business_id` included in the request — whether or not results are returned**. A request that returns no posts still consumes credits. The data includes: * **Volume of Social media posts** over a given period. * **Engagement metrics**, such as likes, shares, and comments. * **Trending topics and key themes** in company communications. This information is sourced from **public Social media data and corporate social media feeds** to offer a **comprehensive view of a company's digital engagement and brand presence**. > [!NOTE] > > **v2:** this endpoint accepts either a single ID (a string) or a list of up to 50 IDs — the separate `/bulk_enrich` route is gone. See [v2 conventions](/v2/conventions). ## Enrich by company details instead of IDs `business_ids` is the primary way to call this endpoint. If you don't have Explorium IDs yet, you can send `businesses_to_match` instead: up to 50 companies, described with the same fields the [Match businesses](/v2/businesses/match_businesses) endpoint accepts (`name`, `domain`, `url`, `linkedin_url`). Each company is matched and enriched in the same call. Send **either** `business_ids` **or** `businesses_to_match`, never both (that returns a `422`). Any `parameters` the endpoint takes work the same either way. ```json Request body theme={null} { "businesses_to_match": [ { "name": "Explorium", "domain": "explorium.ai" }, { "name": "Unknown Co", "domain": "unknown-co.example" } ] } ``` ```json Response (data shortened) theme={null} { "response_context": { "correlation_id": "ebe38f2b99ad423e84f93d2be5e75b20", "request_status": "success", "time_taken_in_seconds": 5.38 }, "data": [ { "input": { "name": "Explorium", "domain": "explorium.ai", "url": null, "linkedin_url": null }, "business_id": "340c8040bd50cbab9c7df718bbe51cc9", "data": { "business_id": "340c8040bd50cbab9c7df718bbe51cc9", "...": "same fields as an ID-based request" }, "warnings": [] }, { "input": { "name": "Unknown Co", "domain": "unknown-co.example", "url": null, "linkedin_url": null }, "business_id": null, "data": null, "warnings": [] } ], "total_results": 1, "total_matches": 1 } ``` Each row echoes its `input` and returns the matched `business_id`. Companies that don't match come back with `business_id: null` and `data: null`, and aren't charged. `total_matches` counts the matched rows. > **How It Works** > > * **Input:** Provide a `business_id` obtained from the **Match Businesses** API. > * **Processing:** The system retrieves Social media activity, post frequency, and engagement trends. > * **Output:** A structured response summarizing social media presence and key engagement metrics. > **Credit Usage** > > This endpoint uses a different charging model than other enrichment endpoints: > > | Endpoint type | Charging model | > | :- | :- | > | Other enrichment endpoints | Credits charged **per entity ID that returns results** — no results, no charge. | > | **This endpoint (LinkedIn posts)** | Credits charged **per requested `business_id`**, regardless of whether results are returned. | > > To avoid spending credits on IDs that are unlikely to return data, make sure you use **valid business IDs** retrieved from the **Match Businesses** endpoint. > **Best Practices** > > * **Use social media insights** to track brand perception and digital engagement trends. > * **Analyze posting behavior** to understand a company's content strategy and outreach. > * **Leverage engagement data** to benchmark a company's influence against competitors. > * **Monitor trending topics** to gain insights into corporate priorities and industry focus. > **Company's Social Media Presence Output Signal** > > | SignalAPI | Name | Description | Data Type | > | :- | :- | :- | :- | > | post\_text | Post text content | Text content of the LinkedIn® post published by company profile. | string | > | days\_since\_posted | Days since post | Number of days since the post was published by the company. | integer | > | post\_url | LinkedIn® post URL | URL to the LinkedIn® post published by individual. | url | > | number\_of\_comments | Number of post comments | Number of comments on the company's post by time of collection. | integer | > | number\_of\_likes | Number of post likes | Number of likes the company's post received by time of collection. | integer | > | created\_at | Time of posting | Timestamp of when the company's post was published. | datetime | **Key Consideration:** * **Credits are charged per requested `business_id`, even when no results are returned** — unlike other enrichment endpoints, which charge only for IDs that return data. For additional enrichment options, explore related API endpoints below. ## Body Params - Try Me Example ```text theme={null} business_ids: 8adce3ca1cef0c986b22310e369a0793 ``` # LinkedIn posts (async) Source: https://developers.explorium.ai/v2/businesses/enrichments/linkedin_posts_job post /v2/businesses/linkedin_posts/job > [!NOTE] > > **Asynchronous variant.** This submits a job through the [async job infrastructure](/v2/async-jobs) — poll [job status](/v2/jobs/get_job_status) for progress and results. Input comes from an uploaded dataset (`list_id`); limits are 10,000 rows and a 24-hour run time. > > For the full output signal reference, see [the synchronous endpoint](/v2/businesses/enrichments/linkedin_posts_enrich). > **How It Works** > > * **Input:** Provide a `list_id` from the [dataset upload endpoint](/v2/jobs/upload_entity_id_dataset). Async endpoints do not accept inline IDs. > * **Processing:** The system retrieves social media engagement metrics for all submitted businesses in a **single request**. > * **Output:** A structured response summarizing social media activity and trends. > **Example Request (cURL)** > > ```shell Bash theme={null} > curl --request POST \ > --url https://api.explorium.ai/v2/businesses/linkedin_posts/job \ > --header 'accept: application/json' \ > --header 'api_key: your_api_key_here' \ > --header 'content-type: application/json' \ > --data '{ > "business_ids": [ > "8adce3ca1cef0c986b22310e369a0793", > "a34bacf839b923770b2c360eefa26748" > ] > }' > ``` > **Best Practices** > > * **Track social media activity** to analyze company messaging trends. > * **Compare engagement metrics** with competitors. > * **Use social media insights** to refine branding strategies. **For additional enrichment options, explore related API endpoints below.** ## Body Params - Try Me Example ``` business_ids: ["8adce3ca1cef0c986b22310e369a0793", "a34bacf839b923770b2c360eefa26748"] ``` # Lookalikes Source: https://developers.explorium.ai/v2/businesses/enrichments/lookalikes_enrich post /v2/businesses/lookalikes/enrich ## **Description** This enrichment is powered by Ocean.io, a provider of lookalike companies based on advanced similarity analysis. ![0bfdc090de99b88acc7276e2d8af4455a5e88453f8c36d2a038b5dab173d8655 Image Pn](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/0bfdc090de99b88acc7276e2d8af4455a5e88453f8c36d2a038b5dab173d8655-image.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=ddfcaeaf8890256a02990b3f36ddd31b) The **Lookalike Companies Enrichment** identifies and returns businesses that closely resemble a given company across key dimensions such as industry, size, geography, and online presence. This enrichment is powered by an external API provided by Ocean.io, which uses its own similarity engine to surface relevant company lookalikes. Similarity scores are calculated based on a combination of structured business attributes (e.g., number of employees, revenue range, industry classification, and country), semantic similarity of company descriptions, digital footprint overlap (such as website content and web signals), and additional contextual indicators sourced from Ocean.io’s data graph. For each input company (business\_id), the enrichment returns up to 3 lookalike companies, including their firmographic attributes and a similarity score indicating the strength of the match (e.g., Medium or High). This enrichment provides a powerful signal for identifying companies that “look like” your target ideal for use cases such as lead generation, market expansion, competitive intelligence, and segmentation strategies. > [!NOTE] > > **v2:** this endpoint accepts either a single ID (a string) or a list of up to 50 IDs — the separate `/bulk_enrich` route is gone. See [v2 conventions](/v2/conventions). ## Enrich by company details instead of IDs `business_ids` is the primary way to call this endpoint. If you don't have Explorium IDs yet, you can send `businesses_to_match` instead: up to 50 companies, described with the same fields the [Match businesses](/v2/businesses/match_businesses) endpoint accepts (`name`, `domain`, `url`, `linkedin_url`). Each company is matched and enriched in the same call. Send **either** `business_ids` **or** `businesses_to_match`, never both (that returns a `422`). Any `parameters` the endpoint takes work the same either way. ```json Request body theme={null} { "businesses_to_match": [ { "name": "Explorium", "domain": "explorium.ai" }, { "name": "Unknown Co", "domain": "unknown-co.example" } ] } ``` ```json Response (data shortened) theme={null} { "response_context": { "correlation_id": "ebe38f2b99ad423e84f93d2be5e75b20", "request_status": "success", "time_taken_in_seconds": 5.38 }, "data": [ { "input": { "name": "Explorium", "domain": "explorium.ai", "url": null, "linkedin_url": null }, "business_id": "340c8040bd50cbab9c7df718bbe51cc9", "data": { "business_id": "340c8040bd50cbab9c7df718bbe51cc9", "...": "same fields as an ID-based request" }, "warnings": [] }, { "input": { "name": "Unknown Co", "domain": "unknown-co.example", "url": null, "linkedin_url": null }, "business_id": null, "data": null, "warnings": [] } ], "total_results": 1, "total_matches": 1 } ``` Each row echoes its `input` and returns the matched `business_id`. Companies that don't match come back with `business_id: null` and `data: null`, and aren't charged. `total_matches` counts the matched rows. > **How It Works** > > * **Input:** Provide a `business_id` obtained from the **Match Businesses** API. > * **Processing:** The system identifies businesses with high similarity scores based on business attributes, descriptions, and digital footprint. > * **Output:** A list of lookalike companies with attributes such as name, website, industry, size, revenue range, and similarity score. > **Example Request (cURL)** > > ```bash Bash theme={null} > { > "request_context": { > "seller_id": "sample_id" > }, > "business_id": "9664930a34aa8e59f9b994b70e8bc15e" > } > ``` > **Example Response** > > ```json JSON expandable theme={null} > { > "response_context": { > "correlation_id": "fe2bade7db0640d0887aebc6d0e2e3f3", > "request_status": "success", > "time_taken_in_seconds": 3.071 > }, > "data": [ > { > "business_id": "9664930a34aa8e59f9b994b70e8bc15e", > "lookalike_business_id": "443fbc49b4ab9988d64065d7e2fddf1a", > "lookalike_business_name": "centrify", > "lookalike_website": "https://delinea.com", > "lookalike_description": "Please follow Delinea on Linkedin! Centrify is now Delinea....", > "lookalike_number_of_employees_range": "501-1000", > "lookalike_revenue_range": "75M-200M", > "lookalike_naics_description": "Software Publishers", > "lookalike_country_location": "us", > "similarity_score": "High" > }, > { > "business_id": "9664930a34aa8e59f9b994b70e8bc15e", > "lookalike_business_id": "b5bff70c7cd89e7677a6863751678f30", > "lookalike_business_name": "innskill", > "lookalike_website": "https://innskill.com", > "lookalike_description": "INNSKILL - Empowering Businesses with IAM and Cybersecurity Solutions At INNSKILL, we specialize in providing comprehensive Identity and Access Management (IAM) .....", > "lookalike_number_of_employees_range": "51-200", > "lookalike_revenue_range": "10M-25M", > "lookalike_naics_description": "Computer Systems Design and Related Services", > "lookalike_country_location": "nl", > "similarity_score": "High" > }, > { > "business_id": "9664930a34aa8e59f9b994b70e8bc15e", > "lookalike_business_id": "0c9e2098799d2d7ac37eba0c7aac5060", > "lookalike_business_name": "saviynt", > "lookalike_website": "https://saviynt.com", > "lookalike_description": "About Us At Saviynt, we are pioneers in intelligent identity security solutions....", > "lookalike_number_of_employees_range": "1001-5000", > "lookalike_revenue_range": "500M-1B", > "lookalike_naics_description": "Software Publishers", > "lookalike_country_location": "us", > "similarity_score": "High" > } > ] > } > ``` > **Best Practices** > > * **`Always use a validbusiness_id`** obtained via the **Match Businesses** API. > * **Interpret similarity scores** to prioritize the strongest matches for your use case (e.g. focus on “High” similarity for precise lookalikes). > * **Combine lookalike insights** with other enrichment signals (e.g. firmographics, technographics) for deeper segmentation. > * **Re-run lookalike queries periodically** to capture changes in the business landscape and discover new similar companies. > **Lookalike Companies Output Signals** > > | SignalAPI | Name | Description | Data Type | > | :- | :- | :- | :- | > | comparable\_business\_id | Comparable Business ID | The Explorium ID of the requested company. | string | > | lookalike\_business\_id | Lookalike Business ID | The Explorium ID of the lookalike company. | string | > | lookalike\_business\_name | Lookalike Business Name | Name of the lookalike company. | string | > | lookalike\_website | Lookalike Website | Website URL of the lookalike. | string | > | lookalike\_description | Lookalike Description | Description of the lookalike company. | string | > | lookalike\_number\_of\_employees\_range | Lookalike Number of Employees Range | Employee range for the lookalike. | string | > | lookalike\_revenue\_range | Lookalike Revenue Range | Revenue range for the lookalike. | string | > | lookalike\_naics\_description | Lookalike NAICS Description | NAICS (North American Industry Classification System) description for the lookalike. | string | > | lookalike\_country\_location | Lookalike Country Location | The country of operation for the lookalike. | string | > | similarity\_score | Similarity Score | Similarity score of the lookalike to the requested company. Medium (0.95–0.975), High (0.975+) | string | *For additional enrichment options, explore related API endpoints below.* # Lookalikes (async) Source: https://developers.explorium.ai/v2/businesses/enrichments/lookalikes_job post /v2/businesses/lookalikes/job ## **Description** This enrichment is powered by Ocean.io, a provider of lookalike companies based on advanced similarity analysis. ![ocean.io - logo](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/0bfdc090de99b88acc7276e2d8af4455a5e88453f8c36d2a038b5dab173d8655-image.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=ddfcaeaf8890256a02990b3f36ddd31b) The **Lookalike Companies Enrichment** identifies and returns businesses that closely resemble a given company across key dimensions such as industry, size, geography, and online presence. This enrichment is powered by an external API provided by Ocean.io, which uses its own similarity engine to surface relevant company lookalikes. Similarity scores are calculated based on a combination of structured business attributes (e.g., number of employees, revenue range, industry classification, and country), semantic similarity of company descriptions, digital footprint overlap (such as website content and web signals), and additional contextual indicators sourced from Ocean.io’s data graph. For each input company (business\_id), the enrichment returns up to 3 lookalike companies, including their firmographic attributes and a similarity score indicating the strength of the match (e.g., Medium or High). This enrichment provides a powerful signal for identifying companies that “look like” your target ideal for use cases such as lead generation, market expansion, competitive intelligence, and segmentation strategies. > [!NOTE] > > **Asynchronous variant.** This submits a job through the [async job infrastructure](/v2/async-jobs) — poll [job status](/v2/jobs/get_job_status) for progress and results. Input comes from an uploaded dataset (`list_id`); limits are 10,000 rows and a 24-hour run time. > > For the full output signal reference, see [the synchronous endpoint](/v2/businesses/enrichments/lookalikes_enrich). > **How It Works** > > * **Input:** Provide a `business_id` obtained from the **Match Businesses** API. > * **Processing:** The system identifies businesses with high similarity scores based on business attributes, descriptions, and digital footprint. > * **Output:** A list of lookalike companies with attributes such as name, website, industry, size, revenue range, and similarity score. > **Example Request (cURL)** > > ```bash Bash theme={null} > { > "request_context": { > "seller_id": "sample_id" > }, > "business_ids": ["9664930a34aa8e59f9b994b70e8bc15e"] > } > ``` > **Example Response** > > ```json JSON expandable theme={null} > { > "response_context": { > "correlation_id": "be542cecda9b40c8af830adc25b71b0c", > "request_status": "success", > "time_taken_in_seconds": 2.317 > }, > "data": [ > { > "business_id": "9664930a34aa8e59f9b994b70e8bc15e", > "data": { > "business_id": "9664930a34aa8e59f9b994b70e8bc15e", > "lookalike_business_id": "443fbc49b4ab9988d64065d7e2fddf1a", > "lookalike_business_name": "centrify", > "lookalike_website": "https://delinea.com", > "lookalike_description": "Please follow Delinea on Linkedin! Centrify is now Delinea, a leading provider of privileged access management (PAM) solutions that make security seamless for the modern, hybrid enterprise. Our solutions empower organizations to secure critical data, devices, code, and cloud infrastructure to help reduce risk, ensure compliance, and simplify security. Delinea removes complexity and defines the boundaries of access for thousands of customers worldwide. Our customers range from small businesses to the world's largest financial institutions, intelligence agencies, and critical infrastructure companies.", > "lookalike_number_of_employees_range": "501-1000", > "lookalike_revenue_range": "75M-200M", > "lookalike_naics_description": "Software Publishers", > "lookalike_country_location": "us", > "similarity_score": "High" > } > }, > { > "business_id": "9664930a34aa8e59f9b994b70e8bc15e", > "data": { > "business_id": "9664930a34aa8e59f9b994b70e8bc15e", > "lookalike_business_id": "0230a888e8196d7b94ddd866d2e4d9fc", > "lookalike_business_name": "beyondtrust", > "lookalike_website": "https://beyondtrust.com", > "lookalike_description": "BeyondTrust is a global leader in Privileged Access Management (PAM), offering advanced solutions to secure and manage privileges across traditional, cloud, and hybrid environments. Their Universal Privilege Management approach protects privileges related to passwords, endpoints, and access, enhancing visibility and control for organizations to reduce risk, ensure compliance, and improve operational performance. Trusted by 20,000 customers, including 78 of the Fortune 100, BeyondTrust's platform empowers organizations to shrink their attack surface and mitigate security blind spots through intelligent identity threat detection and privilege control.", > "lookalike_number_of_employees_range": "1001-5000", > "lookalike_revenue_range": "500M-1B", > "lookalike_naics_description": "Computer Systems Design Services", > "lookalike_country_location": "us", > "similarity_score": "High" > } > }, > { > "business_id": "9664930a34aa8e59f9b994b70e8bc15e", > "data": { > "business_id": "9664930a34aa8e59f9b994b70e8bc15e", > "lookalike_business_id": "21d52ef9535ea4e6d0872a8c15dc2b59", > "lookalike_business_name": "cyberi3secure", > "lookalike_website": "https://cyberi3secure.com", > "lookalike_description": "Cyberi3Secure is uniquely qualified to help companies improve efficiency, strengthen compliance, and protecting data and assets by addressing privilege access management. Our specialized focus on PAM practice, combined with our deep knowledge and experience, we can deliver and deploy customized privilege access management solutions for every customer.", > "lookalike_number_of_employees_range": "11-50", > "lookalike_revenue_range": "5M-10M", > "lookalike_naics_description": "Computer Systems Design and Related Services", > "lookalike_country_location": "in", > "similarity_score": "High" > } > } > ], > "total_results": 3 > } > ``` > **Best Practices** > > * **`Always use a validbusiness_id`** obtained via the **Match Businesses** API. > * **Interpret similarity scores** to prioritize the strongest matches for your use case (e.g. focus on “High” similarity for precise lookalikes). > * **Combine lookalike insights** with other enrichment signals (e.g. firmographics, technographics) for deeper segmentation. > * **Re-run lookalike queries periodically** to capture changes in the business landscape and discover new similar companies. > **Lookalike Companies Output Signals** > > | SignalAPI | Name | Description | Data Type | > | :- | :- | :- | :- | > | comparable\_business\_id | Comparable Business ID | The Explorium ID of the requested company. | string | > | lookalike\_business\_id | Lookalike Business ID | The Explorium ID of the lookalike company. | string | > | lookalike\_business\_name | Lookalike Business Name | Name of the lookalike company. | string | > | lookalike\_website | Lookalike Website | Website URL of the lookalike. | string | > | lookalike\_description | Lookalike Description | Description of the lookalike company. | string | > | lookalike\_number\_of\_employees\_range | Lookalike Number of Employees Range | Employee range for the lookalike. | string | > | lookalike\_revenue\_range | Lookalike Revenue Range | Revenue range for the lookalike. | string | > | lookalike\_naics\_description | Lookalike NAICS Description | NAICS (North American Industry Classification System) description for the lookalike. | string | > | lookalike\_country\_location | Lookalike Country Location | The country of operation for the lookalike. | string | > | similarity\_score | Similarity Score | Similarity score of the lookalike to the requested company. Medium (0.95–0.975), High (0.975+) | string | *For additional enrichment options, explore related API endpoints below.* # Business enrichments Source: https://developers.explorium.ai/v2/businesses/enrichments/overview The 16 business enrichments in AgentSource v2, each with a synchronous /enrich and an asynchronous /job variant. Every enrichment ships both a **sync** (`.../enrich`) and an **async** (`.../job`) variant. Sync accepts a single ID or a list of up to 50; async runs through the [async job infrastructure](/v2/async-jobs) with a 10,000-record limit. See [v2 conventions](/v2/conventions). All enrichment endpoints are `POST`. ## Available business enrichments (16) | Enrichment | Key | Sync | Async | | :- | :- | :- | :- | | Firmographics | `firmographics` | [Sync](/v2/businesses/enrichments/firmographics_enrich) | [Async](/v2/businesses/enrichments/firmographics_job) | | Technographics | `technographics` | [Sync](/v2/businesses/enrichments/technographics_enrich) | [Async](/v2/businesses/enrichments/technographics_job) | | LinkedIn posts | `linkedin_posts` | [Sync](/v2/businesses/enrichments/linkedin_posts_enrich) | [Async](/v2/businesses/enrichments/linkedin_posts_job) | | Company ratings by employees | `company_ratings_by_employees` | [Sync](/v2/businesses/enrichments/company_ratings_by_employees_enrich) | [Async](/v2/businesses/enrichments/company_ratings_by_employees_job) | | Company website keywords | `company_website_keywords` | [Sync](/v2/businesses/enrichments/company_website_keywords_enrich) | [Async](/v2/businesses/enrichments/company_website_keywords_job) | | Financial indicators | `financial_indicators` | [Sync](/v2/businesses/enrichments/financial_indicators_enrich) | [Async](/v2/businesses/enrichments/financial_indicators_job) | | Funding and acquisition | `funding_and_acquisition` | [Sync](/v2/businesses/enrichments/funding_and_acquisition_enrich) | [Async](/v2/businesses/enrichments/funding_and_acquisition_job) | | Business challenges (10-K) | `pc_business_challenges_10k` | [Sync](/v2/businesses/enrichments/pc_business_challenges_10k_enrich) | [Async](/v2/businesses/enrichments/pc_business_challenges_10k_job) | | Competitive landscape (10-K) | `pc_competitive_landscape_10k` | [Sync](/v2/businesses/enrichments/pc_competitive_landscape_10k_enrich) | [Async](/v2/businesses/enrichments/pc_competitive_landscape_10k_job) | | Strategy (10-K) | `pc_strategy_10k` | [Sync](/v2/businesses/enrichments/pc_strategy_10k_enrich) | [Async](/v2/businesses/enrichments/pc_strategy_10k_job) | | Website changes | `website_changes` | [Sync](/v2/businesses/enrichments/website_changes_enrich) | [Async](/v2/businesses/enrichments/website_changes_job) | | Workforce trends | `workforce_trends` | [Sync](/v2/businesses/enrichments/workforce_trends_enrich) | [Async](/v2/businesses/enrichments/workforce_trends_job) | | Lookalikes | `lookalikes` | [Sync](/v2/businesses/enrichments/lookalikes_enrich) | [Async](/v2/businesses/enrichments/lookalikes_job) | | Webstack | `webstack` | [Sync](/v2/businesses/enrichments/webstack_enrich) | [Async](/v2/businesses/enrichments/webstack_job) | | Company hierarchies | `company_hierarchies` | [Sync](/v2/businesses/enrichments/company_hierarchies_enrich) | [Async](/v2/businesses/enrichments/company_hierarchies_job) | | Bombora intent | `bombora_intent` | [Sync](/v2/businesses/enrichments/bombora_intent_enrich) | [Async](/v2/businesses/enrichments/bombora_intent_job) | ## Response changes in v2 * `entity_id` is no longer returned. * `display_name` is removed from the `linkedin_posts` response. * Address signals (`company_city`, `company_country_code`, `company_region`, `company_street`, `company_zip_code`) are removed from `company_ratings_by_employees`. See [What's new](/v2/whats-new) for the full list. *** ## Overview ### **Introduction** The **Businesses Enrichments** API suite provides a comprehensive set of **data enrichment capabilities** that empower organizations to extract **deep business insights**. These enrichments allow businesses to **augment, analyze, and track** company information across various domains, including **firmographics, financials, workforce trends, market positioning, and website content changes**. By leveraging Explorium’s **global datasets and AI-driven insights**, users can: * Enhance **lead scoring and segmentation**. * Track **company growth, funding, and workforce shifts**. * Analyze **competitive landscapes and market trends**. * Monitor **website content updates and keyword presence**. This document provides an **overview of all available enrichments**, their use cases, and best practices for **maximizing business intelligence.** ## **How to Use Businesses Enrichments** 1. **Obtain a Business ID:** Use the **Match Businesses API** to retrieve a unique identifier for the target company. 2. **Select the Desired Enrichment:** Choose the enrichment endpoint that aligns with your business needs. 3. **Submit an API Request:** Send a `POST` request with the `business_id` to retrieve relevant data. 4. **Analyze and Act:** Integrate the enriched data into your workflows for advanced decision-making. ### **Best Practices** * **Combine multiple enrichments** for a holistic company profile. * **Use historical insights** to track trends over time. * **Leverage workforce data** to anticipate hiring trends and business expansions. * **Monitor competitive intelligence** to adapt strategies effectively. ## **Key Enrichments & Capabilities** ### **Firmographics Enrichment** * Essential company details: revenue, employee count, industry classification. * Use case: **Lead scoring, B2B marketing segmentation, sales intelligence.** ### **Technographics Enrichment** * Insights into the internal tech stack of companies. * Use case: **Competitive analysis, sales targeting, and software vendor tracking.** ### **Financial Metrics Enrichment** * Historical and real-time financial indicators for publicly traded companies. * Use case: **Investment research, risk assessment, financial modeling.** ### **Funding & Acquisitions Enrichment** * Data on funding rounds, investors, M\&A activity. * Use case: **VC investment analysis, startup tracking, competitive benchmarking.** ### **Strategic Insights & Competitive Landscape Enrichment** * Insights into business strategies, operational focus, and competitive positioning. * Use case: **Competitive intelligence, strategic business planning.** ### **Workforce Trends Enrichment** * Analysis of department-level workforce changes and hiring trends. * Use case: **HR analytics, market expansion strategies.** ### **Company Ratings Enrichment** * Employee reviews, job satisfaction scores, and workplace ratings. * Use case: **Employer branding, HR benchmarking, recruitment strategy.** ### **Business Challenges Enrichment** * Identification of key risks, legal challenges, and operational issues faced by public companies. * Use case: **Risk analysis, due diligence, financial modeling.** ### **Company’s Website Content Changes Enrichment** * Detects **real-time updates** in company website content. * Use case: **Brand monitoring, compliance tracking, competitive research.** ### **Keyword Search on Websites Enrichment** * Searches for **specific keywords** across company websites. * Use case: **Brand monitoring, product mentions, regulatory compliance.** ### **Company’s Social Media Presence Enrichment** * Extracts insights from corporate social media activity. * Use case: **Brand perception analysis, PR monitoring.** **For detailed API specifications and request examples, refer to each enrichment endpoint in this documentation.** # Business challenges (10-K) Source: https://developers.explorium.ai/v2/businesses/enrichments/pc_business_challenges_10k_enrich post /v2/businesses/pc_business_challenges_10k/enrich ## Description The **Business Challenges Enrichment** endpoint provides insights into a company's **investment history, advisory board, and funding rounds**. This dataset helps users analyze **ownership structure, investor involvement, and financial growth trends**. The data includes: * **Historical funding rounds**, including investors and deal amounts * **IPO details**, such as valuation and issuance date * **Board of advisors and leadership insights** * **Acquisition history and M\&A details** This information is sourced from **regulatory filings, public disclosures, and investment databases** to provide **a comprehensive view of financial backing and corporate strategy**. > [!NOTE] > > **v2:** this endpoint accepts either a single ID (a string) or a list of up to 50 IDs — the separate `/bulk_enrich` route is gone. See [v2 conventions](/v2/conventions). ## Enrich by company details instead of IDs `business_ids` is the primary way to call this endpoint. If you don't have Explorium IDs yet, you can send `businesses_to_match` instead: up to 50 companies, described with the same fields the [Match businesses](/v2/businesses/match_businesses) endpoint accepts (`name`, `domain`, `url`, `linkedin_url`). Each company is matched and enriched in the same call. Send **either** `business_ids` **or** `businesses_to_match`, never both (that returns a `422`). Any `parameters` the endpoint takes work the same either way. ```json Request body theme={null} { "businesses_to_match": [ { "name": "Explorium", "domain": "explorium.ai" }, { "name": "Unknown Co", "domain": "unknown-co.example" } ] } ``` ```json Response (data shortened) theme={null} { "response_context": { "correlation_id": "ebe38f2b99ad423e84f93d2be5e75b20", "request_status": "success", "time_taken_in_seconds": 5.38 }, "data": [ { "input": { "name": "Explorium", "domain": "explorium.ai", "url": null, "linkedin_url": null }, "business_id": "340c8040bd50cbab9c7df718bbe51cc9", "data": { "business_id": "340c8040bd50cbab9c7df718bbe51cc9", "...": "same fields as an ID-based request" }, "warnings": [] }, { "input": { "name": "Unknown Co", "domain": "unknown-co.example", "url": null, "linkedin_url": null }, "business_id": null, "data": null, "warnings": [] } ], "total_results": 1, "total_matches": 1 } ``` Each row echoes its `input` and returns the matched `business_id`. Companies that don't match come back with `business_id: null` and `data: null`, and aren't charged. `total_matches` counts the matched rows. > **How It Works** > > * **Input:** Provide a `business_id` obtained from the **Match Businesses** API. > * **Processing:** The system retrieves funding rounds, IPO details, and advisory board members. > * **Output:** A structured response summarizing key investment details and corporate leadership. > **Best Practices** > > * **Use funding insights** to track a company's financial growth and investment backing. > * **Analyze advisory board members** to assess strategic leadership and governance. > * **Leverage IPO data** for evaluating newly public companies and market positioning. > * **Cross-reference funding data** with firmographics and financial metrics for deeper investment insights. > **Business Challenges Output Signal** > > | SignalAPI | Name | Description | Data Type | > | :- | :- | :- | :- | > | technological\_disruption | Company's innovation | Text describing the company's technological disruption and innovation. Insights extracted from publicly published reports. | array | > | link\_to\_html | 10-K filing document link | URL linking to the main HTML document of the company's specific 10-K filing, containing financial statements, management analysis, and other key information submitted to the SEC. | url | > | link\_to\_filing\_details | 10-K filing index link | URL linking to the index page of the company's specific 10-K filing, which lists the main filing document, exhibits, and supplemental files submitted to the SEC. | url | > | form\_type | Form type | Type of form that was filed by the company. In most cases the form type is 10-K. | string | > | accession\_number | File's accession number | Unique identifier for the file submitted by the company to the SEC, including the company’s CIK, the fiscal year of the filing, and the sequential number of the filing within that year. | string | > | company\_data\_security\_breach | Company's data security breaches | Text describing the company's data security breaches. Insights extracted from publicly published reports. | array | > | company\_market\_saturation | Company's market saturation | Text describing the company's market saturation. Insights extracted from publicly published reports. | array | > | form\_description | Form description | Summary of the filing, including the type of form submitted, the statutory authority requiring its submission, and details on whether specific disclosures are included or excluded. The filing is prepared and submitted by the company it pertains to, in compliance with SEC regulations. | string | > | company\_name | Company name | Name of the company. | string | > | cik | Company's CIK | Unique numeric identifier assigned by the SEC distinguishing a company in the EDGAR filing system. Typically consists of up to 10 digits and may include leading zeros. Used for retrieving financial filings and compliance documents. | string | > | filed\_at | Time of filing | Date and time the filing was submitted, formatted YYYY-MM-DDTHH:MM:SS±HH:MM. | string | > | company\_data\_security\_privacy | Company's data security and privacy | Text describing the company's data security and privacy approach. Insights extracted from publicly published reports. | array | > | company\_competition | Company's competition | Text describing the company's competitive landscape. Insights extracted from publicly published reports. | array | > | company\_customer\_adoption | Company's customer adoption | Text describing the company's customer adoption. Insights extracted from publicly published reports. | array | > | ticker | Ticker symbol | Stock symbol associated with the company, that is compiled of an arrangement of characters representing publicly-traded securities on an exchange. The symbol is used to place trade orders. | string | For additional enrichment options, explore related API endpoints below. ## Body Params - Try Me Example ``` business_ids: 8adce3ca1cef0c986b22310e369a0793 ``` # Business challenges (10-K) (async) Source: https://developers.explorium.ai/v2/businesses/enrichments/pc_business_challenges_10k_job post /v2/businesses/pc_business_challenges_10k/job > [!NOTE] > > **Asynchronous variant.** This submits a job through the [async job infrastructure](/v2/async-jobs) — poll [job status](/v2/jobs/get_job_status) for progress and results. Input comes from an uploaded dataset (`list_id`); limits are 10,000 rows and a 24-hour run time. > > For the full output signal reference, see [the synchronous endpoint](/v2/businesses/enrichments/pc_business_challenges_10k_enrich). > **How It Works** > > * **Input:** Provide a `list_id` from the [dataset upload endpoint](/v2/jobs/upload_entity_id_dataset). Async endpoints do not accept inline IDs. > * **Processing:** The system retrieves business challenge data for all submitted businesses in a **single request**. > * **Output:** A structured response with corporate risks and operational challenges. > **Example Request (cURL)** > > ```shell Bash theme={null} > curl --request POST \ > --url https://api.explorium.ai/v2/businesses/pc_business_challenges_10k/job \ > --header 'accept: application/json' \ > --header 'api_key: your_api_key_here' \ > --header 'content-type: application/json' \ > --data '{ > "business_ids": [ > "8adce3ca1cef0c986b22310e369a0793", > "a34bacf839b923770b2c360eefa26748" > ] > }' > ``` > **Best Practices** > > * **Monitor regulatory and operational risks** for public companies. > * **Assess business challenges** to understand corporate weaknesses. > * **Use challenge data** to evaluate investment risks. **For additional enrichment options, explore related API endpoints below.** ## Body Params - Try Me Example ``` business_ids: ["8adce3ca1cef0c986b22310e369a0793", "a34bacf839b923770b2c360eefa26748"] ``` # Competitive landscape (10-K) Source: https://developers.explorium.ai/v2/businesses/enrichments/pc_competitive_landscape_10k_enrich post /v2/businesses/pc_competitive_landscape_10k/enrich ## Description The **Competitive Landscape Enrichment** endpoint provides insights into a company's **market positioning, competitive differentiation, and key competitors**. This dataset is valuable for **investors, market analysts, and business strategists** aiming to understand industry competition and corporate advantages. The data includes: * **Competitive differentiation factors**, highlighting a company's unique strengths. * **Key competitors**, listing rival companies in the same industry. * **Links to official SEC filings**, such as **10-K reports**, providing further competitive insights. This information is sourced from **publicly available financial reports, regulatory filings, and industry analysis** to offer **a comprehensive view of market positioning and competition**. > [!NOTE] > > **v2:** this endpoint accepts either a single ID (a string) or a list of up to 50 IDs — the separate `/bulk_enrich` route is gone. See [v2 conventions](/v2/conventions). ## Enrich by company details instead of IDs `business_ids` is the primary way to call this endpoint. If you don't have Explorium IDs yet, you can send `businesses_to_match` instead: up to 50 companies, described with the same fields the [Match businesses](/v2/businesses/match_businesses) endpoint accepts (`name`, `domain`, `url`, `linkedin_url`). Each company is matched and enriched in the same call. Send **either** `business_ids` **or** `businesses_to_match`, never both (that returns a `422`). Any `parameters` the endpoint takes work the same either way. ```json Request body theme={null} { "businesses_to_match": [ { "name": "Explorium", "domain": "explorium.ai" }, { "name": "Unknown Co", "domain": "unknown-co.example" } ] } ``` ```json Response (data shortened) theme={null} { "response_context": { "correlation_id": "ebe38f2b99ad423e84f93d2be5e75b20", "request_status": "success", "time_taken_in_seconds": 5.38 }, "data": [ { "input": { "name": "Explorium", "domain": "explorium.ai", "url": null, "linkedin_url": null }, "business_id": "340c8040bd50cbab9c7df718bbe51cc9", "data": { "business_id": "340c8040bd50cbab9c7df718bbe51cc9", "...": "same fields as an ID-based request" }, "warnings": [] }, { "input": { "name": "Unknown Co", "domain": "unknown-co.example", "url": null, "linkedin_url": null }, "business_id": null, "data": null, "warnings": [] } ], "total_results": 1, "total_matches": 1 } ``` Each row echoes its `input` and returns the matched `business_id`. Companies that don't match come back with `business_id: null` and `data: null`, and aren't charged. `total_matches` counts the matched rows. > **How It Works** > > * **Input:** Provide a `business_id` obtained from the **Match Businesses** API. > * **Processing:** The system retrieves competitor analysis, differentiation factors, and relevant regulatory filings. > * **Output:** A structured response summarizing market positioning and competitive landscape. > **Best Practices** > > * **Use competitor analysis** to benchmark against industry leaders and identify market gaps. > * **Leverage differentiation insights** to refine branding, positioning, and value propositions. > * **Utilize regulatory filings** for deeper due diligence on corporate strategies and competition. > * **Cross-reference competitive insights** with financial metrics and firmographic data for a complete market view. > **Competitive Landscape Output Signal** > > | SignalAPI | Name | Description | Data Type | > | :- | :- | :- | :- | > | cik | Company's CIK | Unique numeric identifier assigned by the SEC distinguishing a company in the EDGAR filing system. Typically consists of up to 10 digits and may include leading zeros. Used for retrieving financial filings and compliance documents. | string | > | link\_to\_filing\_details | 10-K filing index link | URL linking to the index page of the company's specific 10-K filing, which lists the main filing document, exhibits, and supplemental files submitted to the SEC. | url | > | form\_description | Form description | Summary of the filing, including the type of form submitted, the statutory authority requiring its submission, and details on whether specific disclosures are included or excluded. The filing is prepared and submitted by the company it pertains to, in compliance with SEC regulations. | string | > | competitive\_differentiation | Competitive differentiation | Text describing the company's unique value and differentiators from competitors. | array | > | filed\_at | Time of filing | Date and time the filing was submitted, formatted YYYY-MM-DDTHH:MM:SS±HH:MM. | string | > | company\_name | Company name | Name of the company. | string | > | link\_to\_html | 10-K filing document link | URL linking to the main HTML document of the company's specific 10-K filing, containing financial statements, management analysis, and other key information submitted to the SEC. | url | > | key\_competitors | Key competitors | List of the company's competitors. | array | > | accession\_number | File's accession number | Unique identifier for the file submitted by the company to the SEC, including the company’s CIK, the fiscal year of the filing, and the sequential number of the filing within that year. | string | > | form\_type | Form type | Type of form that was filed by the company. In most cases the form type is 10-K. | string | > | ticker | Ticker symbol | Stock symbol associated with the company, that is compiled of an arrangement of characters representing publicly-traded securities on an exchange. The symbol is used to place trade orders. | string | For additional enrichment options, explore related API endpoints below. **Body Params - Try Me Example** ``` business_ids: 8adce3ca1cef0c986b22310e369a0793 ``` # Competitive landscape (10-K) (async) Source: https://developers.explorium.ai/v2/businesses/enrichments/pc_competitive_landscape_10k_job post /v2/businesses/pc_competitive_landscape_10k/job > [!NOTE] > > **Asynchronous variant.** This submits a job through the [async job infrastructure](/v2/async-jobs) — poll [job status](/v2/jobs/get_job_status) for progress and results. Input comes from an uploaded dataset (`list_id`); limits are 10,000 rows and a 24-hour run time. > > For the full output signal reference, see [the synchronous endpoint](/v2/businesses/enrichments/pc_competitive_landscape_10k_enrich). > **How It Works** > > * **Input:** Provide a `list_id` from the [dataset upload endpoint](/v2/jobs/upload_entity_id_dataset). Async endpoints do not accept inline IDs. > * **Processing:** The system retrieves strategic insights and competitive landscape data for all submitted businesses in a **single request**. > * **Output:** A structured response with competitive positioning and strategic differentiators. > **Example Request (cURL)** > > ```shell Bash theme={null} > curl --request POST \ > --url https://api.explorium.ai/v2/businesses/pc_competitive_landscape_10k/job \ > --header 'accept: application/json' \ > --header 'api_key: your_api_key_here' \ > --header 'content-type: application/json' \ > --data '{ > "business_ids": [ > "8adce3ca1cef0c986b22310e369a0793", > "a34bacf839b923770b2c360eefa26748" > ] > }' > ``` > **Best Practices** > > * **Compare competitors** to assess relative market positioning. > * **Identify strategic differentiators** to refine corporate strategy. > * **Leverage industry benchmarks** for competitive advantage. **For additional enrichment options, explore related API endpoints below.** ## Body Params - Try Me Example ``` business_ids: ["8adce3ca1cef0c986b22310e369a0793", "a34bacf839b923770b2c360eefa26748"] ``` # Strategy (10-K) Source: https://developers.explorium.ai/v2/businesses/enrichments/pc_strategy_10k_enrich post /v2/businesses/pc_strategy_10k/enrich ## Description The **Strategic Insights Enrichment** endpoint provides **in-depth information on the strategic direction, operational focus, and value proposition** of public companies. This dataset is valuable for **investors, corporate strategists, and competitive analysts** aiming to understand a company's **market positioning and future plans**. The data includes: * **Target markets** and primary business focus areas. * **Value proposition** highlighting key differentiators and competitive strengths. * **Partnerships and supplier relationships** to understand ecosystem dependencies. * **Product development and innovation strategies**. * **Sales and marketing priorities** to evaluate business growth plans. This information is sourced from **regulatory filings, earnings reports, and official company disclosures** to provide a **comprehensive understanding of a company's strategic roadmap**. > [!NOTE] > > **v2:** this endpoint accepts either a single ID (a string) or a list of up to 50 IDs — the separate `/bulk_enrich` route is gone. See [v2 conventions](/v2/conventions). ## Enrich by company details instead of IDs `business_ids` is the primary way to call this endpoint. If you don't have Explorium IDs yet, you can send `businesses_to_match` instead: up to 50 companies, described with the same fields the [Match businesses](/v2/businesses/match_businesses) endpoint accepts (`name`, `domain`, `url`, `linkedin_url`). Each company is matched and enriched in the same call. Send **either** `business_ids` **or** `businesses_to_match`, never both (that returns a `422`). Any `parameters` the endpoint takes work the same either way. ```json Request body theme={null} { "businesses_to_match": [ { "name": "Explorium", "domain": "explorium.ai" }, { "name": "Unknown Co", "domain": "unknown-co.example" } ] } ``` ```json Response (data shortened) theme={null} { "response_context": { "correlation_id": "ebe38f2b99ad423e84f93d2be5e75b20", "request_status": "success", "time_taken_in_seconds": 5.38 }, "data": [ { "input": { "name": "Explorium", "domain": "explorium.ai", "url": null, "linkedin_url": null }, "business_id": "340c8040bd50cbab9c7df718bbe51cc9", "data": { "business_id": "340c8040bd50cbab9c7df718bbe51cc9", "...": "same fields as an ID-based request" }, "warnings": [] }, { "input": { "name": "Unknown Co", "domain": "unknown-co.example", "url": null, "linkedin_url": null }, "business_id": null, "data": null, "warnings": [] } ], "total_results": 1, "total_matches": 1 } ``` Each row echoes its `input` and returns the matched `business_id`. Companies that don't match come back with `business_id: null` and `data: null`, and aren't charged. `total_matches` counts the matched rows. > **How It Works** > > * **Input:** Provide a `business_id` obtained from the **Match Businesses** API. > * **Processing:** The system retrieves strategic insights, partnerships, and growth plans from company reports. > * **Output:** A structured response summarizing corporate focus, product development, and market positioning. > **Best Practices** > > * **Use strategic insights** to assess a company's market positioning and growth strategy. > * **Analyze product development trends** to understand innovation pipelines and investment focus. > * **Leverage partnership data** to identify key supply chain dependencies and alliances. > * **Compare value propositions** across competitors to evaluate differentiation strategies. > **Strategic Insights Output Signal** > > | SignalAPI | Name | Description | Data Type | > | :- | :- | :- | :- | > | form\_description | Form description | Summary of the filing, including the type of form submitted, the statutory authority requiring its submission, and details on whether specific disclosures are included or excluded. The filing is prepared and submitted by the company it pertains to, in compliance with SEC regulations. | string | > | link\_to\_html | 10-K filing document link | URL linking to the main HTML document of the company's specific 10-K filing, containing financial statements, management analysis, and other key information submitted to the SEC. | url | > | accession\_number | File's accession number | Unique identifier for the file submitted by the company to the SEC, including the company’s CIK, the fiscal year of the filing, and the sequential number of the filing within that year. | string | > | form\_type | Form type | Type of form that was filed by the company. In most cases the form type is 10-K. | string | > | target\_market | Company's target market strategy | Text describing the company's target market strategy. Insights extracted from publicly published reports. | array | > | company\_value\_proposition | Company's value proposition | Text describing the company's core product or service value proposition strategy. Insights extracted from publicly published reports. | array | > | company\_focus | Company's focus and strategy | Text describing the company's main focus areas and business strategy. Insights extracted from publicly published reports. | array | > | cik | Company's CIK | Unique numeric identifier assigned by the SEC distinguishing a company in the EDGAR filing system. Typically consists of up to 10 digits and may include leading zeros. Used for retrieving financial filings and compliance documents. | string | > | company\_name | Company name | Name of the company. | string | > | filed\_at | Time of filing | Date and time the filing was submitted, formatted YYYY-MM-DDTHH:MM:SS±HH:MM. | string | > | link\_to\_filing\_details | 10-K filing index link | URL linking to the index page of the company's specific 10-K filing, which lists the main filing document, exhibits, and supplemental files submitted to the SEC. | url | > | company\_partnerships | Company's partnership strategy | Text describing the company's partnership strategy. Insights extracted from publicly published reports. | array | > | company\_product\_development | Company's product development | Text describing the company's product development focus and strategy. Insights extracted from publicly published reports. | array | > | company\_marketing\_sales | Company's marketing and sales strategy | Text describing the company's marketing and sales strategy. Insights extracted from publicly published reports. | array | > | ticker | Ticker symbol | Stock symbol associated with the company, that is compiled of an arrangement of characters representing publicly-traded securities on an exchange. The symbol is used to place trade orders. | string | For additional enrichment options, explore related API endpoints below. ## Body Params - Try Me Example ``` business_ids: 8adce3ca1cef0c986b22310e369a0793 ``` # Strategy (10-K) (async) Source: https://developers.explorium.ai/v2/businesses/enrichments/pc_strategy_10k_job post /v2/businesses/pc_strategy_10k/job > [!NOTE] > > **Asynchronous variant.** This submits a job through the [async job infrastructure](/v2/async-jobs) — poll [job status](/v2/jobs/get_job_status) for progress and results. Input comes from an uploaded dataset (`list_id`); limits are 10,000 rows and a 24-hour run time. > > For the full output signal reference, see [the synchronous endpoint](/v2/businesses/enrichments/pc_strategy_10k_enrich). > **How It Works** > > * **Input:** Provide a `list_id` from the [dataset upload endpoint](/v2/jobs/upload_entity_id_dataset). Async endpoints do not accept inline IDs. > * **Processing:** The system retrieves strategic insights for all submitted businesses in a **single request**. > * **Output:** A structured response with corporate focus, partnerships, and competitive strategies. > **Example Request (cURL)** > > ```shell Bash theme={null} > curl --request POST \ > --url https://api.explorium.ai/v2/businesses/pc_strategy_10k/job \ > --header 'accept: application/json' \ > --header 'api_key: your_api_key_here' \ > --header 'content-type: application/json' \ > --data '{ > "business_ids": [ > "8adce3ca1cef0c986b22310e369a0793", > "a34bacf839b923770b2c360eefa26748" > ] > }' > ``` > **Best Practices** > > * **Assess corporate strategies** to understand business priorities. > * **Identify partnerships and alliances** to track business relationships. > * **Leverage strategic insights** for competitive benchmarking. **For additional enrichment options, explore related API endpoints below.** ## Body Params - Try Me Example ``` business_ids: ["8adce3ca1cef0c986b22310e369a0793", "a34bacf839b923770b2c360eefa26748"] ``` # Technographics Source: https://developers.explorium.ai/v2/businesses/enrichments/technographics_enrich post /v2/businesses/technographics/enrich ## Description The **Technographics Enrichment** endpoint provides insights into the internal technologies used by companies. This data is valuable for **lead scoring, competitive analysis, and sales prospecting** by identifying the software, platforms, and tools adopted by businesses. Technographic data is sourced from **multiple data vendors and public records**, combined with Explorium's proprietary data inference models for maximum accuracy. The dataset is **updated quarterly** to ensure fresh and relevant insights. > [!NOTE] > > **v2:** this endpoint accepts either a single ID (a string) or a list of up to 50 IDs — the separate `/bulk_enrich` route is gone. See [v2 conventions](/v2/conventions). ## Enrich by company details instead of IDs `business_ids` is the primary way to call this endpoint. If you don't have Explorium IDs yet, you can send `businesses_to_match` instead: up to 50 companies, described with the same fields the [Match businesses](/v2/businesses/match_businesses) endpoint accepts (`name`, `domain`, `url`, `linkedin_url`). Each company is matched and enriched in the same call. Send **either** `business_ids` **or** `businesses_to_match`, never both (that returns a `422`). Any `parameters` the endpoint takes work the same either way. ```json Request body theme={null} { "businesses_to_match": [ { "name": "Explorium", "domain": "explorium.ai" }, { "name": "Unknown Co", "domain": "unknown-co.example" } ] } ``` ```json Response (data shortened) theme={null} { "response_context": { "correlation_id": "ebe38f2b99ad423e84f93d2be5e75b20", "request_status": "success", "time_taken_in_seconds": 5.38 }, "data": [ { "input": { "name": "Explorium", "domain": "explorium.ai", "url": null, "linkedin_url": null }, "business_id": "340c8040bd50cbab9c7df718bbe51cc9", "data": { "business_id": "340c8040bd50cbab9c7df718bbe51cc9", "...": "same fields as an ID-based request" }, "warnings": [] }, { "input": { "name": "Unknown Co", "domain": "unknown-co.example", "url": null, "linkedin_url": null }, "business_id": null, "data": null, "warnings": [] } ], "total_results": 1, "total_matches": 1 } ``` Each row echoes its `input` and returns the matched `business_id`. Companies that don't match come back with `business_id: null` and `data: null`, and aren't charged. `total_matches` counts the matched rows. > **How It Works** > > * **Input:** Provide a `business_id` obtained from the **Match Businesses** API. > * **Processing:** The system retrieves relevant technology stacks, including software, cloud providers, and infrastructure details. > * **Output:** A structured response with categorized insights into a company's technology usage. > **Best Practices** > > * **`Ensure you retrieve thebusiness_id`** using the **Match Businesses** API before making technographic enrichment requests. > * **Leverage technographic insights** to personalize outreach and improve targeting for tech-related products. > * **Combine firmographic and technographic data** for deeper analysis and refined audience segmentation. > * **Use regular updates** to keep up with rapidly changing technology adoption trends. > **Technographics Output Signal** > > | SignalAPI | Name | Description | Data Type | > | :- | :- | :- | :- | > | full\_tech\_stack | Company's full tech stack | Full list of technologies used by the company in all categories. | array | > | full\_nested\_tech\_stack | Company's full nested tech stack | Full nested list of technologies used by the company. | array | > | testing\_and\_qa | Testing and QA tech stack | List of testing and QA technologies used by the company. | array | > | sales | Sales tech stack | List of sales technologies used by the company. | array | > | prog\_langs\_and\_frameworks | Programming languages and frameworks tech stack | List of programming, languages, and frameworks technologies used by the company. | array | > | productivity\_and\_operations | Productivity and operations tech stack | List of productivity and operations technologies used by the company. | array | > | product\_and\_design | Product and design tech stack | List of product and design technologies used by the company. | array | > | platform\_and\_storage | Platform and storage tech stack | List of platform and storage technologies used by the company. | array | > | operations\_software | Operations software tech stack | List of operations software technologies used by the company. | array | > | operations\_management | Operations management tech stack | List of operations management technologies used by the company. | array | > | marketing | Marketing tech stack | List of marketing technologies used by the company. | array | > | it\_security | IT security tech stack | List of IT security technologies used by the company. | array | > | it\_management | IT management tech stack | List of IT management technologies used by the company. | array | > | hr | HR tech stack | List of HR technologies used by the company. | array | > | health\_tech | Health tech tech stack | List of health tech technologies used by the company. | array | > | finance\_and\_accounting | Finance and accounting tech stack | List of finance and accounting technologies used by the company. | array | > | ecommerce | Ecommerce tech stack | List of ecommerce technologies used by the company. | array | > | devops\_and\_development | Devops and development tech stack | List of devops and development technologies used by the company. | array | > | customer\_management | Customer management tech stack | List of customer management technologies used by the company. | array | > | computer\_networks | Computer networks tech stack | List of computer networks technologies used by the company. | array | > | communications | Communications tech stack | List of communications technologies used by the company. | array | > | collaboration | Collaboration tech stack | List of collaboration technologies used by the company. | array | > | bi\_and\_analytics | Business intelligence and analytics tech stack | List of business, intelligence, and analytics technologies used by the company. | array | For additional enrichment options, explore related API endpoints below. ## Body Params - Try Me Example ``` business_ids: 8adce3ca1cef0c986b22310e369a0793 ``` # Technographics (async) Source: https://developers.explorium.ai/v2/businesses/enrichments/technographics_job post /v2/businesses/technographics/job > [!NOTE] > > **Asynchronous variant.** This submits a job through the [async job infrastructure](/v2/async-jobs) — poll [job status](/v2/jobs/get_job_status) for progress and results. Input comes from an uploaded dataset (`list_id`); limits are 10,000 rows and a 24-hour run time. > > For the full output signal reference, see [the synchronous endpoint](/v2/businesses/enrichments/technographics_enrich). > **How It Works** > > * **Input:** Provide a `list_id` from the [dataset upload endpoint](/v2/jobs/upload_entity_id_dataset). Async endpoints do not accept inline IDs. > * **Processing:** The system retrieves enriched data for all submitted businesses in a **single request**. > * **Output:** A structured response with the requested enrichment data for each business. > **Example Request (cURL)** > > ```shell Bash theme={null} > curl --request POST \ > --url https://api.explorium.ai/v2/businesses/technographics/job \ > --header 'accept: application/json' \ > --header 'api_key: your_api_key_here' \ > --header 'content-type: application/json' \ > --data '{ > "business_ids": [ > "8adce3ca1cef0c986b22310e369a0793", > "a34bacf839b923770b2c360eefa26748" > ] > }' > ``` > **Best Practices** > > * **Batch process multiple businesses** to improve API efficiency and reduce request overhead. > * **Use firmographic, technographic, and financial indicators** together for comprehensive business profiling. > * **Monitor funding and workforce trends** to track business growth and hiring activity. > * **Leverage competitive landscape data** to benchmark businesses against industry peers. **For additional enrichment options, explore related API endpoints below.** ## Body Params - Try Me Example ``` business_ids: ["8adce3ca1cef0c986b22310e369a0793", "a34bacf839b923770b2c360eefa26748"] ``` # Website changes Source: https://developers.explorium.ai/v2/businesses/enrichments/website_changes_enrich post /v2/businesses/website_changes/enrich ## Description The **Company's Website Content Changes Enrichment** endpoint enables users to **track changes in website content over time**, helping businesses monitor **updates, keyword appearances, and messaging shifts**. This is particularly useful for **competitive intelligence, compliance tracking, and brand monitoring**. The data includes: * **Detection of content changes** in key sections of a company's website. * **Keyword-based monitoring**, allowing users to track the appearance or disappearance of specific terms. * **Timestamped records of detected modifications** to ensure historical tracking. * **Logical AND search**: The system evaluates predefined conditions, ensuring that **all input keywords** must appear together in the retrieved snippets. This information is sourced from **real-time web crawls and indexed website snapshots**, providing a **comprehensive view of content evolution over time**. > [!NOTE] > > **v2:** this endpoint accepts either a single ID (a string) or a list of up to 50 IDs — the separate `/bulk_enrich` route is gone. See [v2 conventions](/v2/conventions). ## Enrich by company details instead of IDs `business_ids` is the primary way to call this endpoint. If you don't have Explorium IDs yet, you can send `businesses_to_match` instead: up to 50 companies, described with the same fields the [Match businesses](/v2/businesses/match_businesses) endpoint accepts (`name`, `domain`, `url`, `linkedin_url`). Each company is matched and enriched in the same call. Send **either** `business_ids` **or** `businesses_to_match`, never both (that returns a `422`). Any `parameters` the endpoint takes work the same either way. ```json Request body theme={null} { "businesses_to_match": [ { "name": "Explorium", "domain": "explorium.ai" }, { "name": "Unknown Co", "domain": "unknown-co.example" } ] } ``` ```json Response (data shortened) theme={null} { "response_context": { "correlation_id": "ebe38f2b99ad423e84f93d2be5e75b20", "request_status": "success", "time_taken_in_seconds": 5.38 }, "data": [ { "input": { "name": "Explorium", "domain": "explorium.ai", "url": null, "linkedin_url": null }, "business_id": "340c8040bd50cbab9c7df718bbe51cc9", "data": { "business_id": "340c8040bd50cbab9c7df718bbe51cc9", "...": "same fields as an ID-based request" }, "warnings": [] }, { "input": { "name": "Unknown Co", "domain": "unknown-co.example", "url": null, "linkedin_url": null }, "business_id": null, "data": null, "warnings": [] } ], "total_results": 1, "total_matches": 1 } ``` Each row echoes its `input` and returns the matched `business_id`. Companies that don't match come back with `business_id: null` and `data: null`, and aren't charged. `total_matches` counts the matched rows. > **How It Works** > > * **Input:** Provide a `business_id` obtained from the **Match Businesses** API, along with optional `keywords` separated by commas. The system will return only results where **all keywords appear together**. > * **Processing:** The system scans the target website and detects changes in text and keyword occurrences. > * **Output:** A structured response highlighting updated content, extracted snippets, and relevant URLs. > **Best Practices** > > * **Monitor competitors' websites** to track strategic updates and product announcements. > * **Analyze keyword trends** to detect shifts in branding and messaging. > * **Leverage historical data** to identify long-term content evolution and strategic priorities. > * **Ensure regulatory compliance** by tracking content modifications in sensitive sectors. > * **Use comma-separated keywords** to refine searches, ensuring that all specified terms appear together. > **Website Changes Output Signal** > > | SignalAPI | Name | Description | Data Type | > | :- | :- | :- | :- | > | url | Website page of detected change | URL from which the changes were derived | url | > | change\_description | Type of content change | Text describing the content modification on the website as compared to the previous version. | string | > | change\_implication | Description of content change | Text indicating the strategic significance of the content change on the website | string | > | date | Content change timestamp | Date the content change on the website occurred. | datetime | For additional enrichment options, explore related API endpoints below. ## Body Params - Try Me Example ``` business_ids: 8adce3ca1cef0c986b22310e369a0793 ``` # Website changes (async) Source: https://developers.explorium.ai/v2/businesses/enrichments/website_changes_job post /v2/businesses/website_changes/job > [!NOTE] > > **Asynchronous variant.** This submits a job through the [async job infrastructure](/v2/async-jobs) — poll [job status](/v2/jobs/get_job_status) for progress and results. Input comes from an uploaded dataset (`list_id`); limits are 10,000 rows and a 24-hour run time. > > For the full output signal reference, see [the synchronous endpoint](/v2/businesses/enrichments/website_changes_enrich). > **How It Works** > > * **Input:** Provide a `list_id` from the [dataset upload endpoint](/v2/jobs/upload_entity_id_dataset). Async endpoints do not accept inline IDs. > * **Processing:** The system detects content modifications across business websites. > * **Output:** A structured response highlighting detected changes, timestamps, and affected sections. > **Example Request (cURL)** > > ```shell Bash theme={null} > curl --request POST \ > --url https://api.explorium.ai/v2/businesses/website_changes/job \ > --header 'accept: application/json' \ > --header 'api_key: your_api_key_here' \ > --header 'content-type: application/json' \ > --data '{ > "business_ids": [ > "8adce3ca1cef0c986b22310e369a0793", > "a34bacf839b923770b2c360eefa26748" > ] > }' > ``` > **Best Practices** > > * **Monitor website updates** for competitive intelligence and regulatory compliance. > * **Track keyword shifts** to detect branding and messaging changes. > * **Leverage content history** to analyze long-term strategic positioning. **For additional enrichment options, explore related API endpoints below.** ## Body Params - Try Me Example ``` business_ids: ["8adce3ca1cef0c986b22310e369a0793", "a34bacf839b923770b2c360eefa26748"] ``` # Webstack Source: https://developers.explorium.ai/v2/businesses/enrichments/webstack_enrich post /v2/businesses/webstack/enrich ## **Description** This enrichment is powered by BuiltWith, a global leader in web technology profiling. ![E7f63097ee189ed30f14a3555728ce8109a018eb886fc4551e1d6c2b62200bcb Image Pn](https://mintcdn.com/explorium/s1uRl5fGOrKpLiGF/images/reference/e7f63097ee189ed30f14a3555728ce8109a018eb886fc4551e1d6c2b62200bcb-image.png?fit=max\&auto=format\&n=s1uRl5fGOrKpLiGF\&q=85\&s=0657ccde913cf0ecd071e69eeef84f6c) The **Webstack Enrichment** surfaces detailed insights about a company’s website infrastructure and technology usage. Powered by BuiltWith’s technology detection engine, this signal identifies the tools, platforms, and services a company uses on its public website, from eCommerce solutions and analytics to payment processors, security systems, and marketing tools. These web signals help assess a company’s digital maturity, commercial intent, online investment, and trustworthiness. The enrichment supports use cases such as market segmentation, risk assessment, prospect prioritization, and competitive intelligence. Each enrichment query returns a comprehensive profile of technologies in use, tech categories, spending estimates, Shopify integrations, traffic rankings, and more. > [!NOTE] > > **v2:** this endpoint accepts either a single ID (a string) or a list of up to 50 IDs — the separate `/bulk_enrich` route is gone. See [v2 conventions](/v2/conventions). ## Enrich by company details instead of IDs `business_ids` is the primary way to call this endpoint. If you don't have Explorium IDs yet, you can send `businesses_to_match` instead: up to 50 companies, described with the same fields the [Match businesses](/v2/businesses/match_businesses) endpoint accepts (`name`, `domain`, `url`, `linkedin_url`). Each company is matched and enriched in the same call. Send **either** `business_ids` **or** `businesses_to_match`, never both (that returns a `422`). Any `parameters` the endpoint takes work the same either way. ```json Request body theme={null} { "businesses_to_match": [ { "name": "Explorium", "domain": "explorium.ai" }, { "name": "Unknown Co", "domain": "unknown-co.example" } ] } ``` ```json Response (data shortened) theme={null} { "response_context": { "correlation_id": "ebe38f2b99ad423e84f93d2be5e75b20", "request_status": "success", "time_taken_in_seconds": 5.38 }, "data": [ { "input": { "name": "Explorium", "domain": "explorium.ai", "url": null, "linkedin_url": null }, "business_id": "340c8040bd50cbab9c7df718bbe51cc9", "data": { "business_id": "340c8040bd50cbab9c7df718bbe51cc9", "...": "same fields as an ID-based request" }, "warnings": [] }, { "input": { "name": "Unknown Co", "domain": "unknown-co.example", "url": null, "linkedin_url": null }, "business_id": null, "data": null, "warnings": [] } ], "total_results": 1, "total_matches": 1 } ``` Each row echoes its `input` and returns the matched `business_id`. Companies that don't match come back with `business_id: null` and `data: null`, and aren't charged. `total_matches` counts the matched rows. > **How It Works** > > * **Input:** Provide a `business_id` obtained from the **Match Businesses** API. > * **Processing:** The system extracts the company’s domain, scans the website, and matches detected technologies via BuiltWith’s detection logic. > * **Output:** A set of signals describing the website’s stack, activity, and structure. > **Example Request (cURL)** > > ```bash Bash theme={null} > { > "request_context": {}, > "business_id": "a34bacf839b923770b2c360eefa26748" > } > ``` > **Example Response** > > ```json JSON expandable theme={null} > { > "response_context": { > "correlation_id": "6e666f60180d42e994cd7f5db5ed0c86", > "request_status": "success", > "time_taken_in_seconds": 1.761 > }, > "data": { > "business_id": "a34bacf839b923770b2c360eefa26748", > "affiliate_links": true, > "company_vertical": null, > "db_indexed": true, > "earliest_record": "2023-07-31T07:00:00", > "ecommerce": true, > "established": false, > "latest_update": "2023-07-31T07:00:00", > "live_techs": true, > "money_spent_on_website_technologies": 11596, > "number_of_pages_on_sitemap": 5264, > "number_of_premium_technologies": 256, > "number_of_social_networks": 0, > "parked": false, > "payment_options": true, > "payment_technologies_in_use": "American_Express, Euro, Pound_Sterling, Visa", > "premium_techs": 17, > "product_count": 0, > "q_rank": 0, > "shopify_apps_in_use": null, > "spend": 11596, > "status": "ok", > "categories_to_technologies_tree": { > "ssl": { > "Other": [ > "Microsoft SSL", > "Azure SSL", > "HSTS IncludeSubdomains PreLoad", > "HSTS", > "SSL by Default" > ], > "Root Authority": [ > "DigiCert SSL" > ] > }, > "link": { > "Other": [ > "Events Page", > "LinkedIn", > "Accessibility Statement", > "Twitter", > "GitHub Pages", > "Impressum", > "Sustainability", > "Careers", > "Code of Conduct", > "Plans and Pricing", > "Facebook", > "Computershare", > "Investor Relations", > "GitHub", > "Meetup Pro", > "Instagram", > "Human Rights Policy", > "TikTok" > ] > }, > "shop": { > "Non Platform": [ > "Cart Functionality" > ] > }, > "analytics": { > "Feedback Forms and Surveys": [ > "Usabilla" > ], > "Site Optimization": [ > "ClickTale" > ], > "Social Management": [ > "Facebook Domain Insights" > ], > "Conversion Tracking": [ > "Twitter Conversion Tracking" > ], > "Visitor Count Tracking": [ > "Google Analytics" > ], > "Marketing Automation": [ > "Optify", > "Marketo", > "Omniture SiteCatalyst", > "WebTrends" > ], > "Conversion Optimization": [ > "Twitter Conversion Tracking", > "LinkedIn Insights", > "Facebook Conversion Tracking", > "Bing Universal Event Tracking" > ], > "Audience Measurement": [ > "FullStory", > "Google Analytics", > "WebTrends", > "Microsoft Clarity" > ], > "Other": [ > "Google Universal Analytics", > "Twitter Website Universal Tag", > "Facebook Pixel", > "Tealium UTAG", > "Global Site Tag" > ], > "Retargeting / Remarketing": [ > "Bing Universal Event Tracking" > ], > "Application Performance": [ > "Google Analytics", > "Microsoft Azure Monitor", > "New Relic", > "Azure Monitor", > "Microsoft Application Insights" > ] > }, > "cdn": { > "Other": [ > "CDN JS", > "Amazon S3", > "Azure Edge", > "Cloudflare JS", > "jsDelivr", > "Microsoft Azure Blob Storage", > "Microsoft Azure CDN", > "Microsoft Ajax Content Delivery Network", > "jQuery CDN", > "Cloudflare", > "UNPKG", > "WordPress Grid", > "Akamai" > ] > }, > "cdns": { > "Edge Delivery Network": [ > "Microsoft Azure Verified CDN", > "Akamai Edge" > ], > "Other": [ > "Akamai Global Request Number", > "Akamai EdgeConnect", > "Cloudflare CDN" > ] > }, > "payment": { > "Payment Acceptance": [ > "Visa", > "American Express" > ], > "Currency": [ > "Pound Sterling", > "South Korean Won", > "Japanese Yen", > "Euro" > ] > }, > "ads": { > "Affiliate Programs": [ > "Impact" > ], > "Ad Network": [ > "Twitter Ads" > ], > "Retargeting / Remarketing": [ > "Facebook Custom Audiences", > "Twitter Ads" > ], > "Other": [ > "DoubleClick.Net", > "LinkedIn Ads" > ], > "Fraud Prevention": [ > "Impact" > ] > }, > "widgets": { > "Translation": [ > "Weglot" > ], > "Site Search": [ > "Sitelinks Search Box", > "Coveo" > ], > "Privacy Compliance": [ > "Convercent", > "Global Privacy Control", > "US Privacy User Signal Mechanism" > ], > "Social Sharing": [ > "Reddit" > ], > "Other": [ > "COVID-19", > "Gravatar Profiles", > "WordPress Multisite", > "Browse Happy", > "Microsoft Power BI", > "Facebook Sharer", > "Hubspot Developer Verification", > "Twitter Tweet Button", > "Wordpress Plugins" > ], > "Live Chat": [ > "LivePerson" > ], > "Tag Management": [ > "Google Tag Manager", > "Tealium" > ], > "Customer Data Platform": [ > "Tealium" > ], > "WordPress Plugins": [ > "WP Featherlight", > "Jetpack", > "Metronet Profile Picture", > "Newsletter for Wordpress", > "Yoast SEO Premium", > "Stream", > "Redis Cache", > "ThemeFusion", > "Page Links To", > "Column Shortcodes", > "Yoast WordPress SEO Plugin", > "GTM4WP", > "Yoast Plugins", > "ElasticPress", > "Taxonomy Images" > ], > "Feedback Forms and Surveys": [ > "DocuSign" > ] > }, > "mx": { > "Other": [ > "Microsoft Azure DNS", > "SPF" > ], > "Business Email Hosting": [ > "Microsoft Exchange Online" > ] > }, > "cms": { > "Blog": [ > "WordPress" > ], > "Open Source": [ > "WordPress", > "October CMS" > ], > "Hosted Solution": [ > "Adobe Scene7" > ], > "Enterprise": [ > "Adobe Experience Manager", > "Kentico Xperience", > "Sitecore CMS", > "Adobe Scene7" > ], > "Ticketing System": [ > "Atlassian Cloud" > ], > "Social Management": [ > "Lithium Technologies" > ], > "Other": [ > "WordPress 6.2" > ] > }, > "Server": { > "Other": [ > "IPv6", > "GitHub Hosting" > ] > }, > "media": { > "Social Video Platform": [ > "YouTube" > ], > "Online Video Platform": [ > "YouTube" > ], > "Live Stream / Webcast": [ > "YouTube" > ], > "Other": [ > "YouTube Privacy Enchanced", > "TikTok Embed" > ] > }, > "mobile": { > "Other": [ > "Viewport Meta", > "Mobile Optimized", > "IPhone / Mobile Compatible", > "Apple Mobile Web App Capable", > "Apple Mobile Web Clips Icon" > ] > }, > "CDN": { > "Other": [ > "Content Delivery Network" > ] > }, > "javascript": { > "UI": [ > "jQuery UI", > "Hover Intent" > ], > "Framework": [ > "Service Worker", > "JSON 3" > ], > "Animation": [ > "Slick JS" > ], > "jQuery Plugin": [ > "jQuery Validate", > "jQuery Cookie", > "jQuery Tools", > "Infinite Scroll", > "jQuery UI" > ], > "Compatibility": [ > "Modernizr", > "ECMAScript 5 Shim" > ], > "Other": [ > "Fancybox", > "Hammer JS", > "Underscore.js", > "jQuery Autocomplete", > "Facebook for Websites", > "jQuery 1.3.2", > "jQuery 3.6.0", > "Modernizr 2.6", > "Yett", > "PrettyPrint", > "Popper.js", > "jQuery 1.9.0", > "Facebook SDK", > "jQuery 3.4.0", > "jQuery 3.3.1", > "jQuery BBQ", > "jQuery 1.11.0", > "jQuery BlockUI", > "Angular JS", > "jQuery 3.4.1", > "jQuery 2.2.4", > "jQuery 3.5.1", > "jQuery Waypoints" > ], > "JavaScript Library": [ > "jQuery", > "Moment JS", > "Lightning.js" > ] > }, > "Web Server": { > "Other": [ > "Apache", > "Kestrel", > "IIS", > "nginx", > "IIS 10" > ] > }, > "hosting": { > "Cloud PaaS": [ > "Microsoft Azure" > ], > "US hosting": [ > "Akamai Hosted", > "Microsoft" > ], > "Other": [ > "Microsoft Azure Front Door", > "Microsoft Azure US West Region" > ], > "Cloud Hosting": [ > "Microsoft Azure" > ], > "WordPress Hosting": [ > "WP Engine" > ] > }, > "copyright": { > "Other": [ > "Copyright Year 2015" > ] > }, > "language": { > "Other": [ > "Colombian Spanish", > "Italian HREF LANG", > "Australian English HREF LANG", > "Korean HREF LANG", > "Japanese HREF LANG", > "Polish HREF LANG", > "Turkish", > "New Zealand English HREF LANG", > "Turkish HREF LANG", > "Taiwan Chinese HREF LANG", > "Spanish HREF LANG", > "Venezuelan Spanish HREF LANG", > "English HREF LANG", > "Czech HREF LANG", > "Vietnamese HREF LANG", > "Thai HREF LANG", > "Chinese", > "French HREF LANG", > "Algerian Arabic HREF LANG", > "Japanese", > "Arabic HREF LANG", > "Chile Spanish HREF LANG", > "Argentinian Spanish HREF LANG", > "Greek HREF LANG", > "Irish English HREF LANG", > "Indonesian HREF LANG", > "Swedish HREF LANG", > "French", > "Catalan", > "Bengali HREF LANG", > "Danish HREF LANG", > "Colombian Spanish HREF LANG", > "Austrian German", > "Norwegian Bokmål", > "Swiss German HREF LANG", > "Dutch HREF LANG", > "Mexican Spanish HREF LANG", > "Canadian French HREF LANG", > "Portuguese HREF LANG", > "Finnish HREF LANG", > "Malaysian HREF LANG", > "Russian HREF LANG", > "Spanish", > "German HREF LANG", > "Belgium French", > "German", > "Peruvian Spanish HREF LANG", > "Austrian German HREF LANG", > "Brazilian Portuguese HREF LANG", > "Hong Kong Chinese HREF LANG", > "Chinese HREF LANG" > ] > }, > "framework": { > "Other": [ > "Silverlight", > "Placehold IT", > "Express", > "ASP.NET MVC", > "ASP.NET Ajax", > "Facebook Domain Verification", > "Bug Bounty", > "Next.js", > "ASP.NET Core", > "ASP.NET", > "ASP.NET 4.0" > ], > "Schema": [ > "Organization Schema", > "Person Schema" > ], > "WordPress Theme": [ > "Avada" > ] > }, > "Web Master": { > "Other": [ > "MSN/Bing Webmaster", > "Google Webmaster", > "Yandex Verification" > ] > }, > "feeds": { > "Other": [ > "Really Simple Discovery", > "Pingback Support", > "RSS", > "Live Writer Support" > ] > } > }, > "technologies_categories": "CDN, Server, Web_Master, Web_Server, ads, analytics, cdn, cdns, cms, copyright, feeds, framework, hosting, javascript, language, link, media, mobile, mx, payment, shop, ssl, widgets", > "technologies_sub_categories": "Ad_Network, Affiliate_Programs, Animation, Application_Performance, Audience_Measurement, Blog, Business_Email_Hosting, Cloud_Hosting, Cloud_PaaS, Compatibility, Conversion_Optimization, Conversion_Tracking, Currency, Customer_Data_Platform, Edge_Delivery_Network, Enterprise, Feedback_Forms_and_Surveys, Framework, Fraud_Prevention, Hosted_Solution, JavaScript_Library, Live_Chat, Live_Stream_/_Webcast, Marketing_Automation, Non_Platform, Online_Video_Platform, Open_Source, Payment_Acceptance, Privacy_Compliance, Retargeting_/_Remarketing, Root_Authority, Schema, Site_Optimization, Site_Search, Social_Management, Social_Sharing, Social_Video_Platform, Tag_Management, Ticketing_System, Translation, UI, US_hosting, Visitor_Count_Tracking, WordPress_Hosting, WordPress_Plugins, WordPress_Theme, jQuery_Plugin", > "technologies_used_by_company_website": "ASP.NET, ASP.NET_4.0, ASP.NET_Ajax, ASP.NET_Core, ASP.NET_MVC, Accessibility_Statement, Adobe_Experience_Manager, Adobe_Scene7, Akamai, Akamai_Edge, Akamai_EdgeConnect, Akamai_Global_Request_Number, Akamai_Hosted, Algerian_Arabic_HREF_LANG, Amazon_S3, American_Express, Angular_JS, Apache, Apple_Mobile_Web_App_Capable, Apple_Mobile_Web_Clips_Icon, Arabic_HREF_LANG, Argentinian_Spanish_HREF_LANG, Atlassian_Cloud, Australian_English_HREF_LANG, Austrian_German, Austrian_German_HREF_LANG, Avada, Azure_Edge, Azure_Monitor, Azure_SSL, Belgium_French, Bengali_HREF_LANG, Bing_Universal_Event_Tracking, Brazilian_Portuguese_HREF_LANG, Browse_Happy, Bug_Bounty, CDN_JS, COVID-19, Canadian_French_HREF_LANG, Careers, Cart_Functionality, Catalan, Chile_Spanish_HREF_LANG, Chinese, Chinese_HREF_LANG, ClickTale, Cloudflare, Cloudflare_CDN, Cloudflare_JS, Code_of_Conduct, Colombian_Spanish, Colombian_Spanish_HREF_LANG, Column_Shortcodes, Computershare, Content_Delivery_Network, Convercent, Copyright_Year_2015, Coveo, Czech_HREF_LANG, Danish_HREF_LANG, DigiCert_SSL, DocuSign, DoubleClick.Net, Dutch_HREF_LANG, ECMAScript_5_Shim, ElasticPress, English_HREF_LANG, Euro, Events_Page, Express, Facebook, Facebook_Conversion_Tracking, Facebook_Custom_Audiences, Facebook_Domain_Insights, Facebook_Domain_Verification, Facebook_Pixel, Facebook_SDK, Facebook_Sharer, Facebook_for_Websites, Fancybox, Finnish_HREF_LANG, French, French_HREF_LANG, FullStory, GTM4WP, German, German_HREF_LANG, GitHub, GitHub_Hosting, GitHub_Pages, Global_Privacy_Control, Global_Site_Tag, Google_Analytics, Google_Tag_Manager, Google_Universal_Analytics, Google_Webmaster, Gravatar_Profiles, Greek_HREF_LANG, HSTS, HSTS_IncludeSubdomains_PreLoad, Hammer_JS, Hong_Kong_Chinese_HREF_LANG, Hover_Intent, Hubspot_Developer_Verification, Human_Rights_Policy, IIS, IIS_10, IPhone_/_Mobile_Compatible, IPv6, Impact, Impressum, Indonesian_HREF_LANG, Infinite_Scroll, Instagram, Investor_Relations, Irish_English_HREF_LANG, Italian_HREF_LANG, JSON_3, Japanese, Japanese_HREF_LANG, Japanese_Yen, Jetpack, Kentico_Xperience, Kestrel, Korean_HREF_LANG, Lightning.js, LinkedIn, LinkedIn_Ads, LinkedIn_Insights, Lithium_Technologies, LivePerson, Live_Writer_Support, MSN/Bing_Webmaster, Malaysian_HREF_LANG, Marketo, Meetup_Pro, Metronet_Profile_Picture, Mexican_Spanish_HREF_LANG, Microsoft, Microsoft_Ajax_Content_Delivery_Network, Microsoft_Application_Insights, Microsoft_Azure, Microsoft_Azure_Blob_Storage, Microsoft_Azure_CDN, Microsoft_Azure_DNS, Microsoft_Azure_Front_Door, Microsoft_Azure_Monitor, Microsoft_Azure_US_West_Region, Microsoft_Azure_Verified_CDN, Microsoft_Clarity, Microsoft_Exchange_Online, Microsoft_Power_BI, Microsoft_SSL, Mobile_Optimized, Modernizr, Modernizr_2.6, Moment_JS, New_Relic, New_Zealand_English_HREF_LANG, Newsletter_for_Wordpress, Next.js, Norwegian_Bokmål, October_CMS, Omniture_SiteCatalyst, Optify, Organization_Schema, Page_Links_To, Person_Schema, Peruvian_Spanish_HREF_LANG, Pingback_Support, Placehold_IT, Plans_and_Pricing, Polish_HREF_LANG, Popper.js, Portuguese_HREF_LANG, Pound_Sterling, PrettyPrint, RSS, Really_Simple_Discovery, Reddit, Redis_Cache, Russian_HREF_LANG, SPF, SSL_by_Default, Service_Worker, Silverlight, Sitecore_CMS, Sitelinks_Search_Box, Slick_JS, South_Korean_Won, Spanish, Spanish_HREF_LANG, Stream, Sustainability, Swedish_HREF_LANG, Swiss_German_HREF_LANG, Taiwan_Chinese_HREF_LANG, Taxonomy_Images, Tealium, Tealium_UTAG, Thai_HREF_LANG, ThemeFusion, TikTok, TikTok_Embed, Turkish, Turkish_HREF_LANG, Twitter, Twitter_Ads, Twitter_Conversion_Tracking, Twitter_Tweet_Button, Twitter_Website_Universal_Tag, UNPKG, US_Privacy_User_Signal_Mechanism, Underscore.js, Usabilla, Venezuelan_Spanish_HREF_LANG, Vietnamese_HREF_LANG, Viewport_Meta, Visa, WP_Engine, WP_Featherlight, WebTrends, Weglot, WordPress, WordPress_6.2, WordPress_Grid, WordPress_Multisite, Wordpress_Plugins, Yandex_Verification, Yett, Yoast_Plugins, Yoast_SEO_Premium, Yoast_WordPress_SEO_Plugin, YouTube, YouTube_Privacy_Enchanced, jQuery, jQuery_1.11.0, jQuery_1.3.2, jQuery_1.9.0, jQuery_2.2.4, jQuery_3.3.1, jQuery_3.4.0, jQuery_3.4.1, jQuery_3.5.1, jQuery_3.6.0, jQuery_Autocomplete, jQuery_BBQ, jQuery_BlockUI, jQuery_CDN, jQuery_Cookie, jQuery_Tools, jQuery_UI, jQuery_Validate, jQuery_Waypoints, jsDelivr, nginx", > "umbrella": 2 > } > } > ``` > **Best Practices** > > * **Use with matched companies only.** Ensure the `business_id` corresponds to a verified website. > * **Combine with firmographic signals** (e.g. revenue, size, country) for rich segmentation. > * **Use premium spend estimates** to prioritize leads with higher digital investment. > * **Monitor tech stack changes** over time to detect shifts in digital strategy or maturity. > **Webstack Output Signals** > > | SignalAPI | Name | Description | Data Type | > | :- | :- | :- | :- | > | product\_count | Website's SKU product count | SKU Product Count is the number of unique products that an eCommerce website lists and sells. | NUMERIC | > | q\_rank | Website's Transco page traffic rank | Transco Page Traffic Rank between 1 and 1,000,000. The Tranco score combines the Alexa Internet Top 1 Million, Cisco Umbrella Popularity List, Majestic Million, Quantcast Top Sites creating an accurate representation of how popular websites are. | NUMERIC | > | umbrella | Website's Umbrella traffic rank | Umbrella Global Router Traffic Rank between 1 and 1,000,000. Umbrella is based on net sum DNS queries across the globe. | NUMERIC | > | number\_of\_pages\_on\_sitemap | Number of pages on website's sitemap | Number of pages listed on the website's indexable sitemap. A sitemap is a file providing information about the pages, videos, other files, and the relationships between them. | NUMERIC | > | shopify\_apps\_in\_use | List of Shopify apps used by website | List of Shopify apps detected on the website. Shopify apps are used to answer a variety of business needs. | DISPLAY | > | latest\_update | Most recent website index date | Website's most recent date of index by the webstack collector, formatted YYYY-MM-DDTHH:mm:ss.SSSZ. | DATETIME | > | live\_techs | Website has live technologies | True if any live technologies that are currently active were detected on the website. | BOOLEAN | > | db\_indexed | Is DB indexed | True if the website is recorded in the databse. If false, the website may be suspect. | BOOLEAN | > | affiliate\_links | Website has affiliate links | True if any affiliate program advertising systems were detected on the website. | BOOLEAN | > | established | Website is established | True if the website was established for at least 1 year prior to the webstack being indexed. | BOOLEAN | > | technologies\_sub\_categories | Technology sub-categories detected on website | Mapping of each technology detected on the website, to its assigned sub-category. | TEXT | > | parked | Website has parked technologies | True if the site is using any parked domains, parked domain technology providers, or mentions parked domains. Parked domains are domain names that are not connected to a service provider or website. | BOOLEAN | > | status | Website risk status | Website's trustworthiness status, based on factors such as the estimated amount of money spent on various technologies for the website, how long the website has existed, domain’s relationship with other websites, and other undisclosed factors. \| Suspect=according to the listed factors the domain has been determined as untrustworthy, OK=overall the domain has been determined as trustworthy, Can not determine=the trustworthiness was not determined, usually due to the domain being new | CATEGORY | > | number\_of\_social\_networks | Domain's number of social networks | Number of social network profiles listed on the website that are associated with the company. | NUMERIC | > | twitter\_link | Twitter profile | Link to the Twitter profile associated with the company. The link is listed on the company's registered domain. | URL | > | earliest\_record | Earliest website index date | Website's earliest date of index by the webstack collector, formatted YYYY-MM-DDTHH:mm:ss.SSSZ. | DATETIME | > | technologies\_categories | Technology categories detected on website | List of the technology categories detected on the website. | TEXT | > | payment\_technologies\_in\_use | Payment options available on website | List of the detected currencies, technologies, and digital wallets that can be used for online payment on the website. | DISPLAY | > | contact\_phone\_number | Domain's contact phone number | Phone number listed under the 'contact us' section of the company's website. | TEXT | > | premium\_techs | Number of premium technologies detected on website | Number of premium technologies detected on the website. Premium technologies are the technologies or tools in the webstack that cost money. | NUMERIC | > | number\_of\_premium\_technologies | Number of technologies detected on website | Number of technologies detected on the company's website. Technologies are tools used to build the website. | NUMERIC | > | money\_spent\_on\_website\_technologies | Estimated average monthly spending on webstack | Estimated monthly financial investment in the technologies used on the company's website, displayed in USD. Calculation: sum of the average price point for each technology used on the website. | NUMERIC | > | ecommerce | Website has eCommerce technology | True if an eCommerce technology was detected on the website. Inluding links to a shopping cart or other 'buy' options. | BOOLEAN | > | spend | Premium monthly spending | Estimation of average monthly USD spent across the entire domain on all aspects. | NUMERIC | > | technologies\_used\_by\_company\_website | List of technologies detected on website | List of the technologies detected on the website. | TEXT | > | payment\_options | Website has online payment option | True if the website provides online payment options on the website, or mentions a payment provider by name. | BOOLEAN | > | categories\_to\_technologies\_tree | Technologies detected on website mapped to categories | Mapping of each technology detected on the website to its assigned category. | JSON | > | company\_vertical | Company vertical | The name of the industry associated with the company and mentioned on the website. | CATEGORY | *For additional web-based enrichment options, explore related API endpoints.* # Webstack (async) Source: https://developers.explorium.ai/v2/businesses/enrichments/webstack_job post /v2/businesses/webstack/job ## **Description** This enrichment is powered by BuiltWith, a global leader in web technology profiling. ![Download(1) Pn](https://mintcdn.com/explorium/ZHii_FJbF62xxWTM/images/download\(1\).png?fit=max\&auto=format\&n=ZHii_FJbF62xxWTM\&q=85\&s=e5da2e5cf31acf38d3cd191a52012649) The **Webstack Enrichment** surfaces detailed insights about a company’s website infrastructure and technology usage. Powered by BuiltWith’s technology detection engine, this signal identifies the tools, platforms, and services a company uses on its public website, from eCommerce solutions and analytics to payment processors, security systems, and marketing tools. These web signals help assess a company’s digital maturity, commercial intent, online investment, and trustworthiness. The enrichment supports use cases such as market segmentation, risk assessment, prospect prioritization, and competitive intelligence. Each enrichment query returns a comprehensive profile of technologies in use, tech categories, spending estimates, Shopify integrations, traffic rankings, and more. > [!NOTE] > > **Asynchronous variant.** This submits a job through the [async job infrastructure](/v2/async-jobs) — poll [job status](/v2/jobs/get_job_status) for progress and results. Input comes from an uploaded dataset (`list_id`); limits are 10,000 rows and a 24-hour run time. > > For the full output signal reference, see [the synchronous endpoint](/v2/businesses/enrichments/webstack_enrich). > **How It Works** > > * **Input:** Provide a `business_id` obtained from the **Match Businesses** API. > * **Processing:** The system extracts the company’s domain, scans the website, and matches detected technologies via BuiltWith’s detection logic. > * **Output:** A set of signals describing the website’s stack, activity, and structure. > **Example Request (cURL)** > > ```bash Bash theme={null} > { > "request_context": {}, > "business_ids": ["a34bacf839b923770b2c360eefa26748"] > } > ``` > **Example Response** > > ```json JSON expandable theme={null} > { > "response_context": { > "correlation_id": "e2148870423e4ed0a2b10ef3dad5ca13", > "request_status": "success", > "time_taken_in_seconds": 0.543 > }, > "data": [ > { > "business_id": "a34bacf839b923770b2c360eefa26748", > "data": { > "business_id": "a34bacf839b923770b2c360eefa26748", > "affiliate_links": true, > "company_vertical": null, > "db_indexed": true, > "earliest_record": "2023-07-31T07:00:00", > "ecommerce": true, > "established": false, > "latest_update": null, > "live_techs": true, > "money_spent_on_website_technologies": 11596, > "number_of_pages_on_sitemap": 5264, > "number_of_premium_technologies": 256, > "number_of_social_networks": 0, > "parked": false, > "payment_options": true, > "payment_technologies_in_use": "American_Express, Euro, Pound_Sterling, Visa", > "premium_techs": 17, > "product_count": 0, > "q_rank": 0, > "shopify_apps_in_use": null, > "spend": 11596, > "status": "ok", > "categories_to_technologies_tree": { > "ssl": { > "Other": [ > "Microsoft SSL", > "Azure SSL", > "HSTS IncludeSubdomains PreLoad", > "HSTS", > "SSL by Default" > ], > "Root Authority": [ > "DigiCert SSL" > ] > }, > "link": { > "Other": [ > "Events Page", > "LinkedIn", > "Accessibility Statement", > "Twitter", > "GitHub Pages", > "Impressum", > "Sustainability", > "Careers", > "Code of Conduct", > "Plans and Pricing", > "Facebook", > "Computershare", > "Investor Relations", > "GitHub", > "Meetup Pro", > "Instagram", > "Human Rights Policy", > "TikTok" > ] > }, > "shop": { > "Non Platform": [ > "Cart Functionality" > ] > }, > "analytics": { > "Feedback Forms and Surveys": [ > "Usabilla" > ], > "Site Optimization": [ > "ClickTale" > ], > "Social Management": [ > "Facebook Domain Insights" > ], > "Conversion Tracking": [ > "Twitter Conversion Tracking" > ], > "Visitor Count Tracking": [ > "Google Analytics" > ], > "Marketing Automation": [ > "Optify", > "Marketo", > "Omniture SiteCatalyst", > "WebTrends" > ], > "Conversion Optimization": [ > "Twitter Conversion Tracking", > "LinkedIn Insights", > "Facebook Conversion Tracking", > "Bing Universal Event Tracking" > ], > "Audience Measurement": [ > "FullStory", > "Google Analytics", > "WebTrends", > "Microsoft Clarity" > ], > "Other": [ > "Google Universal Analytics", > "Twitter Website Universal Tag", > "Facebook Pixel", > "Tealium UTAG", > "Global Site Tag" > ], > "Retargeting / Remarketing": [ > "Bing Universal Event Tracking" > ], > "Application Performance": [ > "Google Analytics", > "Microsoft Azure Monitor", > "New Relic", > "Azure Monitor", > "Microsoft Application Insights" > ] > }, > "cdn": { > "Other": [ > "CDN JS", > "Amazon S3", > "Azure Edge", > "Cloudflare JS", > "jsDelivr", > "Microsoft Azure Blob Storage", > "Microsoft Azure CDN", > "Microsoft Ajax Content Delivery Network", > "jQuery CDN", > "Cloudflare", > "UNPKG", > "WordPress Grid", > "Akamai" > ] > }, > "cdns": { > "Edge Delivery Network": [ > "Microsoft Azure Verified CDN", > "Akamai Edge" > ], > "Other": [ > "Akamai Global Request Number", > "Akamai EdgeConnect", > "Cloudflare CDN" > ] > }, > "payment": { > "Payment Acceptance": [ > "Visa", > "American Express" > ], > "Currency": [ > "Pound Sterling", > "South Korean Won", > "Japanese Yen", > "Euro" > ] > }, > "ads": { > "Affiliate Programs": [ > "Impact" > ], > "Ad Network": [ > "Twitter Ads" > ], > "Retargeting / Remarketing": [ > "Facebook Custom Audiences", > "Twitter Ads" > ], > "Other": [ > "DoubleClick.Net", > "LinkedIn Ads" > ], > "Fraud Prevention": [ > "Impact" > ] > }, > "widgets": { > "Translation": [ > "Weglot" > ], > "Site Search": [ > "Sitelinks Search Box", > "Coveo" > ], > "Privacy Compliance": [ > "Convercent", > "Global Privacy Control", > "US Privacy User Signal Mechanism" > ], > "Social Sharing": [ > "Reddit" > ], > "Other": [ > "COVID-19", > "Gravatar Profiles", > "WordPress Multisite", > "Browse Happy", > "Microsoft Power BI", > "Facebook Sharer", > "Hubspot Developer Verification", > "Twitter Tweet Button", > "Wordpress Plugins" > ], > "Live Chat": [ > "LivePerson" > ], > "Tag Management": [ > "Google Tag Manager", > "Tealium" > ], > "Customer Data Platform": [ > "Tealium" > ], > "WordPress Plugins": [ > "WP Featherlight", > "Jetpack", > "Metronet Profile Picture", > "Newsletter for Wordpress", > "Yoast SEO Premium", > "Stream", > "Redis Cache", > "ThemeFusion", > "Page Links To", > "Column Shortcodes", > "Yoast WordPress SEO Plugin", > "GTM4WP", > "Yoast Plugins", > "ElasticPress", > "Taxonomy Images" > ], > "Feedback Forms and Surveys": [ > "DocuSign" > ] > }, > "mx": { > "Other": [ > "Microsoft Azure DNS", > "SPF" > ], > "Business Email Hosting": [ > "Microsoft Exchange Online" > ] > }, > "cms": { > "Blog": [ > "WordPress" > ], > "Open Source": [ > "WordPress", > "October CMS" > ], > "Hosted Solution": [ > "Adobe Scene7" > ], > "Enterprise": [ > "Adobe Experience Manager", > "Kentico Xperience", > "Sitecore CMS", > "Adobe Scene7" > ], > "Ticketing System": [ > "Atlassian Cloud" > ], > "Social Management": [ > "Lithium Technologies" > ], > "Other": [ > "WordPress 6.2" > ] > }, > "Server": { > "Other": [ > "IPv6", > "GitHub Hosting" > ] > }, > "media": { > "Social Video Platform": [ > "YouTube" > ], > "Online Video Platform": [ > "YouTube" > ], > "Live Stream / Webcast": [ > "YouTube" > ], > "Other": [ > "YouTube Privacy Enchanced", > "TikTok Embed" > ] > }, > "mobile": { > "Other": [ > "Viewport Meta", > "Mobile Optimized", > "IPhone / Mobile Compatible", > "Apple Mobile Web App Capable", > "Apple Mobile Web Clips Icon" > ] > }, > "CDN": { > "Other": [ > "Content Delivery Network" > ] > }, > "javascript": { > "UI": [ > "jQuery UI", > "Hover Intent" > ], > "Framework": [ > "Service Worker", > "JSON 3" > ], > "Animation": [ > "Slick JS" > ], > "jQuery Plugin": [ > "jQuery Validate", > "jQuery Cookie", > "jQuery Tools", > "Infinite Scroll", > "jQuery UI" > ], > "Compatibility": [ > "Modernizr", > "ECMAScript 5 Shim" > ], > "Other": [ > "Fancybox", > "Hammer JS", > "Underscore.js", > "jQuery Autocomplete", > "Facebook for Websites", > "jQuery 1.3.2", > "jQuery 3.6.0", > "Modernizr 2.6", > "Yett", > "PrettyPrint", > "Popper.js", > "jQuery 1.9.0", > "Facebook SDK", > "jQuery 3.4.0", > "jQuery 3.3.1", > "jQuery BBQ", > "jQuery 1.11.0", > "jQuery BlockUI", > "Angular JS", > "jQuery 3.4.1", > "jQuery 2.2.4", > "jQuery 3.5.1", > "jQuery Waypoints" > ], > "JavaScript Library": [ > "jQuery", > "Moment JS", > "Lightning.js" > ] > }, > "Web Server": { > "Other": [ > "Apache", > "Kestrel", > "IIS", > "nginx", > "IIS 10" > ] > }, > "hosting": { > "Cloud PaaS": [ > "Microsoft Azure" > ], > "US hosting": [ > "Akamai Hosted", > "Microsoft" > ], > "Other": [ > "Microsoft Azure Front Door", > "Microsoft Azure US West Region" > ], > "Cloud Hosting": [ > "Microsoft Azure" > ], > "WordPress Hosting": [ > "WP Engine" > ] > }, > "copyright": { > "Other": [ > "Copyright Year 2015" > ] > }, > "language": { > "Other": [ > "Colombian Spanish", > "Italian HREF LANG", > "Australian English HREF LANG", > "Korean HREF LANG", > "Japanese HREF LANG", > "Polish HREF LANG", > "Turkish", > "New Zealand English HREF LANG", > "Turkish HREF LANG", > "Taiwan Chinese HREF LANG", > "Spanish HREF LANG", > "Venezuelan Spanish HREF LANG", > "English HREF LANG", > "Czech HREF LANG", > "Vietnamese HREF LANG", > "Thai HREF LANG", > "Chinese", > "French HREF LANG", > "Algerian Arabic HREF LANG", > "Japanese", > "Arabic HREF LANG", > "Chile Spanish HREF LANG", > "Argentinian Spanish HREF LANG", > "Greek HREF LANG", > "Irish English HREF LANG", > "Indonesian HREF LANG", > "Swedish HREF LANG", > "French", > "Catalan", > "Bengali HREF LANG", > "Danish HREF LANG", > "Colombian Spanish HREF LANG", > "Austrian German", > "Norwegian Bokmål", > "Swiss German HREF LANG", > "Dutch HREF LANG", > "Mexican Spanish HREF LANG", > "Canadian French HREF LANG", > "Portuguese HREF LANG", > "Finnish HREF LANG", > "Malaysian HREF LANG", > "Russian HREF LANG", > "Spanish", > "German HREF LANG", > "Belgium French", > "German", > "Peruvian Spanish HREF LANG", > "Austrian German HREF LANG", > "Brazilian Portuguese HREF LANG", > "Hong Kong Chinese HREF LANG", > "Chinese HREF LANG" > ] > }, > "framework": { > "Other": [ > "Silverlight", > "Placehold IT", > "Express", > "ASP.NET MVC", > "ASP.NET Ajax", > "Facebook Domain Verification", > "Bug Bounty", > "Next.js", > "ASP.NET Core", > "ASP.NET", > "ASP.NET 4.0" > ], > "Schema": [ > "Organization Schema", > "Person Schema" > ], > "WordPress Theme": [ > "Avada" > ] > }, > "Web Master": { > "Other": [ > "MSN/Bing Webmaster", > "Google Webmaster", > "Yandex Verification" > ] > }, > "feeds": { > "Other": [ > "Really Simple Discovery", > "Pingback Support", > "RSS", > "Live Writer Support" > ] > } > }, > "technologies_categories": "CDN, Server, Web_Master, Web_Server, ads, analytics, cdn, cdns, cms, copyright, feeds, framework, hosting, javascript, language, link, media, mobile, mx, payment, shop, ssl, widgets", > "technologies_sub_categories": "Ad_Network, Affiliate_Programs, Animation, Application_Performance, Audience_Measurement, Blog, Business_Email_Hosting, Cloud_Hosting, Cloud_PaaS, Compatibility, Conversion_Optimization, Conversion_Tracking, Currency, Customer_Data_Platform, Edge_Delivery_Network, Enterprise, Feedback_Forms_and_Surveys, Framework, Fraud_Prevention, Hosted_Solution, JavaScript_Library, Live_Chat, Live_Stream_/_Webcast, Marketing_Automation, Non_Platform, Online_Video_Platform, Open_Source, Payment_Acceptance, Privacy_Compliance, Retargeting_/_Remarketing, Root_Authority, Schema, Site_Optimization, Site_Search, Social_Management, Social_Sharing, Social_Video_Platform, Tag_Management, Ticketing_System, Translation, UI, US_hosting, Visitor_Count_Tracking, WordPress_Hosting, WordPress_Plugins, WordPress_Theme, jQuery_Plugin", > "technologies_used_by_company_website": "ASP.NET, ASP.NET_4.0, ASP.NET_Ajax, ASP.NET_Core, ASP.NET_MVC, Accessibility_Statement, Adobe_Experience_Manager, Adobe_Scene7, Akamai, Akamai_Edge, Akamai_EdgeConnect, Akamai_Global_Request_Number, Akamai_Hosted, Algerian_Arabic_HREF_LANG, Amazon_S3, American_Express, Angular_JS, Apache, Apple_Mobile_Web_App_Capable, Apple_Mobile_Web_Clips_Icon, Arabic_HREF_LANG, Argentinian_Spanish_HREF_LANG, Atlassian_Cloud, Australian_English_HREF_LANG, Austrian_German, Austrian_German_HREF_LANG, Avada, Azure_Edge, Azure_Monitor, Azure_SSL, Belgium_French, Bengali_HREF_LANG, Bing_Universal_Event_Tracking, Brazilian_Portuguese_HREF_LANG, Browse_Happy, Bug_Bounty, CDN_JS, COVID-19, Canadian_French_HREF_LANG, Careers, Cart_Functionality, Catalan, Chile_Spanish_HREF_LANG, Chinese, Chinese_HREF_LANG, ClickTale, Cloudflare, Cloudflare_CDN, Cloudflare_JS, Code_of_Conduct, Colombian_Spanish, Colombian_Spanish_HREF_LANG, Column_Shortcodes, Computershare, Content_Delivery_Network, Convercent, Copyright_Year_2015, Coveo, Czech_HREF_LANG, Danish_HREF_LANG, DigiCert_SSL, DocuSign, DoubleClick.Net, Dutch_HREF_LANG, ECMAScript_5_Shim, ElasticPress, English_HREF_LANG, Euro, Events_Page, Express, Facebook, Facebook_Conversion_Tracking, Facebook_Custom_Audiences, Facebook_Domain_Insights, Facebook_Domain_Verification, Facebook_Pixel, Facebook_SDK, Facebook_Sharer, Facebook_for_Websites, Fancybox, Finnish_HREF_LANG, French, French_HREF_LANG, FullStory, GTM4WP, German, German_HREF_LANG, GitHub, GitHub_Hosting, GitHub_Pages, Global_Privacy_Control, Global_Site_Tag, Google_Analytics, Google_Tag_Manager, Google_Universal_Analytics, Google_Webmaster, Gravatar_Profiles, Greek_HREF_LANG, HSTS, HSTS_IncludeSubdomains_PreLoad, Hammer_JS, Hong_Kong_Chinese_HREF_LANG, Hover_Intent, Hubspot_Developer_Verification, Human_Rights_Policy, IIS, IIS_10, IPhone_/_Mobile_Compatible, IPv6, Impact, Impressum, Indonesian_HREF_LANG, Infinite_Scroll, Instagram, Investor_Relations, Irish_English_HREF_LANG, Italian_HREF_LANG, JSON_3, Japanese, Japanese_HREF_LANG, Japanese_Yen, Jetpack, Kentico_Xperience, Kestrel, Korean_HREF_LANG, Lightning.js, LinkedIn, LinkedIn_Ads, LinkedIn_Insights, Lithium_Technologies, LivePerson, Live_Writer_Support, MSN/Bing_Webmaster, Malaysian_HREF_LANG, Marketo, Meetup_Pro, Metronet_Profile_Picture, Mexican_Spanish_HREF_LANG, Microsoft, Microsoft_Ajax_Content_Delivery_Network, Microsoft_Application_Insights, Microsoft_Azure, Microsoft_Azure_Blob_Storage, Microsoft_Azure_CDN, Microsoft_Azure_DNS, Microsoft_Azure_Front_Door, Microsoft_Azure_Monitor, Microsoft_Azure_US_West_Region, Microsoft_Azure_Verified_CDN, Microsoft_Clarity, Microsoft_Exchange_Online, Microsoft_Power_BI, Microsoft_SSL, Mobile_Optimized, Modernizr, Modernizr_2.6, Moment_JS, New_Relic, New_Zealand_English_HREF_LANG, Newsletter_for_Wordpress, Next.js, Norwegian_Bokmål, October_CMS, Omniture_SiteCatalyst, Optify, Organization_Schema, Page_Links_To, Person_Schema, Peruvian_Spanish_HREF_LANG, Pingback_Support, Placehold_IT, Plans_and_Pricing, Polish_HREF_LANG, Popper.js, Portuguese_HREF_LANG, Pound_Sterling, PrettyPrint, RSS, Really_Simple_Discovery, Reddit, Redis_Cache, Russian_HREF_LANG, SPF, SSL_by_Default, Service_Worker, Silverlight, Sitecore_CMS, Sitelinks_Search_Box, Slick_JS, South_Korean_Won, Spanish, Spanish_HREF_LANG, Stream, Sustainability, Swedish_HREF_LANG, Swiss_German_HREF_LANG, Taiwan_Chinese_HREF_LANG, Taxonomy_Images, Tealium, Tealium_UTAG, Thai_HREF_LANG, ThemeFusion, TikTok, TikTok_Embed, Turkish, Turkish_HREF_LANG, Twitter, Twitter_Ads, Twitter_Conversion_Tracking, Twitter_Tweet_Button, Twitter_Website_Universal_Tag, UNPKG, US_Privacy_User_Signal_Mechanism, Underscore.js, Usabilla, Venezuelan_Spanish_HREF_LANG, Vietnamese_HREF_LANG, Viewport_Meta, Visa, WP_Engine, WP_Featherlight, WebTrends, Weglot, WordPress, WordPress_6.2, WordPress_Grid, WordPress_Multisite, Wordpress_Plugins, Yandex_Verification, Yett, Yoast_Plugins, Yoast_SEO_Premium, Yoast_WordPress_SEO_Plugin, YouTube, YouTube_Privacy_Enchanced, jQuery, jQuery_1.11.0, jQuery_1.3.2, jQuery_1.9.0, jQuery_2.2.4, jQuery_3.3.1, jQuery_3.4.0, jQuery_3.4.1, jQuery_3.5.1, jQuery_3.6.0, jQuery_Autocomplete, jQuery_BBQ, jQuery_BlockUI, jQuery_CDN, jQuery_Cookie, jQuery_Tools, jQuery_UI, jQuery_Validate, jQuery_Waypoints, jsDelivr, nginx", > "umbrella": 2 > } > } > ], > "total_results": 1 > } > ``` > **Best Practices** > > * **Use with matched companies only.** Ensure the `business_id` corresponds to a verified website. > * **Combine with firmographic signals** (e.g. revenue, size, country) for rich segmentation. > * **Use premium spend estimates** to prioritize leads with higher digital investment. > * **Monitor tech stack changes** over time to detect shifts in digital strategy or maturity. > **Webstack Output Signals** > > | SignalAPI | Name | Description | Data Type | > | :- | :- | :- | :- | > | product\_count | Website's SKU product count | SKU Product Count is the number of unique products that an eCommerce website lists and sells. | NUMERIC | > | q\_rank | Website's Transco page traffic rank | Transco Page Traffic Rank between 1 and 1,000,000. The Tranco score combines the Alexa Internet Top 1 Million, Cisco Umbrella Popularity List, Majestic Million, Quantcast Top Sites creating an accurate representation of how popular websites are. | NUMERIC | > | umbrella | Website's Umbrella traffic rank | Umbrella Global Router Traffic Rank between 1 and 1,000,000. Umbrella is based on net sum DNS queries across the globe. | NUMERIC | > | number\_of\_pages\_on\_sitemap | Number of pages on website's sitemap | Number of pages listed on the website's indexable sitemap. A sitemap is a file providing information about the pages, videos, other files, and the relationships between them. | NUMERIC | > | shopify\_apps\_in\_use | List of Shopify apps used by website | List of Shopify apps detected on the website. Shopify apps are used to answer a variety of business needs. | DISPLAY | > | latest\_update | Most recent website index date | Website's most recent date of index by the webstack collector, formatted YYYY-MM-DDTHH:mm:ss.SSSZ. | DATETIME | > | live\_techs | Website has live technologies | True if any live technologies that are currently active were detected on the website. | BOOLEAN | > | db\_indexed | Is DB indexed | True if the website is recorded in the databse. If false, the website may be suspect. | BOOLEAN | > | affiliate\_links | Website has affiliate links | True if any affiliate program advertising systems were detected on the website. | BOOLEAN | > | established | Website is established | True if the website was established for at least 1 year prior to the webstack being indexed. | BOOLEAN | > | technologies\_sub\_categories | Technology sub-categories detected on website | Mapping of each technology detected on the website, to its assigned sub-category. | TEXT | > | parked | Website has parked technologies | True if the site is using any parked domains, parked domain technology providers, or mentions parked domains. Parked domains are domain names that are not connected to a service provider or website. | BOOLEAN | > | status | Website risk status | Website's trustworthiness status, based on factors such as the estimated amount of money spent on various technologies for the website, how long the website has existed, the domain‚Äö√Ñ√¥s relationship with other websites, and other undisclosed factors. \| Suspect=according to the listed factors the domain has been determined as untrustworthy, OK=overall the domain has been determined as trustworthy, Can not determine=the trustworthiness was not determined, usually due to the domain being new | CATEGORY | > | number\_of\_social\_networks | Domain's number of social networks | Number of social network profiles listed on the website that are associated with the company. | NUMERIC | > | twitter\_link | Twitter profile | Link to the Twitter profile associated with the company. The link is listed on the company's registered domain. | URL | > | earliest\_record | Earliest website index date | Website's earliest date of index by the webstack collector, formatted YYYY-MM-DDTHH:mm:ss.SSSZ. | DATETIME | > | technologies\_categories | Technology categories detected on website | List of the technology categories detected on the website. | TEXT | > | payment\_technologies\_in\_use | Payment options available on website | List of the detected currencies, technologies, and digital wallets that can be used for online payment on the website. | DISPLAY | > | contact\_phone\_number | Domain's contact phone number | Phone number listed under the 'contact us' section of the company's website. | TEXT | > | premium\_techs | Number of premium technologies detected on website | Number of premium technologies detected on the website. Premium technologies are the technologies or tools in the webstack that cost money. | NUMERIC | > | number\_of\_premium\_technologies | Number of technologies detected on website | Number of technologies detected on the company's website. Technologies are tools used to build the website. | NUMERIC | > | money\_spent\_on\_website\_technologies | Estimated average monthly spending on webstack | Estimated monthly financial investment in the technologies used on the company's website, displayed in USD. Calculation: sum of the average price point for each technology used on the website. | NUMERIC | > | ecommerce | Website has eCommerce technology | True if an eCommerce technology was detected on the website. Inluding links to a shopping cart or other 'buy' options. | BOOLEAN | > | spend | Premium monthly spending | Estimation of average monthly USD spent across the entire domain on all aspects. | NUMERIC | > | technologies\_used\_by\_company\_website | List of technologies detected on website | List of the technologies detected on the website. | TEXT | > | payment\_options | Website has online payment option | True if the website provides online payment options on the website, or mentions a payment provider by name. | BOOLEAN | > | categories\_to\_technologies\_tree | Technologies detected on website mapped to categories | Mapping of each technology detected on the website to its assigned category. | JSON | > | company\_vertical | Company vertical | The name of the industry associated with the company and mentioned on the website. | CATEGORY | *For additional web-based enrichment options, explore related API endpoints.* # Workforce trends Source: https://developers.explorium.ai/v2/businesses/enrichments/workforce_trends_enrich post /v2/businesses/workforce_trends/enrich ## Description The **Workforce Trends Enrichment** endpoint provides insights into **employee distribution, departmental growth, and workforce shifts** within a company. This dataset is valuable for **HR strategists, investors, and business analysts** looking to assess organizational trends over time. The data includes: * **Percentage distribution** of employees across various departments. * **Quarterly workforce change rates**, indicating hiring or downsizing trends. * **Aggregated workforce data** providing a comprehensive view of company employment trends. This information is sourced from **employment records, job postings, and public workforce data** to provide **real-time visibility into corporate workforce dynamics**. > [!NOTE] > > **v2:** this endpoint accepts either a single ID (a string) or a list of up to 50 IDs — the separate `/bulk_enrich` route is gone. See [v2 conventions](/v2/conventions). ## Enrich by company details instead of IDs `business_ids` is the primary way to call this endpoint. If you don't have Explorium IDs yet, you can send `businesses_to_match` instead: up to 50 companies, described with the same fields the [Match businesses](/v2/businesses/match_businesses) endpoint accepts (`name`, `domain`, `url`, `linkedin_url`). Each company is matched and enriched in the same call. Send **either** `business_ids` **or** `businesses_to_match`, never both (that returns a `422`). Any `parameters` the endpoint takes work the same either way. ```json Request body theme={null} { "businesses_to_match": [ { "name": "Explorium", "domain": "explorium.ai" }, { "name": "Unknown Co", "domain": "unknown-co.example" } ] } ``` ```json Response (data shortened) theme={null} { "response_context": { "correlation_id": "ebe38f2b99ad423e84f93d2be5e75b20", "request_status": "success", "time_taken_in_seconds": 5.38 }, "data": [ { "input": { "name": "Explorium", "domain": "explorium.ai", "url": null, "linkedin_url": null }, "business_id": "340c8040bd50cbab9c7df718bbe51cc9", "data": { "business_id": "340c8040bd50cbab9c7df718bbe51cc9", "...": "same fields as an ID-based request" }, "warnings": [] }, { "input": { "name": "Unknown Co", "domain": "unknown-co.example", "url": null, "linkedin_url": null }, "business_id": null, "data": null, "warnings": [] } ], "total_results": 1, "total_matches": 1 } ``` Each row echoes its `input` and returns the matched `business_id`. Companies that don't match come back with `business_id: null` and `data: null`, and aren't charged. `total_matches` counts the matched rows. > **How It Works** > > * **Input:** Provide a `business_id` obtained from the **Match Businesses** API. > * **Processing:** The system analyzes workforce composition, department trends, and hiring activity over time. > * **Output:** A structured response summarizing workforce distribution and hiring/firing trends. > **Workforce trends Output Signal** > > | SignalAPI | Name | Description | Data Type | > | :- | :- | :- | :- | > | change\_in\_real\_estate\_roles | QoQ real estate roles | QoQ stands for quarter over quarter and is the rate of change in the percentage of employees working in real estate related positions in the quarter prior to the current quarter, compared to the current quarter. Calculation: (% Current Quarter / % Previous Quarter)-1. | float | > | perc\_design\_roles | Percentage of design roles | Percentage out of employee profiles that disclose the employee’s role who listed a design related position. This calculation is relevant to the current timeframe. Designer roles include product designers, web designers, and graphic designers. | float | > | profiles\_found\_per\_quarter | Number of profiles | Number of detected profiles containing information on the employee | float | > | perc\_sales\_roles | Percentage of sales roles | Percentage out of employee profiles that disclose the employee’s role who listed a sales related position. This calculation is relevant to the current quarter. | float | > | perc\_hr\_roles | Percentage of human resources roles | Percentage out of employee profiles that disclose the employee’s role who listed a human resources related position. This calculation refers to the current quarter. Health related positions include sanitarians, nurses, and doctors. | float | > | perc\_operations\_roles | Percentage of operations roles | Percentage out of employee profiles that disclose the employee’s role who listed an operations position. This calculation is relevant to the current quarter. | float | > | perc\_pr\_roles | Percentage of public relations roles | Percentage out of employee profiles that disclose the employee’s role who listed a PR position. This calculation is relevant to the current quarter. | float | > | perc\_health\_roles | Percentage of health roles | Percentage out of employee profiles that disclose the employee’s role who listed a health related position. This calculation refers to the current quarter. Health related positions include sanitarians, nurses, and doctors. | float | > | perc\_trades\_roles | Percentage of professional trades roles | Percentage out of employee profiles that disclose the employee’s role who listed a professional trades position. This calculation is relevant to the current quarter. Professional trades roles include plumbers, construction workers, and electricians. | float | > | perc\_engineering\_roles | Percentage of engineering roles | Percentage out of employee profiles that disclose the employee’s role who listed an engineering related position. This calculation refers to the current quarter. Engineering roles include data, devops, electrical, mechanical, network, information technology, project engineering, quality assurance, security, software, systems and web roles. This calculation refers to the current quarter. | float | > | perc\_finance\_roles | Percentage of finance roles | Percentage out of employee profiles that disclose the employee’s role who listed a finance related position. This calculation refers to the current quarter. | float | > | perc\_customer\_service\_roles | Percentage of customer service roles | Percentage out of employee profiles that disclose the employee’s role who listed a customer service position. This calculation is relevant to the current timeframe. | float | > | perc\_legal\_roles | Percentage of legal roles | Percentage out of employee profiles that disclose the employee’s role who listed a legal related position. This calculation refers to the current quarter. | float | > | perc\_media\_roles | Percentage of media roles | Percentage out of employee profiles that disclose the employee’s role who listed a marketing position. This calculation is relevant to the current quarter. | float | > | perc\_marketing\_roles | Percentage of marketing roles | Percentage out of employee profiles that disclose the employee’s role who listed a marketing position. This calculation is relevant to the current quarter. | float | > | change\_in\_real\_estate\_roles | Percentage of real estate roles | Percentage out of employee profiles that disclose the employee’s role who listed a real estate position. This calculation is relevant to the current quarter. | float | > | perc\_education\_roles | Percentage of education roles | The percentage out of employee profiles that disclose the employee’s role who listed an education related position. Education roles include teachers, researchers, professors, and education administrators. This calculation refers to the current quarter. | float | > | change\_in\_design\_roles | QoQ design roles | QoQ stands for quarter over quarter and is the rate of change in the percentage of employees working in design roles in the quarter prior to the current quarter compared to the current quarter. Calculation: (% Current Quarter / % Previous Quarter)-1. Designer roles include product designers, web designers, and graphic designers. | float | > | change\_in\_education\_roles | QoQ education roles | QoQ stands for quarter over quarter and is the rate of change in the percentage of employees working in education related roles in the quarter prior to the current quarter, compared to the current quarter. Calculation: (% Current Quarter / % Previous Quarter)-1. Education roles include teachers, researchers, professors, and education administrators. | float | > | change\_in\_pr\_roles | QoQ public relation roles | QoQ stands for quarter over quarter and is the rate of change in the percentage of employees working in public relations related positions in the quarter prior to the current quarter, compared to the current quarter. Calculation: (% Current Quarter / % Previous Quarter)-1. | float | > | change\_in\_trades\_roles | QoQ professional trades roles | QoQ stands for quarter over quarter and is the rate of change in the percentage of employees working in trades related positions in the quarter prior to the current quarter, compared to the current quarter. Calculation: (% Current Quarter / % Previous Quarter)-1. | float | > | change\_in\_customer\_service\_roles | QoQ customer service roles | QoQ stands for quarter over quarter and is the rate of change in the percentage of employees working in customer service roles in the quarter prior to the current quarter, compared to the current quarter. Calculation: (% Current Quarter / % Previous Quarter)-1. | float | > | change\_in\_health\_roles | QoQ health roles | QoQ stands for quarter over quarter and is the rate of change in the percentage of employees working in health roles in the quarter prior to the current quarter, compared to the current quarter. Calculation: (% Current Quarter / % Previous Quarter)-1. Health roles include sanitarians, nurses, and doctors. | float | > | change\_in\_operations\_roles | QoQ operations roles | QoQ stands for quarter over quarter and is the rate of change in the percentage of employees working in operations related positions in the quarter prior to the current quarter, compared to the current quarter. Calculation: (% Current Quarter / % Previous Quarter)-1. | float | > | change\_in\_sales\_roles | QoQ sales roles | QoQ stands for quarter over quarter and is the rate of change in the percentage of employees working in sales related positions in the quarter prior to the current quarter, compared to the current quarter. Calculation: (% Current Quarter / % Previous Quarter)-1. | float | > | change\_in\_legal\_roles | QoQ legal roles | QoQ stands for quarter over quarter and is the rate of change in the percentage of employees working in legal realted roles in the quarter prior to the current quarter, compared to the current quarter. Calculation: (% Current Quarter / % Previous Quarter)-1. | float | > | change\_in\_roles\_divisor | QoQ profiles that disclose employee's role | QoQ stands for quarter over quarter and is the rate of change in the percentage of employee profiles that contain information about the employee’s role or position at the company in the quarter prior to the current quarter, compared to the current quarter. Calculation: (% Current Quarter / % Previous Quarter)-1. | float | > | change\_in\_finance\_roles | QoQ finance roles | QoQ stands for quarter over quarter and is the rate of change in the percentage of employees working in finance roles in the quarter prior to the current quarter, compared to the current quarter. Calculation: (% Current Quarter / % Previous Quarter)-1. | float | > | change\_in\_media\_roles | QoQ media roles | QoQ stands for quarter over quarter and is the rate of change in the percentage of employees working in media related roles in the quarter prior to the current quarter, compared to the current quarter. Calculation: (% Current Quarter / % Previous Quarter)-1. | float | > | change\_in\_hr\_roles | QoQ human resources roles | QoQ stands for quarter over quarter and is the rate of change in the percentage of employees working in human resources roles in the quarter prior to the current quarter, compared to the current quarter. Calculation: (% Current Quarter / % Previous Quarter)-1. | float | > | change\_in\_marketing\_roles | QoQ marketing roles | QoQ stands for quarter over quarter and is the rate of change in the percentage of employees working in marketing related roles in the quarter prior to the current quarter, compared to the current quarter. Calculation: (% Current Quarter / % Previous Quarter)-1. | float | > | change\_in\_engineering\_roles | QoQ engineering roles | QoQ stands for quarter over quarter and is the rate of change in the percentage of employees working in engineering related positions in the quarter prior to the current quarter, compared to the current quarter. Calculation: (% Current Quarter / % Previous Quarter)-1. Engineering roles include data, devops, electrical, mechanical, network, information technology, project engineering, quality assurance, security, software, systems and web roles. | float | > | quarters | Quarter | Cutoff date of the data's quarterly period, e.g. 01/01/2001. | datetime | > **Best Practices** > > * **Use workforce distribution insights** to assess company department growth and investment focus. > * **Analyze hiring and downsizing trends** to gauge business expansion or contraction. > * **Leverage workforce trend data** to benchmark against competitors in the same industry. > * **Monitor key roles in engineering, sales, and operations** to understand where a company is investing resources. For additional enrichment options, explore related API endpoints below. ## Body Params - Try Me Example ```text theme={null} business_ids: 8adce3ca1cef0c986b22310e369a0793 ``` # Workforce trends (async) Source: https://developers.explorium.ai/v2/businesses/enrichments/workforce_trends_job post /v2/businesses/workforce_trends/job > [!NOTE] > > **Asynchronous variant.** This submits a job through the [async job infrastructure](/v2/async-jobs) — poll [job status](/v2/jobs/get_job_status) for progress and results. Input comes from an uploaded dataset (`list_id`); limits are 10,000 rows and a 24-hour run time. > > For the full output signal reference, see [the synchronous endpoint](/v2/businesses/enrichments/workforce_trends_enrich). > **How It Works** > > * **Input:** Provide a `list_id` from the [dataset upload endpoint](/v2/jobs/upload_entity_id_dataset). Async endpoints do not accept inline IDs. > * **Processing:** The system retrieves workforce trends data for all submitted businesses in a **single request**. > * **Output:** A structured response with workforce distribution and hiring/firing trends. > **Example Request (cURL)** > > ```shell Bash theme={null} > curl --request POST \ > --url https://api.explorium.ai/v2/businesses/workforce_trends/job \ > --header 'accept: application/json' \ > --header 'api_key: your_api_key_here' \ > --header 'content-type: application/json' \ > --data '{ > "business_ids": [ > "8adce3ca1cef0c986b22310e369a0793", > "a34bacf839b923770b2c360eefa26748" > ] > }' > ``` > **Best Practices** > > * **Monitor hiring trends** to identify workforce expansion. > * **Assess downsizing activity** to evaluate business contraction. > * **Benchmark workforce trends** against industry peers. **For additional enrichment options, explore related API endpoints below.** ## Body Params - Try Me Example ``` business_ids: ["8adce3ca1cef0c986b22310e369a0793", "a34bacf839b923770b2c360eefa26748"] ``` # Create business enrollment Source: https://developers.explorium.ai/v2/businesses/events/create_enrollment post /v2/businesses/events/enrollments Requires a `webhook_id` of an **active** [v2 webhook](/v2/endpoints/webhooks) in your scope — unknown IDs return `404`, a missing `webhook_id` or wrong scope/status returns `422`; delivery is never silently re-pointed. Up to **1,000 IDs per request**, unlimited total across requests. # Delete business enrollment Source: https://developers.explorium.ai/v2/businesses/events/delete_enrollment delete /v2/businesses/events/enrollments/{enrollment_id} Stops monitoring for this enrollment. The webhook and other enrollments are unaffected. # Fetch business events Source: https://developers.explorium.ai/v2/businesses/events/fetch_events post /v2/businesses/events ## Description The **Business Events** endpoint delivers timely insights into key business activities, such as **funding rounds, IPOs, product launches, hiring trends, office openings and more**. This enables users to monitor industry shifts, analyze market dynamics, and make informed decisions based on recent developments. Each event provides a snapshot of **real-time changes** occurring within businesses, offering valuable intelligence on company growth, strategic moves, and workforce fluctuations. ### Important Considerations for Event * Events are **limited to recent occurrences** and are available **`only within the timeframe defined intimestamp_from`** , which should be set to **the last quarter (past 3 months)**. * If no qualifying events took place in the specified period, the response will be empty. * This API does not provide historical records. To access past data, refer to the appropriate **Enrichment API** endpoints. > [!NOTE] > > **v2:** requests accept up to **40 `business_ids`** per call. Delivered `new_funding_round` payloads use the corrected `funding_stage` / `funding_date` field names (v1 spells them `founding_*`) — see [signal fixes](/v2/whats-new#signal-fixes). > **Coverage** > > | Attribute | Coverage Details | > | :- | :- | > | **Total Events** | Covers thousands of business-related events monthly | > | **Event Categories** | Includes funding, IPOs, product launches, partnerships, hiring trends, and more | > | **Geographical Scope** | Global coverage across 150+ countries | > | **Data Refresh Rate** | Updated in near real-time | > **How It Works** > > * **Input:** Define filter parameters such as `event_types`, `business_ids`, and `timestamp_from`. > * **Processing:** The system retrieves relevant business events from its real-time data sources. > * **Output:** A structured response containing event details, including timestamps, descriptions, and business associations. > **Query Parameters** > > | Parameter | Type | Description | > | :- | :- | :- | > | `event_types` | Array | Filters events by type (e.g. `ipo_announcement`, `new_funding_round`, `new_investment`, `new_product`, `new_office`) | > | `business_ids` | Array | Returns events related to specific businesses using their Business IDs — up to **40 per request** | > | `timestamp_from` | String | Filters results to show only events after a specific timestamp (ISO format) | > **Example Request (cURL)** > > ```shell Bash theme={null} > curl -X POST \ > "https://api.explorium.ai/v2/businesses/events" \ > -H "API_KEY: your_api_key_here" \ > -H "Content-Type: application/json" \ > -d '{ > "event_types": [ > "ipo_announcement", > "new_investment" > ], > "business_ids": [ > "8adce3ca1cef0c986b22310e369a0793" > ] > }' > ``` > **Example Response** > > ```json JSON theme={null} > { > "response_context": { > "correlation_id": "e96ef2125e0d45568f370cee53428106", > "request_status": "success", > "time_taken_in_seconds": 4.299 > }, > "output_events": [ > { > "event_name": "new_investment", > "event_time": "2025-01-20T00:00:00+00:00", > "event_id": "60392c31a409901d75d071565d09dda4", > "data": { > "event_name": "new_investment", > "investment_date": "2025-01-20T00:00:00+00:00", > "investment_amount": 430000013312, > "investment_target": "United States", > "investment_type": "Strategic Investment", > "link": "https://www.businesstimes.com.sg/international/trump-says-apple-ceo-make-large-investment-us" > }, > "business_id": "8adce3ca1cef0c986b22310e369a0793" > } > ] > } > ``` > **Best Practices** > > * **Use targeted queries** by specifying `event_types` to reduce unnecessary data retrieval. > * **`Combinebusiness_ids withtimestamp_from`** for precise event tracking. > * **Monitor new event types** as the dataset is continually updated. > * **Leverage analytics tools** to extract actionable insights and refine business strategies. > **Event Categories** > > ## Funding & Investment > > * [IPO Announcement](/v2/businesses/events/types/ipo-announcement) - Initial Public Offering announcement > * [New Funding Round](/v2/businesses/events/types/new-funding-round) - Announcement of a new funding round > * [New Investment](/v2/businesses/events/types/new-investment) - Announcement of a new investment > > ## Product & Business Growth > > * [New Product Launch](/v2/businesses/events/types/new-product-launch) - Launch of a new product > * [New Office Opening](/v2/businesses/events/types/new-office-opening) - Opening of a new office > * [Office Closing](/v2/businesses/events/types/office-closing) - Closing of a company's office > * [Company's Award](/v2/businesses/events/types/companys-award-event) - Recognition of a company's achievements and accolades > > ## Partnerships & Mergers > > * [New Partnership](/v2/businesses/events/types/new-partnership) - Announcement of a new partnership > * [Merger and Acquisitions](/v2/businesses/events/types/merger-and-acquisitions) - Tracks major M\&A activity > > ## Hiring & Workforce Trends > > * [Hiring (per department)](/v2/businesses/events/types/hiring-by-department) - Hiring by Department > * [Department trend (per department)](/v2/businesses/events/types/department-trend) - Workforce Changes by Department > * [New executive level hires](/v2/businesses/events/types/executive-joined-company) - Announcement of a new executive joining the company > > ## Legal & Security Issues > > * [Lawsuits and Legal Issues](/v2/businesses/events/types/lawsuits-and-legal-issues) - Tracks legal challenges and regulatory issues > * [Outages and Security Breaches](/v2/businesses/events/types/outages-and-security-breaches) - Identifies major disruptions and cybersecurity incidents > > ## Financial Adjustments > > * [Cost Cutting](/v2/businesses/events/types/cost-cutting) - Tracks significant cost reduction measures For detailed endpoint explanations, request examples, and integration tips, explore the documentation sections above. ## Body Params - Try Me Example ``` event_types: ipo_announcement, new_investment business_ids: 8adce3ca1cef0c986b22310e369a0793 ``` # List business enrollments Source: https://developers.explorium.ai/v2/businesses/events/list_enrollments get /v2/businesses/events/enrollments Each enrollment is returned with its `enrollment_id`, `webhook_id`, `status` (`active` or `paused`), `event_types`, and enrolled entity IDs. # Company award Source: https://developers.explorium.ai/v2/businesses/events/types/companys-award-event ## Description The **Company's Award** event tracks when a business receives a notable award or endorsement. This data provides valuable insights into a company's reputation, achievements, and industry standing. Recognitions can range from innovation awards, sustainability achievements, best workplace titles, and more. ## Use cases: * **Competitive Benchmarking:** Compare industry leaders based on recent awards. * **Investment Analysis:** Identify companies demonstrating growth and industry leadership. * **Public Relations Monitoring:** Track company recognition for branding and marketing insights. * **Lead Prioritization:** Use awards as a signal to engage with high-performing businesses. ## Data Schema **Event Name: "company\_award" (Use this value in the event\_types parameter when querying this event.)** | Signal | API Name | Description | Data Type | | :- | :- | :- | :- | | Award name | award\_name | Name of the award or endorsement that was given to the company. | string | | Reason for award win | award\_reason | Text describing justification for the company receiving an award including the key criteria and accomplishments that led to the win. | string | | Organisation bestowing award | awarding\_body | Name of the institution or organisation that granted the award, accolade, or certification. | string | | Event name | event\_name | Name of the award event. | string | | Event time | event\_time | The timestamp indicating when the event actually occurred | datetime | | Link | link | URL to the announcement or reference page. | url | | Snippet | snippet | Short excerpt or highlight text summarizing the award or announcement | string | | Title | title | Official title or headline of the award or recognition | string | ## Query Example ```curl cURL theme={null} curl -X POST \ "https://api.explorium.ai/v2/businesses/events" \ -H "API_KEY: your_api_key_here" \ -H "Content-Type: application/json" \ -d '{ "event_types": [ "company_award" ], "business_ids": [ "8adce3ca1cef0c986b22310e369a0793" ], "timestamp_from": "2025-01-01T10:03:03.050Z" }' ``` ## Best Practices * **Combine with company firmographics** for deeper insights into award-winning businesses. * **Monitor trends in industry recognition** to track emerging market leaders. * **Leverage awards data** to personalize marketing and outreach efforts. ## Related Events > **[Merger and Acquisitions](/v2/businesses/events/types/merger-and-acquisitions)** > > Tracks major M\&A activity. > **[Funding Round](/v2/businesses/events/types/companys-award-event)** > > Monitors new investment rounds for businesses. > **[New Partnership](/v2/businesses/events/types/new-partnership)** > > Identifies newly announced business partnerships. # Cost cutting Source: https://developers.explorium.ai/v2/businesses/events/types/cost-cutting ## Description The **Cost Cutting** event tracks significant cost reduction measures taken by companies, such as layoffs, budget reductions, downsizing, and restructuring. These events provide insights into a company's financial health, strategic adjustments, and market positioning. ## Use cases: * **Investment Analysis:** Identify businesses implementing cost-saving measures that may indicate financial distress or strategic shifts. * **Competitive Intelligence:** Monitor how competitors are adjusting budgets and operations. * **Risk Assessment:** Evaluate financial stability before engaging with a business. * **Mergers & Acquisitions:** Identify potential acquisition targets facing financial difficulties. ## Data Schema **Event Name: "cost\_cutting" (Use this value in the event\_types parameter when querying this event.)** | Signal | API Name | Description | Data Type | | :- | :- | :- | :- | | Cost cutting actions | action\_taken | A summary of the measures implemented to reduce costs. | string | | Expected savings | expected\_savings\_amount | Projected amount of cost savings as a result of the cost cutting measures, if appears in the text. | number (nullable) | | Affected departments | departments\_affected | A list of departments impacted by the cost-cutting measures. | array\ | | Savings currency | expected\_savings\_currency | Currency of the projected amount of savings resulting from the cost cutting measures. | currency\_code (nullable) | | Link to article | link | Link to article reporting the cust cutting measures taken by the company. | url | | Event name | event\_name | Name of the event related to the cost cutting measures. | string | | Event time | event\_time | The timestamp indicating when the event actually occurred | datetime | | Title | title | The headline of the article, summarizing its main topic | string | | Snippet | snippet | A short summary or preview of the article | string | ## Query Example ```curl cURL theme={null} curl -X POST \ "https://api.explorium.ai/v2/businesses/events" \ -H "API_KEY: your_api_key_here" \ -H "Content-Type: application/json" \ -d '{ "event_types": [ "cost_cutting" ], "business_ids": [ "8adce3ca1cef0c986b22310e369a0793" ], "timestamp_from": "2025-01-01T10:03:03.050Z" }' ``` ## Best Practices * **Analyze cost reduction trends** to assess long-term business viability. * **Monitor layoffs and restructuring efforts** to understand workforce shifts. * **Use cost-cutting data with financial metrics** to create a comprehensive business risk profile. ## Related Events > **[Lawsuits and Legal Issues](/v2/businesses/events/types/lawsuits-and-legal-issues)** > > Tracks legal challenges and regulatory issues > **[Outages and Security Breaches](/v2/businesses/events/types/outages-and-security-breaches)** > > Identifies major disruptions and cybersecurity incidents > **[Merger and Acquisitions](/v2/businesses/events/types/merger-and-acquisitions)** > > Tracks major M\&A activity # Department workforce trends Source: https://developers.explorium.ai/v2/businesses/events/types/department-trend ## Description A **Department trend** event tracks when a company increases or decreases staffing within a specific department. This data helps monitor employment trends, workforce restructuring, and organizational growth or downsizing. **Important:** The **Department Trend** event tracks **only recent workforce distribution changes**. If no changes occurred within the last quarter (`timestamp_from` should be set to the past 3 months), no data will be returned. **For a historical workforce analysis,** use the **Workforce Trends Enrichment API**. ## Use cases: * **Labor Market Analysis**: Identify hiring or downsizing trends within industries. * **Competitive Intelligence**: Track workforce changes in competitor organizations. * **Economic Indicators**: Assess how staffing changes affect regional and industry employment. * **Business Strategy**: Understand how companies adjust their workforce for growth or cost-cutting measures. ## Data Schema **Event Name: "increase\_in\_\" or "decrease\_in\_\" (Use these values in the event\_types parameter when querying workforce change events per department. Replace \ with the actual department name.)** | Signal | Description | API Name | Data Type | | :- | :- | :- | :- | | QoQ change in department count | Quarter over quarter rate of change in the number of employees working at the selected department. Calculation: (current quarter headcount of department / prev. quarter headcount of department) \* 100. | department\_change | integer | | Event time | The timestamp indicating when the event actually occurred | event\_time | datetime | | Department trend type | Type of department change type: Increase / Decrease | change\_type | string | | Event name | Name of the event related to the department change. | event\_name | string | ### Departments Included | Event Name | Description | | :- | :- | | `increase_in_engineering_department` | Increase in engineering department workforce | | `increase_in_sales_department` | Increase in sales department workforce | | `increase_in_marketing_department` | Increase in marketing department workforce | | `increase_in_operations_department` | Increase in operations department workforce | | `increase_in_customer_service_department` | Increase in customer service department workforce | | `increase_in_all_departments` | Increase across all departments | | `decrease_in_engineering_department` | Decrease in engineering department workforce | | `decrease_in_sales_department` | Decrease in sales department workforce | | `decrease_in_marketing_department` | Decrease in marketing department workforce | | `decrease_in_operations_department` | Decrease in operations department workforce | | `decrease_in_customer_service_department` | Decrease in customer service department workforce | | `decrease_in_all_departments` | Decrease across all departments | ## Query Example ```curl cURL theme={null} curl -X POST \ "https://api.explorium.ai/v2/businesses/events" \ -H "API_KEY: your_api_key_here" \ -H "Content-Type: application/json" \ -d '{ "event_types": [ "increase_in_engineering_department" ], "business_ids": [ "8adce3ca1cef0c986b22310e369a0793" ], "timestamp_from": "2025-01-01T10:03:03.050Z" }' ``` ## Best Practices * **Filter by department (`department`)** to track workforce changes in specific fields. * **Monitor change type (`change_type`)** to distinguish between hiring and downsizing trends. * **Use timestamps (`event_time`)** to analyze trends over time. ## Related Events > **[Hiring (per department)](/v2/businesses/events/types/hiring-by-department)** > > Hiring by Department > **[New Executive Level Hires](/v2/businesses/events/types/executive-joined-company)** > > Announcement of a new employee joining the company # New executive level hires Source: https://developers.explorium.ai/v2/businesses/events/types/executive-joined-company ## Description A **New Executive Level Hire** event tracks when a new employee is hired and officially joins an organization. This data provides insights into workforce expansion, company growth, and industry hiring trends. **Important:** The **New executive level hires** event is limited to **new hires recorded within the last quarter**. If no employees joined the company in this period, the response will be empty. **For a long-term hiring history,** refer to the **Workforce Trends Enrichment API**. ## Use cases: * **Hiring Trends**: Track which industries and companies are actively growing their workforce. * **Competitive Intelligence**: Monitor hiring activity of competitors. * **Economic Indicators**: Assess the overall employment rate within sectors. * **Talent Acquisition Strategy**: Identify organizations aggressively recruiting talent. ## Data Schema **Event Name: "executive\_joined\_company" (Use this value in the event\_types parameter when querying this event.)** | Signal | API Name | Description | Data Type | | :- | :- | :- | :- | | Company name | job\_company\_name | Name of the company where employee change event occurred. | string | | Executive's current job department | job\_department | Individual's current job department, derived from their current job title. If employee change type is 'Employee left the company', value is NULL. | string | | Executive's full name | full\_name | First and last names associated with the individual, appended with a space. | string | | Executive's role change event | change\_type | Title of employee change event that occurred. E.g. executive joined the company. | string | | Event time | event\_time | The timestamp indicating when the event actually occurred | datetime | | Executive's current job title | job\_role\_title | Individual's current job title listed on their professional profile. If employee change type is 'Employee left the company', value is NULL. | string | | Executive's LinkedIn® URL | linkedin\_url | URL of the individual's LinkedIn® profile. | url | | Event name | event\_name | Name of the event related to employee's role change. | string | ## Query Example ```curl cURL theme={null} curl -X POST \ "https://api.explorium.ai/v2/businesses/events" \ -H "API_KEY: your_api_key_here" \ -H "Content-Type: application/json" \ -d '{ "event_types": [ "executive_joined_company" ], "business_ids": [ "8adce3ca1cef0c986b22310e369a0793" ], "timestamp_from": "2025-01-01T10:03:03.050Z" }' ``` ## Best Practices * **`Filter by department (job_department)`** to track hiring trends in specific fields. * **`Monitor job titles (job_role_title)`** to analyze demand for specialized roles. * **`Use LinkedIn data (linkedin_url)`** to validate new hires and assess their background. ## Related Events > **[Hiring (per department)](/v2/businesses/events/types/hiring-by-department)** > > Hiring by Department > **[Department trend (per department)](/v2/businesses/events/types/department-trend)** > > Workforce Changes by Department # Hiring by department Source: https://developers.explorium.ai/v2/businesses/events/types/hiring-by-department ## Description A **Hiring by Department** event tracks when a company is actively recruiting for roles within specific departments and locations. This data helps monitor workforce expansion, industry hiring trends, and competitive recruitment strategies. **Important:** The **Hiring by Department** event surfaces **only recent department hiring trends** within the last quarter (`timestamp_from` should be set to the past 3 months). If no hiring activity occurred in the selected timeframe, the response will be empty. **For long-term workforce insights,** use the **Workforce Trends Enrichment API**. ## Use cases: * **Workforce Trends**: Identify industries and companies with growing hiring activity. * **Competitive Intelligence**: Track hiring patterns of competitors. * **Economic Indicators**: Understand job market health in specific sectors. * **Talent Acquisition**: Optimize recruitment strategies by targeting high-growth industries. ## Data Schema **Event Name: "hiring\_in\_\" (Use this value in the event\_types parameter when querying specific hiring events per department. Replace \ with the actual department name.)** | Signal | API Name | Description | Data Type | | :- | :- | :- | :- | | Role location | location | Location of the position inferred from the available information. | string | | Event time | event\_time | The timestamp indicating when the event actually occurred | datetime | | Number of available roles | job\_count | Number of open positions company is hiring for at the selected site and department. | integer | | Job titles | job\_titles | List of the open position titles listed per department and site. | array\ | | Department | department | Company department where the open positions were listed. | string | | Event name | event\_name | Name of the event related to the company's hiring activity. | string | ### Departments Included | Event Name | Description | | :- | :- | | `hiring_in_creative_department` | Hiring for creative department roles | | `hiring_in_education_department` | Hiring for education department roles | | `hiring_in_engineering_department` | Hiring for engineering department roles | | `hiring_in_finance_department` | Hiring for finance department roles | | `hiring_in_health_department` | Hiring for health department roles | | `hiring_in_human_resources_department` | Hiring for human resources department roles | | `hiring_in_legal_department` | Hiring for legal department roles | | `hiring_in_marketing_department` | Hiring for marketing department roles | | `hiring_in_operations_department` | Hiring for operations department roles | | `hiring_in_professional_service_department` | Hiring for professional service department roles | | `hiring_in_sales_department` | Hiring for sales department roles | | `hiring_in_support_department` | Hiring for support department roles | | `hiring_in_trade_department` | Hiring for trade department roles | | `hiring_in_unknown_department` | Hiring for unknown department roles | ## Query Example ```curl cURL theme={null} curl -X POST \ "https://api.explorium.ai/v2/businesses/events" \ -H "API_KEY: your_api_key_here" \ -H "Content-Type: application/json" \ -d '{ "event_types": [ "hiring_in_engineering_department" ], "business_ids": [ "8adce3ca1cef0c986b22310e369a0793" ], "timestamp_from": "2025-01-01T10:03:03.050Z" }' ``` ## Best Practices * **Filter by department (`department`)** to analyze hiring trends in specific fields. * **Monitor job titles (`job_titles`)** to track demand for specialized roles. * **Use job count (`job_count`)** to assess workforce expansion rates. ## Related Events > **[Department trend (per department)](/v2/businesses/events/types/department-trend)** > > Workforce Changes by Department > **[New Executive Level Hires](/v2/businesses/events/types/executive-joined-company)** > > Announcement of a new employee joining the company # IPO announcement Source: https://developers.explorium.ai/v2/businesses/events/types/ipo-announcement ## Description An **Initial Public Offering (IPO)** is the process in which a private company offers shares to the public for the first time. This event marks a significant milestone for companies as they transition from private to public ownership. The **IPO Announcement** event provides insights into companies going public by tracking official IPO announcements. This data is valuable for investors, analysts, and financial institutions looking to monitor market movements and emerging public companies. **Important:** The **IPO Announcement** event is available only for **recent IPOs** that occurred within the last quarter (`timestamp_from` should be set to the past 3 months). If no IPO was announced within this timeframe, no data will be returned. **Looking for historical IPO data?** Use the **Funding & Acquisitions Enrichment API** to access past IPO announcements. ## Use cases: * **Investment Analysis**: Track companies entering the public market for investment opportunities. * **Market Trends**: Identify industries experiencing high IPO activity. * **Competitive Intelligence**: Understand which competitors are transitioning to public companies. * **Portfolio Management**: Adjust investment strategies based on IPO trends. ## Data Schema **Event Name: "ipo\_announcement" (Use this value in the event\_types parameter when querying this event.)** | Signal | API Name | Description | Data Type | | :- | :- | :- | :- | | Date of IPO | ipo\_date | Date and time the article reporting on the company's IPO was collected by Explorium. | datetime | | Company name | company\_name | Name of company appearing in news reports and articles. | string | | Company valuation | offer\_amount | Valuation of company at time of IPO. | number | | Number of issued shares | number\_of\_shares | Number of shares issued at the time of IPO. | integer | | IPO stock exchange | stock\_exchange | Stock exchange where the IPO occurred. | string | | Price per share | price\_per\_share | Company's price per share at time of IPO. | number | | Ticker | ticker | Stock symbol of the company that IPOd. | string | | Event name | event\_name | Name of the event related to company's IPO. | string | | Event time | event\_time | The timestamp indicating when the event actually occurred | datetime | | Status | status | Indicates the current state or condition of the record. This field helps track the lifecycle or progress of the entity. | string | ## Query Example ```curl cURL theme={null} curl -X POST \ "https://api.explorium.ai/v2/businesses/events" \ -H "API_KEY: your_api_key_here" \ -H "Content-Type: application/json" \ -d '{ "event_types": [ "ipo_announcement" ], "business_ids": [ "8adce3ca1cef0c986b22310e369a0793" ], "timestamp_from": "2025-01-01T10:03:03.050Z" }' ``` ## Best Practices * **Use timestamps** to filter for recent IPOs and avoid retrieving outdated data. * **Combine with company firmographics** for deeper insights into newly public companies. * **Monitor IPO valuation trends** to predict market conditions. ## Related Events > **[New Funding Round](/v2/businesses/events/types/new-funding-round)** > > Announcement of a new funding round > **[New Investment](/v2/businesses/events/types/new-investment)** > > Announcement of a new investment # Lawsuits and legal proceedings Source: https://developers.explorium.ai/v2/businesses/events/types/lawsuits-and-legal-issues ## Description The **Lawsuits and Legal proceedings** event tracks legal proceedings involving companies, such as lawsuits, regulatory actions, and compliance violations. This data provides valuable insights into a company's legal standing, potential risks, and regulatory challenges. ## Use cases: * **Risk Assessment:** Evaluate potential legal risks before engaging with a company. * **Investor Due Diligence:** Identify companies facing legal disputes that may impact stock performance. * **Regulatory Compliance Monitoring:** Track businesses involved in legal actions for compliance verification. * **Competitive Analysis:** Understand how legal challenges affect industry players. ## Data Schema **Event Name: "lawsuits\_and\_legal\_issues" (Use this value in the event\_types parameter when querying this event.)** | Signal | API Name | Description | Data Type | | :- | :- | :- | :- | | Legal case type | case\_type | Classification of the legal case e.g. Patent infringement, Fraud, etc. | string | | Court | court | Court or legal body overseeing the case e.g. U.S. District Court. | string | | Link to report | link | Link to article or report about the legal issue. | url | | Event name | event\_name | Name of the event related to the legal proceedings. | string | | Event time | event\_time | The timestamp indicating when the event actually occurred | datetime | | Title | title | The headline of the article, summarizing its main topic | string | | Snippet | snippet | A short summary or preview of the article | string | ## Query Example ```curl cURL theme={null} curl -X POST \ "https://api.explorium.ai/v2/businesses/events" \ -H "API_KEY: your_api_key_here" \ -H "Content-Type: application/json" \ -d '{ "event_types": [ "lawsuits_and_legal_issues" ], "business_ids": [ "8adce3ca1cef0c986b22310e369a0793" ], "timestamp_from": "2025-01-01T10:03:03.050Z" }' ``` ## Best Practices * **Cross-reference legal issues** with financial and firmographic data for a complete risk profile. * **Monitor ongoing cases** to track potential long-term liabilities. * **Use court data** to identify the jurisdiction and severity of legal actions. ## Related Events > **[Outages and Security Breaches](/v2/businesses/events/types/outages-and-security-breaches)** > > Identifies major disruptions and cybersecurity incidents > **[Cost Cutting](/v2/businesses/events/types/cost-cutting)** > > Tracks significant cost reduction measures > **[Merger and Acquisitions](/v2/businesses/events/types/merger-and-acquisitions)** > > Tracks major M\&A activity # Merger and acquisitions Source: https://developers.explorium.ai/v2/businesses/events/types/merger-and-acquisitions ## Description The **Mergers and Acquisitions (M\&A)** event captures when two companies merge or when one company acquires another. These transactions can indicate strategic business expansions, competitive shifts, and investment opportunities in various industries. ## Use cases: * **Investment Strategy:** Identify potential opportunities in M\&A-heavy industries. * **Competitive Intelligence:** Monitor competitor expansion and market consolidations. * **Market Trends Analysis:** Understand industry shifts driven by acquisitions and mergers. * **Lead Generation:** Target companies undergoing transitions for financial, legal, or consulting services. ## Data Schema **Event Name: "merger\_and\_acquisitions" (Use this value in the event\_types parameter when querying this event.)** | Signal | API Name | Description | Data Type | | :- | :- | :- | :- | | Merger or acquisition | merger\_or\_acquisition | Indicates if the event is a merger or acquisition. | enum | | Event description | description | An overview of the merger or acquisition. | string | | Involved companies | companies\_involved | List of companies involved in the merger or acquisition. | array\ | | Acquisition price | acquisition\_price\_amount | Amount paid in the acquisition. | number (nullable) | | Strategic objective | strategic\_objective | Text describing the strategic objective or motivation behind the merger or acquisition. | string | | Acquisition currency | acquisition\_price\_currency | Type of currency used for the acquisition. | currency\_code (nullable) | | Link to article | link | URL to article about the merger or acquisition. | url | | Title | title | The headline of the article, summarizing its main topic | string | | Snippet | snippet | A short summary or preview of the article | string | | Event name | event\_name | Name of the event related to the merger or acquisition. | string | | Event time | event\_time | The timestamp indicating when the event actually occurred | datetime | ## Query Example ```curl cURL theme={null} curl -X POST \ "https://api.explorium.ai/v2/businesses/events" \ -H "API_KEY: your_api_key_here" \ -H "Content-Type: application/json" \ -d '{ "event_types": [ "merger_and_acquisitions" ], "business_ids": [ "8adce3ca1cef0c986b22310e369a0793" ], "timestamp_from": "2025-01-01T10:03:03.050Z" }' ``` ## Best Practices * **Combine with firmographic enrichment** to assess the impact on industry trends. * **Analyze acquisition price trends** to gain financial insights into major deals. * **Leverage strategic objective data** to understand the intent behind mergers and acquisitions. ## Related Events > **[Company's Award](/v2/businesses/events/types/companys-award-event)** > > Recognition of a company's achievements and accolades > **[New Partnership](/v2/businesses/events/types/new-partnership)** > > Announcement of a new partnership # New funding round Source: https://developers.explorium.ai/v2/businesses/events/types/new-funding-round ## Description A **New Funding Round** event tracks when a company raises capital from investors. This information is essential for understanding business growth, market trends, and investment opportunities. Funding rounds are categorized by stages, such as seed, Series A, B, C, and beyond. **Important:** The **New Funding Round** event retrieves only **recent funding announcements** within the last quarter (`timestamp_from` should be set to the past 3 months). If no funding event was announced in this timeframe, no data will be available. **Need historical funding data?** Use the **Funding & Acquisitions Enrichment API** to access past funding rounds. ## Use cases: * **Investor Insights**: Identify companies attracting significant investment. * **Startup & Market Trends**: Track emerging companies and industries receiving funding. * **Competitive Intelligence**: Analyze how competitors are securing funding. * **Valuation Tracking**: Understand how company valuations change over time. ## Data Schema **Event Name: "new\_funding\_round" (Use this value in the event\_types parameter when querying this event.)** | Signal | API Name | Description | Data Type | | :- | :- | :- | :- | | founding\_date | Date of funding round | Date funding round took place. Formatted YYYY-MM-DD. | datetime | | amount\_raised | Amount raised in funding | Size of investment in dollars extracted from the article. | float | | link | Link to article | Link to article announcing the company's new investment. | url | | founding\_stage | Funding round stage | Funding round stage extracted from the report or article. | string | | investors | Investors in funding round | List of investors in the funding round. | string | | lead\_investor | Lead investor | Name of the lead investor in the funding round. | string | | event\_name | Event name | Name of the event related to company's new funding round. | string | ## Query Example ```curl cURL theme={null} curl -X POST \ "https://api.explorium.ai/v2/businesses/events" \ -H "API_KEY: your_api_key_here" \ -H "Content-Type: application/json" \ -d '{ "event_types": [ "new_funding_round" ], "business_ids": [ "8adce3ca1cef0c986b22310e369a0793" ], "timestamp_from": "2025-01-01T10:03:03.050Z" }' ``` ## Best Practices * **Filter by funding stage** to focus on relevant rounds (e.g., Series A vs. Late-Stage Growth). * **Combine with company firmographics** for deeper insights into industry trends. * **Monitor lead investors** to identify key players in market funding. ## Related Events > **[IPO Announcement](/v2/businesses/events/types/ipo-announcement)** > > Initial Public Offering announcement > **[New Investment](/v2/businesses/events/types/new-investment)** > > Announcement of a new investment # New investment Source: https://developers.explorium.ai/v2/businesses/events/types/new-investment ## Description A **New Investment** event tracks when an organization or investor makes a strategic investment in a company. This data helps identify market movements, strategic partnerships, and industry growth patterns. **Important:** The **New Investment** event surfaces **only recent investment activities** within the last quarter (`timestamp_from` should be set to the past 3 months). If there was no investment recorded during this period, the response will be empty. **For historical investment records**, use the **Funding & Acquisitions Enrichment API**. ## Use cases * **Investor Tracking**: Monitor investment activity from venture capitalists, private equity firms, and corporations. * **Market Trends**: Understand which sectors and companies are receiving financial backing. * **Competitive Intelligence**: Gain insight into competitor investments and expansion plans. * **Strategic Partnerships**: Identify relationships between investors and businesses. ## Data Schema **Event Name: "new\_investment" (Use this value in the event\_types parameter when querying this event.)** | Signal | API Name | Description | Data Type | | :- | :- | :- | :- | | Type of investment | investment\_type | Type of investment extracted from the report or article. | string | | Event time | event\_time | The timestamp indicating when the event actually occurred | datetime | | Target of investment | investment\_target | Text extracted from the article describing the target of the investment. | string (nullable) | | Snippet of article | snippet | Snippet of the published article or report on company's new investment. | string | | Title of new investment article | title | Title of published news report or article on company's new investment. | string | | Link to article | link | Link to article announcing the company's new investment. | url | | Amount of investment | investment\_amount | Size of investment in dollars extracted from the article. | number (nullable) | | Investment Currency | investment\_amount\_currency | The currency code (ISO 4217) that specifies the currency of the investment amount. For example, USD for US Dollars or EUR for Euros. | currency\_code (nullable) | ## Query Example ```curl cURL theme={null} curl -X POST \ "https://api.explorium.ai/v2/businesses/events" \ -H "API_KEY: your_api_key_here" \ -H "Content-Type: application/json" \ -d '{ "event_types": [ "new_investment" ], "business_ids": [ "8adce3ca1cef0c986b22310e369a0793" ], "timestamp_from": "2025-01-01T10:03:03.050Z" }' ``` ## Best Practices * **Filter by investment type** to track strategic vs. financial investments. * **Analyze investment targets** to identify high-growth companies and sectors. * **Monitor investment amounts** to assess the scale of market movements. ## Related Events > **[IPO Announcement](/v2/businesses/events/types/ipo-announcement)** > > Initial Public Offering announcement > **[New Funding Round](/v2/businesses/events/types/new-funding-round)** > > Announcement of a new funding round # New office opening Source: https://developers.explorium.ai/v2/businesses/events/types/new-office-opening ## Description A **New Office Opening** event tracks when a company establishes a new office or facility. This data provides insights into business expansion, geographic growth, and hiring trends. **Important:** The **New Office Opening** event is limited to **recent office expansions** within the last quarter (`timestamp_from` should be set to the past 3 months). If the company did not open a new office during this period, the response will be empty. **For long-term office location insights,** refer to firmographic enrichment APIs. ## Use cases: * **Market Expansion**: Identify companies growing their physical presence. * **Competitive Intelligence**: Monitor competitor office openings. * **Investment Insights**: Track capital expenditure on new facilities. * **Real Estate & Economic Trends**: Analyze business activity in different regions. ## Data Schema **Event Name: "new\_office" (Use this value in the event\_types parameter when querying this event.)** | Signal | API Name | Description | Data Type | | :- | :- | :- | :- | | Event time | event\_time | The timestamp indicating when the event actually occurred | datetime | | Purpose of new office | purpose\_of\_new\_office | Short description of the new office's purpose, extracted from the article. | string | | Link to article | link | Link to article announcing the company's new office. | url | | Location of new office | office\_location | Text extracted from the article indicating where the new office is located. | string | | Number of employees at new office | number\_of\_employees | Number of employees working from the new office's location. | integer | | Title of new office article | title | Title of published news report or article on company's new office. | string | | Snippet | snippet | Short excerpt or highlight text summarizing the award or announcement | string | | Event name | event\_name | Name of the event related to company's new office. | string | ## Query Example ```curl cURL theme={null} curl -X POST \ "https://api.explorium.ai/v2/businesses/events" \ -H "API_KEY: your_api_key_here" \ -H "Content-Type: application/json" \ -d '{ "event_types": [ "new_office" ], "business_ids": [ "8adce3ca1cef0c986b22310e369a0793" ], "timestamp_from": "2025-01-01T10:03:03.050Z" }' ``` ## Best Practices * **Filter by location (`office_location`)** to track openings in specific regions. * **Combine with hiring data** to analyze workforce expansion. * **Monitor new office purpose (`purpose_of_new_office`)** to understand business strategy. ## Related Events > **[New Product Launch](/v2/businesses/events/types/new-product-launch)** > > Launch of a new product > **[Office Closing](/v2/businesses/events/types/office-closing)** > > Closure of an office > **[Company's Award](/v2/businesses/events/types/companys-award-event)** > > Recognition of a company's achievements and accolades # New partnership Source: https://developers.explorium.ai/v2/businesses/events/types/new-partnership ## Description A **New Partnership** event tracks when two or more companies form a strategic alliance. This data provides insights into business collaborations, market expansions, and competitive strategies. **Important:** The **New Partnership** event retrieves only **recent partnership announcements** within the last quarter (`timestamp_from` should be set to the past 3 months). If no partnership was announced in this timeframe, no data will be available. **For historical partnership records,** use the **Competitive Landscape Enrichment API**. ## Use cases: * **Market Expansion Analysis**: Identify industries where strategic partnerships are forming. * **Competitive Intelligence**: Track competitor alliances and collaborations. * **Investment & Business Development**: Assess potential business opportunities through partnerships. * **Supply Chain & Operations**: Understand key supplier-buyer relationships and ecosystem expansions. ## Data Schema **Event Name: "new\_partnership" (Use this value in the event\_types parameter when querying this event.)** | Signal | API Name | Description | Data Type | | :- | :- | :- | :- | | Link to article | link | Link to article announcing the company's new partnership. | url | | Name of partnering company | partner\_company | Name of the company's newly announced partner. | string | | Title of new partnership article | title | Title of published news report or article on company's new partnership. | string | | Event time | event\_time | The timestamp indicating when the event actually occurred | datetime | | Partnership purpose | purpose\_of\_partnership | Short description of the partnership's purpose. | string | | Snippet of article | snippet | Snippet of the published article or report on company's new partnership. | string | | Event name | event\_name | Name of the event related to company's new partnership. | string | ## Query Example ```curl cURL theme={null} curl -X POST \ "https://api.explorium.ai/v2/businesses/events" \ -H "API_KEY: your_api_key_here" \ -H "Content-Type: application/json" \ -d '{ "event_types": [ "new_partnership" ], "business_ids": [ "8adce3ca1cef0c986b22310e369a0793" ], "timestamp_from": "2025-01-01T10:03:03.050Z" }' ``` ## Best Practices * **Filter by partner company (`partner_company`)** to analyze key collaborations. * **Monitor partnership purposes (`purpose_of_partnership`)** to understand strategic goals. * **Use timestamps (`partnership_date`)** to track recent and historical partnerships. ## Related Events > **[New Funding Round](/v2/businesses/events/types/new-funding-round)** > > Announcement of a new funding round > **[New Investment](/v2/businesses/events/types/new-investment)** > > Announcement of a new investment > **[Merger and Acquisitions](/v2/businesses/events/types/merger-and-acquisitions)** > > Tracks major M\&A activity. # New product launch Source: https://developers.explorium.ai/v2/businesses/events/types/new-product-launch ## Description A **New Product Launch** event tracks when a company officially announces the release of a new product. This data helps monitor industry innovation, market expansion, and competitive movements. **Important:** The **New Product Launch** event is available only for **recent product announcements** within the last quarter (`timestamp_from` should be set to the past 3 months). If a company did not announce a product launch within the specified timeframe, no data will be returned. **For historical product launches,** check business enrichment data sources. ## Use cases: * **Market Trends**: Identify industries and companies launching new products. * **Competitive Intelligence**: Track new product releases from competitors. * **Investment Insights**: Assess which companies are investing in innovation. * **Consumer Behavior**: Analyze market response to new product announcements. ## Data Schema **Event Name: "new\_product" (Use this value in the event\_types parameter when querying this event.)** | Signal | API Name | Description | Data Type | | :- | :- | :- | :- | | Name of product | product\_name | Name of the company's newly announced product. | string | | Product Description | product\_description | A text field that provides details about the product | string | | News report publishing date | event\_time | The timestamp indicating when the event actually occurred | datetime | | Snippet | snippet | Snippet of the published article or report on company's new product. | string | | Title of new product article | title | Title of published news report or article on company's new product. | string | | Link to article | link | Link to article announcing the company's new product. | url | | Event name | event\_name | Name of the event related to company's new product launch. | string | ## Query Example ```curl cURL theme={null} curl -X POST \ "https://api.explorium.ai/v2/businesses/events" \ -H "API_KEY: your_api_key_here" \ -H "Content-Type: application/json" \ -d '{ "event_types": [ "new_product" ], "business_ids": [ "8adce3ca1cef0c986b22310e369a0793" ], "timestamp_from": "2025-01-01T10:03:03.050Z" }' ``` ## Best Practices * **Filter by product name (`product_name`)** to track specific product launches. * **Combine with company firmographics** to analyze innovation trends in various industries. * **Monitor news sources (`link`)** for additional context and market sentiment. ## Related Events > **[New Office Opening](/v2/businesses/events/types/new-office-opening)** > > Opening of a new office > **[Office Closing](/v2/businesses/events/types/office-closing)** > > Closure of an office > **[Company's Award](/v2/businesses/events/types/companys-award-event)** > > Recognition of a company's achievements and accolades # Office closing Source: https://developers.explorium.ai/v2/businesses/events/types/office-closing ## Description An **Office Closing** event tracks when a company shuts down a physical office or facility. This data provides insights into business downsizing, market exits, and shifts in operational strategy. **Important:** The **Office Closing** event is available only for **recent office closures** that occurred within the last quarter (`timestamp_from` should be set to the past 3 months). If no office closure was recorded during this period, no data will be returned. **For long-term office location history,** refer to the **Firmographic Enrichment API**. ## Use cases * **Market Contraction Analysis**: Identify industries or regions where businesses are downsizing. * **Competitive Intelligence**: Track competitor office closures to understand their market shifts. * **Economic Indicators**: Assess the impact of office closures on local economies and employment. * **Operational Strategy**: Monitor company restructuring and realignment decisions. ## Data Schema **Event Name `"closing_office"` *(Use this value in the`event_types` parameter when querying this event.)*** | Signal | API Name | Description | Data Type | | :- | :- | :- | :- | | Reason for office closing | reason\_for\_closure | Text describing the reason for the office closing. | string | | Location of closing office | office\_location | Text describing where the office is located. | string | | Number of employees impacted | number\_of\_employees\_affected | Number of employees impacted by the office location closing. | integer | | Title of closing office article | title | Title of published news report or article on company's office closing. | string | | Snippet | snippet | Short excerpt or highlight text summarizing the award or announcement | string | | Link to article | link | Link to article announcing the company's office closing. | url | | Event name | event\_name | Name of the event related to office closing. | string | | Event time | event\_time | The timestamp indicating when the event actually occurred | datetime | ## Query Example ```curl cURL theme={null} curl -X POST \ "https://api.explorium.ai/v2/businesses/events" \ -H "API_KEY: your_api_key_here" \ -H "Content-Type: application/json" \ -d '{ "event_types": [ "closing_office" ], "business_ids": [ "8adce3ca1cef0c986b22310e369a0793" ], "timestamp_from": "2025-01-01T10:03:03.050Z" }' ``` ## Best Practices * **Filter by location (`office_location`)** to analyze closures in specific regions. * **Track closure reasons (`reason_for_closure`)** to understand business decisions. * **Monitor employment impact (`number_of_employees_affected`)** to assess workforce reductions. ## Related Events > **[New Product Launch](/v2/businesses/events/types/new-product-launch)** > > Launch of a new product > **[New Office Opening](/v2/businesses/events/types/new-office-opening)** > > Opening of a new office > **[Company's Award](/v2/businesses/events/types/companys-award-event)** > > Recognition of a company's achievements and accolades # Outages and security breaches Source: https://developers.explorium.ai/v2/businesses/events/types/outages-and-security-breaches ## Description The **Outages and Security Breaches** event tracks major disruptions and cybersecurity incidents affecting businesses. These events provide valuable insights into a company's resilience, data security practices, and operational stability. ## Use cases: * **Risk Management:** Identify businesses experiencing major disruptions or security threats. * **Vendor & Partner Evaluation:** Assess potential risks when working with affected companies. * **Cybersecurity Monitoring:** Track security breaches that could indicate systemic vulnerabilities. * **Customer Impact Analysis:** Understand how outages and breaches affect business operations and customer trust. ## Data Schema **Event Name: "outages\_and\_security\_breaches" (Use this value in the event\_types parameter when querying this event.)** | Signal | API Name | Description | Data Type | | :- | :- | :- | :- | | Type of incident | incident\_type | Categorization of the type of incident that occurred e.g., outage, data breach. | string | | Impacted systems | impacted\_systems | Text listing the systems that were impacted by the incident. | array\ | | Number of affected customers | number\_of\_affected\_customers | Number of company's customers affected by the incident. | integer | | Link to article | link | Link to article reporting the outage, security incident, or data breach. | url | | Title | title | The headline of the article, summarizing its main topic | string | | Snippet | snippet | A short summary or preview of the article | string | | Event name | event\_name | Name of the event related to the incident. | string | | Event time | event\_time | The timestamp indicating when the event actually occurred | datetime | ## Query Example ```curl cURL theme={null} curl -X POST \ "https://api.explorium.ai/v2/businesses/events" \ -H "API_KEY: your_api_key_here" \ -H "Content-Type: application/json" \ -d '{ "event_types": [ "outages_and_security_breaches" ], "business_ids": [ "8adce3ca1cef0c986b22310e369a0793" ], "timestamp_from": "2025-01-01T10:03:03.050Z" }' ``` ## Best Practices * **Monitor incident trends** to assess business stability and security posture. * **Analyze impacted systems** to determine operational risks. * **Correlate security breaches with customer impact** to understand reputational damage. ## Related Events > **[Lawsuits and Legal Issues](/v2/businesses/events/types/lawsuits-and-legal-issues)** > > Tracks legal challenges and regulatory issues > **[Cost Cutting](/v2/businesses/events/types/cost-cutting)** > > Tracks significant cost reduction measures > **[Merger and Acquisitions](/v2/businesses/events/types/merger-and-acquisitions)** > > Tracks major M\&A activity # Update business enrollment Source: https://developers.explorium.ai/v2/businesses/events/update_enrollment patch /v2/businesses/events/enrollments/{enrollment_id} Updates any mutable field — `webhook_id`, `enrollment_key`, `event_types`, or the entity ID list. Re-pointing a `paused` enrollment to an active webhook reactivates it without re-enrolling entities. # Fetch businesses Source: https://developers.explorium.ai/v2/businesses/fetch_businesses post /v2/businesses ## Description The **Fetch Businesses** endpoint allows users to retrieve business records based on filters such as country, industry, company size, and revenue. It returns a structured dataset optimized for **further filtering, deduplication, or previewing records before enrichment**. This enables precise data-driven decision-making and lead generation. It is designed to help users efficiently find relevant businesses based on their specific criteria. > **Coverage** > > * **80M+ businesses** across **150+ countries**. > * **Advanced filtering options** for precise data extraction. > * **Optimized for efficiency**, returning only the minimal data needed for further processing. > **How It Works** > > * **Input:** Define filter parameters such as country, industry, revenue range, and company size. > * **Processing:** The system searches across multiple datasets to retrieve businesses that meet the criteria. > * **Output:** A structured response containing business records for further analysis or enrichment. > **Request Schema** > > ```json JSON theme={null} > { > "filters": { > "country_code": { > "values": ["us", "ca"] > }, > "company_size": { > "values": ["11-50", "51-200"] > } > } > } > ``` > **Pagination, Filtering & Modes Parameters** > > ## Data Fetching: Pagination, Filtering & Modes > > The API supports flexible data fetching through **pagination**, **filtering**, and optional **modes** to customize the amount and structure of the returned data. > > ### Pagination > > To efficiently retrieve large datasets, use the following parameters to paginate the results: > > | Parameter | Type | Description | > | :- | :- | :- | > | `page_size` | Number | **Required.** Number of records to return per page, from 1 to 500. | > | `page` | Number | Optional. The page number to fetch (1-based), to jump straight to a specific page. Omit it, or send `null`, to use cursor pagination instead. | > | `next_cursor` | String | Optional. For cursor pagination: the `page.next_cursor` value from the previous response. Omit it, or send `null`, to start from the first page. | > > ### Behavior Notes > > Choose one of two pagination styles: > > * **Page numbers** — send `page`. The response's `page` object is `{"size", "number", "total_pages"}`, so you can jump to any page. > * **Cursor** (used when `page` is omitted) — the response's `page` object is `{"size", "next_cursor"}`. Pass `next_cursor` in the next request to get the following page. > > ### Filtering > > Filters allow you to narrow down results based on specific field values. All filters must be included in the request body under the `"filters"` key, as a JSON object. > > Each filter field accepts: > > * `values`: for multiple possible matches (e.g. `"values": ["11-50", "51-200"]`) > > ### Example Request Body > > ```json JSON theme={null} > { > "filters": { > "company_size": { > "values": ["11-50", "51-200"] > } > } > } > ``` > > ### Filter Matching Logic > > * Fields using `values` are matched using an **OR** condition. > * Filters are combined using an **AND** across different fields. > > ### Mode Parameter > > The optional `mode` parameter defines the level of detail in the returned data. > > | Mode | Description | > | :- | :- | > | `full` | Returns the complete data object for each result. Use this when full detail is required for processing or display — and always when filtering by intent: **only `full` mode returns the actual intent topics** each business is researching. | > > > [!WARNING] > > > > **`preview` mode is restricted.** It's blocked by default and available only to paying customers on a **custom plan**. Use `mode: "full"`. To get preview access, see [pricing and plans](https://admin.explorium.ai/pricing). > > > > **What preview returns:** each record keeps every field name, but only `business_id`, `name`, `domain`, `website`, `logo`, and `country_name` have values. All other fields are returned as `null`. > > ### Best Practices > > * Always use `page_size` to control payload size for better performance. > * * Apply filters whenever possible to reduce response size and processing time. > > ### Note on Filter Usage > > * **Only one category filter** can be used per request: choose from either `Google category`, `LinkedIn industry`, or `NAICS code`. Combining them is not supported. > **Example Request (cURL)** > > ```shell Bash theme={null} > curl -X POST \ > "https://api.explorium.ai/v2/businesses" \ > -H "API_KEY: your_api_key_here" \ > -H "Content-Type: application/json" \ > -d '{ > "mode": "full", > "size": 10000, > "page_size": 100, > "page": 1, > "exclude": ["00000230f8f8d86e167e189c7c3b4bd6"], > "filters": { > "country_code": { > "values": ["us"] > }, > "company_size": { > "values": ["11-50", "51-200"] > } > }, > "request_context": {} > }' > ``` > **Business Filters** > > | Parameter | Description | Notes / Best Practices | > | :- | :- | :- | > | `country_code` | Filter accounts by their HQ’s country using alpha-2 country codes. Example: `["us", "ca"]` | - Use autocomplete to search by country name and select the correct two-letter code. - Uses a list of `values`. - Logic checks whether the country code matches the account location. | > | `region_country_code` | Filter accounts by their HQ’s region using ISO 3166-2 country-subdivision codes. Example: `["us-ut", "us-ca"]` | - Use autocomplete to search for a region after selecting a country. Format will automatically apply as `country-region` (e.g., `us-ca`). - Uses multiple `values`. - Logic verifies if the region code matches the structured field. | > | `city_region_country` | Filter accounts by geographic region, down to city-level granularity. Example: `["San Francisco, CA, US"]` | - Use autocomplete with cascading dropdowns (country → region → city). - Accepts a list of full location strings. - Logic checks address fields for match. | > | `filters.city_region` | Filter accounts by geographic region with city-level granularity. Example: `["New York--Jersey City--Newark, NY--NJ"]` | - Use autocomplete to search and select the exact city region name as defined in the system. - Uses a list of values. - Only exact values returned by autocomplete are supported (free text is not supported). - Logic checks whether the account is mapped to the selected city region. | > | `company_revenue` | Filter accounts by annual revenue generated at all company sites. Categories: `["0-500K", ..., "10B-100B"]` | - Use autocomplete to search and select a revenue range from the predefined list. - Accepts a list of `values`. - Logic compares revenue input against company revenue fields. | > | `company_size` | Filter accounts by the number of employees across all company sites. Categories: `[1-10, 11-50, ..., 10001+]` | - Uses predefined employee-range categories (list of values). - You can include multiple ranges to broaden results (e.g., `["51-200", "201-500"]`). | > | `company_age` | Filter accounts by how many years since they were established. Categories: `["0-3", "3-6", ..., "20+"]` | - Use autocomplete to select a range representing company age. - Accepts multiple `values`. - Logic compares establishment year against current date to determine match. | > | `google_category` | Filter accounts by their classified Google business category. Example: `["Paving contractor", "Retail"]` | - Use autocomplete to search and select from Google’s list of business categories. - Accepts `values`. - Logic filters companies based on Google’s classification field. | > | `naics_category` | Filter accounts by their 2017 NAICS industry code. Example: `["23", "5611"]` | - Use autocomplete to search and select valid NAICS industry codes. - Uses multiple `values`. - Logic matches selected code to structured industry metadata. | > | `linkedin_category` | Filter accounts by their classified LinkedIn® business category. Example: `["software development", "investment banking"]` | - Use autocomplete to search and select from LinkedIn® list of industry categories, or [download the full list as a CSV](https://assets.explorium.ai/reference/linkedin_categories.csv). - Accepts a list of `values`. - Logic filters based on LinkedIn® business category field. | > | `company_tech_stack_category` | Filter accounts by the technology categories they use. Example: `["Marketing", "CRM", "Cloud Services"]` | - Use autocomplete to search and select technology categories from a predefined list. - Uses multiple `values`. - Logic checks whether the account is associated with technologies in those categories. | > | `company_tech_stack_tech` | Filter accounts by the specific technologies they use. Example: `["JavaScript", "HTML5", "Apache"]` | - Use autocomplete to search and select specific technologies from the available list. - Accepts a list of `values`. - Logic checks for presence of selected technologies in the company’s tech stack. | > | `company_name` | Filter accounts by specific company names. Example: `["Google", "Walmart"]` | - Use autocomplete to search and select company names. - Accepts one or more `values`. - Logic performs exact match. | > | `number_of_locations` | Filter accounts by how many office locations they operate. Example: `["1", "2-5", "6+"]` | - Use autocomplete to select location range. - Accepts a list of `values`. - Logic checks for company location count metadata. | > | `website_keywords` | Filter accounts by specific keywords mentioned on their websites. Example: `["sustainability", "machine learning"]` | - Use keyword search to find companies mentioning certain terms. - Accepts free-text keywords or predefined tags. - Logic performs keyword match in indexed website content. Use `"OR"` for broad discovery, `"AND"` for precise targeting. Existing usage without `operator` continues to work with OR logic. | > | `business_intent_topics.topics` | Filters businesses based on active research around specific intent topics, returning`business_id` values of companies demonstrating relevant interest. Example: `["machine learning & artificial intelligence: openai", "technology: iphone"]` | - Accepts one or more **topic strings** following Bombora’s taxonomy. - Returns businesses with a **composite score >60** for at least one matching topic. - Recommended for pre-filtering businesses prior to enrichment or campaign targeting - Use the autocomplete endpoint with `business_intent_topics` — and with`semantic_search=true` — to discover broader and smarter intent-topic suggestions. Enabling semantic search helps surface wider contextual topics that users are actively researching, ensuring more accurate and effective filtering. **Premium filter — 2 credits per returned result.** | > | `events` | Filter accounts by specific **business event types** (a list of event identifiers). Example: `["new_product", "executive_joined_company"]` | - **`Must be used together with events.last_occurrence.`** - Uses a list of values. - The full list and definitions are available under **Business Events**. | > | `last_occurrence` | Filter accounts based on whether the selected events occurred within the last **N days**. Example: `45` | - **`Must be used together with events.values.`** - Accepts an integer **between 30 and 120** (default 120) - Checks events that occurred within the last **N days (lookback window)**. - See the full list of supported event types below. | > | `has_website` | Filter businesses by whether they have a website. Categories: `[True, False]` | - Uses a list of boolean values. - Best practice: set to `True` to focus on companies with an online presence. | > | `is_public_company` | Filter businesses by whether they are publicly traded (have a stock ticker). Categories: `[True, False]` | - Uses a list of boolean values. - Best practice: set to `True` when targeting enterprise/public companies with verified ticker data. | > | `include_operating_locations` | When `include_operating_locations=true`, the location filter matches companies that operate in the requested area even if their HQ is elsewhere; when `false`, only HQ location is matched. Example: a search for companies in the UK can return Samsung when `include_operating_locations=true` (operations in the UK), but not when `false` if Samsung HQ is outside the UK. | - Default is `false` in v2 (it was `true` in v1). - Use `false` when you want results strictly based on HQ location only. | > | `business_id` | Filter businesses by a specific list of Explorium business IDs | Use this to re-filter or enrich a known set of businesses from previous queries or your own data. Accepts an array of IDs in the `value` field. Can be combined with other filters for further refinement. | > > > [!TIP] > > > > **Finding valid LinkedIn categories:** You can discover supported `linkedin_category` values in two ways — use the [Autocomplete endpoint](/v2/autocomplete) with `field=linkedin_category` for interactive suggestions, or [download the full LinkedIn categories list as a CSV](https://assets.explorium.ai/reference/linkedin_categories.csv). Values are lowercase, e.g. `software development`. > > > [!TIP] > > > > **Finding valid intent topics:** You can discover supported intent topic values in two ways — use the [Autocomplete endpoint](/v2/autocomplete) with `business_intent_topics` (preferably with `semantic_search=true`) for interactive, relevance-ranked suggestions, or [download the full topics list as a CSV](https://assets.explorium.ai/reference/bombora/bombora-topics.csv), which is refreshed weekly with the complete Bombora taxonomy. Topics follow the `category: topic` format (e.g., `technology: ios`). > > > [!WARNING] > > > > **`business_intent_topics` is a premium filter — 2 credits per returned result** instead of the standard 1 credit per result. > > > > Always fetch with `mode: "full"` when filtering by intent — only full mode returns the **actual intent topics** each business is researching. > > > **Full list of supported event\_type values** > > > > * increase\_in\_customer\_service\_department > > * hiring\_in\_finance\_department > > * hiring\_in\_support\_department > > * increase\_in\_engineering\_department > > * decrease\_in\_customer\_service\_department > > * hiring\_in\_operations\_department > > * hiring\_in\_creative\_department > > * decrease\_in\_engineering\_department > > * hiring\_in\_sales\_department > > * increase\_in\_operations\_department > > * hiring\_in\_trade\_department > > * decrease\_in\_marketing\_department > > * increase\_in\_marketing\_department > > * hiring\_in\_marketing\_department > > * hiring\_in\_health\_department > > * hiring\_in\_education\_department > > * increase\_in\_all\_departments > > * decrease\_in\_all\_departments > > * decrease\_in\_sales\_department > > * decrease\_in\_operations\_department > > * hiring\_in\_professional\_service\_department > > * hiring\_in\_human\_resources\_department > > * increase\_in\_sales\_department > > * hiring\_in\_legal\_department > > * hiring\_in\_unknown\_department > > * hiring\_in\_engineering\_department > > * company\_award > > * new\_product > > * employee\_joined\_company > > * merger\_and\_acquisitions > > * lawsuits\_and\_legal\_issues > > * outages\_and\_security\_breaches > > * closing\_office > > * new\_investment > > * new\_office > > * new\_partnership > > * cost\_cutting > > * new\_funding\_round > > * award > > * ipo\_announcement > > > > ***Full definitions and examples for each event type are available under Business Events.*** > **Fetch Businesses Output Signal** > > The response returns a `data` array of business records matching your filters, along with pagination metadata. Each business record contains the following signals: > > | Signal API | Name | Description | Data Type | > | :- | :- | :- | :- | > | business\_id | Explorium entity ID | Explorium's 32-character unique entity ID associated with the company. Use this ID for all subsequent enrichment, events, and prospect-fetching calls. | string | > | name | Company name | Name of the company. | string | > | domain | Company domain | The company's website domain (e.g., `apple.com`). | string | > | website | Company website | Company's main website URL. | string | > | logo | Business logo | Link to the company's logo. | url | > | business\_description | Business description | An overview or summary of the business' mission statement, offered services, and general industry. | string | > | country\_name | Country | The country where the company's headquarters are located. | string | > | region | Region | State or region where the company's headquarters are located. | string | > | city\_name | City | The city where the company's headquarters are located. | string | > | number\_of\_employees\_range | Number of employees range all sites | Assigned employee-count range category across all company sites, including the headquarters and all branches (e.g., `11-50`). | string | > | yearly\_revenue\_range | Yearly revenue range all sites | Assigned revenue range category, generated at all company sites, measured per fiscal year (e.g., `1M-5M`). | string | > | naics | NAICS | 2017 North American Industry Classification System code that classifies the particular organization or business. | integer | > | naics\_description | NAICS description | Description of the 2017 NAICS industry code. | string | > | sic\_code | SIC code | Company's Standard Industrial Classification code. | string | > | sic\_code\_description | SIC code description | Description of the company's Standard Industrial Classification code. | string | > | linkedin\_profile | LinkedIn® profile | Company's LinkedIn® profile page. | string | > | business\_intent\_topics | Business intent topics | Intent topics (Bombora taxonomy) the business is actively researching. Populated when filtering by `business_intent_topics` — **returned in `mode: "full"` only**. | array\ | > | events | Business events | Business event types associated with the company (e.g., `new_funding_round`). Populated when filtering by `events`. | array\ | > > In addition to `data`, the response includes pagination metadata: > > | Signal API | Name | Description | Data Type | > | :- | :- | :- | :- | > | response\_context | Response context | Metadata about the request, including `correlation_id`, `request_status`, and `time_taken_in_seconds`. | object | > | total\_results | Total results | The total number of businesses that match the filters. | integer | > | page | Page | Pagination details. With page numbers (`page` sent in the request): `size`, `number`, and `total_pages`. With cursor pagination: `size` and `next_cursor`. | object | > > *** For detailed endpoint explanations, request examples, and integration tips, explore the documentation sections above. ## Body Params - Try Me Example ```text theme={null} mode: full size: 10000 page_size: 100 page: 1 Filters: country_code: us company_size: 11-50, 51-200 ``` # Fetch businesses statistics Source: https://developers.explorium.ai/v2/businesses/fetch_businesses_statistics post /v2/businesses/stats ## Description The **Fetch Business Statistics** endpoint provides **aggregated insights** into businesses by industry, revenue, employee count, and geographic distribution. It enables users to analyze market trends, segment industries, and gain a high-level overview of business activity within specified parameters. > **Coverage** > > | Attribute | Coverage Details | > | :- | :- | > | **Total Businesses Analyzed** | 80M+ businesses across 150+ countries | > | **Industry Breakdown** | Distribution across 50+ industry categories | > | **Revenue Distribution** | | > | **Company Size Analysis** | Categorized by employee count (1-10, 11-50, 51-200, etc.) | > | **Geographic Segmentation** | Supports regional and country-level filtering | > **How It Works** > > * **Input:** Define filter parameters such as industry, region, and company size. > * **Processing:** The system aggregates data across relevant datasets to generate statistics. > * **Output:** A structured response with key insights into business distribution and segmentation. > **Query Parameters** > > | Parameter | Type | Description | > | :- | :- | :- | > | `filters` | Object | Defines the filtering criteria for statistics retrieval (e.g., country, industry) | > | `region_country_code` | Array | Filters businesses by specific regions within countries (e.g., `us-ca`, `us-ga`) | > | `company_size` | Array | Filters by number of employees (e.g., `1-10`, `11-50`, `51-200`) | > **Example Request (cURL)** > > ```shell Bash theme={null} > curl --request POST \ > --url https://api.explorium.ai/v2/businesses/stats \ > --header 'Content-Type: application/json' \ > --header 'accept: application/json' \ > --header 'api_key: key' \ > --data '{ > "filters": { > "region_country_code": { > "type": "includes", > "values": [ > "us-ca", > "us-ga", > "us-ut" > ] > }, > "company_size": { > "type": "includes", > "values": [ > "1-10", > "11-50", > "51-200" > ] > } > } > }' > ``` > **Example Response** > > ```json JSON theme={null} > { > "total_results": 29229, > "stats": { > "business_categories_per_location": { > "Software company": { > "California, US": 22093, > "Georgia, US": 4898, > "Utah, US": 2031, > "total": 29022 > }, > "Computer software store": { > "California, US": 160, > "Georgia, US": 33, > "Utah, US": 12, > "total": 205 > }, > "total_per_location": { > "California, US": 22255, > "Georgia, US": 4931, > "Utah, US": 2043, > "total": 29229 > } > } > } > } > ``` > **Schema Explanation** > > | Field | Type | Description | > | :- | :- | :- | > | `filters` | Object | Defines the filtering criteria for the statistics request. | > | `total_results` | Number | Total number of businesses included in the statistics. | > | `stats` | Object | Contains breakdowns by category, revenue, employees, and locations. | > **Best Practices** > > * **Use targeted filters** to focus on specific industries or regions. > * **Combine multiple attributes** (e.g., `region_country_code` + `company_size`) for in-depth segmentation. > * **Utilize aggregated insights** to optimize marketing strategies and market analysis. > > ### **Note on Filter Usage** > > * All available **business filters** (e.g., `region_country_code`, `company_size`, etc.) can be applied in this endpoint. > * **Only one category filter** can be used per request: choose from either `Google category`, `LinkedIn industry`, or `NAICS code`. Combining them is not supported. For detailed endpoint explanations, request examples, and integration tips, explore the documentation sections above. ## Body Params - Try Me Example ```text theme={null} filters: region_country_code: us-ca, us-ga, us-ut company_size: 1-10, 11-50, 51-200 Note: For any unused filter, set \`negate\` (boolean) as empty instead of \`false\`, as it defaults to \`false\`. ``` # Match businesses Source: https://developers.explorium.ai/v2/businesses/match_businesses post /v2/businesses/match ## Description The **Match Businesses** endpoint is the **first step** in the data enrichment process. It enables users to accurately identify businesses based on their **name or domain**, returning a **unique Business ID** that acts as the **foundation for all subsequent API interactions**. This endpoint is designed to provide **high-accuracy business matching** by leveraging **multiple data sources, validation layers, and proprietary algorithms** to ensure precise identification. Once a business is successfully matched, its **Business ID** becomes the **primary key** for retrieving enriched company data, accessing financial insights, monitoring real-time business events, and performing additional analytics through other Explorium APIs. > [!NOTE] > > **v2:** this endpoint accepts either a single ID (a string) or a list of up to 50 IDs — the separate `/bulk_enrich` route is gone. See [v2 conventions](/v2/conventions). > **Coverage** > > | Attribute | Coverage Details | > | :- | :- | > | **Total Businesses** | 80M+ businesses across 150+ countries | > | **Matching Accuracy** | Advanced entity resolution for precise business identification | > | **Real-Time Updates** | Ensures the latest business records are used for matching | > **How It Works** > > ### How It Works > > **Input**: A list of business identifiers, which can include `name`, `website (domain)`, and `linkedin_company_url`.\ > **Processing**: The system cross-references multiple internal datasets to determine the best possible match.\ > **Output**: A structured response containing the matched Business IDs, preserving the exact order of the input list. > > *** > > ### Matching Strategy > > When using the **Business Match** endpoint, the system applies a multi-step resolution strategy based on the fields you provide — primarily `name` and `website`. > > #### 1. Primary Matching — Smart Fuzzy Logic (Name + Website) > > We begin by attempting to match the business using both the company name and website domain.\ > The company name is evaluated using a smart fuzzy matching algorithm designed to handle: > > * Common variations and abbreviations > * Typos and noisy CRM inputs > * Token normalization, semantic similarity, and industry-aware string processing > > The website (domain) serves as a strong anchoring signal to disambiguate between similarly named companies and to boost confidence.\ > This phase ensures high-precision matching while remaining robust to imperfect input data. > > #### 2. Fallback Matching — Website Only > > If the system fails to find a confident match using both name and domain, it automatically falls back to matching by website alone.\ > Because domains are typically unique and consistent across organizations, this fallback ensures matches can still be returned when the company name is incomplete, inconsistent, or incorrect. > > *** > > ### Important Notes > > * Fallback matching from **name + website → website only** occurs only when both fields are provided. > * If only the website is supplied, it will be used directly for matching. > * If only the name is provided, matching relies solely on fuzzy name resolution without domain anchoring. > * This logic is aligned with the AgentSource model, which emphasizes main site-level resolution (not individual branches). > > *** > > ### Example Scenarios > > | Input | Matching Outcome | > | :- | :- | > | `Name: Starbucks EMEA`, `Website: starbucks.com` | Match using name + website (fuzzy supported) | > | `Name: abcxyz`, `Website: starbucks.com` | Fallback — match using website only | > | `Name: Starbucks`, `Website: fakeurl.xyz` | No match — invalid domain | > | `Name: (empty)`, `Website: starbucks.com` | Match using website only | > | `Name: Starbuks Intl Ltd`, `Website: starbucks.com` | Match using fuzzy logic + website | > > ### Recommendation > > To get the best possible results: > > * Always include both `name` and `website` when calling the Business Match endpoint. > * This enables the system to apply smart fuzzy matching **and** fallback recovery for unmatched names — maximizing accuracy, coverage, and confidence. > **Schema Explanation** > > | **Field** | **Type** | **Description** | > | :- | :- | :- | > | `businesses_to_match` | Array | List of business identifiers to match (can include name, domain, LinkedIn) | > | `name` | String | Business name provided for matching | > | `domain` | String | Business domain provided for matching | > | `linkedin_url` | String | LinkedIn company profile URL (optional, improves matching accuracy) | > | `business_id` | String | Unique identifier for the matched business (null if not found) | > **Best Practices** > > * **Always store the Business ID** – It serves as the key for all future enrichment and analytics. > * **Use multiple identifiers** (e.g., name + domain, or LinkedIn URL) for **higher match accuracy**. > * **Batch requests** to reduce HTTP overhead — but note that each business in the array counts as one query against your rate limit. > * **Mind your rate limit:** a 50-business match request uses 50 of your 200 queries per minute. See [Rate Limit](/reference/rate-limit) for details. > * **Handle null values gracefully** to account for unmatched businesses. > * **Update and validate input data regularly** to ensure the most accurate matches. > **Body Params – Example with LinkedIn URL** > > ```json theme={null} > { > "request_context": { > "seller_id": "sample_seller" > }, > "businesses_to_match": [ > { > "name": "microsoft", > "linkedin_url": "https://linkedin.com/company/microsoft" > } > ] > } > ``` For detailed endpoint explanations, request examples, and integration tips, explore the documentation sections above. ## Body Params - Try Me Example ```text theme={null} name: Apple domain: apple.com name: Microsoft domain: microsoft.com ``` > [!WARNING] > > **Rate limits are counted per query, not per request.** Each business in the `businesses_to_match` array counts as a separate query toward your [rate limit](/reference/rate-limit). A single request that matches 50 businesses consumes **50 queries** from your 200-queries-per-minute limit — not 1. Batching reduces HTTP/network overhead, but it does **not** reduce the number of queries counted against your rate limit. Size your batches accordingly. # v2 conventions Source: https://developers.explorium.ai/v2/conventions Rules that apply across every AgentSource v2 endpoint: path versioning, single endpoints instead of bulk routes, and the sync/async pairing. These rules hold across the whole v2 surface, so they are not repeated on individual endpoint pages. ## Path versioning Every endpoint moves under the `/v2` path, replacing its `/v1` equivalent. ``` POST /v1/businesses/firmographics/bulk_enrich → POST /v2/businesses/firmographics/enrich ``` ## No more bulk endpoints A single endpoint accepts either one ID (a string) or a list of IDs. The separate `/bulk_enrich` routes are removed. ```json Single ID theme={null} { "business_ids": "a34bacf839b923770b2c360eefa26748" } ``` ```json List of IDs theme={null} { "business_ids": ["a34bacf839b923770b2c360eefa26748", "8adce3ca1cef0c986b22310e369a0793"] } ``` IDs are the primary way to call a sync enrichment. As an alternative, every sync enrichment except Research also accepts up to 50 `businesses_to_match` or `prospects_to_match` (the same inputs as the match endpoints) and matches and enriches them in one call. Send either the IDs or the match inputs, never both. Each enrichment page shows an example. ```json Match inputs instead of IDs theme={null} { "businesses_to_match": [{ "name": "Explorium", "domain": "explorium.ai" }] } ``` ## Sync vs. async pairing Each enrichment exposes two endpoints: | Variant | Path | Input | Use when | | :- | :- | :- | :- | | **Sync** | `.../enrich` | A single ID or a list of up to 50 (or up to 50 match inputs) | You want results in the response | | **Async** | `.../job` | A `list_id` from an uploaded dataset | Large runs, up to 10,000 records | > [!WARNING] > > The "single ID or a list of IDs" rule above applies to **sync** endpoints. Async `.../job` endpoints take a `list_id` from the [dataset upload endpoint](/v2/jobs/upload_entity_id_dataset) and do not accept inline IDs — see the [end-to-end guide](/v2/async-guide). Both are `POST`. The async variant is subject to the async job limits: **max 10K input records** and a **24-hour maximum run time**. ## Related > **[Async jobs](/v2/async-jobs)** > > How job submission, polling, and retrieval work > **[Migrating from v1](/v2/migration-from-v1)** > > Apply these conventions to your existing calls # Credits aggregation Source: https://developers.explorium.ai/v2/credits/credits_aggregation post /v2/credits/aggregation ## Overview The Credit Consumption Aggregation endpoint provides detailed analytics on credit usage across your account. Query consumption data by time periods (hourly, daily, monthly) or by API endpoint to understand usage patterns and optimize your credit allocation. ## Authentication Include your account API key in the request header: ```bash theme={null} api_key: YOUR_API_KEY ``` ## Request Body **from\_date** `string` *required* Start date and time for the aggregation period (ISO 8601 format) **Example:** `"2025-08-23T00:00:00Z"` **to\_date** `string` *required* End date and time for the aggregation period (ISO 8601 format) **Example:** `"2025-08-24T00:00:00Z"` **resolution** `string` *required* Time resolution for aggregating credit data **Allowed values:** `hour` | `day` | `month` **Date range limits:** * `hour`: Maximum 7 days * `day`: Maximum 60 days * `month`: Maximum 2 years **timezone** `string` Timezone for the aggregation (default: UTC) **Example:** `"America/New_York"` **key\_name** `string` Optional API key name to scope aggregation results to a specific API key. When provided, only credit consumption associated with the named API key is included in the response. **Example:** `"production-key"` ## Response Returns a JSON object containing aggregated credit consumption data: **response\_context** `object` Metadata about the API response **properties** **correlation\_id** `string` Unique identifier for tracking the request **request\_status** `string` Status of the request (`success` or `failure`) **time\_taken\_in\_seconds** `number` Request processing time in seconds **from\_date** `string` Start date of the aggregation period **to\_date** `string` End date of the aggregation period **resolution** `string` Time resolution used for aggregation **timezone** `string` Timezone applied to the aggregation **total\_credits** `integer` Total credits consumed during the specified period **aggregations** `array` Array of aggregated credit consumption data points **properties** **timestamp** `string` ISO 8601 timestamp for the aggregation bucket **credits** `integer` Credits consumed in this time period **hour** `string` Hour in 24-hour format (only for hourly resolution) **Example:** `"13:00"` **date** `string` Date of the aggregation (for hourly and daily resolution) **Example:** `"2025-08-23"` **day\_name** `string` Name of the day (only for daily resolution) **Example:** `"Monday"` **day\_of\_week** `integer` Day of the week as number 0-6 (only for daily resolution) **Example:** `1` (Monday) **year** `integer` Year (only for monthly resolution) **Example:** `2025` **month** `integer` Month number 1-12 (only for monthly resolution) **Example:** `2` **month\_name** `string` Full month name (only for monthly resolution) **Example:** `"February"` **month\_abbr** `string` Abbreviated month name (only for monthly resolution) **Example:** `"FEB"` ## Examples ```bash Hourly Resolution theme={null} curl --request POST \ --url https://api.explorium.ai/v2/credits/aggregation \ --header 'Content-Type: application/json' \ --header 'api_key: YOUR_API_KEY' \ --data '{ "from_date": "2025-08-23T00:00:00Z", "to_date": "2025-08-24T00:00:00Z", "resolution": "hour" }' ``` ```bash Daily Resolution theme={null} curl --request POST \ --url https://api.explorium.ai/v2/credits/aggregation \ --header 'Content-Type: application/json' \ --header 'api_key: YOUR_API_KEY' \ --data '{ "from_date": "2025-08-17T00:00:00Z", "to_date": "2025-08-24T00:00:00Z", "resolution": "day" }' ``` ```bash Monthly Resolution theme={null} curl --request POST \ --url https://api.explorium.ai/v2/credits/aggregation \ --header 'Content-Type: application/json' \ --header 'api_key: YOUR_API_KEY' \ --data '{ "from_date": "2025-01-01T00:00:00Z", "to_date": "2025-07-01T00:00:00Z", "resolution": "month" }' ``` ```bash With Timezone theme={null} curl --request POST \ --url https://api.explorium.ai/v2/credits/aggregation \ --header 'Content-Type: application/json' \ --header 'api_key: YOUR_API_KEY' \ --data '{ "from_date": "2025-08-23T00:00:00Z", "to_date": "2025-08-24T00:00:00Z", "resolution": "day", "timezone": "America/New_York" }' ``` ```bash Scoped to API Key theme={null} curl --request POST \ --url https://api.explorium.ai/v2/credits/aggregation \ --header 'Content-Type: application/json' \ --header 'api_key: YOUR_API_KEY' \ --data '{ "from_date": "2025-08-17T00:00:00Z", "to_date": "2025-08-24T00:00:00Z", "resolution": "day", "key_name": "production-key" }' ``` ```json Hourly Response theme={null} { "response_context": { "correlation_id": "5618d686ecb849fda660c3023acf3120", "request_status": "success", "time_taken_in_seconds": 0.245 }, "from_date": "2025-08-23T00:00:00Z", "to_date": "2025-08-24T00:00:00Z", "resolution": "hour", "timezone": "UTC", "total_credits": 1245, "aggregations": [ { "timestamp": "2025-08-23T00:00:00Z", "hour": "00:00", "date": "2025-08-23", "credits": 45 }, { "timestamp": "2025-08-23T01:00:00Z", "hour": "01:00", "date": "2025-08-23", "credits": 52 }, { "timestamp": "2025-08-23T13:00:00Z", "hour": "13:00", "date": "2025-08-23", "credits": 89 } ] } ``` ```json Daily Response theme={null} { "response_context": { "correlation_id": "a7b8c9d0e1f2g3h4i5j6k7l8m9n0o1p2", "request_status": "success", "time_taken_in_seconds": 0.189 }, "from_date": "2025-08-17T00:00:00Z", "to_date": "2025-08-24T00:00:00Z", "resolution": "day", "timezone": "UTC", "total_credits": 3456, "aggregations": [ { "timestamp": "2025-08-17T00:00:00Z", "date": "2025-08-17", "day_name": "Saturday", "day_of_week": 6, "credits": 234 }, { "timestamp": "2025-08-18T00:00:00Z", "date": "2025-08-18", "day_name": "Sunday", "day_of_week": 0, "credits": 0 }, { "timestamp": "2025-08-19T00:00:00Z", "date": "2025-08-19", "day_name": "Monday", "day_of_week": 1, "credits": 567 } ] } ``` ```json Monthly Response theme={null} { "response_context": { "correlation_id": "q2r3s4t5u6v7w8x9y0z1a2b3c4d5e6f7", "request_status": "success", "time_taken_in_seconds": 0.312 }, "from_date": "2025-01-01T00:00:00Z", "to_date": "2025-07-01T00:00:00Z", "resolution": "month", "timezone": "UTC", "total_credits": 15678, "aggregations": [ { "timestamp": "2025-01-01T00:00:00Z", "year": 2025, "month": 1, "month_name": "January", "month_abbr": "JAN", "credits": 2345 }, { "timestamp": "2025-02-01T00:00:00Z", "year": 2025, "month": 2, "month_name": "February", "month_abbr": "FEB", "credits": 1890 }, { "timestamp": "2025-03-01T00:00:00Z", "year": 2025, "month": 3, "month_name": "March", "month_abbr": "MAR", "credits": 2567 } ] } ``` ## Error Responses ```json Invalid Date Range (400) theme={null} { "response_context": { "correlation_id": "error123456789", "request_status": "failure", "time_taken_in_seconds": 0.012 }, "error": { "code": "INVALID_DATE_RANGE", "message": "The from_date must be before to_date", "details": { "from_date": "2025-08-24T00:00:00Z", "to_date": "2025-08-23T00:00:00Z" } } } ``` ```json Unauthorized (401) theme={null} { "response_context": { "correlation_id": "auth987654321", "request_status": "failure", "time_taken_in_seconds": 0.008 }, "error": { "code": "UNAUTHORIZED", "message": "Invalid or missing API key" } } ``` ```json Invalid Resolution (400) theme={null} { "response_context": { "correlation_id": "error456789123", "request_status": "failure", "time_taken_in_seconds": 0.010 }, "error": { "code": "INVALID_RESOLUTION", "message": "Resolution must be one of: hour, day, month" } } ``` ## Use Cases **Monitoring Credit Usage Patterns** Track how your credit consumption varies throughout the day, week, or month to identify peak usage times and optimize your API call scheduling. **Budget Planning** Use monthly aggregations to understand long-term trends and plan your credit allocation for upcoming periods. **Anomaly Detection** Monitor hourly or daily consumption to quickly identify unexpected spikes in usage that may indicate issues or opportunities for optimization. **Reporting and Analytics** Generate detailed consumption reports for internal stakeholders or integrate with your own analytics dashboards for comprehensive visibility. # Credits Source: https://developers.explorium.ai/v2/credits/get_credits get /v2/credits Returns the **allocated** and **remaining** credits for your account. Use this endpoint to monitor your current credit usage and remaining balance. ## Endpoint: **GET** `https://api.explorium.ai/v2/credits` ### Authentication Include your **account API key** in the request header: ### Response Returns a JSON object containing: | Field | Type | Description | | :- | :- | :- | | `allocated_credits` | Integer | Total number of credits assigned to the account | | `remaining_credits` | Integer | Number of credits currently available for use | | `response_context` | Object | Metadata about the API response (correlation ID etc) | ### Example Response ```json JSON theme={null} { "response_context": { "correlation_id": "5618d686ecb849fda660c3023acf3120", "request_status": "success", "time_taken_in_seconds": 0.074 }, "allocated_credits": 1000, "remaining_credits": 964 } ``` # Per-Call Credit Usage Source: https://developers.explorium.ai/v2/credits/per-call-credit-usage Opt in to per-call credit reporting and receive the exact credits deducted for each API request directly in the response. ## Overview The **Per-Call Credit Usage** feature lets you see exactly how many credits a request consumed, returned inline with that request's response. This gives you call-level visibility into consumption so you can track, attribute, and optimize your usage in real time, without making a separate call to the [Credits aggregation](/v2/credits/credits_aggregation) endpoint. The feature is **opt-in**. It is enabled per request via a request header and has **no effect** on existing integrations that don't send the header. **Why is this useful?** * **Real-time cost attribution** — Know the cost of each call as it happens, without polling an aggregation endpoint. * **Usage optimization** — Compare the credit cost of different filters and page sizes to tune your queries. * **Accurate downstream reporting** — Tooling and integrations (such as MCP-based agents) can report precise resource usage back to the caller. > [!NOTE] > > Enabling this feature does **not** consume additional credits. It only reports the credits already deducted for the request you made. ## Enabling Per-Call Credit Usage Opt in by sending the following request header: ```bash theme={null} credit-usage: true ``` When this header is present and set to `true`, the response includes an additional `credit_usage` object alongside the standard payload. When the header is **omitted** or set to **any other value**, the response is returned unchanged. ## Request Header **credit-usage** `boolean` (default: false) Set to `true` to include the `credit_usage` object in the response. Any other value, or omitting the header entirely, leaves the response unchanged. The header is case-insensitive in its value (`true` / `True`). ## Response When opted in, the standard response payload is returned with one additional top-level field: **credit\_usage** `object` Credit consumption details for this specific API call. Present only when the request includes `credit-usage: true`. **properties** **total\_results** `integer` The number of results included in this specific response (i.e. the records actually returned by this call). **total\_credits** `integer` The number of credits deducted for this specific API call. > [!NOTE] > > `credit_usage.total_results` reports the number of records **returned and billed in this call**, which is not the same as the top-level `total_results` field that some endpoints return. The top-level `total_results` reflects the **total number of records that match your filters** across all pages, while `credit_usage.total_results` reflects only what this single response returned. ## Examples ### Request ```bash Fetch Businesses theme={null} curl --request POST \ --url https://api.explorium.ai/v2/businesses \ --header 'Content-Type: application/json' \ --header 'api_key: YOUR_API_KEY' \ --header 'credit-usage: true' \ --data '{ "mode": "full", "page_size": 100, "filters": { "country_code": { "values": ["us"] }, "company_size": { "values": ["11-50", "51-200"] } } }' ``` ```python Python theme={null} import requests url = "https://api.explorium.ai/v2/businesses" headers = { "Content-Type": "application/json", "api_key": "YOUR_API_KEY", "credit-usage": "true", } payload = { "mode": "full", "page_size": 100, "filters": { "country_code": {"values": ["us"]}, "company_size": {"values": ["11-50", "51-200"]}, }, } response = requests.post(url, headers=headers, json=payload) data = response.json() print(data["credit_usage"]["total_credits"]) ``` ```javascript Node.js theme={null} const response = await fetch("https://api.explorium.ai/v2/businesses", { method: "POST", headers: { "Content-Type": "application/json", "api_key": "YOUR_API_KEY", "credit-usage": "true", }, body: JSON.stringify({ mode: "full", page_size: 100, filters: { country_code: { values: ["us"] }, company_size: { values: ["11-50", "51-200"] }, }, }), }); const data = await response.json(); console.log(data.credit_usage.total_credits); ``` ### Response ```json Opted In (credit-usage: true) theme={null} { "response_context": { "correlation_id": "9d7864f9ee2b450bbf84e2f4a2d81292", "request_status": "success", "time_taken_in_seconds": 0.42 }, "data": [ { "business_id": "8adce3ca1cef0c986b22310e369a0793", "name": "Acme Corporation", "domain": "acme.com" } ], "total_results": 4321, "page": { "size": 100, "next_cursor": "0.0|2571821.0|8adce3ca1cef0c986b22310e369a0793" }, "credit_usage": { "total_credits": 100, "total_results": 100 } } ``` ```json Opted Out (header omitted) theme={null} { "response_context": { "correlation_id": "9d7864f9ee2b450bbf84e2f4a2d81292", "request_status": "success", "time_taken_in_seconds": 0.42 }, "data": [ { "business_id": "8adce3ca1cef0c986b22310e369a0793", "name": "Acme Corporation", "domain": "acme.com" } ], "total_results": 4321, "page": { "size": 100, "next_cursor": "0.0|2571821.0|8adce3ca1cef0c986b22310e369a0793" } } ``` ## Behavior | Header value | Response behavior | | :- | :- | | `credit-usage: true` | Standard payload **plus** the `credit_usage` object. | | Any other value | Standard payload, unchanged. No `credit_usage` object. | | Header omitted | Standard payload, unchanged. No `credit_usage` object. | Because the field is only added when you explicitly opt in, existing integrations are unaffected and the change is fully backward compatible. ## Supported Endpoints The `credit-usage` header is supported across the v2 endpoints, including: * **Businesses** — Fetch Businesses, Match Businesses, Fetch Businesses Statistics, synchronous Business Enrichments (`.../enrich`), and Business Events. * **Prospects** — Fetch Prospects, Match Prospects, Fetch Prospects Statistics, synchronous Prospect Enrichments (`.../enrich`), and Prospect Events. Endpoints that don't charge credits, such as Match, still return the `credit_usage` object when you opt in, with `total_credits: 0`. > [!NOTE] > > **Async jobs report credit usage automatically.** For enrichments submitted through `.../job`, you don't need the header: the [job status](/v2/jobs/get_job_status) response includes a `credit_usage` object once the job finishes. ## Related * [Get credits](/v2/credits/get_credits) — Check your current credit balance. * [Credits aggregation](/v2/credits/credits_aggregation) — Retrieve aggregated consumption across time ranges or endpoints. * [Tracking Your Credits](/reference/credits/tracking_your_credits) — Monitor overall usage in the Admin Portal. Need help? Contact [support@explorium.ai](mailto:support@explorium.ai). # Events Source: https://developers.explorium.ai/v2/endpoints/events Fetch business and prospect events, enroll entities for monitoring, and receive deliveries through tenant-scoped webhooks — all live in v2. > [!NOTE] > > The full v2 events surface is live: [fetch events](/v2/businesses/events/fetch_events) on demand, or enroll entities and receive pushes through [webhooks](/v2/endpoints/webhooks). ## Two ways to consume events * **Pull** — [fetch business events](/v2/businesses/events/fetch_events) or [fetch prospect events](/v2/prospects/events/fetch_events) on demand, up to 40 IDs per request. The fetch pages also catalog every available event type, from IPO announcements to hiring trends. * **Push** — enroll entities once and receive deliveries as events happen: create an enrollment bound to a [webhook](/v2/endpoints/webhooks) via `webhook_id`. ## Endpoints | Purpose | Businesses | Prospects | | :- | :- | :- | | Fetch events | [`POST /v2/businesses/events`](/v2/businesses/events/fetch_events) | [`POST /v2/prospects/events`](/v2/prospects/events/fetch_events) | | Create enrollment | [create](/v2/businesses/events/create_enrollment) | [create](/v2/prospects/events/create_enrollment) | | List enrollments | [list](/v2/businesses/events/list_enrollments) | [list](/v2/prospects/events/list_enrollments) | | Update enrollment | [update](/v2/businesses/events/update_enrollment) | [update](/v2/prospects/events/update_enrollment) | | Delete enrollment | [delete](/v2/businesses/events/delete_enrollment) | [delete](/v2/prospects/events/delete_enrollment) | ## Changed from v1 The `new_funding_round` event payload corrects two field names: | v1 field | v2 field | | :- | :- | | `founding_stage` | `funding_stage` | | `founding_date` | `funding_date` | See [What's new](/v2/whats-new#signal-fixes). ### Enrollments bind to a webhook v2 enrollments gain a **required `webhook_id`**, referencing a [v2 webhook](/v2/endpoints/webhooks) explicitly: ```json Create enrollment theme={null} { "enrollment_key": "my_b2b_saas_monitor", "webhook_id": "wh_9f2c81ab", "event_types": ["ipo_announcement", "new_funding_round"], "business_ids": ["8adce3ca1cef0c986b22310e369a0793"] } ``` The binding is **strict** — the referenced webhook must exist in your scope and be `active`. Unknown IDs return `404`; a missing `webhook_id` or a webhook with the wrong scope or status returns `422`. The system **never silently substitutes** another webhook. (v1 enrollments have no `webhook_id` and keep delivering to the legacy partner-level webhook unchanged.) Enrollments also gain a server-generated `enrollment_id` and a `status`: * `active` — delivering normally * `paused` — retained but delivering nothing (set when the referenced webhook is force-deleted) `PATCH` updates any mutable field — `webhook_id`, `enrollment_key`, `event_types`, or the entity ID list. Re-pointing a paused enrollment to an active webhook reactivates it, without re-enrolling entities. List responses return each enrollment with its `enrollment_id`, `webhook_id`, `status`, `event_types`, and entity IDs. ### Delivered payloads carry their source Event payloads add delivery-source fields so a shared handler can route without relying on `enrollment_key` alone: `webhook_id`, `tenant_id`, `partner_id`, and `enrollment_id`, alongside the existing event fields. Signature verification is unchanged — HMAC over `timestamp.payload`, computed with the secret of the delivering webhook. ## Related > **[Webhooks](/v2/endpoints/webhooks)** > > Deliver events to your own endpoints — also currently served by v1 # Research (GenAI) Source: https://developers.explorium.ai/v2/endpoints/research Run a custom, AI-powered research task over businesses or prospects: describe the task in natural language or a prompt template, define your own output schema, and optionally ground the analysis in real-time web data. ## What Research does The **Research** endpoint runs a **custom, AI-powered analysis** over a list of entities. Instead of returning a fixed enrichment schema, you describe the task — either as a natural-language **`query`** or as a **`prompt_template`** — and define the exact shape of the result with an **`output_schema`**. For each entity, the engine resolves its profile, optionally performs **real-time web research**, and returns structured JSON that conforms to your schema. This is ideal when an off-the-shelf enrichment doesn't exist for your use case, for example: * **Custom classification** — e.g. B2B vs B2C, ICP fit, seniority or buying-role inference. * **Fit scoring with reasoning** — score each account or contact against a value proposition and explain why. * **Campaign-ready copy** — one-line segments or personalized openers tailored per entity. Each entity is processed independently against your prompt and schema, so a single request can research many records at once. ## Endpoints Research runs on two entity types. The concepts on this page apply to both; each endpoint page documents its own record fields, request shape, and examples. | Entity | Sync | Async | | :- | :- | :- | | Businesses | [`/v2/businesses/research/enrich`](/v2/research/businesses_research_enrich) | [`/v2/businesses/research/job`](/v2/research/businesses_research_job) | | Prospects | [`/v2/prospects/research/enrich`](/v2/research/prospects_research_enrich) | [`/v2/prospects/research/job`](/v2/research/prospects_research_job) | All are `POST`. Sync endpoints accept a single ID or a list of IDs; async endpoints take a `list_id` from an uploaded dataset — see [v2 conventions](/v2/conventions) and [async jobs](/v2/async-jobs). Authenticate with your API key in the `api_key` header. See [Getting your API key](/reference/setup/getting_your_api_key). ## How it works > **How It Works** > > * **Input:** A list of entities (each identified by a `business_id` or `prospect_id`, with optional `custom_fields`) plus a `parameters` object containing **either** a `query` **or** a `prompt_template`, and an `output_schema` (required with `prompt_template`, optional with `query`). > * **Processing:** For each entity, Explorium resolves the profile and builds a `record` context. When you pass a `query`, an internal LLM first generates an optimized prompt from your instruction, the available `record` fields, and the available research functions — and, if you didn't supply an `output_schema`, generates one as well. When you pass a `prompt_template`, your prompt is used as-is. The engine then runs the prompt — performing web research where instructed — and produces structured output constrained to the schema. > * **Output:** One result row per input entity, returned under `data`. Each successful row contains the generated fields defined by the `output_schema`; failed rows are returned with an `_error` field rather than being dropped. > **`query` vs `prompt_template`** > > You must provide **exactly one** of `query` or `prompt_template`. Sending both, or neither, returns a validation error. > > | | `query` | `prompt_template` | > | :- | :- | :- | > | **What you write** | A natural-language instruction describing the insight you want | A prompt with placeholders that reference fields on the `record` | > | **Prompt construction** | An internal LLM composes an optimized prompt from your instruction, the available `record` fields, and the available research functions | Your prompt is passed to the engine as-is, with no modification | > | **Best for** | End-user-facing flows (VP chat, Hub) and quick, general instructions | Precise, repeatable prompts; power users; programmatic/MCP access where the caller builds the prompt itself | > | **Research functions** | Selected automatically by the prompt generator | Invoked inline by the prompt author — up to two per template (see [Research functions](#research-functions)) | > | **Custom fields** | Available to the model as part of the entity context | Referenced explicitly, e.g. `{{ record['campaign_name'] }}` | > | **`output_schema`** | Optional — generated automatically from your instruction if omitted | Required — omitting it returns a validation error | > **The `record` context** > > When rendering a `prompt_template` (and when the model composes a prompt from a `query`), each entity is represented by a `record` object. The `record` contains: > > * **Explorium profile fields** resolved from the identifier. For **businesses**, fields such as `record['organization_name']` and `record['description']`. For **prospects**, fields such as `record['full_name']`, `record['job_title']`, and `record['organization_name']`. > * **Any `custom_fields`** you supplied for that entity — for example `record['campaign_name']`. > > Reference these in a `prompt_template` using `{{ record['field_name'] }}`. Custom fields are merged into the same `record` namespace as the profile fields, so they're referenced the same way. The full field list lives on each endpoint page: [businesses](/v2/research/businesses_research_enrich#record-fields) and [prospects](/v2/research/prospects_research_enrich#record-fields). ## Real-time web research What sets Research apart from standard enrichments is that the engine can **ground its analysis in live web data**, not just the data already on file. Per entity, it can: * **Run a SERP search** and use the top results as context for the model. * **Search and scrape** the most relevant web pages and pass that content to the model as grounding context. You steer this directly from your instruction — for example, *"…use web search to validate if the description is insufficient"* or *"…use web search to supplement missing context."* When the resolved profile is enough, the model can answer from it; when it isn't, the model can reach out to the web. > [!NOTE] > > Because some rows trigger live web lookups, per-entity latency varies and can take several seconds. Size your batches and set client timeouts accordingly. > [!NOTE] > > **v2:** this endpoint accepts either a single ID (a string) or a list of IDs — the separate `/bulk_enrich` route is gone. See [v2 conventions](/v2/conventions). ## Research functions Inside a `prompt_template`, you can call **research functions** to ground the analysis in live web data. Render them with `{{ ... }}` just like a record field: the function runs first, and its output — SERP results or scraped page text — is injected into the prompt as context before the model reasons over it. Their arguments are typically built from `record` fields (e.g. `record['organization_name']`, `record['url']`). You can use **up to two** research functions in a single `prompt_template`. > [!NOTE] > > These functions apply to `prompt_template` only. When you pass a `query`, the prompt generator selects and invokes the appropriate research functions automatically based on your instruction — you don't call them explicitly. ### `ReadMostRelevantLinks` Runs a SERP search for `query` and scrapes the top `max_results` result pages, injecting their combined content into the prompt as grounding context. Use it when the company or person isn't well described by the resolved profile alone and you want fresh, broad web context. **query** `string` *required* The search query to run. Commonly built from a record field, e.g. `record['organization_name']`. **max\_results** `integer` The number of top SERP results to fetch and scrape. ```text theme={null} {{ ReadMostRelevantLinks(query=record['organization_name'], max_results=4) }} ``` ```json Businesses — SERP search + scrape theme={null} { "business_id": "8adce3ca1cef0c986b22310e369a0793", "parameters": { "prompt_template": "{{ ReadMostRelevantLinks(query=record['organization_name'], max_results=4) }}\n\nUsing the company description {{ record['description'] }} and website {{ record['url'] }}, classify whether {{ record['organization_name'] }} primarily sells to businesses (B2B) or consumers (B2C). Explain your reasoning.", "output_schema": { "type": "object", "properties": { "btb_btc": { "type": "string", "enum": ["B2B", "B2C", "Both"], "description": "Whether the company is primarily B2B, B2C, or both" }, "reasoning": { "type": "string", "description": "Brief explanation for the classification" } }, "required": ["btb_btc", "reasoning"] } } } ``` ### `ReadUrlText` Scrapes the text content of a single URL and injects it into the prompt as grounding context. Use it when you already know the exact page to read — most often the entity's own website via `record['url']`. **url** `string` *required* The URL of the page to scrape, e.g. `record['url']`. ```text theme={null} {{ ReadUrlText(url=record['url']) }} ``` ```json Prospects — scrape a specific URL theme={null} { "prospect_id": "5d86c0d8eae6bdd60515685670a4a2ad49981945", "parameters": { "prompt_template": "{{ ReadUrlText(url=record['url']) }}\n\nEvaluate whether {{ record['full_name'] }} ({{ record['job_title'] }} at {{ record['organization_name'] }}) is a strong fit for an enterprise data platform. Use summary {{ record['summary'] }}, skills {{ record['skills'] }}, and company website content from {{ record['url'] }}.", "output_schema": { "type": "object", "properties": { "fit_score": { "type": "integer", "minimum": 1, "maximum": 10, "description": "Prospect fit score from 1 to 10" }, "reasoning": { "type": "string", "description": "Brief explanation for the score" } }, "required": ["fit_score", "reasoning"] } } } ``` ### Using two functions together You can combine both functions in one `prompt_template` (the two-function maximum). Here the model reads the company's own site with `ReadUrlText` and supplements it with broader web results from `ReadMostRelevantLinks` before answering. ```json Businesses — scrape site + SERP search theme={null} { "business_id": "8adce3ca1cef0c986b22310e369a0793", "parameters": { "prompt_template": "{{ ReadUrlText(url=record['url']) }}\n\n{{ ReadMostRelevantLinks(query=record['organization_name'], max_results=3) }}\n\nUsing the company's own website and the most relevant web results, summarize what {{ record['organization_name'] }} does and identify its primary target market.", "output_schema": { "type": "object", "properties": { "summary": { "type": "string", "description": "One-paragraph summary of what the company does" }, "target_market": { "type": "string", "description": "The company's primary target market" } }, "required": ["summary", "target_market"] } } } ``` > [!WARNING] > > A `prompt_template` may reference **at most two** research functions. Adding a third returns a validation error. Each function that runs performs live web I/O, so it adds latency to that row — prefer `ReadUrlText` when you know the exact page, and reserve `ReadMostRelevantLinks` for cases that need broader discovery. ## Per-call credit usage The Research endpoints support the opt-in [Per-Call Credit Usage](/reference/credits/per-call-credit-usage) header. Send `credit-usage: true` to receive a `credit_usage` object alongside the response, reporting the exact credits deducted for the call. This is the recommended way to track research costs while you tune prompts and schemas. ```bash theme={null} credit-usage: true ``` ## Best practices * **Be explicit in your schema.** Use clear field `description`s, and `enum` / `minimum` / `maximum` constraints, so the model returns consistent, parseable values. * **Keep outputs focused.** Smaller, well-scoped schemas produce more reliable results than large free-form objects. * **Tell the model when to use the web.** If a task may need information beyond the resolved profile, say so in your instruction (e.g. *"use web search to supplement missing context"*). * **Prefer `prompt_template` for repeatable pipelines** where you need full control over wording, injected fields, and inline research functions; use `query` for quick, natural-language instructions. * **Resolve identifiers first** with [Match Businesses](/v2/businesses/match_businesses) or [Match Prospects](/v2/prospects/match_prospects) so the engine has a profile to work from. * **Attach context with `custom_fields`** (e.g. campaign name, segment) rather than hard-coding it into every prompt. * **Handle `_error` rows.** Iterate over `data` and check for `_error` before reading the generated fields. > [!WARNING] > > **Rate limits are counted per query, not per request.** Each entity in the `businesses` / `prospects` array counts as a separate query toward your [rate limit](/reference/rate-limit). A single request that researches 50 entities consumes **50 queries** from your 200-queries-per-minute limit — not 1. Batching reduces HTTP/network overhead, but it does **not** reduce the number of queries counted against your rate limit. Size your batches accordingly. ## Errors **422 Validation Error** `object` Returned when the request body is invalid — for example when both `query` and `prompt_template` are provided, when neither is provided, when `prompt_template` is used without an `output_schema`, or when the `output_schema` is malformed. **properties** **detail** `object[]` A list of validation errors, each with `loc` (location of the error), `msg` (human-readable message), and `type`. See [Error Handling](/reference/error-handling) for the full list of status codes and retry guidance. ## Endpoint reference > **[Businesses research](/v2/research/businesses_research_enrich)** > > Business record fields, request shape, and examples > **[Prospects research](/v2/research/prospects_research_enrich)** > > Prospect record fields, request shape, and examples # Webhooks: Receiving Real-Time Events Source: https://developers.explorium.ai/v2/endpoints/webhooks Set up v2 webhooks to receive push notifications for business and prospect events — multiple tenant-scoped webhooks, addressed by webhook_id, each with its own rotatable secret. ## Overview Webhooks enable you to receive real-time notifications when important events occur in Explorium's data ecosystem. This guide walks you through setting up v2 webhooks to receive push notifications for the business and prospect events you monitor. Unlike v1's single partner-level webhook, v2 webhooks are **first-class, addressable resources**: * **Multiple webhooks** — up to 10 per tenant. Creating one never overrides another. * **Tenant-scoped** — resolved from your API key; you never pass a tenant or partner ID. * **Addressed by `webhook_id`** — server-generated and immutable (e.g. `wh_9f2c81ab`). [Event enrollments](#step-4-enroll-for-events) bind to it explicitly. * **Per-webhook secrets** — each webhook has its own HMAC secret, rotatable independently. ## Quick Start 1. **Register a webhook** — create a destination for event deliveries 2. **Implement a secure receiver** — validate and process incoming events 3. **Test connectivity** — verify the webhook is configured correctly 4. **Enroll for events** — subscribe entities, binding each enrollment to a webhook 5. **Process events** — receive and handle real-time events as they occur ## Step 1: Register Your Webhook [`POST /v2/webhooks`](/v2/webhooks/register_webhook) — only `name` and `webhook_url` are required. ```json Request theme={null} { "name": "crm-sync-prod", "description": "Delivers funding events to our CRM ingestion service", "webhook_url": "https://your-domain.com/webhook-handler", "headers": ["Authorization: Bearer your_token"], "payload_format": "json" } ``` ```json Response (201) theme={null} { "response_context": { "correlation_id": "f6bf2bf8c0e34f3d9fa000f83398c97b", "request_status": "success", "time_taken_in_seconds": 0.2 }, "webhook_id": "wh_9f2c81ab", "scope": { "type": "tenant", "id": "con_dJJUz1jfqdwzfM4t" }, "name": "crm-sync-prod", "webhook_url": "https://your-domain.com/webhook-handler", "payload_format": "json", "status": "active", "webhook_secret": "generated_secret_key", "created_at": "2026-07-28T09:00:00Z", "last_modified_time": "2026-07-28T09:00:00Z" } ``` > [!WARNING] > > **Store the `webhook_secret` now** — it verifies event authenticity and is returned only on create and [rotate](/v2/webhooks/rotate_webhook_secret), never on read. Store one secret per `webhook_id`. ### Optional Registration Parameters | Parameter | Type | Description | | - | - | - | | `description` | `string` | Free-text label for your team | | `headers` | `string[]` | Custom HTTP headers Explorium sends with **every** delivery, in `"Header-Name: value"` format — e.g. a bearer token your receiver requires | | `payload_format` | `string` | `json` (default) sends the event object as-is. `stringified_json` wraps the event so it can be consumed by destinations that expect a single text field — see [Using Webhooks with Claude Code Routines](#using-webhooks-with-claude-code-routines). | ### Webhook Limits * Up to **10 webhooks per tenant**; `name` must be unique within your scope * Creating a webhook **never overrides** an existing one — that v1 behavior survives only on the v1 endpoint * Your legacy v1 partner-level webhook appears read-only in [List webhooks](/v2/webhooks/list_webhooks), flagged `legacy: true`; v1 enrollments keep delivering to it with no action required ## Step 2: Implement Your Webhook Handler Your webhook handler needs to: * Accept **HTTP POST** requests * Validate the signature to ensure event authenticity * Process incoming event data based on the event type and enrollment key ### Example Implementation (Python with FastAPI) ```python Python expandable theme={null} import base64 import hashlib import hmac import time from fastapi import FastAPI, Request, HTTPException app = FastAPI() # One secret per webhook_id — store securely WEBHOOK_SECRETS = { "wh_9f2c81ab": "generated_secret_key", } TIME_WINDOW_SECONDS = 300 # 5 minutes def verify_signature(secret, payload, received_signature, received_timestamp): try: request_time = int(received_timestamp) except ValueError: return False # Invalid timestamp # Check if timestamp is within the acceptable window current_time = int(time.time()) if abs(current_time - request_time) > TIME_WINDOW_SECONDS: return False # Reject old requests hmac_key = base64.urlsafe_b64decode(secret.encode('utf-8')) # Recreate message with timestamp + Payload message = f"{received_timestamp}.{payload.decode('utf-8')}".encode("utf-8") computed_hmac = hmac.new(hmac_key, message, hashlib.sha256) computed_signature_b64 = base64.urlsafe_b64encode(computed_hmac.digest()).decode('utf-8') return hmac.compare_digest(computed_signature_b64, received_signature) @app.post("/webhook-handler") async def receive_event(request: Request): """Receive and validate webhook events.""" payload = await request.body() received_signature = request.headers.get("X-Signature") received_timestamp = request.headers.get('X-Timestamp') # Ensure Content-Type is application/json content_type = request.headers.get('Content-Type', '') if not content_type.startswith('application/json'): raise HTTPException(status_code=415, detail="Content-Type must be application/json") event_data = await request.json() # The payload names its delivering webhook — verify with that webhook's secret secret = WEBHOOK_SECRETS.get(event_data.get('webhook_id', '')) if not secret or not received_signature or not received_timestamp or \ not verify_signature(secret, payload, received_signature, received_timestamp): raise HTTPException(status_code=400, detail="Invalid signature") # Route based on enrollment_key, event_name, and entity id enrollment_key = event_data.get('enrollment_key') event_name = event_data.get('event_name') # ... return {"message": "Webhook processed successfully"} ``` **Security Implementation:** The signature is an HMAC over `timestamp.payload`, computed with the secret of the **delivering** webhook — the payload's `webhook_id` tells you which secret to verify with. This prevents unauthorized systems from sending fake events to your endpoint. ## Step 3: Test Webhook Connectivity [`POST /v2/webhooks/{webhook_id}/check_connectivity`](/v2/webhooks/check_webhook_connectivity) — targeted at one webhook; no request body is needed for a basic check. ```json Response theme={null} { "response_context": { "correlation_id": "7f53fa0b79fd4edf9fce50d1e530aac7", "request_status": "success", "time_taken_in_seconds": 0.563 } } ``` The system sends a test event to the webhook and returns the outcome from your handler. ### Advanced Testing Add a `simulation` block to push realistic mock events — useful for validating your event handling logic end to end: ```json Request theme={null} { "simulation": { "event_name": "new_funding_round", "number_of_events": 3 } } ``` * `event_name` — the event type to simulate * `number_of_events` — how many simulated events to deliver * `event_time` (optional) — the event timestamp to stamp on the simulated events ## Step 4: Enroll for Events Once a webhook is set up, enroll entities for monitoring — every v2 enrollment **binds to a webhook explicitly** via `webhook_id`. * Businesses: [`POST /v2/businesses/events/enrollments`](/v2/businesses/events/create_enrollment) * Prospects: [`POST /v2/prospects/events/enrollments`](/v2/prospects/events/create_enrollment) ```json Request theme={null} { "enrollment_key": "my_b2b_saas_monitor", "webhook_id": "wh_9f2c81ab", "event_types": ["ipo_announcement", "new_funding_round"], "business_ids": ["8adce3ca1cef0c986b22310e369a0793"] } ``` ```json Response (201) theme={null} { "response_context": { "correlation_id": "…", "request_status": "success", "time_taken_in_seconds": 0.2 }, "enrollment_key": "my_b2b_saas_monitor", "enrollment_id": "en_7b429a01", "webhook_id": "wh_9f2c81ab", "status": "active" } ``` ### Key Enrollment Parameters * `webhook_id`: the delivery destination. The binding is **strict** — the webhook must exist in your scope and be `active`. Unknown IDs return `404`; a missing `webhook_id` or wrong scope/status returns `422`. Events are never silently delivered elsewhere. * `enrollment_key`: a custom identifier included in every event notification — use it to group enrollments by customer, campaign, or business process and route events accordingly. * `business_ids` / `prospect_ids`: entities to monitor, up to **1,000 per request**. There is no limit on the total enrolled across multiple requests. ### Managing enrollments Each enrollment has a server-generated `enrollment_id` and a `status` — `active` (delivering) or `paused` (retained, delivering nothing; set when its webhook is force-deleted). [`PATCH .../enrollments/{enrollment_id}`](/v2/businesses/events/update_enrollment) updates `webhook_id`, `enrollment_key`, `event_types`, or the entity list — re-pointing a paused enrollment to an active webhook reactivates it without re-enrolling entities. ### Event Payload Structure Delivered payloads name their delivery source — `webhook_id`, `tenant_id`, `partner_id`, and `enrollment_id` — so a shared handler can route without relying on `enrollment_key` alone: ```json JSON theme={null} { "webhook_id": "wh_9f2c81ab", "tenant_id": "con_dJJUz1jfqdwzfM4t", "partner_id": "ExpTest", "event_id": "691377c2df80547c70e26a13216a3944", "event_name": "new_funding_round", "enrollment_key": "my_b2b_saas_monitor", "enrollment_id": "en_7b429a01", "entity_type": "business", "business_id": "57e7fd862b2ac1c9358bccf8e90faeb1", "event_time": "2026-07-28T09:41:55Z", "data": { "…": "…" } } ``` ### Key Fields `webhook_id`: the webhook this event was delivered through — also selects the secret for signature verification\ `enrollment_key`: the identifier you provided during enrollment\ `enrollment_id`: the enrollment that triggered this delivery\ `event_id`: a unique identifier for this specific event\ `event_name`: the type of event that was triggered\ `entity_type`: either "business" or "prospect"\ `data`: event-specific data (varies by event type) ## Using Webhooks with Claude Code Routines [Claude Code routines](https://docs.claude.com/en/docs/claude-code/routines) can run automatically in response to an external HTTP request through an **API trigger**. You can point an Explorium webhook directly at a routine's trigger URL so that every Explorium event fires the routine — and, with the right `payload_format`, the event data is delivered straight into the routine for processing. No relay or intermediate service is required. ### How it works A routine's API trigger exposes a *fire* URL of the form: ```text theme={null} POST https://api.anthropic.com/v1/claude_code/routines/{trigger_id}/fire ``` This endpoint: * Requires an `Authorization: Bearer ` header (generated when you create the routine) and an `anthropic-version: 2023-06-01` header. * Injects the request body's `text` field into the routine as its input, and ignores other top-level fields. Because the routine only reads a `text` field, Explorium's default event object isn't consumed by the routine on its own. Setting `payload_format` to `stringified_json` tells Explorium to deliver the event in a routine-compatible shape: ```json theme={null} { "text": "{\"event_name\": \"new_funding_round\", \"data\": { ... }, \"business_id\": \"...\", ...}" } ``` The `text` value is the complete Explorium event object serialized as a JSON string, so the routine can parse it and act on the event. ### Step 1 — Create the routine In **claude.ai → Code → Routines**, create a routine and choose the **API** trigger ("Trigger from your own code by sending a POST request"). Copy: * the trigger's **fire URL**, and * the **token** generated for the trigger. In the routine instructions, tell Claude that each run will receive an Explorium event payload and describe what it should do with it (for example, summarize the event, enrich the entity, or alert a channel). ### Step 2 — Register the webhook Register the routine's fire URL as a dedicated webhook, supplying the required headers and `payload_format: "stringified_json"`: ```json theme={null} { "name": "claude-routine-events", "webhook_url": "https://api.anthropic.com/v1/claude_code/routines/{trigger_id}/fire", "headers": [ "Authorization: Bearer sk-ant-oat01-...", "anthropic-version: 2023-06-01" ], "payload_format": "stringified_json" } ``` Because v2 supports multiple webhooks, the routine can be **one of several destinations** — keep your CRM sync on its own webhook and bind each enrollment to the right one via `webhook_id`. > [!NOTE] > > The `anthropic-version` header is required — without it the routine endpoint rejects the delivery with a `400` error. Each event is delivered as a separate POST, so one routine run is triggered per event. ### Step 3 — Test it Use the [connectivity endpoint](#step-3-test-webhook-connectivity) to push simulated events to your routine: ```json theme={null} { "simulation": { "event_name": "new_funding_round", "number_of_events": 3 } } ``` A `"request_status": "success"` response means the routine accepted the events. Open the routine's sessions in claude.ai to see each event rendered and processed. > [!WARNING] > > The token stored in `headers` can trigger your routine. Treat it as a secret, and rotate it if it may have been exposed. ## Managing Your Webhooks | Operation | Endpoint | | :- | :- | | List (incl. legacy v1 webhook) | [`GET /v2/webhooks`](/v2/webhooks/list_webhooks) | | Get details | [`GET /v2/webhooks/{webhook_id}`](/v2/webhooks/get_webhook) | | Update | [`PATCH /v2/webhooks/{webhook_id}`](/v2/webhooks/update_webhook) | | Delete | [`DELETE /v2/webhooks/{webhook_id}`](/v2/webhooks/delete_webhook) | | Rotate secret | [`POST /v2/webhooks/{webhook_id}/rotate_secret`](/v2/webhooks/rotate_webhook_secret) | Deleting a webhook that active enrollments reference fails with a conflict unless you pass `?force=true` — then the affected enrollments are set to `paused` (entity lists preserved, IDs returned in `affected_enrollment_ids`) and can be re-pointed to another webhook later. Enrollments are never silently re-pointed. ## Best Practices 1. **One webhook per destination or use case** — CRM sync, ops alerts, and automation each get their own webhook, secret, and enrollments. 2. **Use the `enrollment_key` effectively**: structure keys to match your internal systems and use cases. 3. **Validate all signatures**: verify every event with the secret of the `webhook_id` it arrived through. 4. **Set up monitoring**: detect delivery failures on your endpoint, and use `status: "disabled"` to pause a destination without deleting it. 5. **Use proper Content-Type**: accept and respond with `application/json`. ## Frequently Asked Questions > **How many webhooks can I register?** > > Up to 10 per tenant. Each is addressed by its own `webhook_id`, and creating a new one never overrides an existing one. > **What happened to the v1 single-webhook model?** > > The v1 endpoints keep working unchanged, including their register-overrides behavior. Your existing partner-level webhook appears read-only in `GET /v2/webhooks` flagged `legacy: true`, and v1 enrollments keep delivering to it with zero action required. > **How do I rotate a webhook secret?** > > `POST /v2/webhooks/{webhook_id}/rotate_secret` — it returns a new secret for that webhook only. In v1 you had to re-register; in v2 rotation never touches other webhooks. > **Is there a limit to how many businesses or prospects I can enroll?** > > Each enrollment request is limited to 1,000 IDs, but there's no limit on the total enrolled across multiple requests. > **What happens to enrollments when I delete their webhook?** > > The delete fails with a conflict unless you pass `?force=true`. Forced deletion pauses the affected enrollments — delivery stops, entity lists are preserved — and you can re-point them to another webhook via `PATCH` without re-enrolling. > **How do I differentiate between different monitoring use cases?** > > Two levers: separate webhooks per destination, and the `enrollment_key` on each enrollment. Both arrive in every event payload, alongside `webhook_id` and `enrollment_id`. > **Can I trigger a Claude Code routine from a webhook?** > > Yes. Register a dedicated webhook pointing at the routine's API-trigger fire URL, pass the routine's `Authorization` and `anthropic-version: 2023-06-01` headers via `headers`, and set `payload_format` to `stringified_json`. See [Using Webhooks with Claude Code Routines](#using-webhooks-with-claude-code-routines). # Cancel job Source: https://developers.explorium.ai/v2/jobs/cancel_job post /v2/jobs/cancel/{job_id} ## Description The **Cancel Job** endpoint stops an asynchronous job that is queued or still running. Use it to release capacity and avoid consuming credits on a run you no longer need. > **How It Works** > > * **Input:** Provide the `job_id` of the job you want to stop. > * **Processing:** The system marks the job as cancelled and stops further work on it. > * **Output:** The job's status record, in the same shape returned by [Get job status](/v2/jobs/get_job_status). > **Best Practices** > > * **Cancel superseded jobs** when you resubmit with corrected input, rather than leaving both running. > * **Confirm the outcome** by calling [Get job status](/v2/jobs/get_job_status) after cancelling. > * **Cancelling a completed job has no effect** — check the status first if you are unsure. **See [async jobs](/v2/async-jobs) for the full job lifecycle.** # Get job status Source: https://developers.explorium.ai/v2/jobs/get_job_status get /v2/jobs/status/{job_id} ## Description The **Get Job Status** endpoint returns the current state of an asynchronous job and, once the job has finished, its results. Every `.../job` endpoint in v2 runs through this shared layer, so the polling pattern is identical no matter which enrichment you submitted. > **How It Works** > > * **Input:** Provide the `job_id` returned when you submitted the job. > * **Processing:** The system looks up the job and reports its current state. > * **Output:** A structured response containing the job's status, its input summary, timing, credit usage, and — once complete — its results. > **Response Schema** > > | Field | Type | Description | > | :- | :- | :- | > | `job_id` | string | Identifier of the job (required) | > | `status` | string | Current state of the job (required) | > | `input` | object | Summary of the input the job was submitted with (required) | > | `timing` | object | Submission and completion timestamps (required) | > | `credit_usage` | object | Credits consumed by the job | > | `results` | object | Job output, present once the job has completed — see below | > | `results.format` | string | Format of the result file (`csv`) | > | `results.download_url` | string | Signed URL for downloading the result file | > | `results.expires_at` | string | When the **download link** expires (about an hour after it is issued). Call this endpoint again to get a fresh link — see the note below. | > | `results.file_expires_at` | string | When the **result file itself** expires (7 days after the job finishes). After this, results are no longer retrievable. | > | `additional_data` | object | Any supplementary information about the run | > | `error` | object | Error detail, present when the job failed | > **Best Practices** > > * **Poll at a sensible interval** rather than continuously — large jobs can run for a long time. > * **Store the `job_id`** returned at submission; it is the only handle on the run. > * **Check `status` before reading `results`** — results are only populated once the job has completed. > * **Expired download link?** Just call this endpoint again — each call returns a freshly signed `download_url`. The link (`expires_at`) lasts about an hour; the file itself (`file_expires_at`) is kept for 7 days after the job finishes. > * **Read `credit_usage`** to track consumption per job. > * **Cancel jobs you no longer need** with [Cancel job](/v2/jobs/cancel_job) rather than letting them run to completion. **Jobs run for a maximum of 24 hours. See [async jobs](/v2/async-jobs) for the full submit → poll → retrieve flow.** # List jobs Source: https://developers.explorium.ai/v2/jobs/list_jobs get /v2/jobs ## Description The **List Jobs** endpoint returns your async jobs, most useful for monitoring several runs at once or finding a `job_id` you didn't store. > **How It Works** > > * **Input:** Optionally filter by `status` and paginate with `skip`. > * **Processing:** The system returns your jobs with their current state. > * **Output:** A `jobs` array plus a `total` count. Each job carries the same fields as [Get job status](/v2/jobs/get_job_status). > **Query Parameters** > > | Parameter | Type | Description | > | :- | :- | :- | > | `status` | enum | Filter by job state: `queued`, `running`, `succeeded`, `failed`, `cancelled`, or `expired` | > | `skip` | integer | Number of jobs to skip, for pagination | > **Best Practices** > > * **Filter by `status=running`** to see what is currently consuming capacity. > * **Use [Get job status](/v2/jobs/get_job_status)** for polling a single job — this endpoint is for overviews, not tight loops. **See [async jobs](/v2/async-jobs) for the full job lifecycle.** # Upload entity ID dataset Source: https://developers.explorium.ai/v2/jobs/upload_entity_id_dataset post /v2/async/entity-id-datasets/upload ## Description The **Upload Entity ID Dataset** endpoint accepts a CSV of entity IDs and stores it as a reusable dataset. Use it when an async job's input list is larger than you want to send inline, or when the same list feeds several jobs. > **How It Works** > > * **Input:** Upload a CSV file of entity IDs as `multipart/form-data`, along with the entity type, a name, and a description. > * **Processing:** The system stores the list and assigns it an identifier. > * **Output:** A `list_id` you can reference when submitting an async job, plus metadata about the stored dataset. > **Request Schema** > > | Field | Type | Description | > | :- | :- | :- | > | `file` | file | CSV file with entity IDs (Required) | > | `entity_type` | string | Entity type (Required) | > | `name` | string | Dataset name (Required) | > | `description` | string | Dataset description (Required) | > **Response Schema** > > | Field | Type | Description | > | :- | :- | :- | > | `list_id` | string | Identifier used to reference the dataset | > | `name` | string | Dataset name | > | `description` | string | Dataset description | > | `rowCount` | integer | Number of entity IDs stored | > | `entityType` | string | Entity type of the stored IDs | > | `tenantId` | string | Tenant the dataset belongs to | > | `expiresAt` | string | When the stored dataset expires | > **Best Practices** > > * **Check `rowCount`** after upload to confirm the whole file was ingested. > * **Mind `expiresAt`** — datasets are not stored indefinitely; re-upload before running a job against an expired list. > * **Reuse one dataset across enrichments** instead of uploading the same IDs repeatedly. > * **Keep async input within the 10,000-record limit** per job. **See [async jobs](/v2/async-jobs) for how uploaded datasets feed into a job run.** # Migrating from v1 to v2 Source: https://developers.explorium.ai/v2/migration-from-v1 How to move an existing AgentSource v1 integration to v2, including endpoint mapping, breaking changes, and the v1 deprecation timeline. ## There is no hard cutover v2 ships alongside v1. v1 keeps running in parallel and is wound down in stages, so you have a full migration window and can move at your own pace. > [!TIP] > > **Prefer to automate it?** The [v1 → v2 upgrade skill](/v2/upgrade-skill) applies this whole guide for you: install it in Claude Code (or any Agent Skills–compatible agent) and it audits your codebase, rewrites endpoints, fields, and filters, updates your tests, and reports what needs human review. ## v1 deprecation timeline > [!WARNING] > > v2 reached general availability on **September 2, 2026** — that date is T0 below. Later milestones are **indicative** and subject to minor change. | Stage | Timing | What happens | | :- | :- | :- | | **Parallel availability** | At v2 GA (T0) | v2 and v1 run side by side. v1 is marked deprecated, with deprecation / sunset signaling, but stays fully functional. | | **v1 end of support** | \~6 months after T0 | v1 is no longer actively supported — no new fixes, signals, or SLA. Endpoints still respond, but all customers should be migrated by this point. | | **v1 retirement** | \~12 months after T0 | v1 is fully sunset and decommissioned; v1 endpoints no longer serve traffic. | ## Migration steps **1. Move to /v2 paths** Replace the `/v1` prefix with `/v2` on every endpoint. See the [mapping](#endpoint-mapping) below. **2. Collapse bulk calls into single endpoints** Drop the `/bulk_enrich` suffix. The single endpoint accepts one ID or a list of IDs, so a bulk call becomes the same endpoint with a list payload. **3. Pick sync or async** Use `.../enrich` for immediate results, or `.../job` for large runs. Async is capped at 10K input records and 24 hours per job. **4. Update renamed paths and fields** Rename `contacts_information` to `contact_information`, and update the corrected [signal field names](/v2/whats-new#signal-fixes). **5. Handle removed response fields** Stop reading `entity_id`, `display_name` on business LinkedIn posts, and the address signals on `company_ratings_by_employees`. **6. Replace contact-availability filters** `has_email` and `has_phone_number` are removed from prospects fetch and stats. Use `has_contact_details` — `email`, `phone`, or `email_and_phone` to reproduce the old behavior, or `email_or_phone` for at-least-one. See [Removed filters](/v2/whats-new#removed-filters). **7. Check changed fetch defaults** Remove the `size` pagination parameter, and set `include_operating_locations` explicitly if you relied on the old default. ## Endpoint mapping | v1 | v2 | Notes | | :- | :- | :- | | `/v1/businesses/{enrichment}/bulk_enrich` | `/v2/businesses/{enrichment}/enrich` `/v2/businesses/{enrichment}/job` | Bulk route removed; pick sync or async | | `/v1/prospects/contacts_information/bulk_enrich` | `/v2/prospects/contact_information/enrich` `/v2/prospects/contact_information/job` | Also renamed | | `/v1/businesses/research/bulk_enrich` | `/v2/businesses/research/enrich` `/v2/businesses/research/job` | Bulk route removed; pick sync or async | | `/v1/prospects/research/bulk_enrich` | `/v2/prospects/research/enrich` `/v2/prospects/research/job` | Bulk route removed; pick sync or async | | Business / prospect autocomplete routes | `/v2/autocomplete` | Consolidated into one endpoint | | `/v1/businesses/match`, `/v1/businesses`, `/v1/businesses/stats` | `/v2/...` equivalents | Path change only | | `/v1/prospects/match`, `/v1/prospects`, `/v1/prospects/stats` | `/v2/...` equivalents | Path change only | | Credits | `/v2/...` equivalents | Path change only | | `/v1/webhooks` (single, partner-level) | [`/v2/webhooks`](/v2/endpoints/webhooks) — multiple, tenant-scoped, by `webhook_id` | Not a path rename: register per destination, store each secret; the legacy webhook appears as `legacy: true` | | `/v1/{entity}/events/enrollments` | `/v2/{entity}/events/enrollments` | v2 enrollments require a `webhook_id` binding | | `/v1/{entity}/events` | [`/v2/{entity}/events`](/v2/endpoints/events) | Path change; `new_funding_round` payloads use the corrected `funding_*` field names | ## Breaking changes checklist * [ ] `/v2` path prefix applied everywhere * [ ] MCP clients pointed at the [AgentSource MCP v2](/mcp-docs/v2/agentsource-mcp) server, `https://mcp-v2.explorium.ai/mcp` (the v1 server at `mcp.explorium.ai` is deprecated with v1) * [ ] `/bulk_enrich` calls collapsed into `/enrich` or `/job` * [ ] `contacts_information` renamed to `contact_information` * [ ] `founding_stage` → `funding_stage`, `founding_date` → `funding_date` * [ ] `professions_email` → `professional_email` * [ ] `money_spend_on_website_technologies` → `money_spent_on_website_technologies` (webstack) * [ ] `latest_funding_increase_in_percents` → `latest_funding_increase_percentage` (funding\_and\_acquisition) * [ ] `time_took_in_seconds` → `time_taken_in_seconds` (`response_context`, every endpoint) * [ ] `entity_id` no longer read * [ ] `display_name` no longer read from business LinkedIn posts * [ ] Address signals no longer read from `company_ratings_by_employees` * [ ] `has_email` / `has_phone_number` replaced with `has_contact_details` * [ ] `size` pagination parameter removed * [ ] `include_operating_locations` set explicitly * [ ] Async payloads within the 10K record limit * [ ] Autocomplete calls pointed at `/v2/autocomplete` * [ ] Stop reading `emails` from contact responses — use `professional_email` * [ ] `employee_joined_company` → `executive_joined_company` in event filters, enrollments, and payload handling * [ ] Stop reading the deprecated `job_department` and `job_seniority_level` response fields (fetch prospects, profiles) — use `job_department_main` / `job_department_array` and `job_level_main` / `job_level_array` ## Related > **[What's new](/v2/whats-new)** > > The full change list > **[Conventions](/v2/conventions)** > > Rules that apply across every v2 endpoint # AgentSource v2 Source: https://developers.explorium.ai/v2/overview AgentSource v2 is a full re-cut of the API surface: consistent /v2 paths, one endpoint per enrichment instead of separate bulk routes, a sync/async pair for every enrichment, and new AI-powered Research endpoints. > [!NOTE] > > **Already integrated with v1?** Your integration keeps working — v1 runs in parallel and remains fully documented. Switch to **v1** in the version picker (top left) or go straight to the [v1 documentation](/reference/quick-starts/quick-starts). When you're ready to move, the [migration guide](/v2/migration-from-v1) maps every v1 endpoint to its v2 replacement and lists the breaking changes. > [!NOTE] > > Every endpoint page has a working **Try it** playground. Requests go to `https://api.explorium.ai` and use your `api_key` header, the same as v1. ## What AgentSource v2 is v2 is a redesign of the AgentSource API surface rather than a new product. The same data is available, reached through a more consistent set of endpoints: * **One path prefix.** Every endpoint moves under `/v2`, replacing its `/v1` equivalent. * **No separate bulk routes.** A single endpoint takes either one ID or a list of IDs, so `/bulk_enrich` disappears. * **Sync and async for every enrichment.** Each enrichment exposes `.../enrich` for immediate results and `.../job` for large runs through the async job infrastructure. * **New Research (GenAI) endpoints.** Run a custom, AI-powered research task over a list of businesses or prospects, with your own output schema. See [Conventions](/v2/conventions) for the rules that apply across every endpoint. ## Migrating from v1 v2 ships **without a hard cutover**. v1 keeps running in parallel and is wound down in stages, so you can migrate at your own pace. > **[What's new](/v2/whats-new)** > > Every change in v2, including removed fields and renamed signals > **[Migrating from v1](/v2/migration-from-v1)** > > Endpoint mapping and the v1 deprecation timeline > **[Upgrade skill](/v2/upgrade-skill)** > > Let a coding agent apply the migration for you ## The v2 surface > **[Core entities](/v2/businesses/fetch_businesses)** > > Match, fetch, and stats for businesses and prospects > **[Business enrichments](/v2/businesses/enrichments/overview)** > > 16 business enrichments, each sync and async > **[Prospect enrichments](/v2/prospects/enrichments/overview)** > > 3 prospect enrichments, each sync and async > **[Research (GenAI)](/v2/endpoints/research)** > > Custom AI research tasks with a caller-defined output schema > **[Async jobs](/v2/async-jobs)** > > Submit, poll, and retrieve results for long-running work > **[Events](/v2/endpoints/events)** > > Business and prospect events, plus enrollments > **[Webhooks](/v2/endpoints/webhooks)** > > Register and verify delivery destinations > **[Credits](/v2/credits/get_credits)** > > Balance and usage aggregation > **[Autocomplete](/v2/autocomplete)** > > A single consolidated endpoint for all filter values # Contact information Source: https://developers.explorium.ai/v2/prospects/enrichments/contact_information_enrich post /v2/prospects/contact_information/enrich ### Introduction The **Contact details enrichments** API provides detailed information about individual prospects, including contact details, professional emails, and phone numbers. This API is crucial for lead enrichment, personalized outreach, and enhancing sales intelligence workflows. **Key Benefits:** * Access **validated contact information** for prospects. * Get **SHA256-hashed email identifiers** (professional and personal) for ABM and ad-audience matching, without handling plain-text addresses. * Ensure **accurate and up-to-date data** for prospecting and engagement. ### Endpoint: `POST /prospects/contact_information/enrich` > [!NOTE] > > **v2:** this endpoint accepts either a single ID (a string) or a list of up to 50 IDs — the separate `/bulk_enrich` route is gone. See [v2 conventions](/v2/conventions). ## Enrich by prospect details instead of IDs `prospect_ids` is the primary way to call this endpoint. If you don't have Explorium IDs yet, you can send `prospects_to_match` instead: up to 50 people, described with the same fields the [Match prospects](/v2/prospects/match_prospects) endpoint accepts (`full_name`, `company_name`, `email`, `phone_number`, `linkedin`, `business_id`). Each person is matched and enriched in the same call. Send **either** `prospect_ids` **or** `prospects_to_match`, never both (that returns a `422`). Any `parameters` the endpoint takes work the same either way. ```json Request body theme={null} { "prospects_to_match": [ { "full_name": "Jane Doe", "company_name": "Acme Corp" }, { "full_name": "John Smith", "company_name": "Unknown Co" } ] } ``` ```json Response (data shortened) theme={null} { "response_context": { "correlation_id": "9a1c0e7f4b2d4c6e8f0a1b2c3d4e5f60", "request_status": "success", "time_taken_in_seconds": 1.42 }, "data": [ { "input": { "business_id": null, "full_name": "Jane Doe", "company_name": "Acme Corp", "email": null, "phone_number": null, "linkedin": null }, "prospect_id": "4f1d9c2e7a3b5c8d0e6f1a2b3c4d5e6f7a8b9c0d", "data": { "...": "same fields as an ID-based request" }, "warnings": [] }, { "input": { "business_id": null, "full_name": "John Smith", "company_name": "Unknown Co", "email": null, "phone_number": null, "linkedin": null }, "prospect_id": null, "data": null, "warnings": [] } ], "total_results": 1, "total_matches": 1 } ``` Each row echoes its `input` and returns the matched `prospect_id`. People who don't match come back with `prospect_id: null` and `data: null`, and aren't charged. `total_matches` counts the matched rows. > [!NOTE] > > **Need higher coverage?** The [asynchronous variant](/v2/prospects/enrichments/contact_information_job) supports **waterfall enrichment** — prospects that Explorium data cannot enrich are retried against a verified external provider. The `waterfall` parameter is available **only** on the async endpoint; passing it here returns a validation error. > **How It Works** > > 1. **Input:** Provide a `prospect_id` (retrieved from the **Match Prospects** endpoint) to retrieve enrichment details. > 2. **Processing:** The system scans and fetches available data from multiple sources. > 3. **Output:** A structured response containing the professional email, phone numbers, and mobile number. > **Request Schema** > > | Field | Type | Description | > | :- | :- | :- | > | `prospect_id` | String | A unique identifier for the prospect (Required) | > **Best Practices** > > * **Use verified prospect IDs** for accurate enrichment. > * **Cross-check multiple contact points** to reach prospects effectively. > * **Store enriched data in CRM** for seamless sales workflows. > * **Update prospect details regularly** to maintain accuracy in outreach campaigns. > **Contacts Information Output Signal** > > | Signal | API Name | Description | Data Type Final | > | :- | :- | :- | :- | > | professional\_email\_status | Individual's professional email validity status | Recommended validity status for the listed 'Professional email' address. Returns one of the following possible values: 'valid' emails are determined as safe to email, 'invalid' emails are addresses we recommend to erase from mailing lists, 'catch-all' emails are created as a precaution by domain owners. For recommendations on how best to use 'catch all' emails, read more on our resource center page 'Email validation: catch-all domains'. | object | > | professional\_email | Individual's professional email | Current professional email address associated with the individual | string | > | mobile\_phone | Individual's mobile phone | Individual's direct dial mobile phone number. | string | > | phone\_numbers | Individual's phone numbers | List of all phone numbers associated with the individual. | array | > | hashed\_professional\_emails | Individual's hashed professional emails | SHA256 hashes (64-character hex) of the individual's professional email addresses. Returned only when `contact_types` includes `hashed_identifiers`; `null` when none. | | > | hashed\_personal\_emails | Individual's hashed personal emails | SHA256 hashes (64-character hex) of the individual's personal email addresses. Returned only when `contact_types` includes `hashed_identifiers`; `null` when none. | | ## Hashed identifiers for ABM Add `hashed_identifiers` to `contact_types` to get each prospect's email addresses as **SHA256 hashes**, split into `hashed_professional_emails` and `hashed_personal_emails`. Hashed emails are the format ad platforms and ABM tools use to match audiences, so you can build and sync account-based audiences without handling plain-text addresses. * **Cost:** 1 credit per prospect returned with hashed identifiers. Email (2 credits) and phone (5 credits) are charged as usual when requested in the same call. * **Opt-in:** hashed identifiers are returned only when you request them. Omitting `parameters` returns email and phone, as before. * **Gmail addresses** are hashed twice, as written and with the dots in the name removed (`jane.doe@gmail.com` → `janedoe@gmail.com`), so both variants are in the array. * **No emails:** both arrays are `null` when the prospect has no email on record. ```json Response row with hashed identifiers theme={null} { "prospect_id": "4f1d9c2e7a3b5c8d0e6f1a2b3c4d5e6f7a8b9c0d", "data": { "hashed_professional_emails": ["9f2c3a51e0b44d7a8c6e1f3b2d5a7c9e0f1b3d5a7c9e1f3b5d7a9c1e3f5b7d9a"], "hashed_personal_emails": null } } ``` ## Body Params - Try Me Example ``` prospect_ids: ee936e451b50c70e068e1b54e106cb89173198c4 ``` **Email Only (2 credits):** ```json theme={null} { "prospect_ids": "ee936e451b50c70e068e1b54e106cb89173198c4", "parameters": { "contact_types": ["email"] } } ``` **Phone Only (5 credits):** ```json theme={null} { "prospect_ids": "ee936e451b50c70e068e1b54e106cb89173198c4", "parameters": { "contact_types": ["phone"] } } ``` **Both Email and Phone (5 credits) - Default behavior:** ```json theme={null} { "prospect_ids": "ee936e451b50c70e068e1b54e106cb89173198c4", "parameters": { "contact_types": ["email", "phone"] } } ``` **Hashed identifiers only (1 credit):** ```json theme={null} { "prospect_ids": "ee936e451b50c70e068e1b54e106cb89173198c4", "parameters": { "contact_types": ["hashed_identifiers"] } } ``` **Email and hashed identifiers (2 + 1 = 3 credits):** ```json theme={null} { "prospect_ids": "ee936e451b50c70e068e1b54e106cb89173198c4", "parameters": { "contact_types": ["email", "hashed_identifiers"] } } ``` **Backward Compatible (no parameters = email and phone):** ``` prospect_ids: ee936e451b50c70e068e1b54e106cb89173198c4 ``` # Contact information (async) — waterfall Source: https://developers.explorium.ai/v2/prospects/enrichments/contact_information_job post /v2/prospects/contact_information/job ## Description The **Asynchronous Contact Information Enrichment** retrieves verified **professional emails, phone numbers, and mobile numbers** for up to 10,000 prospects per job — and, unlike the [synchronous endpoint](/v2/prospects/enrichments/contact_information_enrich), it supports **waterfall enrichment**: prospects that Explorium data cannot enrich are automatically retried against a verified **external provider**, increasing overall contact coverage. **Key Benefits:** * **Asynchronous retrieval** of enriched contact data for up to 10,000 prospects per job. * **Higher coverage** — the optional waterfall falls back to an external provider for prospects with no Explorium contact data. * **Source transparency** — every result is tagged with where its email and phone came from. > [!NOTE] > > **Asynchronous variant.** This submits a job through the [async job infrastructure](/v2/async-jobs) — poll [job status](/v2/jobs/get_job_status) for progress and results. Input comes from an uploaded dataset (`list_id`); limits are 10,000 rows and a 24-hour run time. > > For the output signal reference shared with the sync endpoint, see [Contact information](/v2/prospects/enrichments/contact_information_enrich). ## Parameters | Parameter | Type | Default | Description | | :- | :- | :- | :- | | `waterfall` | enum: `explorium_only` / `full` | `explorium_only` | Controls which data sources are used. `explorium_only` enriches with Explorium contact data only — identical to today's behavior. `full` runs the waterfall: Explorium first, then the external provider for prospects Explorium could not enrich. | | `contact_types` | array of enum: `email` / `phone` / `hashed_identifiers` | email and phone | Which contact types to query. `hashed_identifiers` adds SHA256-hashed email identifiers for ABM; it's returned only when requested. See [Hashed identifiers](/v2/prospects/enrichments/contact_information_enrich#hashed-identifiers-for-abm). | > [!WARNING] > > **`waterfall` is only available on this asynchronous endpoint.** Passing it to the synchronous `/enrich` endpoint returns a validation error. ## How the waterfall works With `waterfall: "full"`, each job runs five steps: **1. Explorium enrichment** All prospects in the dataset are enriched with Explorium contact data. A prospect counts as enriched if at least one email **or** phone number is returned. **2. Identify gaps** Prospects with no email **and** no phone from Explorium are collected. **3. External fallback** The unenriched prospects are sent to the external provider, and its results are mapped onto the same contact schema (`professional_email`, `phone_numbers`, `mobile_phone`, `professional_email_status`). **4. Merge and return** One unified result set covers all prospects, with `email_source` and `phone_source` tagging where each value came from. **5. Credits charged by source** Explorium-sourced and externally-sourced results are charged at different rates — see [Credit charging](#credit-charging). ## Example request ```bash cURL theme={null} curl --request POST \ --url https://api.explorium.ai/v2/prospects/contact_information/job \ --header 'api_key: YOUR_API_KEY' \ --header 'content-type: application/json' \ --data '{ "list_id": "b8f2c1d4-...", "parameters": { "waterfall": "full", "contact_types": ["email", "phone"] } }' ``` ```python Python theme={null} import requests resp = requests.post( "https://api.explorium.ai/v2/prospects/contact_information/job", headers={"api_key": "YOUR_API_KEY", "content-type": "application/json"}, json={ "list_id": list_id, # from the dataset upload endpoint "parameters": { "waterfall": "full", "contact_types": ["email", "phone"], }, }, ) resp.raise_for_status() job_id = resp.json()["job_id"] ``` The `list_id` comes from the [dataset upload endpoint](/v2/jobs/upload_entity_id_dataset) — see the [end-to-end guide](/v2/async-guide) for the full flow. ## Response Poll [job status](/v2/jobs/get_job_status) with the returned `job_id`. A finished waterfall job reports per-source totals under `additional_data`, alongside the usual credit usage: ```json Job status (completed) theme={null} { "job_id": "6a79d925cad807e21132019e", "status": "succeeded", "started": "2026-08-10T13:59:01.832000+00:00", "finished": "2026-08-10T14:10:21.560000+00:00", "credit_usage": { "total_credits": 35, "total_results": 15 }, "additional_data": { "total_external_emails": 0, "total_external_phones": 0, "total_explorium_emails": 10, "total_explorium_phones": 5 }, "results": { "format": "csv", "download_url": "https://...", "expires_at": "2026-08-10T15:10:21Z", "file_expires_at": "2026-08-17T14:10:21Z" }, "error": null } ``` ### Result fields Results are downloaded as a CSV from `results.download_url`. The link is valid for about an hour (`expires_at`) — re-poll [job status](/v2/jobs/get_job_status) for a fresh one; the file itself is kept for 7 days (`file_expires_at`). Each row carries the contact data plus its source tags: | Column | Description | | :- | :- | | `entity_ids` | The prospect identifier(s) the row corresponds to | | `professional_email` | The current professional email address | | `professional_email_status` | Validity status of the professional email: `valid`, `catch_all`, or `invalid` | | `phone_numbers` | All phone numbers found | | `mobile_phone` | The prospect's direct-dial mobile number | | `email_source` | Where the email came from: `explorium`, `external_source`, or empty when no email was found | | `phone_source` | Where the phone came from: `explorium`, `external_source`, or empty when no phone was found | | `hashed_professional_emails` | With `hashed_identifiers`: a JSON array of SHA256 hashes of the prospect's professional emails, or empty when none | | `hashed_personal_emails` | With `hashed_identifiers`: a JSON array of SHA256 hashes of the prospect's personal emails, or empty when none | Prospects that neither source could enrich are still returned, with the contact columns empty — and cost nothing. ## Credit charging Credits are charged per result, according to the source that produced it: | Data source | Email | Phone | | :- | :- | :- | | Explorium | 2 credits | 5 credits | | External provider | 2 credits | 15 credits | | No data returned | 0 credits | 0 credits | Hashed identifiers, when requested, cost **1 credit per prospect** returned with them, on top of any email or phone charges. For example, a prospect whose email came from Explorium and whose phone came from the external provider costs 2 + 15 = 17 credits. Which rates can apply depends on the `waterfall` mode: * **`explorium_only`** (the default) — only Explorium data is used, so only Explorium rates apply. External-provider charges are impossible in this mode. * **`full`** — Explorium rates apply to Explorium-sourced results, and external-provider rates apply only to prospects the external provider actually enriched. A prospect that neither source could enrich costs nothing. ## Best practices * **Start with `explorium_only`** to see your Explorium-native coverage, then rerun the gaps with `full` if you need more. * **Use `contact_types`** to control spend — externally-sourced phones cost significantly more than emails, so request only what you need. * **Check `additional_data`** on the job status to see how many results each source contributed before downloading. * **Filter by `email_source` / `phone_source`** downstream if you track data provenance per record. # LinkedIn posts Source: https://developers.explorium.ai/v2/prospects/enrichments/linkedin_posts_enrich post /v2/prospects/linkedin_posts/enrich ### Introduction The **Individual's Social Media Presence Enrichments** API provides insights into a prospect's social media activity. This endpoint retrieves public posts from professional networks, allowing businesses to analyze engagement trends, content topics, and prospect interests for better outreach and marketing strategies. > [!WARNING] > > **Credit usage — charged per requested ID** > > Unlike other enrichment endpoints, which charge credits only for entity IDs that return results, this endpoint charges credits for **every `prospect_id` included in the request — whether or not results are returned**. A request that returns no posts still consumes credits. **Key Benefits:** * Gain **real-time visibility** into a prospect's social media activity. * Understand **professional interests, opinions, and engagement**. * Improve **personalized outreach** by leveraging recent posts and topics of discussion. * Track changes in **professional communication patterns** over time. > [!NOTE] > > **v2:** this endpoint accepts either a single ID (a string) or a list of up to 50 IDs — the separate `/bulk_enrich` route is gone. See [v2 conventions](/v2/conventions). ## Enrich by prospect details instead of IDs `prospect_ids` is the primary way to call this endpoint. If you don't have Explorium IDs yet, you can send `prospects_to_match` instead: up to 50 people, described with the same fields the [Match prospects](/v2/prospects/match_prospects) endpoint accepts (`full_name`, `company_name`, `email`, `phone_number`, `linkedin`, `business_id`). Each person is matched and enriched in the same call. Send **either** `prospect_ids` **or** `prospects_to_match`, never both (that returns a `422`). Any `parameters` the endpoint takes work the same either way. ```json Request body theme={null} { "prospects_to_match": [ { "full_name": "Jane Doe", "company_name": "Acme Corp" }, { "full_name": "John Smith", "company_name": "Unknown Co" } ] } ``` ```json Response (data shortened) theme={null} { "response_context": { "correlation_id": "9a1c0e7f4b2d4c6e8f0a1b2c3d4e5f60", "request_status": "success", "time_taken_in_seconds": 1.42 }, "data": [ { "input": { "business_id": null, "full_name": "Jane Doe", "company_name": "Acme Corp", "email": null, "phone_number": null, "linkedin": null }, "prospect_id": "4f1d9c2e7a3b5c8d0e6f1a2b3c4d5e6f7a8b9c0d", "data": { "...": "same fields as an ID-based request" }, "warnings": [] }, { "input": { "business_id": null, "full_name": "John Smith", "company_name": "Unknown Co", "email": null, "phone_number": null, "linkedin": null }, "prospect_id": null, "data": null, "warnings": [] } ], "total_results": 1, "total_matches": 1 } ``` Each row echoes its `input` and returns the matched `prospect_id`. People who don't match come back with `prospect_id: null` and `data: null`, and aren't charged. `total_matches` counts the matched rows. > **How It Works** > > 1. **Input:** Provide a `prospect_id` (retrieved from the **Match Prospects** endpoint) to fetch their social media data. > 2. **Processing:** The system gathers publicly available social media posts and organizes them into a structured format. > 3. **Output:** A response containing recent posts, links to content, and engagement details. > **Request Schema** > > | Field | Type | Description | > | :- | :- | :- | > | `prospect_id` | String | A unique identifier for the prospect (Required) | > **Credit Usage** > > This endpoint uses a different charging model than other enrichment endpoints: > > | Endpoint type | Charging model | > | :- | :- | > | Other enrichment endpoints | Credits charged **per entity ID that returns results** — no results, no charge. | > | **This endpoint (LinkedIn posts)** | Credits charged **per requested `prospect_id`**, regardless of whether results are returned. | > > To avoid spending credits on IDs that are unlikely to return data, make sure you use **valid prospect IDs** retrieved from the **Match Prospects** endpoint. > **Best Practices** > > * **Use verified prospect IDs** for accurate enrichment. > * **Analyze engagement patterns** to tailor marketing efforts. > * **Store and categorize insights** in your CRM for future reference. > * **Leverage content analysis** for personalized outreach. > * **Monitor recent social media activity** to track industry trends and thought leadership. > **Individual's Social Media Presence Output Signal** > > | Signal | API Name | Description | Data Type Final | > | :- | :- | :- | :- | > | created\_at | Time of posting | Timestamp of when the individual's post was published. | datetime | > | number\_of\_likes | Number of post likes | Number of likes the individual's post received by time of collection. | integer | > | post\_url | LinkedIn® post URL | URL to the LinkedIn® post published by individual. | url | > | number\_of\_comments | Number of post comments | Number of comments on the individual's post by time of collection. | integer | > | days\_since\_posted | Days since post | Number of days since the post was published by the individual. | integer | > | post\_text | Post text content | Text content of the LinkedIn® post published by individual. | string | **Key Consideration:** * **Credits are charged per requested `prospect_id`, even when no results are returned** — unlike other enrichment endpoints, which charge only for IDs that return data. * Posts retrieved are from publicly available social media content. * Engagement data (likes, comments) may not always be available. * Ensure **valid prospect IDs** (from **Match Prospects**) to retrieve accurate data. * Use insights for **trend analysis, competitor research, and engagement tracking**. ## Body Params - Try Me Example ```text theme={null} prospect_ids: ee936e451b50c70e068e1b54e106cb89173198c4 ``` # LinkedIn posts (async) Source: https://developers.explorium.ai/v2/prospects/enrichments/linkedin_posts_job post /v2/prospects/linkedin_posts/job ## Description The **Asynchronous Individual's Social Media Presence Enrichment** API retrieves LinkedIn® post data for up to **10,000** prospects in a single request. This endpoint helps in monitoring professional engagement, thought leadership, and outreach personalization. **Key Benefits:** * **Asynchronous access** to recent LinkedIn® posts from multiple prospects. * **Identify trends and professional interests** to optimize engagement. * **Enhance lead nurturing** with personalized messaging strategies. > [!NOTE] > > **Asynchronous variant.** This submits a job through the [async job infrastructure](/v2/async-jobs) — poll [job status](/v2/jobs/get_job_status) for progress and results. Input comes from an uploaded dataset (`list_id`); limits are 10,000 rows and a 24-hour run time. > > For the full output signal reference, see [the synchronous endpoint](/v2/prospects/enrichments/linkedin_posts_enrich). > **How It Works** > > 1. **Input:** Provide up to 10,000 `prospect_id` values, obtained from the **Match Prospects** endpoint. > 2. **Processing:** The system retrieves public LinkedIn® posts associated with the provided prospects. > 3. **Output:** Returns structured data in the same order as the input, ensuring easy mapping. > **Request Schema** > > | Field | Type | Description | > | :- | :- | :- | > | `list_id` | String | Identifier of an uploaded entity ID dataset (Required) | > **Example Request (cURL)** > > ```shell Bash theme={null} > curl --request POST \ > --url https://api.explorium.ai/v2/prospects/linkedin_posts/job \ > --header 'accept: application/json' \ > --header 'api_key: ' \ > --header 'content-type: application/json' \ > --data '{ > "prospect_ids": [ > "ee936e451b50c70e068e1b54e106cb89173198c4", > "57f9e5dac64d31d80e6e9432fe2c500d0bba2c01" > ] > }' > ``` > **Example Response** > > ```json JSON expandable theme={null} > { > "response_context": { > "correlation_id": "250fcd74ddb9498281b2bb2404bf71e8", > "request_status": "success", > "time_taken_in_seconds": 29.91 > }, > "data": [ > { > "prospect_id": "ee936e451b50c70e068e1b54e106cb89173198c4", > "data": { > "display_name": null, > "post_text": "Great to see so many customers and partners unlocking the full ROI of AI.", > "days_since_posted": 28, > "post_url": "https://www.linkedin.com/feed/update/urn:li:activity:7293486979298578433", > "number_of_comments": 122, > "number_of_likes": 2875, > "created_at": "2025-02-06T00:00:00" > } > }, > { > "prospect_id": "ee936e451b50c70e068e1b54e106cb89173198c4", > "data": { > "display_name": null, > "post_text": "Today in Nature Magazine: Our MatterGen model represents a paradigm shift in materials design...", > "days_since_posted": 46, > "post_url": "https://www.linkedin.com/feed/update/urn:li:activity:7286992519978958848", > "number_of_comments": 254, > "number_of_likes": 6115, > "created_at": "2025-01-19T00:00:00" > } > }, > ... > ], > "total_results": 20 > } > ``` > **Best Practices** > > * **Use valid prospect IDs** to ensure accurate enrichment results. > * **Monitor recent LinkedIn® activity** to identify engagement opportunities. > * **Integrate enriched data** into CRM systems for sales intelligence. > * **Leverage insights** to craft personalized outreach campaigns. > **Asynchronous LinkedIn® posts Output Signals** > > | Signal | API Name | Description | Data Type Final | > | :- | :- | :- | :- | > | created\_at | Time of posting | Timestamp of when the individual's post was published. | datetime | > | number\_of\_likes | Number of post likes | Number of likes the individual's post received by time of collection. | integer | > | post\_url | LinkedIn® post URL | URL to the LinkedIn® post published by individual. | url | > | number\_of\_comments | Number of post comments | Number of comments on the individual's post by time of collection. | integer | > | days\_since\_posted | Days since post | Number of days since the post was published by the individual. | integer | > | post\_text | Post text content | Text content of the LinkedIn® post published by individual. | string | ## Body Params - Try Me Example ``` prospect_ids: ["ee936e451b50c70e068e1b54e106cb89173198c4", "57f9e5dac64d31d80e6e9432fe2c500d0bba2c01"] ``` # Prospect enrichments Source: https://developers.explorium.ai/v2/prospects/enrichments/overview The 3 prospect enrichments in AgentSource v2, each with a synchronous /enrich and an asynchronous /job variant. Every enrichment ships both a **sync** (`.../enrich`) and an **async** (`.../job`) variant. Sync accepts a single ID or a list of up to 50; async runs through the [async job infrastructure](/v2/async-jobs) with a 10,000-record limit. See [v2 conventions](/v2/conventions). All enrichment endpoints are `POST`. ## Available prospect enrichments (3) | Enrichment | Key | Sync | Async | | :- | :- | :- | :- | | Contact information | `contact_information` | [Sync](/v2/prospects/enrichments/contact_information_enrich) | [Async](/v2/prospects/enrichments/contact_information_job) | | LinkedIn posts | `linkedin_posts` | [Sync](/v2/prospects/enrichments/linkedin_posts_enrich) | [Async](/v2/prospects/enrichments/linkedin_posts_job) | | Profiles | `profiles` | [Sync](/v2/prospects/enrichments/profiles_enrich) | [Async](/v2/prospects/enrichments/profiles_job) | > [!WARNING] > > **Renamed in v2.** The v1 `contacts_information` endpoint becomes `contact_information` (singular). Update both the path and any code keyed off the endpoint name. ## Response changes in v2 * `entity_id` is no longer returned. See [What's new](/v2/whats-new) for the full list. *** ## Introduction The **Prospects Enrichments** suite enables organizations to access comprehensive insights about prospects, helping refine outreach, sales strategies, and engagement efforts. By leveraging multiple enrichment endpoints, businesses can retrieve verified contact details, social media presence, and professional background information. **Key Benefits:** * Gain a view of a prospect's professional and social presence. * Enhance **lead qualification** with enriched data points. * Improve **personalized engagement** and outreach strategies. ## Available Enrichments The **Prospects Enrichments** suite consists of the following three endpoints: ### 1. Contact Details Enrichment Retrieves verified contact details, including professional and personal emails, ensuring accurate communication channels. **Key Features:** * Provides **current professional emails** when available. * Includes **personal email addresses** when accessible. * Ensures data accuracy for **direct outreach and email marketing**. ### 2. Individual's Social Media Presence Extracts recent social media activity, including public posts from professional networks. **Key Features:** * Understand **prospect engagement trends**. * Identify **topics of interest** and industry discussions. * Use insights for **personalized marketing and outreach**. ### 3. Professional Profile, Contact, and Workplace Provides a detailed view of a prospect's work history, skills, and educational background. **Key Features:** * Retrieve **job titles, past roles, and workplace history**. * Understand **career trajectory** and seniority. * Access **education details and skillsets**. ## How It Works 1. **Input:** Provide a `prospect_id` (retrieved from the **Match Prospects** endpoint). 2. **Processing:** The system gathers, verifies, and structures relevant data. 3. **Output:** Returns detailed insights for enhanced engagement. ### Request Schema | Field | Type | Description | | :- | :- | :- | | `prospect_id` | String | A unique identifier for the prospect (Required) | ### Example Request (cURL): ```curl cURL theme={null} curl -X POST \ "https://api.explorium.ai/v2/prospects/contact_information/enrich" \ -H "API_KEY: " \ -H "Content-Type: application/json" \ -d '{ "prospect_id": "f0bc40c20b185d6b102662a6621632beeedcef7c" }' ``` ## Best Practices * **Ensure valid`prospect_id` values** obtained from the **Match Prospects** endpoint. * **Leverage email verification tools** before direct outreach. * **Analyze social media trends** to tailor messaging and engagement. * **Cross-reference workplace history** to refine lead segmentation strategies. The **Prospects Enrichments** suite is an essential tool for sales, marketing, and talent acquisition teams, providing the necessary data to optimize prospect engagement, improve conversion rates, and drive meaningful business interactions. # Profiles Source: https://developers.explorium.ai/v2/prospects/enrichments/profiles_enrich post /v2/prospects/profiles/enrich > [!WARNING] > > **Deprecated response fields:** `job_department` and `job_seniority_level` are deprecated and will be removed in a future release. Read `job_department_main` / `job_department_array` and `job_level_main` / `job_level_array` instead. (The `job_department` **filter** is not affected.) ### Introduction The **Professional Profile Contact and Workplace Enrichments** API provides comprehensive professional details about a prospect, including job history, company affiliations, skills, education, and workplace details. This endpoint is designed to enhance prospect intelligence, streamline recruitment efforts, and improve sales and marketing strategies. **Key Benefits:** * Access **detailed career history**, including past and present job roles. * Retrieve **company affiliations** and workplace insights. * Analyze **skills and expertise** for targeted outreach. * Gain **educational background** to understand professional qualifications. * Improve **lead scoring and personalization** in sales and marketing campaigns. ### Endpoint: `POST /prospects/profiles/enrich` > [!NOTE] > > **v2:** this endpoint accepts either a single ID (a string) or a list of up to 50 IDs — the separate `/bulk_enrich` route is gone. See [v2 conventions](/v2/conventions). ## Enrich by prospect details instead of IDs `prospect_ids` is the primary way to call this endpoint. If you don't have Explorium IDs yet, you can send `prospects_to_match` instead: up to 50 people, described with the same fields the [Match prospects](/v2/prospects/match_prospects) endpoint accepts (`full_name`, `company_name`, `email`, `phone_number`, `linkedin`, `business_id`). Each person is matched and enriched in the same call. Send **either** `prospect_ids` **or** `prospects_to_match`, never both (that returns a `422`). Any `parameters` the endpoint takes work the same either way. ```json Request body theme={null} { "prospects_to_match": [ { "full_name": "Jane Doe", "company_name": "Acme Corp" }, { "full_name": "John Smith", "company_name": "Unknown Co" } ] } ``` ```json Response (data shortened) theme={null} { "response_context": { "correlation_id": "9a1c0e7f4b2d4c6e8f0a1b2c3d4e5f60", "request_status": "success", "time_taken_in_seconds": 1.42 }, "data": [ { "input": { "business_id": null, "full_name": "Jane Doe", "company_name": "Acme Corp", "email": null, "phone_number": null, "linkedin": null }, "prospect_id": "4f1d9c2e7a3b5c8d0e6f1a2b3c4d5e6f7a8b9c0d", "data": { "...": "same fields as an ID-based request" }, "warnings": [] }, { "input": { "business_id": null, "full_name": "John Smith", "company_name": "Unknown Co", "email": null, "phone_number": null, "linkedin": null }, "prospect_id": null, "data": null, "warnings": [] } ], "total_results": 1, "total_matches": 1 } ``` Each row echoes its `input` and returns the matched `prospect_id`. People who don't match come back with `prospect_id: null` and `data: null`, and aren't charged. `total_matches` counts the matched rows. > **How It Works** > > 1. **Input:** Provide a `prospect_id` (retrieved from the **Match Prospects** endpoint) to fetch professional details. > 2. **Processing:** The system gathers professional data from multiple sources and structures it. > 3. **Output:** A response containing job history, workplace affiliations, skills, and education details. > **Request Schema** > > | Field | Type | Description | > | :- | :- | :- | > | `prospect_id` | String | A unique identifier for the prospect (Required) | > **Best Practices** > > * **Use verified prospect IDs** to ensure accurate data enrichment. > * **Leverage job history and expertise** for recruitment and lead scoring. > * **Incorporate workplace insights** into sales and marketing automation. > * **Analyze skills and education** to personalize communication and engagement. > * **Cross-check company affiliations** for networking and partnership opportunities. > **Professional Profile Contact and Workplace Output Signal** > > | Signal | API Name | Description | Data Type Final | > | :- | :- | :- | :- | > | gender | Individual's gender | Gender reported by the individual on their profile. If gender is not reported on profile, returned value is 'null'. | string | > | city | Individual's city of residence | Individual's city of residence reported on profile. | string | > | country\_name | Individual's country of residence | Individual's country of residence reported on profile. | string | > | region\_name | Individual's State / Region of residence | Individual's state or region of residence reported on profile. | string | > | company\_website | Individual's workplace: company website | URL to the company website belonging to the individual's workplace. | string | > | company\_linkedin | Individual's workplace: company LinkedIn® url | URL to the company LinkedIn® page belonging to the individual's workplace. | string | > | linkedin | Individual's LinkedIn® URL | URN of the individual's LinkedIn® profile. | url | > | linkedin\_url\_array | LinkedIn® Identifier Array | A list of LinkedIn® profile URLs associated with the prospect. Each entry may include a standard public URL and/or a URN-based URL. | array\[string] | > | age\_group | Individual's age group | Individual's estimated age group. | string | > | experience | Individual's work experience background | List of work experience background entries on the individual's profile. May include: company name, company website, job title, seniority level, role, start date, end date, and more. Includes current work experience activities if listed. | array | > | education | Individual's educational background | List of educational background entries on the individual's profile. May include: institutions name, institutions website, degree category, major, start date, end date, and more. Includes current educational activities if listed. | array | > | interests | Individual's interests | List of all interests reported by the individual on their profile. | array | > | skills | Individual's skills | List of all skills reported by the individual on their profile. | array | > | job\_title | Individual's job title | Individual's current job title listed on their professional profile. | string | > | job\_department | Individual's job department | **Deprecated** — use `job_department_main` / `job_department_array` instead. Individual's job department, derived from their current job title. | object | > | job\_department\_array | Job Department (Array) | All detected normalized job departments for the individual. Examples: retail, engineering, customer success, administration, education, security, healthcare, public service, partnerships, creative, strategy, real estate, procurement, IT, data, c-suite, manufacturing, support, logistics, product, sales, design, marketing, finance, R\&D, trade, human resources, legal, operations. | array\ | > | job\_department\_main | Job Department (Main) | Primary normalized job department selected from the detected departments (e.g., “engineering”). Examples of possible values: retail, engineering, customer success, administration, education, security, healthcare, public service, partnerships, creative, strategy, real estate, procurement, IT, data, c-suite, manufacturing, support, logistics, product, sales, design, marketing, finance, R\&D, trade, human resources, legal, operations. | string | > | job\_seniority\_level | Individual's seniority level | **Deprecated** — use `job_level_main` / `job_level_array` instead. Individual's top seniority level, derived from their current job title. | object | > | job\_level\_array | Job Level (Array) | All detected normalized job levels for the individual. Examples: manager, president, senior manager, owner, advisor, freelancer, junior, director, c-suite, board member, senior non-managerial, non-managerial, partner, vice president, founder. | array\ | > | job\_level\_main | Job Level (Main) | Primary normalized job level selected from the detected levels (e.g., “senior non-managerial”). Examples of possible values: manager, president, senior manager, owner, advisor, freelancer, junior, director, c-suite, board member, senior non-managerial, non-managerial, partner, vice president, founder. | string | > | company\_name | Individual's workplace: company name | Name of the company the individual listed as their workplace. | string | > | full\_name | Individual's full name | First and last names associated with the individual, appended with a space. | string | **For additional enrichment options, explore related API endpoints below.** ## Body Params - Try Me Example ``` prospect_ids: ee936e451b50c70e068e1b54e106cb89173198c4 ``` # Profiles (async) Source: https://developers.explorium.ai/v2/prospects/enrichments/profiles_job post /v2/prospects/profiles/job > [!WARNING] > > **Deprecated response fields:** `job_department` and `job_seniority_level` are deprecated and will be removed in a future release. Read `job_department_main` / `job_department_array` and `job_level_main` / `job_level_array` instead. (The `job_department` **filter** is not affected.) ## Description The **Asynchronous Professional Profile Enrichment** API provides detailed professional and workplace insights for up to **10,000** prospects in a single request. This endpoint enables deep analysis of career history, education, and workplace affiliations. **Key Benefits:** * **Retrieve bulk professional profiles** including job history, skills, and education. * **Enhance recruiting and sales efforts** with verified workplace details. * **Optimize segmentation and outreach** using structured career insights. > [!NOTE] > > **Asynchronous variant.** This submits a job through the [async job infrastructure](/v2/async-jobs) — poll [job status](/v2/jobs/get_job_status) for progress and results. Input comes from an uploaded dataset (`list_id`); limits are 10,000 rows and a 24-hour run time. > > For the full output signal reference, see [the synchronous endpoint](/v2/prospects/enrichments/profiles_enrich). > **How It Works** > > 1. **Input:** Provide up to 10,000 `prospect_id` values, obtained from the **Match Prospects** endpoint. > 2. **Processing:** The system retrieves verified professional details, including job history, education, and workplace affiliations. > 3. **Output:** Returns structured data in the same order as the input, ensuring easy mapping. > **Request Schema** > > | Field | Type | Description | > | :- | :- | :- | > | `list_id` | String | Identifier of an uploaded entity ID dataset (Required) | > **Example Request (cURL)** > > ```shell Bash theme={null} > curl --request POST \ > --url https://api.explorium.ai/v2/prospects/profiles/job \ > --header 'accept: application/json' \ > --header 'api_key: ' \ > --header 'content-type: application/json' \ > --data '{ > "prospect_ids": [ > "ee936e451b50c70e068e1b54e106cb89173198c4", > "d668424ab4f6aaeeeb74248d56b8335383fd522b" > ] > }' > ``` > **Example Response** > > ```json JSON expandable theme={null} > { > "response_context": { > "correlation_id": "6f7eeca192604c73ae5b5a07671ba438", > "request_status": "success", > "time_taken_in_seconds": 0.454 > }, > "data": [ > { > "prospect_id": "ee936e451b50c70e068e1b54e106cb89173198c4", > "data": { > "full_name": "Satya Nadella", > "country_name": "united states", > "region_name": "washington", > "city": "seattle", > "linkedin": "https://linkedin.com/in/ACoAAAEkwwAB9KEc2TrQgOLEQ-vzRyZeCDyc6DQ", > "experience": [ > { > "company": { > "name": "university of chicago", > "website": "uchicago.edu" > }, > "title": { > "levels": [ > null > ], > "name": "member board of trustees" > }, > "start_date": "2018-01", > "is_primary": false > }, > { > "company": { > "name": "fred hutch", > "website": "fredhutch.org" > }, > "title": { > "levels": [ > "director" > ], > "name": "board member" > }, > "start_date": "2016-01", > "end_date": "2022-01" > }, > { > "company": { > "name": "microsoft", > "website": "microsoft.com" > }, > "title": { > "levels": [ > "cxo" > ], > "name": "chairman and chief executive officer" > }, > "start_date": "2014-02", > "is_primary": true > }, > { > "company": { > "name": "starbucks", > "website": "starbucks.com" > }, > "title": { > "levels": [ > "director" > ], > "name": "board member" > }, > "start_date": "2017-01", > "end_date": "2024-01" > }, > { > "company": { > "name": "the business council us", > "website": "thebusinesscouncil.org" > }, > "title": { > "levels": [ > "cxo" > ], > "name": "chairman" > }, > "start_date": "2021-01", > "end_date": "2023-01" > } > ], > "skills": null, > "interests": null, > "age_group": "41-50", > "education": [ > { > "degrees": [ > "masters degree" > ], > "majors": [ > "computer science" > ], > "minors": [], > "school": { > "name": "university of wisconsin milwaukee" > } > }, > { > "start_date": "1994", > "end_date": "1996", > "minors": [], > "school": { > "name": "the university of chicago booth school of business" > } > }, > { > "degrees": [ > "bachelors degree" > ], > "majors": [ > "electrical engineering" > ], > "minors": [], > "school": { > "name": "manipal institute of technology" > } > } > ], > "gender": "male", > "company_name": "Microsoft", > "company_website": "https://microsoft.com", > "company_linkedin": "https://www.linkedin.com/company/microsoft", > "job_department": null, > "job_department_array": [ > "c-suite" > ], > "job_department_main": "c-suite", > "job_seniority_level": "cxo", > "job_level_array": [ > "c-suite" > ], > "job_level_main": "c-suite", > "job_title": "Chairman And Chief Executive Officer", > "linkedin_url_array": [ > "https://linkedin.com/in/acoaaaekwwab9kec2trqgoleq-vzryzecdyc6dq", > "https://linkedin.com/in/satyanadella" > ] > } > }, > { > "prospect_id": "d668424ab4f6aaeeeb74248d56b8335383fd522b", > "data": { > "full_name": "Jensen Huang", > "country_name": "united states", > "region_name": "california", > "city": "los altos hills", > "linkedin": "https://linkedin.com/in/ACoAABMznFkB_XPgkYHnUl33kIHTWt1DtMAV6Pg", > "experience": [ > { > "company": { > "name": "nvidia", > "website": "nvidia.com" > }, > "title": { > "levels": [ > "cxo" > ], > "name": "founder and chief executive officer" > }, > "start_date": "1993-01", > "is_primary": true > }, > { > "company": { > "name": "dennys", > "website": "dennys.com" > }, > "title": { > "levels": [ > null > ], > "name": "dishwasher, busboy, waiter" > }, > "start_date": "1978-01", > "end_date": "1983-01" > } > ], > "skills": [ > "management" > ], > "interests": null, > "age_group": "61-70", > "education": [ > { > "degrees": [ > "bsee" > ], > "start_date": "1980", > "end_date": "1984", > "minors": [], > "school": {} > }, > { > "degrees": [ > "msee" > ], > "start_date": "1990", > "end_date": "1992", > "minors": [], > "school": {} > } > ], > "gender": "male", > "company_name": "Nvidia", > "company_website": "https://nvidia.com", > "company_linkedin": "https://www.linkedin.com/company/nvidia", > "job_department": null, > "job_department_array": [ > "c-suite" > ], > "job_department_main": "c-suite", > "job_seniority_level": "cxo", > "job_level_array": [ > "c-suite", > "founder" > ], > "job_level_main": "c-suite", > "job_title": "Founder And Chief Executive Officer", > "linkedin_url_array": [ > "https://linkedin.com/in/acoaabmznfkb_xpgkyhnul33kihtwt1dtmav6pg", > "https://linkedin.com/in/jenhsunhuang" > ] > } > } > ], > "total_results": 2 > } > ``` > **Best Practices** > > * **Ensure valid prospect IDs** to maximize data accuracy. > * **Use enriched profiles** to refine candidate selection and outreach. > * **Monitor career movements** to track professional growth trends. > * **Leverage structured education and skills data** for talent and partnership analysis. > **Asynchronous Professional Profile Output Signals** > > | Signal | API Name | Description | Data Type Final | > | :- | :- | :- | :- | > | gender | Individual's gender | Gender reported by the individual on their profile. If gender is not reported on profile, returned value is 'null'. | string | > | city | Individual's city of residence | Individual's city of residence reported on profile. | string | > | country\_name | Individual's country of residence | Individual's country of residence reported on profile. | string | > | region\_name | Individual's State / Region of residence | Individual's state or region of residence reported on profile. | string | > | company\_website | Individual's workplace: company website | URL to the company website belonging to the individual's workplace. | string | > | company\_linkedin | Individual's workplace: company LinkedIn® url | URL to the company LinkedIn® page belonging to the individual's workplace. | string | > | linkedin | Individual's LinkedIn® URL | URL of the individual's LinkedIn® profile. | url | > | linkedin\_url\_array | LinkedIn® Identifier Array | A list of LinkedIn® profile URLs associated with the prospect. Each entry may include a standard public URL and/or a URN-based URL. | array\[string] | > | age\_group | Individual's age group | Individual's estimated age group. | string | > | experience | Individual's work experience background | List of work experience background entries on the individual's profile. May include: company name, company website, job title, seniority level, role, start date, end date, and more. Includes current work experience activities if listed. | array | > | education | Individual's educational background | List of educational background entries on the individual's profile. May include: institutions name, institutions website, degree category, major, start date, end date, and more. Includes current educational activities if listed. | array | > | interests | Individual's interests | List of all interests reported by the individual on their profile. | array | > | skills | Individual's skills | List of all skills reported by the individual on their profile. | array | > | job\_title | Individual's job title | Individual's current job title listed on their professional profile. | string | > | job\_department | Individual's job department | **Deprecated** — use `job_department_main` / `job_department_array` instead. Individual's job department, derived from their current job title. | object | > | job\_department\_array | Job Department (Array) | All detected normalized job departments for the individual. Examples: retail, engineering, customer success, administration, education, security, healthcare, public service, partnerships, creative, strategy, real estate, procurement, IT, data, c-suite, manufacturing, support, logistics, product, sales, design, marketing, finance, R\&D, trade, human resources, legal, operations. | array\ | > | job\_department\_main | Job Department (Main) | Primary normalized job department selected from the detected departments (e.g., “engineering”). Examples of possible values: retail, engineering, customer success, administration, education, security, healthcare, public service, partnerships, creative, strategy, real estate, procurement, IT, data, c-suite, manufacturing, support, logistics, product, sales, design, marketing, finance, R\&D, trade, human resources, legal, operations. | string | > | job\_seniority\_level | Individual's seniority level | **Deprecated** — use `job_level_main` / `job_level_array` instead. Individual's top seniority level, derived from their current job title. | object | > | job\_level\_array | Job Level (Array) | All detected normalized job levels for the individual. Examples: manager, president, senior manager, owner, advisor, freelancer, junior, director, c-suite, board member, senior non-managerial, non-managerial, partner, vice president, founder. | array\ | > | job\_level\_main | Job Level (Main) | Primary normalized job level selected from the detected levels (e.g., “senior non-managerial”). Examples of possible values: manager, president, senior manager, owner, advisor, freelancer, junior, director, c-suite, board member, senior non-managerial, non-managerial, partner, vice president, founder. | string | > | company\_name | Individual's workplace: company name | Name of the company the individual listed as their workplace. | string | > | full\_name | Individual's full name | First and last names associated with the individual, appended with a space. | string | ## Body Params - Try Me Example ``` prospect_ids: ee936e451b50c70e068e1b54e106cb89173198c4, 57f9e5dac64d31d80e6e9432fe2c500d0bba2c01 ``` # Create prospect enrollment Source: https://developers.explorium.ai/v2/prospects/events/create_enrollment post /v2/prospects/events/enrollments Requires a `webhook_id` of an **active** [v2 webhook](/v2/endpoints/webhooks) in your scope — unknown IDs return `404`, a missing `webhook_id` or wrong scope/status returns `422`; delivery is never silently re-pointed. Up to **1,000 IDs per request**, unlimited total across requests. # Delete prospect enrollment Source: https://developers.explorium.ai/v2/prospects/events/delete_enrollment delete /v2/prospects/events/enrollments/{enrollment_id} Stops monitoring for this enrollment. The webhook and other enrollments are unaffected. # Fetch prospect events Source: https://developers.explorium.ai/v2/prospects/events/fetch_events post /v2/prospects/events ### Introduction The **Prospect Events** API provides insights into recent events related to selected prospects, including job changes, company transitions, and professional anniversaries. These insights are essential for timely engagement, personalized outreach, and tracking career movements. **Key Benefits:** * Track **real-time career movements** of prospects. * Identify **engagement opportunities** based on job changes. * Enhance **lead nurturing** by targeting prospects during career transitions. * Integrate with **CRM and sales platforms** for automated alerts. **Important:** Events API tracks only **recent events within the last quarter (3 months)**. If no relevant events occurred in this timeframe, no data will be returned. **Looking for historical data?** Use the **Prospect Enrichment API** to retrieve long-term career and engagement trends. ### Endpoint: `POST https://api.explorium.ai/v2/prospects/events` > [!NOTE] > > **v2:** requests accept up to **40 `prospect_ids`** per call. > **How It Works** > > 1. **Input:** Provide a list of prospect IDs and event types. > 2. **Processing:** The system retrieves relevant event details. > 3. **Output:** A structured response with matched prospect events. > **Query Parameters** > > | Parameter | Type | Description | > | :- | :- | :- | > | `event_types` | Array | List of event types to filter results. See event types below. | > | `prospect_ids` | Array | List of prospect IDs to track. — up to **40 per request** | > | `timestamp_from` | String | Return only events that occurred after this timestamp. | > **Supported Event Types** > > | Event Type | Description | > | :- | :- | > | [prospect\_changed\_role](/v2/prospects/events/types/employee_job_changes) | Prospect has changed their role. | > | [prospect\_changed\_company](/v2/prospects/events/types/recently_changed_company) | Prospect has changed their company. | > | [prospect\_job\_start\_anniversary](/v2/prospects/events/types/employee_workplace_anniversary) | Employee's workplace anniversary, marking the anniversary of the employee's start date at their company. | > **Example and Response Request (cURL)** > > ### Example Request (cURL) > > ```curl cURL expandable theme={null} > curl -X POST \ > "https://api.explorium.ai/v2/prospects/events" \ > -H "API_KEY: your_api_key_here" \ > -H "Content-Type: application/json" \ > -d '{ > "event_types": [ > "prospect_changed_role", > "prospect_changed_company" > ], > "prospect_ids": [ > "20ae6cbf564ee683e66685e429844a5ff8ffc30f", > "4c485f009d59e319dc039cdf3e935b85014e6a33", > "fd4c46716295a2e4731417eee802a883280e4d57", > "a7bbe0674c63338e62ae4c10751ae19da5723e5a" > ], > "timestamp_from": "2024-01-01T10:03:03.050Z" > } > ' > ``` > > ### Example Response > > ```json JSON expandable theme={null} > { > "response_context": { > "correlation_id": "2826dd3eca6b4625aeddc30a3b96e11d", > "request_status": "success", > "time_taken_in_seconds": 0.931 > }, > "output_events": [ > { > "event_name": "prospect_changed_company", > "event_time": "2024-07-01T00:00:00+00:00", > "event_id": "3f7e8cf51cfd522ff0cef2249772ec0c", > "data": { > "event_name": "prospect_changed_company", > "current_company_name": "Headovations", > "current_company_id": "23d794056048ff2bc8c6b3a4ecd223d1", > "current_job_title": "Vice President Of Business Development", > "previous_company_name": "Gods Gang", > "previous_company_id": "23d794056048ff2bc8c6b3a4ecd223d1", > "previous_job_title": "Vice President Of Business Development" > }, > "prospect_id": "4c485f009d59e319dc039cdf3e935b85014e6a33" > }, > { > "event_name": "prospect_changed_company", > "event_time": "2024-06-01T00:00:00+00:00", > "event_id": "10f4a011c10112a6a986ff856107104c", > "data": { > "event_name": "prospect_changed_company", > "current_company_name": "Actalent", > "current_company_id": "97a52bce42dfc8f332fd534c4de8139f", > "current_job_title": "Aec Career Consultant / Recruiter", > "previous_company_name": "Koln/Kgin Tv 10/11 News", > "previous_company_id": "d8c9b663c31e377b0fdc80d156e66a06", > "previous_job_title": "Aec Career Consultant / Recruiter" > }, > "prospect_id": "20ae6cbf564ee683e66685e429844a5ff8ffc30f" > } > ] > } > ``` > **Best Practices** > > * **Monitor career movements** to enhance engagement strategies. > * **Leverage anniversaries** for personalized outreach. > * **Refine search criteria** to track only relevant prospects. > * **Utilize automation** to integrate prospect event tracking into CRM workflows. > * **Combine with enrichment data** to build a full profile of each prospect. > **Event Categories** > > * [Employee job changes](/v2/prospects/events/types/employee_job_changes) - Tracks when an employee changes their job title within the same company. > * [Recently changed company](/v2/prospects/events/types/recently_changed_company) - Identifies when an employee transitions to a new company. > * [Employee's workplace anniversary](/v2/prospects/events/types/employee_workplace_anniversary) - Marks the annual anniversary of an employee’s start date at their current company. # List prospect enrollments Source: https://developers.explorium.ai/v2/prospects/events/list_enrollments get /v2/prospects/events/enrollments Each enrollment is returned with its `enrollment_id`, `webhook_id`, `status` (`active` or `paused`), `event_types`, and enrolled entity IDs. # Employee changed role Source: https://developers.explorium.ai/v2/prospects/events/types/employee_job_changes ## Description An **Employee Changed Role** event tracks when an individual transitions into a new job or role. This data provides insights into career progressions, role changes, and leadership movement. The role change could occur at the same workplace they were previously or at a new one. **Important:** The **Employee Job Changes** event tracks **only recent position changes** within the last quarter (`timestamp_from` should be set to the past 3 months). If no employee changed jobs within the specified timeframe, no data will be returned. **For a historical view of workforce changes,** use the **Professional profile contact and workplace Enrichment API**. ## Use cases: * **Talent Intelligence**: Identify professionals moving into leadership positions. * **Sales & Outreach**: Target prospects who recently changed roles for timely engagement. * **Competitive Insights**: Track how key personnel shifts affect businesses. * **Recruitment Strategy**: Monitor role changes for hiring opportunities. ## Data Schema **Event Name: "prospect\_changed\_role" (Use this value in the event\_types parameter when querying this event.)** | Signal | API Name | Description | Data Type | | :- | :- | :- | :- | | previous\_job\_title | Employee's previous job title | Individual's previous job title listed on their professional profile. | string | | event\_time | Event time | The timestamp indicating when the event actually occurred | datetime | | current\_job\_title | Employee's current job title | Individual's current job title listed on their professional profile. | string | | current\_company\_name | Employee's current workplace | Name of the company where the individual currently works. | string | | current\_company\_id | Current workplace entity ID | Explorium's 32 character unique entity ID associated with the individual's current workplace. | string | | previous\_company\_name | Employee's previous workplace | Name of the company where the individual previously worked. | string | | previous\_company\_id | Previous workplace entity ID | Explorium's 32 character unique entity ID associated with the individual's previous workplace. | string | | event\_name | Event name | Name of the event related to employee's role change. | string | ## Query Example ```curl cURL theme={null} curl -X POST \ "https://api.explorium.ai/v2/prospects/events" \ -H "API_KEY: your_api_key_here" \ -H "Content-Type: application/json" \ -d '{ "event_types": [ "prospect_changed_role" ], "prospect_ids": [ "20ae6cbf564ee683e66685e429844a5ff8ffc30f" ], "timestamp_from": "2024-01-01T10:03:03.050Z" }' ``` ## Best Practices * **`Filter by company (current_company_name)`** to track role changes within target organizations. * **`Monitor title progression (current_job_title)`** to identify career advancements. * **`Use timestamps (event_time)`** to act on timely job changes. ## Related Events * [Recently changed company](/v2/prospects/events/types/recently_changed_company) - Identifies when an employee transitions to a new company. * [Employee's workplace anniversary](/v2/prospects/events/types/employee_workplace_anniversary) - Marks the annual anniversary of an employee’s start date at their current company. # Employee's workplace anniversary Source: https://developers.explorium.ai/v2/prospects/events/types/employee_workplace_anniversary ## Description A **Prospect Job Start Anniversary** event tracks when an individual reaches an annual milestone at their current company. This data is valuable for engagement strategies, career milestone tracking, and relationship-building opportunities. **Important:** The **Employee's Workplace Anniversary** event highlights **only recent work anniversaries** that occurred within the last quarter (`timestamp_from` should be set to the past 3 months). If no such events were recorded, the response will be empty. **For a historical view of employment duration trends,** refer to the **Professional profile contact and workplace Enrichment API**. ## Use cases: * **Sales & Outreach**: Use work anniversaries as an engagement touchpoint. * **Talent Retention Analysis**: Identify employees likely to consider career changes. * **Networking & Relationship Building**: Celebrate milestones with clients and prospects. * **Market Insights**: Track employee retention trends across industries. ## Data Schema **Event Name: "prospect\_job\_start\_anniversary" (Use this value in the event\_types parameter when querying this event.)** | Signal | API Name | Description | Data Type | | :- | :- | :- | :- | | full\_name | Employee's full name | First and last names associated with the individual, appended with a space. | string | | company\_name | Workplace company name | Name of the company where the individual is employed. | string | | years\_at\_company | Number of years at company | Number of years employee has been working at the company. | integer | | job\_title | Employee's job title | Current job title listed on the employee's professional profile. | string | | job\_anniversary\_date | Workplace anniversary date | Date and time the employee's anniversary data was collected by Explorium. | datetime | | event\_time | Employee event timestamp | Date of employee's upcoming workplace anniversary. | datetime | | linkedin\_url | Employee LinkedIn® URL | URL associated with the individual's LinkedIn® profile. | url | | event\_name | Event name | Name of the event related to the employee's workplace anniversary. | string | ## Query Example ```curl cURL theme={null} curl -X POST \ "https://api.explorium.ai/v2/prospects/events" \ -H "API_KEY: your_api_key_here" \ -H "Content-Type: application/json" \ -d '{ "event_types": [ "prospect_job_start_anniversary" ], "prospect_ids": [ "a7bbe0674c63338e62ae4c10751ae19da5723e5a" ], "timestamp_from": "2024-01-01T10:03:03.050Z" }' ``` ## Best Practices * **Leverage work anniversaries** for personalized engagement and outreach. * **`Track retention trends (years_at_company)`** to predict potential job changes. * **`Use LinkedIn data (linkedin_url)`** to validate professional milestones. ## Related Events > **[Employee job changes](/v2/prospects/events/types/employee_job_changes)** > > Tracks when an employee changes their job title within the same company. > **[Recently changed company](/v2/prospects/events/types/recently_changed_company)** > > Identifies when an employee transitions to a new company. # Employee changed workplace Source: https://developers.explorium.ai/v2/prospects/events/types/recently_changed_company ## Description An **Employee Changed Workplace** event tracks when an individual moves from one company to another. This data is essential for monitoring career transitions, business relationships, and professional network changes. An employee can keep their previous role or change roles when changing their place of work. **Important:** The **Recently Changed Company** event surfaces **only recent job transitions** within the last quarter (`timestamp_from` should be set to the past 3 months). If no employees changed companies during this period, no data will be available. **For a historical record of career transitions,** use the **Professional profile contact and workplace Enrichment API**. ## Use cases: * **Sales & Lead Generation**: Engage with prospects who recently joined a new company. * **Competitive Intelligence**: Monitor employee movements between competitors. * **Recruitment Strategy**: Identify candidates open to career transitions. * **Market Analysis**: Track key industry shifts based on talent movement. ## Data Schema **Event Name: "prospect\_changed\_company" (Use this value in the event\_types parameter when querying this event.)** | Signal | API Name | Description | Data Type | | :- | :- | :- | :- | | current\_company\_name | New Company Name | Name of the company where the individual currently works after the job change. | string | | current\_company\_id | New Company ID | Unique identifier of the company where the individual currently works. | string | | current\_job\_title | New Job Title | Individual's current job title at the new company. | string | | previous\_company\_name | Previous Company Name | Name of the company where the individual was previously employed. | string | | previous\_company\_id | Previous Company ID | Unique identifier of the company where the individual was previously employed. | string | | previous\_job\_title | Previous Job Title | Individual's job title before switching companies. | string | | event\_time | Event time | The timestamp indicating when the event actually occurred | datetime | | event\_name | Event name | Name of the event related to the employee's company change. | string | ## Query Example ```curl cURL theme={null} curl -X POST \ "https://api.explorium.ai/v2/prospects/events" \ -H "API_KEY: your_api_key_here" \ -H "Content-Type: application/json" \ -d '{ "event_types": [ "prospect_changed_company" ], "prospect_ids": [ "4c485f009d59e319dc039cdf3e935b85014e6a33" ], "timestamp_from": "2024-01-01T10:03:03.050Z" }' ``` ## Best Practices * **`Filter by company (current_company_name)`** to track key hires in target accounts. * **`Monitor job titles (current_job_title)`** to assess career progression. * **`Use timestamps (event_time)`** to reach out to prospects at the right time. ## Related Events > **[Employee job changes](/v2/prospects/events/types/employee_job_changes)** > > Tracks when an employee changes their job title within the same company. > **[Employee's workplace anniversary](/v2/prospects/events/types/employee_workplace_anniversary)** > > Marks the annual anniversary of an employee’s start date at their current company. # Update prospect enrollment Source: https://developers.explorium.ai/v2/prospects/events/update_enrollment patch /v2/prospects/events/enrollments/{enrollment_id} Updates any mutable field — `webhook_id`, `enrollment_key`, `event_types`, or the entity ID list. Re-pointing a `paused` enrollment to an active webhook reactivates it without re-enrolling entities. # Fetch prospects Source: https://developers.explorium.ai/v2/prospects/fetch_prospects post /v2/prospects > [!WARNING] > > **Deprecated response fields:** `job_department` and `job_seniority_level` are deprecated and will be removed in a future release. Read `job_department_main` / `job_department_array` and `job_level_main` / `job_level_array` instead. (The `job_department` **filter** is not affected.) ### Introduction The **Fetch Prospects** endpoint allows users to retrieve a list of prospect records based on filtering criteria such as job level, department, or other professional attributes. This API is essential for sales intelligence, lead enrichment, and prospecting workflows. **Key Benefits:** * Identify **high-value prospects** based on job roles, seniority, and industry. * Enhance **lead scoring and segmentation** with structured data. * Retrieve **up-to-date professional details** to optimize outreach. * Integrate seamlessly with existing **CRM and marketing automation** platforms. * Consideration: * Not all filters have a high coverage rate. Using a filter with low data coverage may result in a smaller set of returned results. * Conversely, using broader filters can yield more results. For example, if filtering by a very specific attribute results in few matches, expanding the filter criteria may increase the number of retrieved records. * When filtering by location, note that there are two distinct filter types: company location and prospect location. For example, the `company_country_code` filter applies to the company's headquarters location, while the `country_code` filter applies to the individual prospect's location. This distinction is particularly important for global companies where prospects may be distributed across different locations than the company headquarters. ### Endpoint:`POST /prospects` > **How It Works** > > 1. **Input:** Provide filters such as job level, department, or industry to refine prospect search. > 2. **Processing:** The system scans and retrieves relevant prospect records. > 3. **Output:** A structured response containing matched prospect data. > **Request Schema** > > | Field | Type | Description | > | - | - | - | > | `mode` | String | `full` | > | `page_size` | Number | Required. Max number of records per page, from 1 to 500 | > | `page` | Number | Optional. Page number to fetch; omit for cursor pagination | > | `next_cursor` | String | Optional. Cursor from the previous response, for cursor pagination | > | `filters` | Object | Filter object (see Filters Object below) | > **Pagination, Filtering & Modes Parameters** > > ### Data Fetching: Pagination, Filtering & Modes > > The API supports flexible data fetching through **pagination**, **filtering**, and optional **modes** to customize the amount and structure of the returned data. > > #### Pagination > > To efficiently retrieve large datasets, use the following parameters to paginate the results: > > | Parameter | Type | Description | > | - | - | - | > | `page_size` | Number | **Required.** Number of records to return per page, from 1 to 500. | > | `page` | Number | Optional. The page number to fetch (1-based), to jump straight to a specific page. Omit it, or send `null`, to use cursor pagination instead. | > | `next_cursor` | String | Optional. For cursor pagination: the `page.next_cursor` value from the previous response. Omit it, or send `null`, to start from the first page. | > > **Behavior Notes:** > > Choose one of two pagination styles: > > * **Page numbers** — send `page`. The response's `page` object is `{"size", "number", "total_pages"}`, so you can jump to any page. > * **Cursor** (used when `page` is omitted) — the response's `page` object is `{"size", "next_cursor"}`. Pass `next_cursor` in the next request to get the following page. > > #### Filtering > > Filters allow you to narrow down results based on specific field values. All filters must be included in the request body under the `"filters"` key, as a JSON object. > > Each filter field accepts: > > * `value`: for a single filter value (e.g. `"value": "true"`) > * `values`: for multiple possible matches (e.g. `"values": ["director", "manager"]`) > > **Example Request Body:** > > ```json theme={null} > { > "filters": { > "job_level": { > "values": ["director", "manager"] > }, > "has_contact_details": { > "value": "email_or_phone" > } > } > } > ``` > > **Filter Matching Logic:** > > * Fields using `value` are matched exactly. > * Fields using `values` are matched using an **OR** condition. > * Filters are combined using an **AND** across different fields. > > #### Mode Parameter > > The optional `mode` parameter defines the level of detail in the returned data. > > | Mode | Description | > | - | - | > | `full` | Returns the complete data object for each prospect. Use this when full detail is required for processing or display. | > > > [!WARNING] > > > > **`preview` mode is restricted.** It's blocked by default and available only to paying customers on a **custom plan**. Use `mode: "full"`. To get preview access, see [pricing and plans](https://admin.explorium.ai/pricing). > > > > **What preview returns:** each record keeps every field name, but only `prospect_id`, `business_id`, `full_name`, `job_title`, `company_name`, `country_name`, and `professional_email_hashed` (when the prospect has an email) have values. All other fields are returned as `null`. > > #### Best Practices > > * Always use `page_size` to control payload size for better performance. > * * Apply filters whenever possible to reduce response size and processing time. > **Prospect Filters** > > ### Prospect Filters Reference > > | Parameter | Description | Notes / Best Practices | > | - | - | - | > | has\_contact\_details | Filter prospects by email and phone availability. Values: \[email, phone, email\_or\_phone, email\_and\_phone] | Uses a single `value`: `email` — has an email; `phone` — has a phone number; `email_or_phone` — has at least one of the two; `email_and_phone` — has both. Replaces v1's has\_email and has\_phone\_number, which are removed in v2. | > | job\_title | Filter prospects by their job titles. Example: \[Sales Representative, SEO specialist, Technical Support Engineer] | Enter one or more job titles as free text. The filter matches prospects whose title includes all the words. For more consistent results, prefer using job\_level and job\_department. Uses a single `value` with flexible keyword matching. Logic ensures all words appear in the target field, regardless of order. | > | include\_related\_job\_titles (Used inside job\_title filter) | Expand filtering results to include related job titles. | When set to `true`, the system broadens the search to include job titles that are semantically or hierarchically related to the provided title(s). Default is `false`. Useful for retrieving a wider range of relevant roles. | > | job\_level | Filter prospects by their job level. **Examples Categories**: manager, president, senior manager, owner, advisor, freelancer, junior, director, c-suite, board member, senior non-managerial, non-managerial, partner, vice president, founder, training, unpaid | Use autocomplete to search and select job levels. You can choose one or more values. The response fields (`job_level_array`, `job_level_main`) provide enriched context. Examples of new levels: manager, president, senior manager, owner, advisor, freelancer, junior, director, c-suite, board member, senior non-managerial, non-managerial, partner, vice president, founder, training, unpaid | > | job\_department | Filter prospects by their job department. **Examples Categories:** retail, engineering, customer success, administration, education, security, healthcare, public service, partnerships, creative, strategy, real estate, procurement, IT, data, c-suite, manufacturing, support, logistics, product, sales, design, marketing, finance, R\&D, trade, human resources, legal, operations. | Use autocomplete to browse and select departments. Works best when combined with job\_level to ensure title coverage across organizations. The response fields (`job_department_array`, `job_department_main`) provide enriched context. Examples of new departments: retail, engineering, customer success, administration, education, security, healthcare, public service, partnerships, creative, strategy, real estate, procurement, IT, data, c-suite, manufacturing, support, logistics, product, sales, design, marketing, finance, R\&D, trade, human resources, legal, operations. | > | skills | Filter prospects by the skills listed on their profile. Example: \[python, project management, salesforce] | Use the `skills` autocomplete to search and select valid values — free text that does not match a known skill will not return results. Accepts a list of `values`, matched with **OR**. Logic checks the prospect's `skills` field. Combine with job\_department or job\_level to narrow to a specific role. | > | interests | Filter prospects by their professional interests. Example: \[artificial intelligence, sustainability, fintech] | Use the `interests` autocomplete to search and select valid values — free text that does not match a known interest will not return results. Accepts a list of `values`, matched with **OR**. Logic checks the prospect's `interests` field. Useful for personalizing outreach. | > | business\_id | Filter prospects by account. Use Explorium entity IDs. Example: \[EXP\_ENTITY\_ID\_1, EXP\_ENTITY\_ID\_2]\[EXP\_ENTITY\_ID\_1, EXP\_ENTITY\_ID\_2] | Paste one or more valid business IDs. These are specific identifiers in the system. | > | country\_code | Filter prospects by country using alpha-2 codes. Example: \[us, ca] | Use the country autocomplete to search by country name and select the correct two-letter code. This avoids manual errors and ensures valid input. Uses a list of `values`. Logic checks whether the country code matches. | > | region\_country\_code | Filter prospects by region using ISO 3166-2 codes. Example: \[us-ut, us-ca] | First choose a country in the autocomplete, then select a region. The code will be formatted as `country-region` (e.g., `us-ca`). Uses `values`. Logic checks for region code inclusion. | > | city\_region\_country | Filter by city, region, and country of the company location. Example: \["New York, NY, US"] | Use cascading autocomplete to select a country, then region and city. The full location string is used for precise geographic targeting. Accepts multiple `values`. Logic checks structured address fields. | > | company\_size | Filter by company’s number of employees. Options: \[1-10, 11-50, ..., 10001+] | Use autocomplete to select the company size range you're interested in. Helpful for distinguishing between small businesses and large enterprises. Accepts multiple `values`. Internally maps to normalized size brackets. | > | company\_revenue | Filter by company’s annual revenue. Options: \[0-500K, 500K-1M, ..., 10B-100B] | Use autocomplete to choose from available revenue brackets. Each value represents a range, making segmentation simple and accurate. Accepts `values`. The logic compares the company revenue field against the selected bracket range. | > | google\_category | Filter by company’s Google business category. Example: \[Paving contractor, Retail] | Use autocomplete to find and apply relevant business categories based on Google's classifications. Accepts `values`. The logic checks category labels against company classification metadata. | > | naics\_category | Filter by NAICS code (2, 4, or full). Example: \[23, 5611] | Use autocomplete to find relevant industry codes. Recommended for accurate industry classification. Uses multiple `values`. Logic compares NAICS codes to industry metadata. | > | linkedin\_category | Filter by company’s LinkedIn business category. Example: \[software development, investment banking] | Use autocomplete to choose from LinkedIn’s available business categories to align with industry filters, or [download the full list as a CSV](https://assets.explorium.ai/reference/linkedin_categories.csv). Accepts `values`. Filters based on company category tags provided by LinkedIn. | > | company\_country\_code | Filter by company HQ country using alpha-2 codes. Example: \[us, ca] | Use the country autocomplete to select the appropriate country code. This ensures accurate targeting based on company location. Accepts `values`. Matches against the company’s registered country code. | > | company\_region\_country\_code | Filter by company HQ region using ISO 3166-2 codes. Example: \[us-ut, us-ca] | Start by choosing the company’s country, then use autocomplete to select the relevant region. This automatically formats the code correctly. Accepts multiple `values`. Matches structured region codes from company metadata. | > | total\_experience\_months | Filter by total months of experience. | You can specify minimum (`gte`) and/or maximum (`lte`) months of experience. For example, use `gte: 60` to filter for 5+ years. This uses a numeric `value` range. Logic compares experience duration against thresholds. | > | current\_role\_months | Filter by number of months in current role. | Use `gte` or `lte` to define how long the prospect has held their current position. Great for identifying newly promoted prospects or those with long tenure. Accepts a numeric range of `value`. Logic checks against current role start date. | > | company\_name | Filter by company name. Example: \["Meta", "Tesla"] | - Use autocomplete to search and select company names. - Enter one or more full company names. - Useful for targeting specific known organizations. - Accepts a list of `values`. - Matching is exact match. | > | company\_age | Filter accounts by how many years since they were established. Categories: \["0-3", "3-6", ..., "20+"] | - Use autocomplete to select a range representing company age. - Accepts multiple `values`. - Logic compares establishment year against current date to determine match. | > | has\_website | Filter businesses by whether they have a website. Categories: `[True, False]` | - Uses a list of boolean values. - Best practice: set to `True` to focus on companies with an online presence. | > | is\_public\_company | Filter businesses by whether they are publicly traded (have a stock ticker). Categories: \[True, False] | - Uses a list of boolean values. - Best practice: set to `True` when targeting enterprise/public companies with verified ticker data. | > | company\_number\_of\_locations | Filter accounts by how many office locations they operate. Example: `["1", "2-5", "6+"]` | - Use autocomplete to select location range. - Accepts a list of `values`. - Logic checks for company location count metadata. | > | prospect\_id | Filter prospects by a specific list of Explorium prospect IDs | Use to re-filter or enrich a known set of prospects from previous queries or your own data. Accepts an array of IDs in the `value` field. Can be combined with other filters for further refinement. | > > > [!TIP] > > > > **Finding valid LinkedIn categories:** You can discover supported `linkedin_category` values in two ways — use the [Autocomplete endpoint](/v2/autocomplete) with `field=linkedin_category` for interactive suggestions, or [download the full LinkedIn categories list as a CSV](https://assets.explorium.ai/reference/linkedin_categories.csv). Values are lowercase, e.g. `software development`. > > ### **Prospecting HR Directors at Healthcare Companies in Texas for Payroll Software** > > #### Use Case: > > A payroll software provider wants to sell to HR directors at mid-sized healthcare organizations in Texas who handle payroll compliance and workforce management. > > #### Filters: > > * **Company Country Code**: `["us"]` > * **Company Region (State Code)**: `["us-tx"]` > * **Company Size**: `["501-1000"]` > * **Company Revenue**: `["75M-200M"]` > * **NAICS Category**: `["62"]` *(Healthcare & Social Assistance)* > * **Job Level**: `["director", "manager", "vp"]` > * **Job Department**: `["human resources"]` > * **Has Email**: `["True"]` > > #### Targeting CFOs of Investment Banks in New York for Financial Compliance Software > > A regulatory compliance software provider wants to reach out to CFOs at mid-sized investment banks in New York who have been in their role for over two years and are likely leading compliance initiatives. > > #### Filters: > > * **Company Country Code**: `["us"]` > * **Company Region (State Code)**: `["us-ny"]` > * **Company Size**: `["1001-5000"]` > * **Company Revenue**: `["500M-1B"]` > * **LinkedIn Category**: `["investment banking"]` > * **Job Department**: `["finance"]` > * **Job Level**: `["CXO"]` > * **Has Email**: `["True"]` > * **Has Phone Number**: `["True"]` > **Example Request (cURL)** > > ```curl cURL expandable theme={null} > { > "request_context": {}, > "mode": "full", > "size": 10, > "page_size": 10, > "page": 1, > "exclude": [ > "a5fbfab4d7221b144efecbe83e55cbf80b64bd50" > ], > "filters": { > "has_contact_details": { > "value": "email_and_phone" > }, > "job_level": { > "values": [ > "owner", > "cxo", > "vp", > "director", > "senior", > "manager", > "partner", > "non-managerial", > "founder", > "training", > "c-suite" > ] > }, > "job_department": { > "values": [ > "real estate", > "Customer service", > "Trades", > "design", > "Public relations", > "Legal", > "Operations", > "Media", > "Sales", > "Marketing", > "Finance", > "Engineering", > "Education", > "General", > "Health", > "Design", > "Human resources" > ] > }, > "business_id": { > "values": [ > "8adce3ca1cef0c986b22310e369a0793", > "340c8040bd50cbab9c7df718bbe51cc9" > ] > }, > "total_experience_months": { > "gte": 1, > "lte": 10 > }, > "country_code": { > "values": [ > "US", > "CA" > ] > }, > "current_role_months": { > "gte": 1, > "lte": 10 > }, > "company_size": { > "values": [ > "1-10", > "11-50", > "51-200", > "201-500", > "501-1000", > "1001-5000", > "5001-10000", > "10001+" > ] > }, > "company_revenue": { > "values": [ > "0-500K", > "500K-1M", > "1M-5M", > "5M-10M", > "10M-25M", > "25M-75M", > "75M-200M", > "200M-500M", > "500M-1B", > "1B-10B", > "10B-100B", > "100B-1T", > "1T-10T", > "10T+" > ] > }, > "job_title": { > "values": [ > "Software Engineer", > "Data Scientist" > ], > "include_related_job_titles":true > } > } > } > > ``` > > **`Mode full`** : Returns additional attributes such as job history, social links, and experience. > > ```curl cURL expandable theme={null} > { > "response_context": { > "correlation_id": "2b0c4ecacc794e858323e90363ce71fa", > "request_status": "success", > "time_taken_in_seconds": 2.228 > }, > "data": [ > { > "prospect_id": "f7ab66ae5d2df8e5dd2a5b8cf5510984e6e051bb", > "professional_email_hashed": null, > "first_name": "Srini", > "last_name": "Nimmala", > "full_name": "Srini Nimmala", > "country_name": "united states", > "region_name": "california", > "city": "cupertino", > "linkedin": "linkedin.com/in/ACoAAAHvTaIBI71da_m7_EldbLT9Kf3136qRCeg", > "experience": [ > "Senior software engineer", > "ios cellular software", > "Software engineer", > "Senior software engineer", > "Principal engineering manager", > "ios cellular software", > "Director of software engineering", > "ios cellular software", > "Engineering manager", > "ios cellular software", > "Principal staff engineer", > "Senior engineering manager", > "ios cellular software", > "Software architect", > "ios cellular software", > "Software engineer" > ], > "skills": [ > "Lte" > ], > "interests": null, > "company_name": "Apple", > "company_website": "apple.com", > "company_linkedin": "linkedin.com/company/apple", > "job_department": null, > "job_department_array": [ > "engineering" > ], > "job_department_main": "Engineering", > "job_seniority_level": [ > null > ], > "job_level_array": [ > "director" > ], > "job_level_main": "director", > "job_title": "Director of software engineering, ios cellular software", > "business_id": "8adce3ca1cef0c986b22310e369a0793", > "linkedin_url_array": [ > "linkedin.com/in/ACoAAAHvTaIBI71da_m7_EldbLT9Kf3136qRCeg", > "linkedin.com/in/srini-nimmala-a02a54a" > ] > }, > { > "prospect_id": "eeb96f23df0d9db472b32230a7a773f355ffba7c", > "professional_email_hashed": null, > "first_name": "Prateek", > "last_name": "Gogia", > "full_name": "Prateek Gogia", > "country_name": "united states", > "region_name": "washington", > "city": "seattle", > "linkedin": "linkedin.com/in/ACoAAAOURPoBA9PLHU3E9YOMmLjLxFIcULevf70", > "experience": [ > "Senior software engineer", > "Senior software engineer", > "Senior software engineering manager", > "Software engineer", > "Software engineer", > "Sotware engineer", > "Junior server / network administrator", > "Software development manager" > ], > "skills": [ > "Software management", > "Golang", > "Cloud computing", > "Docker", > "Distributed systems", > "Container", > "Tcp/ip", > "Software development", > "Routing", > "Security", > "Internet protocol suite (tcp/ip)", > "Computer networking", > "Linux", > "Restful webservices", > "C", > "Github", > "Switches", > "Amazon web services (aws)", > "Python", > "Leadership", > "Network virtualization", > "Networking", > "Switching", > "Vxlan", > "Software defined networking", > "L2/l3 protocols", > "Osi model", > "Vlan", > "Kubernetes", > "Microservices" > ], > "interests": null, > "company_name": "Apple", > "company_website": "apple.com", > "company_linkedin": "linkedin.com/company/apple", > "job_department": "Engineering", > "job_department_array": [ > "engineering" > ], > "job_department_main": "Engineering", > "job_seniority_level": [ > "manager" > ], > "job_level_array": [ > "manager" > ], > "job_level_main": "manager", > "job_title": "Senior software engineering manager", > "business_id": "8adce3ca1cef0c986b22310e369a0793", > "linkedin_url_array": [ > "linkedin.com/in/ACoAAAOURPoBA9PLHU3E9YOMmLjLxFIcULevf70", > "linkedin.com/in/prateekgogia" > ] > }, > { > "prospect_id": "9aa792bb28263435aebf4140fd76d403f770de88", > "professional_email_hashed": null, > "first_name": "Hariharan", > "last_name": "Sukumar", > "full_name": "Hariharan Sukumar", > "country_name": "united states", > "region_name": "california", > "city": "san diego", > "linkedin": "linkedin.com/in/ACoAAA2Rz4wBn2Ip9ZFKvmE3tTkNASHea5cH5_A", > "experience": [ > "Ai / ml research", > "Senior engineer", > "Engineer", > "Engineer", > "staff", > "Software engineering manager", > "Software engineering manager", > "Engineer", > "Interim engineering intern", > "Software engineering manager", > "ai research", > "Software engineer" > ], > "skills": [ > "Object-oriented programming (oop)", > "Real-time operating systems (rtos)", > "C++", > "Device drivers", > "Embedded c", > "Artificial intelligence (ai)", > "Team management", > "Problem solving", > "Embedded operating systems", > "Embedded software programming", > "Machine learning", > "Microsoft office", > "Microsoft excel", > "Microsoft word", > "Powerpoint", > "English", > "Research", > "Windows", > "Outlook", > "Photoshop", > "C", > "Wcdma", > "Lte", > "Umts", > "3gpp", > "Wireless", > "Debugging", > "Embedded systems", > "System on a chip (soc)", > "Telecommunications", > "Software development", > "Firmware", > "3g", > "Mobile communications", > "Embedded software" > ], > "interests": null, > "company_name": "Apple", > "company_website": "apple.com", > "company_linkedin": "linkedin.com/company/apple", > "job_department": "Engineering", > "job_department_array": [ > "engineering" > ], > "job_department_main": "Engineering", > "job_seniority_level": [ > "manager" > ], > "job_level_array": [ > "manager" > ], > "job_level_main": "manager", > "job_title": "Software engineering manager", > "business_id": "8adce3ca1cef0c986b22310e369a0793", > "linkedin_url_array": [ > "linkedin.com/in/ACoAAA2Rz4wBn2Ip9ZFKvmE3tTkNASHea5cH5_A", > "linkedin.com/in/hariharan-sukumar-5a42ab64" > ] > }, > { > "prospect_id": "68aa73a73350546d04d462b2458eff1590c5799c", > "professional_email_hashed": null, > "first_name": "Yifeng", > "last_name": "Yuan", > "full_name": "Yifeng Yuan", > "country_name": "united states", > "region_name": "massachusetts", > "city": "somerville", > "linkedin": "linkedin.com/in/ACoAAALhDU4BFnCPUCXff5rBg6n1XbERlJ_N4tw", > "experience": [ > "Test engineer", > "Researcher", > "Application engineer intern", > "Test development engineer", > "Senior engineer", > "design evaluation engineer", > "Staff engineer", > "design evaluation engineer", > "Product test engineer", > "Engineering manager", > "Soc rfic integration and validation engineer", > "Test engineer", > "Rf desense engineering intern", > "Product engineering intern" > ], > "skills": [ > "Matlab", > "Spectrum analyzer", > "Network analyzer", > "Rf", > "Microwave", > "Debugging", > "C++", > "C", > "Simulink", > "Pspice", > "Visual basic", > "Ansoft designer", > "Autocad", > "Labview", > "Pspice", > "Git", > "Cadence", > "Analog", > "Agilent ads", > "Vector network analyzer", > "Gpib", > "Hfss", > "Sonnet", > "Ate", > "Devices interfacing", > "Analog cmos circuits", > "Mmic", > "Emc", > "Schematic", > "Microsoft office" > ], > "interests": null, > "company_name": "Apple", > "company_website": "apple.com", > "company_linkedin": "linkedin.com/company/apple", > "job_department": "Engineering", > "job_department_array": [ > "engineering" > ], > "job_department_main": "Engineering", > "job_seniority_level": [ > "manager" > ], > "job_level_array": [ > "manager", > "non-managerial" > ], > "job_level_main": "manager", > "job_title": "Soc rfic integration and validation engineer", > "business_id": "8adce3ca1cef0c986b22310e369a0793", > "linkedin_url_array": [ > "linkedin.com/in/ACoAAALhDU4BFnCPUCXff5rBg6n1XbERlJ_N4tw", > "linkedin.com/in/yifengy" > ] > }, > { > "prospect_id": "87a7845a9b728cc81a5beaa5dcbf2fbef23df26f", > "professional_email_hashed": null, > "first_name": "Sonat", > "last_name": "Karakas", > "full_name": "Sonat Karakas", > "country_name": "united states", > "region_name": "california", > "city": "san francisco", > "linkedin": "linkedin.com/in/ACoAAAMbxj4Bw3_c2LpFRUr4XmrXHIUURZJMw4o", > "experience": [ > "Software engineer", > "Senior software engineer", > "ios", > "Software engineering manager", > "Senior mobile applications developer", > "Manager of engineering", > "ios", > "Software engineer", > "ios", > "Senior software engineer", > "ios", > "Senior software engineer", > "Senior software engineer", > "ios", > "System administrator - software developer", > "Senior software engineer", > "ios" > ], > "skills": [ > "C#", > "Objective-c", > "Powerbuilder", > "J2ee application development", > "Java", > "Ocp", > "Sybase adaptive server", > "Mobile applications", > "Sql", > "Software engineering", > "Sun certified java programmer", > "Core java", > "Oracle certified professional", > "Design patterns", > "Databases", > "Ios development", > "Pl/sql", > "Telecommunications", > "Rest", > ".net", > "Mobile devices", > "Sybase sql anywhere", > "Project management", > "Database design", > "Iphone application development", > "Android", > "Ios development", > "Java enterprise edition", > "Software development" > ], > "interests": null, > "company_name": "Apple", > "company_website": "apple.com", > "company_linkedin": "linkedin.com/company/apple", > "job_department": "Engineering", > "job_department_array": [ > "engineering" > ], > "job_department_main": "Engineering", > "job_seniority_level": [ > "manager" > ], > "job_level_array": [ > "manager" > ], > "job_level_main": "manager", > "job_title": "Software engineering manager", > "business_id": "8adce3ca1cef0c986b22310e369a0793", > "linkedin_url_array": [ > "linkedin.com/in/ACoAAAMbxj4Bw3_c2LpFRUr4XmrXHIUURZJMw4o", > "linkedin.com/in/sonatkarakas" > ] > }, > { > "prospect_id": "c4a91c228230c867d85299156d4e396be61690bd", > "professional_email_hashed": null, > "first_name": "Mahmoud", > "last_name": "Nouby", > "full_name": "Mahmoud Nouby", > "country_name": "united states", > "region_name": "michigan", > "city": "canton", > "linkedin": "linkedin.com/in/ACoAAAa4WoABGUcCbuXTursx27Arn2kfE54bFZ0", > "experience": [ > "Software development intern", > "Software engineer", > "Software development engineer ii", > "Software developer", > "Software development engineer ii", > "Rf material planner", > "Freelance instructor", > "Software engineer", > "Network engineer", > "Software engineer", > "Co-founder" > ], > "skills": [ > "C#", > "Java", > "Javascript", > "Oop", > "Algorithms", > "Design patterns", > "Data structures", > "Programming", > "Shell scripting", > "Ios development", > "Agile methodologies", > "Machine learning", > "Android development", > ".net", > "C++", > "Html 5", > "Asp.net", > "Angularjs", > "Bootstrap", > "Linq", > "Html", > "Jquery", > "C", > "Ado.net", > "Uml", > "Xml", > "Sharepoint", > "Wpf", > "Databases", > "Microsoft sql server", > "Asp.net mvc", > "Visual studio", > "Css", > "Wcf", > "Linux", > "Xcode", > "Servlets", > "Jsp", > "Cryptography", > "Cyber-security", > "Wcf services", > "Ccna", > "Mvvm", > "Mef", > "Wpf development", > "Mac os", > "Event driven programming", > "Gulp.js", > "Tensorflow", > ".net framework" > ], > "interests": null, > "company_name": "Apple", > "company_website": "apple.com", > "company_linkedin": "linkedin.com/company/apple", > "job_department": "Engineering", > "job_department_array": [ > "engineering" > ], > "job_department_main": "Engineering", > "job_seniority_level": [ > "non-managerial" > ], > "job_level_array": [ > "non-managerial" > ], > "job_level_main": "non-managerial", > "job_title": "Software engineer", > "business_id": "8adce3ca1cef0c986b22310e369a0793", > "linkedin_url_array": [ > "linkedin.com/in/ACoAAAa4WoABGUcCbuXTursx27Arn2kfE54bFZ0", > "linkedin.com/in/nouby" > ] > }, > { > "prospect_id": "16dfd7a8b73e6969531bfa1dd0548f437fa21f7f", > "professional_email_hashed": null, > "first_name": "David", > "last_name": "Ho", > "full_name": "David Ho", > "country_name": "united states", > "region_name": "california", > "city": "los angeles", > "linkedin": "linkedin.com/in/ACoAAB-7dqoBpzZDFr8MI4CUfvLUaGMcIHMHGdM", > "experience": [ > "Software engineering manager", > "Ios developer", > "Staff software engineer", > "Ios software engineer ii", > "Senior software engineer", > "Ios software engineer", > "Intern", > "Technology intern", > "Editor", > "Computer science teaching assistant", > "Ios software engineer level three", > "Ios software engineer intern" > ], > "skills": [ > "Swift (programming language)", > "Python (programming language)", > "Sql", > "Python", > "Objective-c", > "Java", > "Leadership", > "Microsoft office", > "Customer service", > "Management", > "Microsoft excel", > "Microsoft word", > "Project management", > "Microsoft powerpoint", > "Research", > "Public speaking", > "Computer science", > "Swift", > "Html", > "Programming", > "Data analysis", > "C++", > "Teamwork", > "Sketch", > "Algorithms", > "Node", > "Databases", > "Software development", > "Social media" > ], > "interests": null, > "company_name": "Apple", > "company_website": "apple.com", > "company_linkedin": "linkedin.com/company/apple", > "job_department": "Engineering", > "job_department_array": [ > "engineering" > ], > "job_department_main": "Engineering", > "job_seniority_level": [ > "manager" > ], > "job_level_array": [ > "manager" > ], > "job_level_main": "manager", > "job_title": "Software engineering manager", > "business_id": "8adce3ca1cef0c986b22310e369a0793", > "linkedin_url_array": [ > "linkedin.com/in/ACoAAB-7dqoBpzZDFr8MI4CUfvLUaGMcIHMHGdM", > "linkedin.com/in/davidhho" > ] > }, > { > "prospect_id": "04e6faa31206ec8c5e9028a54a700105d455ed48", > "professional_email_hashed": null, > "first_name": "Mark", > "last_name": "Laney", > "full_name": "Mark Laney", > "country_name": "united states", > "region_name": "texas", > "city": "cedar park", > "linkedin": "linkedin.com/in/ACoAAAXzBB8BKmqbu0gNwQftaZqunGT3WgNMcyc", > "experience": [ > "Software engineer intern", > "Software engineer", > "full-stack - chemical engineering department", > "Senior software engineer", > "Software engineer intern", > "Software engineering manager", > "Software engineer", > "Big data intern" > ], > "skills": [ > "Typescript", > "Radar", > "Back-end development", > "Amazon web services (aws)", > "Apache spark", > "Java", > "Programming", > "Html", > "Object-oriented programming (oop)", > "Service-oriented architecture (soa)", > "Object oriented design", > "Technical documentation", > "Web development", > "Agile methodologies", > "Front-end development", > "Css", > "Spring framework", > "Sql", > "Git", > "Mysql", > "Maven", > "Javascript", > "Junit", > "Unified modeling language (uml)", > "Mongodb", > "Nosql", > "Core java", > "Representational state transfer (rest)", > "Cascading style sheets (css)", > "Graphql", > "Node.js", > "Docker", > "Public speaking", > "Team leadership", > "Customer service", > "Leadership", > "Spanish", > "Full-stack development", > "Cassandra", > "Message oriented middleware", > "Testng", > "Mockito", > "Agile application development", > "Technical presentations", > "Software design patterns", > "Express.js", > "React", > "Software architecture", > "React.js", > "Com", > "Accessibility" > ], > "interests": null, > "company_name": "Apple", > "company_website": "apple.com", > "company_linkedin": "linkedin.com/company/apple", > "job_department": "Engineering", > "job_department_array": [ > "engineering" > ], > "job_department_main": "Engineering", > "job_seniority_level": [ > "manager" > ], > "job_level_array": [ > "manager" > ], > "job_level_main": "manager", > "job_title": "Software engineering manager", > "business_id": "8adce3ca1cef0c986b22310e369a0793", > "linkedin_url_array": [ > "linkedin.com/in/ACoAAAXzBB8BKmqbu0gNwQftaZqunGT3WgNMcyc", > "linkedin.com/in/markjlaney" > ] > }, > { > "prospect_id": "f2ca9427a9ef3178c5da5853a12e27d0a0651802", > "professional_email_hashed": null, > "first_name": "Tarif", > "last_name": "K", > "full_name": "Tarif K.", > "country_name": "united states", > "region_name": "florida", > "city": "winter park", > "linkedin": "linkedin.com/in/ACoAAAa1AZEBl6gMxvAct035eMsqSGqwjckEYLM", > "experience": [ > "Software development intern", > "Software engineer", > "Intern", > "Senior software engineer", > "Senior software engineer", > "Senior software engineer", > "Staff software engineer", > "Security supervisor", > "Software engineering manager", > "Mobile web developer", > "Software engineer" > ], > "skills": [ > "Full-stack development", > "Backbone.js", > "Mentoring", > "Angularjs", > "Ember.js", > "Product development", > "Leadership", > "Team leadership", > "Project management", > "Web components", > "Vue.js", > "Javascript", > "Software development", > "User experience", > "Web development", > "Web applications", > "Programming", > "Usability", > "User interface", > "Front-end", > "Node.js", > "Swift", > "Ios", > "Css", > "Python", > "Git", > "Javascript frameworks", > "C (programming language)", > "Objective-c", > "C++", > "Swift (programming language)", > "Html", > "Typescript", > "Unix utilities" > ], > "interests": null, > "company_name": "Apple", > "company_website": "apple.com", > "company_linkedin": "linkedin.com/company/apple", > "job_department": "Engineering", > "job_department_array": [ > "engineering" > ], > "job_department_main": "Engineering", > "job_seniority_level": [ > "manager" > ], > "job_level_array": [ > "manager" > ], > "job_level_main": "manager", > "job_title": "Software engineering manager", > "business_id": "8adce3ca1cef0c986b22310e369a0793", > "linkedin_url_array": [ > "linkedin.com/in/ACoAAAa1AZEBl6gMxvAct035eMsqSGqwjckEYLM", > "linkedin.com/in/tarif-k-06982731" > ] > }, > { > "prospect_id": "0a48b12d25abfc597d92a8a626697198202bc3bc", > "professional_email_hashed": null, > "first_name": "Nikitha", > "last_name": "Lakshmanan", > "full_name": "Nikitha Lakshmanan", > "country_name": "united states", > "region_name": null, > "city": "san francisco bay area", > "linkedin": "linkedin.com/in/ACoAAB_PD-QB8ChlFofVGx6sezeUUk32eAy7EBo", > "experience": [ > "Student research assistant", > "usc shm lab", > "Mobile application developer", > "Senior software engineering manager", > "Senior software engineer", > "Software engineer", > "Software engineering intern", > "Staff software engineer" > ], > "skills": [ > "Java", > "C++", > "C", > "Microsoft office", > "Programming", > "Python", > "Ios", > "Swift", > "Unix", > "Sql", > "Matlab", > "Linux", > "Start-up environment" > ], > "interests": null, > "company_name": "Apple", > "company_website": "apple.com", > "company_linkedin": "linkedin.com/company/apple", > "job_department": "Engineering", > "job_department_array": [ > "engineering" > ], > "job_department_main": "Engineering", > "job_seniority_level": [ > "manager" > ], > "job_level_array": [ > "manager" > ], > "job_level_main": "manager", > "job_title": "Senior software engineering manager", > "business_id": "8adce3ca1cef0c986b22310e369a0793", > "linkedin_url_array": [ > "linkedin.com/in/ACoAAB_PD-QB8ChlFofVGx6sezeUUk32eAy7EBo", > "linkedin.com/in/nikitha-lakshmanan" > ] > } > ], > "total_results": 10, > "page": 1, > "total_pages": 1 > } > ``` > **Best Practices** > > * Use refined filters to retrieve the most relevant prospects. > * Batch requests efficiently to optimize API performance. > * Monitor pagination settings to avoid missing data. > * Ensure data freshness by running regular queries to keep prospect information up-to-date. > * Be mindful of filter coverage – some filters may return fewer results due to lower data availability, while broader filters may yield larger result sets. > * If you are not certain about the exact job title, it’s recommended to set `include_related_job_titles=true` to expand and include semantically related roles. > **Fetch Prospects Output Signal** > > The response returns a `data` array of prospect records matching your filters, along with pagination metadata. Each prospect record contains the following signals (`mode: full`): > > | Signal API | Name | Description | Data Type | > | :- | :- | :- | :- | > | prospect\_id | Explorium prospect ID | Explorium's 40-character unique prospect ID associated with the individual. Use this ID for all subsequent prospect enrichment calls. | string | > | first\_name | First name | The prospect's first name. | string | > | last\_name | Last name | The prospect's last name. | string | > | full\_name | Full name | The prospect's full name. | string | > | professional\_email\_hashed | Professional email (hashed) | Hashed representation of the prospect's professional email address. Use the Contacts Information enrichment to retrieve actual contact details. | string | > | country\_name | Country | The country where the prospect is located. Note this is the prospect's location, which may differ from the company headquarters location. | string | > | region\_name | Region | State or region where the prospect is located. | string | > | city | City | The city where the prospect is located. | string | > | linkedin | LinkedIn® profile | The prospect's primary LinkedIn® profile URL. | string | > | linkedin\_url\_array | LinkedIn® URL variations | All LinkedIn® profile URL variations associated with the prospect. | array\ | > | job\_title | Job title | The prospect's current job title. | string | > | job\_level\_main | Main job level | The primary job level classification of the prospect's current role (e.g., `director`, `manager`, `c-suite`). | string | > | job\_level\_array | Job levels | All job level classifications associated with the prospect's current role. | array\ | > | job\_department\_main | Main job department | The primary department classification of the prospect's current role (e.g., `Engineering`, `Sales`). | string | > | job\_department\_array | Job departments | All department classifications associated with the prospect's current role. | array\ | > | job\_department | Job department (deprecated) | Single-value department classification. May be `null`. **Deprecated** — use `job_department_main` / `job_department_array` instead. | string | > | job\_seniority\_level | Job seniority level (deprecated) | Seniority level classification. May contain `null`. **Deprecated** — use `job_level_main` / `job_level_array` instead. | array\ | > | experience | Experience | List of positions from the prospect's work history. | array\ | > | skills | Skills | Professional skills listed by the prospect. | array\ | > | interests | Interests | Personal and professional interests listed by the prospect. | array\ | > | company\_name | Company name | The name of the prospect's current employer. | string | > | company\_website | Company website | The website of the prospect's current employer. | string | > | company\_linkedin | Company LinkedIn® | The LinkedIn® page of the prospect's current employer. | string | > | business\_id | Explorium entity ID | Explorium's 32-character unique entity ID of the prospect's current employer. Use this to join prospect records with business enrichments. | string | > > In addition to `data`, the response includes pagination metadata: > > | Signal API | Name | Description | Data Type | > | :- | :- | :- | :- | > | response\_context | Response context | Metadata about the request, including `correlation_id`, `request_status`, and `time_taken_in_seconds`. | object | > | total\_results | Total results | The total number of prospects that match the filters. | integer | > | page | Page | Pagination details. With page numbers (`page` sent in the request): `size`, `number`, and `total_pages`. With cursor pagination: `size` and `next_cursor`. | object | ## Body Params - Try Me Example ```text theme={null} mode: full size: 100 page_size: 100, page: 1 filters: job_level: values: director, manager has_contact_details: value: email_or_phone ``` # Fetch prospects statistics Source: https://developers.explorium.ai/v2/prospects/fetch_prospects_statistics post /v2/prospects/stats # Prospects Statistics ### **Introduction** The **Prospects Statistics** API provides aggregated insights and distributions for prospects based on your search criteria. This powerful analytics endpoint helps you understand the composition of your prospect universe, enabling data-driven decisions for sales territory planning, market analysis, and campaign targeting. 📌 **Key Benefits:** * Get **instant insights** into prospect distributions without fetching individual records * Understand **market composition** by department, seniority, location, and more * Receive **dynamic statistics** that adapt to your filter criteria * Make **data-driven decisions** for territory planning and resource allocation * **No credit charges** for statistical analysis *** > **How It Works** > > **Input:** Provide filters identical to the prospects fetch endpoint to define your target audience > 2\. **Processing:** The system aggregates prospect data based on your filters and calculates distributions > 3\. **Output:** Dynamic statistics showing distributions for the filters you've applied > 4\. **Intelligence:** The response structure adapts based on which filters are used in the request > **Request Schema** > > | Field | Type | Description | Required | > | - | - | - | - | > | `filters` | Object | Filter criteria to define the prospect universe. Supports all filters from the `/v2/prospects` endpoint | No | > > **Note:** See the "Supported Filters" section below for the complete list of available filters and their usage. > **Supported Filters** > > This endpoint supports **ALL filters** available in the `/v2/prospects` fetch endpoint: > > ### **Contact Availability Filters** > > | Filter | Description | Example | > | - | - | - | > | `has_contact_details` | Filter by email and phone availability | `{"value": "email_or_phone"}` — values: `email`, `phone`, `email_or_phone`, `email_and_phone` | > > ### **Professional Filters** > > | Filter | Description | Example | > | - | - | - | > | `job_level` | Filter by seniority level | `{"values": ["director", "vp", "cxo"]}` | > | `job_department` | Filter by department | `{"values": ["sales", "marketing", "engineering"]}` | > | `job_title` | Filter by job title keywords | `{"value": "Sales Representative"}` | > | `total_experience_months` | Filter by total experience | `{"gte": 60, "lte": 120}` | > | `current_role_months` | Filter by time in current role | `{"gte": 12}` | > > ### **Geographic Filters** > > | Filter | Description | Example | > | - | - | - | > | `country_code` | Filter by prospect's country | `{"values": ["us", "gb", "de"]}` | > | `region_country_code` | Filter by prospect's region | `{"values": ["us-ca", "us-ny"]}` | > | `city_region_country` | Filter by city, region, country | `{"values": ["New York, NY, US"]}` | > > ### **Company Filters** > > | Filter | Description | Example | > | - | - | - | > | `business_id` | Filter by specific business IDs | `{"values": ["exp_id_1", "exp_id_2"]}` | > | `company_name` | Filter by company names | `{"values": ["Meta", "Tesla"]}` | > | `company_size` | Filter by employee count ranges | `{"values": ["51-200", "201-500"]}` | > | `company_revenue` | Filter by revenue ranges | `{"values": ["10M-50M", "50M-100M"]}` | > | `company_country_code` | Filter by company HQ country | `{"values": ["us", "ca"]}` | > | `company_region_country_code` | Filter by company HQ region | `{"values": ["us-ca", "us-tx"]}` | > > ### **Industry Classification Filters** > > | Filter | Description | Example | > | - | - | - | > | `google_category` | Filter by Google business category | `{"values": ["Software Development", "Retail"]}` | > | `naics_category` | Filter by NAICS industry codes | `{"values": ["5611", "23"]}` | > | `linkedin_category` | Filter by LinkedIn business category (use autocomplete, or [download the full list as a CSV](https://assets.explorium.ai/reference/linkedin_categories.csv)) | `{"values": ["software development", "investment banking"]}` | > > **Filter Structure:** > > * Use `{"values": [...]}` for multi-value filters > * Use `{"value": ...}` for single-value or boolean filters > * Use `{"gte": ..., "lte": ...}` for numeric range filters > **Dynamic Response Structure** > > The response intelligently adapts based on the filters used in your request: > > | Filters Used | Statistics Returned | Use Case | > | - | - | - | > | `job_department` + `region_country_code` | Distribution of departments across regions | Territory planning by function | > | `job_department` + `country_code` | Distribution of departments across countries | Executive targeting analysis | > | Single filter only | Simple count distribution | Quick market sizing | > > **Always Included:** > > * `total_results`: Total count of matching prospects > * `response_context`: Request metadata and performance metrics > **Request Examples** > > ```json theme={null} > { > "filters": { > "job_department": { > "values": ["engineering", "sales", "marketing"] > }, > "region_country_code": { > "values": ["us-ca", "us-ny", "us-tx"] > }, > "company_size": { > "values": ["51-200", "201-500"] > } > } > } > ``` > **Response Examples** > > **Department by Region Response:** > > ```json theme={null} > { > "response_context": { > "correlation_id": "812719a515474144a8cac019d7776b14", > "request_status": "success", > "time_taken_in_seconds": 0.75 > }, > "total_results": 4500, > "stats": { > "job_departments_per_location": { > "engineering": { > "California, US": 850, > "New York, US": 620, > "Texas, US": 480, > "total": 1950 > }, > "sales": { > "California, US": 560, > "New York, US": 410, > "Texas, US": 380, > "total": 1350 > }, > "marketing": { > "California, US": 420, > "New York, US": 350, > "Texas, US": 430, > "total": 1200 > }, > "total_per_location": { > "California, US": 1830, > "New York, US": 1380, > "Texas, US": 1290, > "total": 4500 > } > } > } > } > ``` > **Use Cases** > > ### **Sales Territory Planning** > > * Analyze prospect distribution across regions using `region_country_code` and `job_department` > * Balance territories based on prospect density with `company_size` and `job_level` filters > * Identify underserved markets by comparing prospect counts across geographic areas > > ### **Account-Based Marketing (ABM)** > > * Target specific companies using `company_name` or `business_id` filters > * Analyze decision-maker distribution with `job_level` and `job_department` > * Segment by company characteristics using `company_revenue` and `company_size` > > ### **Campaign Targeting** > > * Size your total addressable market using industry filters (`naics_category`, `linkedin_category`) > * Validate contact availability with `has_contact_details` > * Focus on new decision-makers using `current_role_months` filter > > ### **Market Intelligence** > > * Compare prospect density across industries using classification filters > * Analyze experience levels with `total_experience_months` > * Track job mobility trends with role duration filters > > ### **Lead Scoring & Qualification** > > * Identify high-value segments combining `job_level`, `company_revenue`, and `job_department` > * Find prospects in growth companies using company size and revenue filters > * Target specific buyer personas with precise filter combinations > **Best Practices** > > * **Start broad, then narrow:** Begin with 1-2 filters to understand market size, then add filters progressively > * **Validate before fetching:** Always run stats before expensive fetch operations to ensure sufficient results > * **Use classification filters:** Leverage `naics_category` or `linkedin_category` for accurate industry targeting > * **Combine geographic levels:** Use country → region → city filters for precise location targeting > * **Monitor regularly:** Schedule weekly/monthly stats queries to track market changes > * **Cross-reference filters:** Combine professional (job\_level) with company (company\_size) filters for better segmentation > * **Experience targeting:** Use experience filters to identify senior professionals or recent role changes > * **Industry-specific analysis:** Combine industry classifications with other filters for vertical-specific insights > **Important Notes** > > * **No credit charges:** Statistical queries are free and don't consume any credits > * **Real-time data:** Statistics reflect the current state of the prospect database > * **Dynamic response:** Response structure automatically adapts to your filter combination > * **All filters supported:** Every filter from the `/v2/prospects` endpoint works here **Try Me Example:** ```json theme={null} { "filters": { "job_department": { "values": ["engineering", "sales", "marketing"] }, "region_country_code": { "values": ["us-ca", "us-ny", "us-tx"] }, "company_size": { "values": ["51-200", "201-500"] } } } ``` # Match prospects Source: https://developers.explorium.ai/v2/prospects/match_prospects post /v2/prospects/match ### Introduction The **Match Prospects** endpoint allows users to accurately match individual prospects to unique **Prospect IDs** using multiple fetchers, such as email, phone number, LinkedIn profile, or name and company combination. This ensures accurate lead identification and enhances sales and marketing workflows. **Key Benefits:** * Match and validate **lead data** across multiple fetchers. * Enhance **B2B prospecting** by linking leads to business profiles. * Improve **lead scoring and segmentation** with high-quality matches. * Reduce **data duplication** and inconsistencies. ### Endpoint: `POST /v2/prospects/match` ### How Matching Works: The Waterfall Matching is not a single lookup — each record you send runs through a **sequential matching waterfall**. Identifiers are attempted in a fixed priority order, from the most reliable to the least. As soon as a record matches at a step, it is resolved and **removed from the waterfall**; later steps only apply to records that are still unmatched. | Priority | Match step | Fields passed (in order) | Notes | | :- | :- | :- | :- | | 1 | **LinkedIn** | `business_id` → `linkedin` | Highest-confidence identifier — always attempted first | | 2 | **Email** | `business_id` → `email` | | | 3 | **Phone** | `business_id` → `phone_number` | | | 4 | **Name + company** | `business_id` → `company_name` → `full_name` | Requires **both**`full_name` and `company_name` | | 5 | **Name + business ID** | `business_id` → `full_name` | Runs **only** when `business_id` is provided in the record | > [!NOTE] > > **`business_id` is supplementary context, not a required identifier.** When provided, it is applied at every waterfall step to scope the match to a specific company, which improves precision. It is never used to match a prospect on its own. > [!WARNING] > > **What is never matched:** > > * `full_name` **on its own** — full name is only matched together with `company_name` (step 4) or `business_id` (step 5). A record containing only `full_name` always returns `prospect_id: null`. > * `company_name` **on its own** — company name is only used in combination with `full_name`. > * `business_id` **on its own** — it scopes a match to a company but cannot identify a prospect by itself. **Practical implications:** * If a record contains multiple identifiers (e.g., both `linkedin` and `email`), it is matched at the **highest-priority step that succeeds** — in this example, LinkedIn is attempted first, and email is only tried if the LinkedIn match fails. * Each record is matched **at most once**. Once matched, it does not continue to lower-priority steps. * Adding `business_id` never hurts — it refines every step it participates in. > [!NOTE] > > **v2:** this endpoint accepts either a single ID (a string) or a list of up to 50 IDs — the separate `/bulk_enrich` route is gone. See [v2 conventions](/v2/conventions). > **How It Works** > > 1. **Input:** Provide a list of prospects with at least one fetcher (e.g., email, phone number, LinkedIn URL, or name & company). > 2. **Processing:** Each record runs through the matching waterfall described above — identifiers are attempted in priority order (LinkedIn → email → phone → name & company → name & business ID), and a record exits the waterfall as soon as it matches. > 3. **Output:** A structured response with matched **Prospect IDs**, maintaining the same order as the input list. Records that cannot be matched return `prospect_id: null`. > **Request Schema** > > | Field | Type | Description | > | :- | :- | :- | > | **prospects\_to\_match:** | Array | A list of prospect fetchers to match | > | `linkedin` | String | LinkedIn profile URL — the highest-priority identifier in the matching waterfall | > | `email` | String | The prospect's email address | > | `phone_number` | String | The prospect's phone number | > | `full_name` | String | The prospect's full name — must be accompanied by `company_name` or `business_id`; never matched on its own | > | `company_name` | String | The prospect's company name — only used in combination with `full_name` | > | `business_id` (optional) | String | Scopes the match to a specific company at every waterfall step; supplementary context, not a standalone identifier | > **Example Request (cURL)** > > ```shell Bash theme={null} > curl -X POST "https://api.explorium.ai/v2/prospects/match" \ > -H "API_KEY: your_api_key_here" \ > -H "Content-Type: application/json" \ > -d '{ > "request_context": {}, > "prospects_to_match": [ > { > "business_id": "19fbe842a2e51db95d4f92333f2cc63a", > "linkedin": "https://www.linkedin.com/in/russell-lumpkin-07585b128" > }, > { > "full_name": "Richard Branson", > "company_name": "Virgin" > }, > { > "email": "satyan@microsoft.com" > }, > { > "full_name": "John Smith" > } > ] > }' > ``` > **Example Response** > > Note the fourth record: it contains only `full_name`, so it never enters any waterfall step and returns `prospect_id: null`. > > ```json JSON theme={null} > { > "response_context": { > "correlation_id": "68d2e054ffa149dab8d09c59f1092091", > "request_status": "success", > "time_taken_in_seconds": 0 > }, > "total_results": 4, > "total_matches": 3, > "matched_prospects": [ > { > "input": { > "business_id": "19fbe842a2e51db95d4f92333f2cc63a", > "full_name": null, > "company_name": null, > "email": null, > "phone_number": null, > "linkedin": "https://www.linkedin.com/in/russell-lumpkin-07585b128" > }, > "prospect_id": "6ffd52c681452e2da8aac7ec3efb174f4604734c" > }, > { > "input": { > "business_id": null, > "full_name": "Richard Branson", > "company_name": "Virgin", > "email": null, > "phone_number": null, > "linkedin": null > }, > "prospect_id": "46ab818ec439a76489024b5727abdf194dfa3329" > }, > { > "input": { > "business_id": null, > "full_name": null, > "company_name": null, > "email": "satyan@microsoft.com", > "phone_number": null, > "linkedin": null > }, > "prospect_id": "f80a80fb6b3d55dfefd269bb35c2049e050876ae" > }, > { > "input": { > "business_id": null, > "full_name": "John Smith", > "company_name": null, > "email": null, > "phone_number": null, > "linkedin": null > }, > "prospect_id": null > } > ] > } > > ``` > **Best Practices** > > * **Provide the strongest identifier you have.** LinkedIn URLs match with the highest confidence, followed by email and phone. Name-based matching is the last resort in the waterfall. > * **Use multiple fetchers** whenever possible — the waterfall automatically uses the highest-priority one that succeeds. > * **Combine with** `business_id` **to refine matches to a specific company** — it improves precision at every step, and it is required for matching on `full_name` without a `company_name`. > * **Never send** `full_name` **alone** — it will always return `null`. Pair it with `company_name` or `business_id`. > * **Ensure accurate and up-to-date data** for improved results. > * **Handle** `null` **values** in responses where no match is found. > * **Use the input field** when sending multiple queries to match your queries with the results. **For more details on request formats and usage, refer to the API documentation.** > [!WARNING] > > **Rate limits are counted per query, not per request.** Each prospect in the `prospects_to_match` array counts as a separate query toward your [rate limit](/reference/rate-limit). A single request that matches 50 prospects consumes **50 queries** from your 200-queries-per-minute limit — not 1. Batching reduces HTTP/network overhead, but it does **not** reduce the number of queries counted against your rate limit. Size your batches accordingly. # Businesses research Source: https://developers.explorium.ai/v2/research/businesses_research_enrich post /v2/businesses/research/enrich Run a custom, AI-powered research task over a list of businesses. Describe the task as a natural-language `query` or a `prompt_template`, define the result shape with an `output_schema`, and the engine returns structured JSON for each company. > [!NOTE] > > How Research works — `query` vs `prompt_template`, the `record` context, real-time web research and its functions, credit usage, and error handling — is documented once on the [Research (GenAI) overview](/v2/endpoints/research). This page covers what is specific to the **businesses** endpoint. ## Record fields Reference any of these with `{{ record['field_name'] }}` in a `prompt_template`. When you pass a `query` instead, the same fields are made available to the prompt generator as the entity's context. | Field | Description | | :- | :- | | `business_id` | Explorium's unique entity ID for the company. | | `organization_name` | The company's name. | | `url` | The company's website URL. | | `description` | A free-text description of the company and what it does. Truncated at 500 characters. | | `linkedin_industry` | The company's industry as classified on LinkedIn. | | `google_category` | The company's business category as classified by Google. | | `employee_range` | The company's employee headcount range (e.g. `51-200`). | | `revenue_range` | The company's estimated annual revenue range. | | `operational_status` | Whether the company is currently active or operational. | | `founding_year` | The year the company was founded. | | `naics_description` | The company's NAICS industry classification, as a text description. | | `specialties` | The company's stated areas of focus or specialties. | | `location` | The company's primary location — locality, region, and country. | | `full_tech_stack` | The technologies detected across the company's web presence. Truncated at 1,000 characters. | | `marketing_techs` | Marketing technologies the company uses. | | `sales_techs` | Sales technologies the company uses. | | `it_security_techs` | IT and security technologies the company uses. | | `ecommerce` | Whether the company runs e-commerce, and the platforms detected. | | `number_of_premium_technologies` | How many premium technologies were detected in the company's stack. | | `ratings_overall` | Overall employee rating of the company. | | `ratings_culture_values` | Employee rating for culture and values. | | `ratings_compensation_benefits` | Employee rating for compensation and benefits. | | `ratings_work_life_balance` | Employee rating for work-life balance. | | `ratings_senior_management` | Employee rating for senior management. | | `ratings_ceo_approval` | Employee approval rating for the CEO. | | `total_reviews_count` | How many employee reviews the ratings are based on. | | `funding_summary` | A summary of the company's funding history. | | `number_of_funding_rounds` | How many funding rounds the company has raised. | | `known_funding_total_value` | Total known funding the company has raised. | | `last_funding_round_date` | Date of the most recent funding round. | | `last_funding_round_type` | Type of the most recent funding round (e.g. Series B). | | `last_funding_round_value_usd` | Value of the most recent funding round, in USD. | | `investors` | Investors associated with the company. | | `revenue_yearly` | Reported yearly revenue. Reflects the latest available quarter. | | `ebitda` | Earnings before interest, taxes, depreciation, and amortization. | | `cagr` | Compound annual growth rate. | | `price_earnings_ratio` | Price-to-earnings ratio. | | `enterprise_value_over_ebitda` | Enterprise value divided by EBITDA. | | `roa` | Return on assets. | | `roc` | Return on capital. | | `parent_company` | The company's immediate parent company. | | `ultimate_parent_name` | The topmost parent in the company's ownership chain. | | `subsidiaries` | Companies owned by this company. | | `recent_linkedin_posts` | Recent public LinkedIn posts from the company — the last 90 days, up to 5 posts. | | `sec10k_competitive_excerpt` | Competitive-landscape excerpt from the company's 10-K filing. | | `sec10k_strategy_excerpt` | Strategy excerpt from the company's 10-K filing. | | `sec10k_risk_excerpt` | Risk-factors excerpt from the company's 10-K filing. | ### Custom fields Any key you attach in `custom_fields` is merged into the same `record` object and can be referenced exactly like a profile field — for example `{{ record['campaign_name'] }}`. There is no fixed list: use whatever keys you send per entity. Values are treated as strings. > [!NOTE] > > Record fields are populated from the entity's resolved Explorium profile, so a given field may be empty when that attribute isn't available for the entity. Write prompts that degrade gracefully when a field is missing, and instruct the model to use web research to fill gaps where appropriate. ## Request The request body has two top-level keys: * **`businesses`** — the list of entities to research. Each item has a **`business_id`** and may include an optional `custom_fields` object. * **`parameters`** — controls how the analysis is generated and what shape the result takes. Identical on both endpoints; see the [overview](/v2/endpoints/research#how-it-works). **businesses** `object[]` *required* The list of entities to research. Each entity is processed independently, and results are returned in the same order. **entity object** **business\_id** `string` *required* The Explorium identifier to research. Obtain IDs from [Match Businesses](/v2/businesses/match_businesses) or [Fetch Businesses](/v2/businesses/fetch_businesses). **custom\_fields** `object` Optional key–value pairs to attach to this entity. Each key is merged into the `record` context and can be referenced from a `prompt_template` (e.g. `{{ record['campaign_name'] }}`). **parameters** `object` *required* Provide **either** `query` **or** `prompt_template`, never both and never neither — see [`query` vs `prompt_template`](/v2/endpoints/research#how-it-works). `output_schema` is required with `prompt_template` and optional with `query`. ## Examples ```json Using a prompt_template theme={null} { "businesses": [ { "business_id": "8adce3ca1cef0c986b22310e369a0793", "custom_fields": { "campaign_name": "Q1 enterprise push" } }, { "business_id": "340c8040bd50cbab9c7df718bbe51cc9", "custom_fields": { "campaign_name": "SMB awareness" } } ], "parameters": { "prompt_template": "For {{ record['organization_name'] }}, write a one-sentence segment for campaign {{ record['campaign_name'] }}. Use description: {{ record['description'] }}.", "output_schema": { "type": "object", "properties": { "segment": { "type": "string", "description": "One-sentence campaign segment" }, "campaign_fit": { "type": "string", "description": "Brief assessment of campaign fit" } }, "required": ["segment", "campaign_fit"] } } } ``` ```json Using a query (B2B / B2C classifier) theme={null} { "businesses": [ { "business_id": "8adce3ca1cef0c986b22310e369a0793" }, { "business_id": "340c8040bd50cbab9c7df718bbe51cc9" } ], "parameters": { "query": "Using the company profile, classify whether this company primarily sells to businesses (B2B) or consumers (B2C). Explain your reasoning.", "output_schema": { "type": "object", "properties": { "btb_btc": { "type": "string", "enum": ["B2B", "B2C", "Both"], "description": "Whether the company is primarily B2B, B2C, or both" }, "reasoning": { "type": "string", "description": "Brief explanation for the classification" } }, "required": ["btb_btc", "reasoning"] } } } ``` ```json Using a query (company fit scorer) theme={null} { "businesses": [ { "business_id": "8adce3ca1cef0c986b22310e369a0793" } ], "parameters": { "query": "Based on the company profile, score how well this company fits the following value proposition on a scale of 1-10 and explain why: 'A B2B SaaS tool that helps mid-market sales teams automate outbound prospecting.' Use web search to supplement missing context.", "output_schema": { "type": "object", "properties": { "fit_score": { "type": "integer", "minimum": 1, "maximum": 10, "description": "How well the company fits the value proposition (1 = poor fit, 10 = perfect fit)" }, "fit_reasoning": { "type": "string", "description": "2-3 sentence explanation of the score" } }, "required": ["fit_score", "fit_reasoning"] } } } ``` ### Example request (cURL) ```bash theme={null} curl --request POST \ --url https://api.explorium.ai/v2/businesses/research/enrich \ --header 'accept: application/json' \ --header 'api_key: your_api_key_here' \ --header 'content-type: application/json' \ --data '{ "businesses": [ { "business_id": "8adce3ca1cef0c986b22310e369a0793" }, { "business_id": "340c8040bd50cbab9c7df718bbe51cc9" } ], "parameters": { "query": "Classify whether this company primarily sells to businesses (B2B) or consumers (B2C). Explain your reasoning.", "output_schema": { "type": "object", "properties": { "btb_btc": { "type": "string", "enum": ["B2B", "B2C", "Both"], "description": "Whether the company is primarily B2B, B2C, or both" }, "reasoning": { "type": "string", "description": "Brief explanation for the classification" } }, "required": ["btb_btc", "reasoning"] } } }' ``` ## Response A successful request returns a `200` with a `data` array — one entry per input entity, in input order — plus a `total_results` count. Each successful result contains the `business_id` and the generated fields defined by the `output_schema`. Rows that fail carry an `_error` field instead of the generated fields, rather than being dropped. **data** `object[]` One result per input entity, in input order. **result object** **business\_id** `string` The identifier this result corresponds to. **\** `varies` The generated fields, conforming to the `output_schema` — the one supplied in the request, or the auto-generated one when using `query` without a schema. **\_error** `string` Present only when the row failed. Describes the failure; the generated fields are omitted for this row. **total\_results** `integer` The total number of results returned in `data`. ### Example response ```json theme={null} { "data": [ { "business_id": "8adce3ca1cef0c986b22310e369a0793", "btb_btc": "B2B", "reasoning": "The company sells software and services to enterprise organizations rather than individual consumers." }, { "business_id": "340c8040bd50cbab9c7df718bbe51cc9", "btb_btc": "B2C", "reasoning": "Its products are marketed and sold directly to individual end users." } ], "total_results": 2 } ``` ### Example failed row ```json theme={null} { "business_id": "f12c9a77b0e34d51a9c0b8e2d7f4a6c3", "_error": "Unable to resolve a profile for this identifier." } ``` ## Researching prospects instead This endpoint researches businesses and exposes the businesse record fields above. To research prospects — with prospect fields such as `full_name`, `job_title`, and `skills` — use [Prospects research](/v2/research/prospects_research_enrich). For lists larger than a single request, use [the asynchronous variant](/v2/research/businesses_research_job). # Businesses research (async) Source: https://developers.explorium.ai/v2/research/businesses_research_job post /v2/businesses/research/job ## Description The asynchronous variant of **Businesses Research**. It submits a custom, AI-powered research task over a dataset of businesses as a job, rather than returning results in the response. > **How It Works** > > * **Input:** Provide business IDs plus either a natural-language `query` or a `prompt_template` and a caller-defined `output_schema`. > * **Processing:** The job runs through the [async job infrastructure](/v2/async-jobs), optionally grounded in real-time web data. > * **Output:** A job reference; poll [job status](/v2/jobs/get_job_status) for progress and results. > **Best Practices** > > * **Use the async variant for long lists** — sync is capped per request, async allows up to 10,000 records. > * **Keep `output_schema` tight** so results stay consistent and cheap to parse. > * **Poll rather than re-submit** — resubmitting duplicates credit usage. **Jobs run for a maximum of 24 hours. See [Research (GenAI)](/v2/endpoints/research) for the full overview.** # Prospects research Source: https://developers.explorium.ai/v2/research/prospects_research_enrich post /v2/prospects/research/enrich Run a custom, AI-powered research task over a list of prospects. Describe the task as a natural-language `query` or a `prompt_template`, define the result shape with an `output_schema`, and the engine returns structured JSON for each person. > [!NOTE] > > How Research works — `query` vs `prompt_template`, the `record` context, real-time web research and its functions, credit usage, and error handling — is documented once on the [Research (GenAI) overview](/v2/endpoints/research). This page covers what is specific to the **prospects** endpoint. ## Record fields Reference any of these with `{{ record['field_name'] }}` in a `prompt_template`. When you pass a `query` instead, the same fields are made available to the prompt generator as the entity's context. | Field | Description | | :- | :- | | `full_name` | The prospect's full name. | | `job_title` | The prospect's current job title. | | `job_title_level` | The seniority level of the prospect's role (e.g. Manager, Director, VP, C-Suite). | | `job_department` | The department or function the prospect works in (e.g. Sales, Engineering). | | `summary` | A short professional summary or bio for the prospect. Truncated at 1,000 characters. | | `organization_name` | The name of the company the prospect currently works at. | | `url` | The website URL of the prospect's current company. | | `job_company_industry` | The industry of the prospect's current company. | | `job_company_size` | The employee-size range of the prospect's current company. | | `job_company_description` | A description of the prospect's current company. Truncated at 500 characters. | | `location_name` | The prospect's location — city, region, and/or country. | | `linkedin_url` | The URL of the prospect's LinkedIn profile. | | `skills` | The prospect's listed skills. | | `education` | The prospect's education history. Truncated at 1,000 characters. | | `experience` | The prospect's work experience history. Truncated at 1,000 characters. | ### Custom fields Any key you attach in `custom_fields` is merged into the same `record` object and can be referenced exactly like a profile field — for example `{{ record['campaign_name'] }}`. There is no fixed list: use whatever keys you send per entity. Values are treated as strings. > [!NOTE] > > Record fields are populated from the entity's resolved Explorium profile, so a given field may be empty when that attribute isn't available for the entity. Write prompts that degrade gracefully when a field is missing, and instruct the model to use web research to fill gaps where appropriate. ## Request The request body has two top-level keys: * **`prospects`** — the list of entities to research. Each item has a **`prospect_id`** and may include an optional `custom_fields` object. * **`parameters`** — controls how the analysis is generated and what shape the result takes. Identical on both endpoints; see the [overview](/v2/endpoints/research#how-it-works). **prospects** `object[]` *required* The list of entities to research. Each entity is processed independently, and results are returned in the same order. **entity object** **prospect\_id** `string` *required* The Explorium identifier to research. Obtain IDs from [Match Prospects](/v2/prospects/match_prospects) or [Fetch Prospects](/v2/prospects/fetch_prospects). **custom\_fields** `object` Optional key–value pairs to attach to this entity. Each key is merged into the `record` context and can be referenced from a `prompt_template` (e.g. `{{ record['campaign_name'] }}`). **parameters** `object` *required* Provide **either** `query` **or** `prompt_template`, never both and never neither — see [`query` vs `prompt_template`](/v2/endpoints/research#how-it-works). `output_schema` is required with `prompt_template` and optional with `query`. ## Examples ```json Using a prompt_template theme={null} { "prospects": [ { "prospect_id": "ee936e451b50c70e068e1b54e106cb89173198c4", "custom_fields": { "campaign_name": "Q1 enterprise push" } } ], "parameters": { "prompt_template": "Write a one-line personalized opener for {{ record['full_name'] }}, {{ record['job_title'] }} at {{ record['organization_name'] }}, for campaign {{ record['campaign_name'] }}.", "output_schema": { "type": "object", "properties": { "opener": { "type": "string", "description": "One-line personalized outreach opener" }, "angle": { "type": "string", "description": "The hook or angle the opener leans on" } }, "required": ["opener", "angle"] } } } ``` ```json Using a query (decision-maker check) theme={null} { "prospects": [ { "prospect_id": "ee936e451b50c70e068e1b54e106cb89173198c4" } ], "parameters": { "query": "Based on this person's role and company, assess whether they are likely a decision-maker for purchasing sales software. Explain your reasoning.", "output_schema": { "type": "object", "properties": { "decision_maker": { "type": "string", "enum": ["Yes", "No", "Influencer"], "description": "Whether the prospect is a decision-maker, a non-decision-maker, or an influencer" }, "reasoning": { "type": "string", "description": "Brief explanation for the assessment" } }, "required": ["decision_maker", "reasoning"] } } } ``` ### Example request (cURL) ```bash theme={null} curl --request POST \ --url https://api.explorium.ai/v2/prospects/research/enrich \ --header 'accept: application/json' \ --header 'api_key: your_api_key_here' \ --header 'content-type: application/json' \ --data '{ "prospects": [ { "prospect_id": "ee936e451b50c70e068e1b54e106cb89173198c4" } ], "parameters": { "query": "Assess whether this person is likely a decision-maker for purchasing sales software. Explain your reasoning.", "output_schema": { "type": "object", "properties": { "decision_maker": { "type": "string", "enum": ["Yes", "No", "Influencer"], "description": "Whether the prospect is a decision-maker, a non-decision-maker, or an influencer" }, "reasoning": { "type": "string", "description": "Brief explanation for the assessment" } }, "required": ["decision_maker", "reasoning"] } } }' ``` ## Response A successful request returns a `200` with a `data` array — one entry per input entity, in input order — plus a `total_results` count. Each successful result contains the `prospect_id` and the generated fields defined by the `output_schema`. Rows that fail carry an `_error` field instead of the generated fields, rather than being dropped. **data** `object[]` One result per input entity, in input order. **result object** **prospect\_id** `string` The identifier this result corresponds to. **\** `varies` The generated fields, conforming to the `output_schema` — the one supplied in the request, or the auto-generated one when using `query` without a schema. **\_error** `string` Present only when the row failed. Describes the failure; the generated fields are omitted for this row. **total\_results** `integer` The total number of results returned in `data`. ### Example response ```json theme={null} { "data": [ { "prospect_id": "ee936e451b50c70e068e1b54e106cb89173198c4", "decision_maker": "Yes", "reasoning": "Their title indicates ownership of the sales function, with budget authority over tooling." } ], "total_results": 1 } ``` ### Example failed row ```json theme={null} { "prospect_id": "f12c9a77b0e34d51a9c0b8e2d7f4a6c3", "_error": "Unable to resolve a profile for this identifier." } ``` ## Researching businesses instead This endpoint researches prospects and exposes the prospect record fields above. To research businesses — with businesse fields such as `organization_name`, `revenue_range`, and `full_tech_stack` — use [Businesses research](/v2/research/businesses_research_enrich). For lists larger than a single request, use [the asynchronous variant](/v2/research/prospects_research_job). # Prospects research (async) Source: https://developers.explorium.ai/v2/research/prospects_research_job post /v2/prospects/research/job ## Description The asynchronous variant of **Prospects Research**. It submits a custom, AI-powered research task over a dataset of prospects as a job, rather than returning results in the response. > **How It Works** > > * **Input:** Provide prospect IDs plus either a natural-language `query` or a `prompt_template` and a caller-defined `output_schema`. > * **Processing:** The job runs through the [async job infrastructure](/v2/async-jobs), optionally grounded in real-time web data. > * **Output:** A job reference; poll [job status](/v2/jobs/get_job_status) for progress and results. > **Best Practices** > > * **Use the async variant for long lists** — sync is capped per request, async allows up to 10,000 records. > * **Keep `output_schema` tight** so results stay consistent and cheap to parse. > * **Poll rather than re-submit** — resubmitting duplicates credit usage. **Jobs run for a maximum of 24 hours. See [Research (GenAI)](/v2/endpoints/research) for the full overview.** # The v1 → v2 upgrade skill Source: https://developers.explorium.ai/v2/upgrade-skill An agent skill that migrates an AgentSource v1 integration to v2 for you — it audits and updates endpoints, request bodies, filters, response fields, autocomplete, async jobs, events, and webhooks. If you use **Claude Code** or another Agent Skills–compatible coding agent, you don't have to apply the [migration guide](/v2/migration-from-v1) by hand. The **`agentsource-v1-v2-upgrade`** skill packages the whole v1 → v2 contract — endpoint moves, renamed and removed fields, filter changes, async-job semantics, events, and webhooks — as an executable playbook: the agent audits your codebase with a bundled scanner, applies the smallest complete migration, updates your tests, and reports anything that needs human review. ## Download [**⬇ Download agentsource-v1-v2-upgrade.zip**](data:application/zip;base64,UEsDBBQAAAAIAFRcS13dCkaWDQkAAGYUAAAiAAAAYWdlbnRzb3VyY2UtdjEtdjItdXBncmFkZS9TS0lMTC5tZI1Y23LjuBF951egah/yItL2bJJNZlKpcm02lUnVXmomm30UIbIlYgwCDABKVr4+pxu8yXY2ebElEpfug9OnD1SWZeF0T++VPpFL0Y+hofL8UJ7fleNwCrqloqXYBDMk49179Y/ORBWfjLUqdn60rTqQGiO16tKRU73BnGTcSX33PFgfzNirR175s6ysHn/6qIxLJKO8i+oYfK/ODyp5dX63U3psjUxvfEvq6INqaQjU6IQdtguRawePleJOHQ3ZVv7bRAEfBn0yTtbnBZNvfD9YSrRTdCaZgnUvdOi8f8pfAp0NXXhf7W62ARLJA4w5Me+qogRmxVcvhuUE1M8TZsX3Mp54PXo2UXLaJI7ParAaUy+dsaSQY6RwllEpAtNOn40Plfqbdi3e54MRVHZF493RnMYwpRibjnqNRBJFTo6eNeeLT5irWt+MPSLNwaufgm9H3taHJ94NMcui+OsaEwmBWeOoWPLFi57nRz7gQCp1xEjL4fQ6qYFCzyHjeZ931HjvtF0hU3Hsex2uFWD7Sv2CnY/WX4rioVKfSLeqDnTE0q6heLdMKsOIHKq+rYEG9kLynXanmRt5aqHUzezzUJ61NW1OlucKKxucdOSZKWgXc+DCvpujp/aETXTErsW7Sn0Xkz5YEzsA7AfKTOXswfZQDsGfTQtSMhaAOjozDJQmNg3YLnlkrD66OFCTNs84ZuNiCmOTg2DMFo5IkohA/QCuBuXx5xIMiDS6QFbKgI+uKr4GAqNT9XBNnXdfq1yj8S422u3PD9VwVX8adOpiVVV/rufol+JtDaqKw5GIjTv7J5x9UheTOkTEQepD9HbE1rzMjgmOYWACJilrnshemfd4iapziPhnsKcuy4kXX6J3E/w51zEgdj+mYUyqIzsA5d9W6jPp0HSAnQUFeTKUFAwO8d9Sy6iLASDRK5YfzTMv+RbfowgH4ydgg40toK3UX7xyPoEEhPi0aixxdU5Cgp1OOAPkpiO/nDRjW/i/q9S3VsdojldFmqOWw+IJUR9RQ3PZlhAtrAusBN1eu1HbMjOt9M5emb0A90xvTOGQQVgDPudTEynk1CTzSj3GJ+UdF2AjwvuvEc+5zHjlF4Q3rvGBT5rfiFznmHkTeuaDQ6HOMQBKJivAx+h4dY0ChHEEHPJlFU3lLw5vOjNUxe8R0DBgApdG7DEX0bwFH7SxZUXkFhBIgpaslhNeKxdcOxHWC0JHKRhebpGxSQEeWxYbtKGAldovUFOXZrlCUtAKxxjUN0q9kfL3dSYKjpL3cBAdfwAQyPhWKPi4epSiqkFBY2ONoHU7HU8N5Uy6SXvjlgn1klUu78yw5EWvIB1HAos8sN/LgvXurad7CFAaI7/s/QEysx9Q6VQLp2r5vHdjf8BJ1Bwh9/GV9QgVDfhKtP+Czand85Fod61zE2QV45Ku6ZmaMZnz63G6CT7Gta2SC95a6QU73mE5uE56VJgKcObI/JRDy63ur5RQNOhAIokZmZlZmWJ4J3q6rJ33Yaz9UdVf/GGPOtEhcRR1FqsXT/eADvgzRC9e6BD0tZYgBSB+HcmB+CZd9xaw2O2S8uDFavlZXghiwFUGUkyDmEtQX6uDgDtvMw2X12gngvwHdbQaZqM/oI8z38AhNEmgJcOyYEytqYLneoXdksAWjrmq8okpaP3ocrm3gnU/4iUrICxbELq0iyhq1NLS6cGLv3/+8QekzfugeihI55GzqYpv2EaIX0HLwJTW4C3kLY42LWIyIXkH1pim26B1h7DrjVaxbmydkbZ84MLhTk/a0wXvGCaPXoEMp5Fcu3CZpjEsb5w9mlpUOACIchi5J32cdUNhV5Shhbk5oXmgvNA8hMbJ9IS2lMn7cL+7v78vjeMuRVzQTZ5+K6s5iQ9QH+6N3NyZ4DJQW9ZmYM/Sm0WwKv6wKAiiGocBigU40T0viHgysGIK2A6B6Z1pxa6g5TGghiWEfRb04by0wkr9wkHlzTFcejY7S449Dozi1M5Z9SDM/sL8281mEwstoayWebHTiN+OEkaNt7SP6Mj1wmqH7rFvxhB9YBxYidnparE6QsPy4Nur9CwlZonNjYxnil90yD2ZNTxBqnzQWbcsnXRznU5AZNjqtbtxdbDks9lC1CMMWjNlzDIcsP+HZRZqMAm9uOUc/Ohaze09Z+DEX6H+2+0V44muMVv5qvjj0rKk8fJjNH8KafUMYrB2t3ljp9aQWBcpsVUnby8q2Bt1nkyT1VSc8yGyj2UGBKFLO81ZNTRHsPjGzdrZDiFfPYk7Et9kBsJmMyRce3XryCkyvGJxF934HyKTD3CWfGuO1Fzhq3inWdRLrry8/FTvLAN8A0AKYQrCpap4uM+WVowEXCxUB7dSSCu76DN7nBMfhnQ4xgdvOPKD9c0TR/KJ4HVa4QHIyQI6Ob8JFN4MUsex3VzexqiziTMn59mkHrVFhOLXUW7xAzylaGQ/Jn3jxMGrqKDabIUPwHmC/cr4yzb13flBuofOKgqyygEoZgYyflgzXi8Iv4nT3Qr4wu5eB776EOeIb6xtvPXkgpkDh+Bx5Qx5EDAdUG5DMEJcz2tLKPOBxjEcQaR8F/sx2/Fvp9Ipik8EFs3XeGqz9zRuufcgNr5+xIG5yI5xKsh8+xFvOzNkN8+bOcrHyJJC74uixGe+Z649hxfaOrDpIpQbV+6HR88aVo5D9lPoRKV4T0PtMvwU/MjScLhufyKYQtrcJybscLHLzYSXZ0rKmnI14HAYQqbO4vsuOq6l+V/d31Y8W3jlyFeOXll/AgF4QZwI6IwrjyNqY5bO3Mi2vYRj4d7fQLqyV5aLN/g+X1+PLOu/YvV+3eBlgRL52cB2FKexuj5xi1vv938bvyn8VxLCg992X8vKGxRuWhEURO4F+fo1mSbEP0aRPpoN2OLJpNpm57V6MX6MRmj5cvOGCctegje8tWLI6PvtZQ43Zupj7rJyNpya8Hr9UYIn/ROlfzTN+oMKxmVqw3ngex716K6L8L3QIHFILhMVJWbpmFaRRi1PLq6x2vTz5Yv3yjo/SeSqh1k9sQLTTjMrFiOYl1guehsRL7Y/6DTIbBJ0KXrGfmmL4Pv6WwbC+w9QSwMEFAAAAAgAVFxLXWRT9DiADgAA1CYAADcAAABhZ2VudHNvdXJjZS12MS12Mi11cGdyYWRlL3JlZmVyZW5jZXMvbWlncmF0aW9uLXJ1bGVzLm1kvVltjxu3Ef6+v4KIP7QFJJ19KAr0XBRw7Li4tkkMX4J+KIoVtUtJ9O0uN+SuZDXOf+8zM+S+6HRnpygKBM6JSw6Hw5lnnhk+U692punuXO8Low4vVOfU4Vp9a3ded9Y16n1fmZBlMuFG/WnfdW24uboqzcFUrjU+rMzHtnLe9vVK26vD9VWdFi+33tXLw4s/q99603mLJaW6fn79h+XzP+K/362y2ebXyhtd7DEHo8brSumDtpXe2Mp2JwVlhrXXK/XeLDG3uFfd3qggIo5706jGdEfn75UuChOCsiGLYiqj7BbTbcBGW+NNgyX4ETpdmVWWPXumvmnK1tmmU9/qtrXNLss+kVE+kXKfJlbZmL0+WOfVJ0xYLpdq9i/G1leHF1ebPtgGOphw9bNpvC32NY77C8ar+1wG1ornXj86N03DXuurD25DC96b2h0MH5xEKe/6zqzUj8FgTlqwxQpb16a0ujM4cOirLrxUPU9iQTRDh1NTKN83YTXq3XoXWlN04apwTafxR24bzK758BfVf7BktuLyIRpdyyFa3e2VbkpV7J2DfqxTUm510Z44j9G+2H/OlsO8L7bjlygynvZJPS5M+1+p8XU8Ig2nbZTuO1e4uq0M3ThLiZpMv8iWbaXh/XAxhNaSltutLS5ICOpocTukHG42uMqW8Kcy+dyFu1kvMIKLxzHpL0RXF2jPb37q7QGRhugindaDhu9w/UvXVCecVzc7s1Ch33ygAwkYefNTb0KnsJg2h0Nduor/27bAg8IjrLrwa6RPVP5ZrI7YPuCvp5X8sSVzw/TeQzPYndcgYk6V06XaWlOV4XHZ5G+uqurP7vO1hbsR+qpxBdlBq/XRbOCG97kt15ON4mgYnH06cNf5vuh6gvAhGbxUwRj1jziLJGVvnGpcp3aV2+gKlvLJKw/Gn3ibNcDZA4eVbaAKvrtgO+dPK/V3W9sureDzkbrTfGIilodV9j3c12N/f7DICarQDQSWpsUUzOedO40tcLXi9JIN7ijuKA5fUeBl2ZLSAgaU+WhDR2oV0BuxoUkTnLcJasRuhZvTIwRjFyg44vPmpEqz1UDlVRRcab8zFNCUUG1hSTEO+b13jesDw7QIIeSgZWIFAXHbtD3f2Yvni+fPn0MjeE0Z+ADmoyl6zlz4TrFcuqInJSkh/365h8UUZCLWm9IdSfKrsuQRuLqkPEBYCwAwCu5cVjj8ghJnB7Va+Av/7oyvbYNL3yLf9n46tbO1gWWHxLkgtTIV85KK9ABLOYUDD8m6s6O+Iwz1wEnXmOXtGwUfCdi8wk0M4TCkZVw7BYJryK9W6geiCJRtkk8wOWjhM8aya1Cqkjt/H6P+NUdtoLFn6rXktBkfybIEogP+bg3Qh+3N6IPorGAS3AD+hI3cMdxEQiH6Ca+QWedMguJsr0Nuamx5oxBQDNw8llJsSV5bhRv1Fc/6aj0ua/cwU9709cb4z67myXH11w5o76pyUJ7WfmbjHEfOp0JedaoyGlbEkIqLVG26vSs/J8r5iSTQTlxaUVmO76NHkERrwVVwTWTZ9c/yYwHityOs/AUwNTgL+ToZO4LQb3DjuJsNvIZ4pgjLTCNcFs5nKxNBhR2Q/AZ6wZUK2WWlImiB3kANrRiR7MFMbpJYL75sdRVIq76qFojqTNQrYZmdLk4ijpMrxQVTWdoyufBKPO8tu9TGlZZ8cTnlCutg/41bbfUOMcch2moPJx9UmIKhuGZMaYHi6W/GtMh4bes8aVX0PhDFgPNColmS8DGeEC7AkhiTtDlOO8RSgPK1XqnbrXx6ARpjqxKGVRRYR+1LbLBuzMcul23WmAig3VGwRNwKLYCmXOBXUfUlLq2bwiCwOe6qKY446EnVjkJVY58G1YapW5QJssNKLEUaRzvVPabSzQVbCeiXNnBRgLQfyDBNt6Sjz6x0Z5Apo045lTuacD+vXMEmR7abaMnYdeZxkAb3Lal6icZJqK9u2YUwCv0ZEMhMG+cQOo3c4JBn6JyJ65VIrcPNvASSSxKFyqxx9BAJGmEglNMYhYc0wPCrfryNBEJ2I/2OFrANdwNoTihQ7UpTSd70higSNO6b+8YdG3VvToFZiRwfBxRsxVkgMKLqu8Tw39J+kfuHeXV1V1AIPlpQXSpFGNMuFBw0/i6h8uCnXGawLFhxC3PRBQrAsqBxVFfj8CAn4diQCFkUnK5yJ2PyD9jDlDmxZ92cWGA09+HSx2+Yx0WQXUxYF36kHYJcU2RWkk0JknnjresbisgceLYTdN8+GGnMMU+jnhaszwjkXBRxzZmkYeDLBNUA7lMeiFflrsmhOMDR5J0p9o2r3A4gxtLGed1T80AWcRSU+HOTV5rCYVAH0QnoCAZ/5AjQInHdR+fFSdFGb+UzW1oX4MeE51O+w3sSf8k7psFNHsCsmlI2kQ/63jTnX5IATnXAvjVhgFDbwSWR4iLDB7cjUdQCKYNQK+Sc7tSSF4wlSARbjHVeN2HweFrS6DbsHTnQ1n4EG6WVDByLzHzUVNRFhwL5AwF/dXCWELRGBtBQqux1taTtgbEWdgoI8YpKTGryAIcQ0MxoOUsASuC4xPXSMTM6ptcSKLA0M14CECAKEvVYCAwkU+gWoRUhQrQ2AwSnurvOtWwOBnGpa6QIGVIwe6CeVgFDQiUwG8w83GVMVQ+kIxVAxCknWFoLGqaCFhy7uTflbUOpfhQVHgjRZelpfrA72CVi6jqGfC6JI+SbU54gA27yuDRYucTdSR0lFiBEClG7WUvgEQwchas3XOtQQ0ulTIQraCDf6Dqy0YX0hi6g4OLSaC7snz7WDpTYCG9bM9dRWDFhoNDaYjMcbcWFBfxHlx80RSG8pZaLAw8XYiNHILerqci23Q3JO2sVDu50o8QwSnuvyePEoaiau5Z210PdF2qmHamspocYtF1n2V+oF4lQdAWYBfcMkYi3U4dcnPnPYrgrFpz8IqZaOGewJZ80mHn0IKboGEZoSr/dgleQacwBC6hZSR07PqCuUNR4Kj6YVDCVjMzsUgmMvX1AnZndyt2PsRj6ukbwC+AYsPDRzThTJ3MmZ37CzWBsgTK4ezbxLsLzIhXJADfpwLL41VeILgRV30CIq2gjajKhMvWx77QlQk6YhTLSjG3bWKDDrVHlMqse0vQDJBEKnb6HMSxYLsZpj1nhPsm/ZPENlUQSZ0P1ztkijlGFmm2pvFsgZqNG8X7l0rnsmyg74JEYmbiPRvU/A7JPYprZ0GPcCBqgkAL972geZ5/5UI5LbS6Nc9CsRynBNGCV5NgVNfiHJfxrLkWGBgGZ+CP3kNIlgqbCgHRvR8jkPk4nfWouYKI8McJAnsfmClgn0Wu+NYpKqfOy0FOVHVQMOviuWI+h1ttA9BbXFjrktZ2R1tEwperrZqpC1P9MB9o6AyXxRCEWBEXk8AE1LAPG3rZSsQl0OOohHG0YtaW2kJSoK/W20lJJpqKBnQpFJfJt5hHb5igb94HULR2ckQBgKFTpK3cpBhswrAxbMGTETFuuHmMUZznwAcf4Mj6Riq5MBxTYPBPAs2P9gO0TZIlwRG2XJcFiSaj9wFPPIgHAAJoWG9DZBuHS803p7tLMLphqO4YcnZ06PecBf2FTKWtivW6J6ejtlhusA7vwXKMsIgLyPUsnl9XJ4lrpGMRTw2fnWhLLItdrGqrJrRBNcgBevOQyefB0G1LTYGwqUJOMC9eNif08Qg/N3gA1mhhZSN/x/YoZ0XfU6pIaa+xSPV6pMNA+UawMtJWKft4g9H4LmTdE09axhllJx3klPkkJf6RQ542xaYW95nU5eyGvmjSgufko+B9zi3RCeB0Sadt3uWz7z3/J/pHBjVBADiX7L0X3eR+TFIcwthu76fnSVHy1PQIxLUltCrq7APPFw/HrA6pk5nPZf0V0nqA54pAxFT9ymUJ7Vmv1Fu7617vvv1vEt9ROul2GAStzQ9OTboPDi5zU0f88LjqqyqhBTjeHL+4p2EeYBDVeqKXEfY3OdVwhjCmsQO0orRtOFJzek2DoitKypSbIKdqn98nXEBwbxKG4eXpFoKQDD0mXxP1AzVXKklsWkTkgsk9FNVF2wRGupSMgdmVfPrzAFUuuIbSA4Zac5QYvIHne7JCg4qmhkqcINHR95Em4s9hUQ7boq84CyoCYjYZ/BepwlKO2xOo6u7Vy4tlDCzdyaB/cE1uKioHY51ukiowQcLZMQsxQ9SVQveFnHfb7SYdBsBl2u31DG6U3Jg62K+qtXcF29AJIdNN1MWkJwUlZVbLIIh4N4OWqqJz08ie5giPsh8FZxhZosir1lXTbGiRowSL5HvvWL2PYnbcEt9z7pxBMBhXneC3pg3R+TTmaZtHlfucA8yRAU8TMeLI8NQ0PRoT5mLSSRev52+6lWXezaix1jCUxW9JGnlrE7cCLpDTmcOa3lumra0/M9OGjLc1LzxDktovzVCP2NrGtxKUG5U74I/fa0mGepPAjcROmPitCTeCgTBXBUCgwg3o5BheKtYQf4gLEAgQcksefMGA7br5OwSGqzXA/VgSTUmJsjsthHk1pYgY+eLwmpQsQgpSKhr7b7KFm2oaLmWZBPeynsgcTg/MO3UuJWbliSuzRIKaM6C+QT7/lGYxhkb6S+1NUD2D7KM4Ord7zciKVkJABtuLTnXJJnFiOSuUmiTnnSwwiM48eiqSxOuNewaUi44qK9ctVBgk+ryauHtYSs8eGSNyhCjf9h743dtH1xu56ehgd1aKjV9KsGlm2EpadYOjX8kNxICKJQgDLaSymZ7I2vThNGwwLrh3ZReJDo7RaRqsnJqQcPeTGpwoJgMnbzKSXT+12pj9PPkrA5RJURo+jJ73hOSc+ffOrBHnb5CH61eQtmR+D5HF3XOs25gQTE2Oh+TEVz7JifHOeJBzyFsoc9Cgwy4Wz7BUrJromtglJSaUHxDFLnrxKSDIekYu7j1j+H1BLAwQUAAAACAC1gUZdOS1H4qIGAABnDgAANQAAAGFnZW50c291cmNlLXYxLXYyLXVwZ3JhZGUvcmVmZXJlbmNlcy92cC12YWxpZGF0aW9uLm1kjVdNc9s2EL3zV2DGhx4qKbaaOHVujpvMuNO0GjdxjyIELkXEIMACoGx1/OP7FvwQmbgzPSQWicV+vn27PBP30uhCRu2suN5LbUMU93pHYuNdaEhFbfdZdnYmblzdSE+FuK0bQzXZmC5l2VL8qr0UnkryZBW9E5vP75fri6u3K5x9Ir/Hpc3dO5GfXb25yBei5ldCubrWUeTla6nKy+IqT9JwQNR67zuHOhncpNeXV3SpVBL66Ixxj8u24fMGkjttdDyepEu1++ktvZFJ+o6srOGBp9A4G2hZajKFKAclkL+8uiyvpHqdi9K7unN//fZnvj3JDv4gtvX5+nJ5frU8v1hl2eeKOh+8DpBoA+zE/p2hiKf7zSQcGYSeJU/QQRecs4WwLvK5FKHdhahjGwk+elaXNe3OaDXLi41eqrhi/YUu0m16Iq90ICglf0QxYeVP13oFRSRj62mVCnnXGgoopy2158TsjtCSZc/pQDyzysEtPN1RaE0UzzhfLpdi9j/e5a8OF7mIjn+scxx8klFVC1hMfwLiDAshbSHIeq0qDh2l2OsQvYYbqpKW8QENh/UK909+sfo7qt2BoHzXmodtp4KtvG+DthRC0tz0SJ2YmCnOX/UX5/o5u+FoVW+IUZISi7wK7zj/CK9/EbbaQr5O6c9nynuJmcD3geApuAQlErKNbkDIf8YyE5oFc1i/mh6+bCxFUWoTyU9wg4AqGbZUS23yZC89N5WztLVtvSM/D45PhwALirgWXrA3VCnof4ir85GLL3auOAIArmkgFsgWYJJe5nsVH54aQBx84BpiZyFqnEpeh2mOupACwN7JG5ggsIi2yrQFbcfr2/H6iw6naiPZJZRCSBqRkgLJP9rYtFEEVeHNLBlT8T6HL+Xee67fQDci0Q3H8BehsaV6QHO0KRldX4y8xHmmp8HyCcFgxJGRZuZwMLIYbHNvXxeFjl08H3UykmXo58MaZv5uCdx+OBGap6/wNIjWPlj3aHtPV+IW706YGSvYeJKphlOGE59uNnAEGcu0RZJS34/GAAFucg6TBwvuC8kOG7Q/VF5vbkejnysdcI+BVLCTuA8qhC5kIkdHg+C38dhQvshCV4Q+exLMy17VgCcCkwsmQtUm30sj9z39fLldOgu0uKbDVGJ6juRRgxjFddPgkJ8DI0O2yGOGeDou7bKRUh5pSAyOLG64dl+liz1L71twp6j0vjL4h1Qmsz3uUzWkCW4MFYSPftcoWH5xfn7+Yw4+D42RGGeySZ6nqZJHF4E6n9g4sBCjzByROKQgwgGkD6m63yyTvlKrbITgjip50M73UwYF1wgrwOapzJ7J/1FzPEykReMQ6zgIVqcVYBy3I8B4CmoL3EHhbN55QiCqn4kOQ1fNiSnhBglqMQuQKlRhAmipFDXIefY/KAsJuN/8EIYSROcMsIcuk/64EBiVNphUPziCqrvsRWLrgMKDKQF+cPqBjgEpBLsD9oAvgw2zKst+cSmfiNK7osW0TEWY7yQoJALFiC2olCjdiltUMM8xKh6rBCGa4QquiVAlHzLwAXnuZjbMvBcrxIr9wJhEqaOTKZUrLG28hfXoGDjsVBAeeY3XB55C+Fm2xhyztEwg7cT1KWgn0V9dvX9HdDdAqT9tCUsMoK9uh5Sn0ek8TCBj/X7TO3RxvgCUl/DB+UIYja2MdykQYOXcwzD+0x2sCKQ8GBy8HZgV0jLU7wtwKu0Luw5prOPDgV9MzibbFWOjp9YtmHaPWYQgx1c8e/PUtbAmj8ZJ8E5aELtOHFhGFznTyvxwNwyg37R9oOLWirzv0y2PkhduEAjSHYmW/TiTReFZQdB7FLQXDSSRweluNLQel2BobYhxb7e2J++uHJxptNtp/1z1m3FH0NKCF9Wsxztq4jzBGREl1nBusIgKhhGLR/AnCsHTpSP6DhIdIj4U2NxvGCEMhWuBdksk3Ligo/PH5SNb6JbCvvtTVI+uBUhrjIPyiDg8de3ILATH0n7gD1pRSsug9putb7rJzZQjVGTV4KfhjwALrWA520G08s66FuE5/8AlZzX8ng1NmaUxEHqBWmoCeYBMYtWxJ4EiyXduYsMmuDNDDiNujgynVOvTl5EAPbAOS4g0oGjwl/0sS3Tr5BMlgYlNbMjXGsMOy5WbriUhxYxQFaHAwLrp9wzBJkPiG4+xzbiDQ0Cc8wmDKra4gHWAJyVb+NIUHTy/+TAZJkGpn/jLoZvhwcomVA5gMSQPeFkCyGlpLvvvBbnjS2Mc3QqDov4LUEsDBBQAAAAIAFRcS13vb8pLggsAAOgkAAAsAAAAYWdlbnRzb3VyY2UtdjEtdjItdXBncmFkZS9zY3JpcHRzL3NjYW5fdjEucHmtGl1z2zbyXb8CZR9KtqJc517u1Kq5zDWe8bR3l4mTmc7JOh5EQhJiCmAAULZq+7/fLgCSoL5sp/VkbGCx31jsLsB8/dVZrdXZnIszJjak2pqVFH8ZRFH0nlVSGVLyG1ZuyZslE+ZK1ipnZHNO1nypqOFSkIoaw5TQ5JYDaW3IWhZ8seViSRa8ZHoErAaDhZJrkmWL2tSKZRnha8ucCiGN5aMHgwamlhVVmjXzT1qKZqxaqN5qx7SghuYl1ZrplqsueG6G3ZLDBE1XJZ83WO9g6hbMtkJ1PfwSzKHzkg0Gg6tfLt9lP1++vyITcj8g8BONltxEQz/mBaPtRLC7bmUDzmwm85qXRTPJ5QbYL1kzL7huqYQsWAbuq8FtDcyAO1iLAWwLqZoZxT3Rdk/SzXm6eZXWFWxLgcwfB4MPb3/7kF19vLi4/O1taEHeapkHQykW3aSqunGrymgpu6Gi1epz2c5X3SigXZl1h/KJbjpnfdLBUIreJA9md+34pnPuuuiGAaNq1Umutu1Qzbthh6w7jXVgh77li06QkYH+RgfDTi8T7PpdgL6l4cSOYU8Gf2+DMobY+52JyQdVs2RgQeQ9bP3Y0igYZbwYE22UBWgGgcPNtoP4kzeGUzF658ZTWJvZxTXTGuLDYT8l9oKLAk7ASySvulnJBcjhwthZLst6Lbr5mpo8QN7R6/3HX21sxnYRzXejQ/ENsV9JYOu96s5WKfMbpgIQOCOX64qHnCw8il//+NX0Tfofmv7+ffq3bJacvd6cn8Wvx/NagwmYQR4qJXXFcqMfaG0kMiqZYQ+3bL6S8kY/5IoV3OgEqK7nD2dJINgLv+wgSaDoP23CZMSsuO4l08YqYiQBzmTzirDPNd/QEnB+IIUkkCKBcVVSwK6FYiXwKTAJv3l3CenVCfGydjw4r8sb8Jvi+erZXlPRGZJljux6HoVm/APcoBk5c4tkIRVkYpGvlBSy1mTOVnTDAQj/OPpuzdCyFSONK8nZJzmHkFmwfJuX7LT6kJQgao1OMeBeYMD1vKHMuAAd17bE7Jjyngm6Zla5Zte7zdBs6VSXxLMKOZ3WGrgtIJoAj5YpW1NepgvO2hLwPAM6JjqzPI5rr5iuAI0RKwVVDjVw1Kc1VmwNZalIvalOab2vtWIbzm6fedjG169fX48cKzgr0Q7C9fRafzu9jr6ZORQ7BND1bB91BCUQl+IDJHvY0+E98vGCgWD4OJ7so/13HyeJDh7d99Y77uQqRgvCF3BSMaKh5bANBD0UJO2+/EBqzQ7syZBEh4PGLWcaOqNaD6GhmoODswoaMzbEk2VHmajXc6ag6RHagFand7hglWI5Jo4Uzl8KU6oMRnjaaPmy3cYQBUZZx2gnPi8XzmHwj5ILBjWAvGtyK9oAE9se7kTvsM104GHsKElfSgaeEaHfMANRonNaUpt1dtCpUnRr0xQtSwJJtWb6B39qPsPYYJMKlRP1rCGPUbFkL3OlZgISHpTHP+jJlk9WQr3dPe5/qjutAOdJ9EzgzV1POszDTuw7EPRS7LkuZFAL5JYxcCAUXsw764qKbQrSXlDe0XMNp8xxyjynY8kS3GdlYJJkdyyvDd/s0hKag2d1Y9cQioKSZYnhpIetf2FIRUGaxuC0vYva9lcpnOjlgfB40sqFdAwyy+CwcYLdZl5OphDfW1rRbSkhaWHm0mj3IuT1PL2hefxDaiP9n6Q1sjqtNGwJmJbfpHA6RPEFaq8hu24zS51JkSE/blhmWL4SspRLzvTxYtxIP1CVO77mGN/nbUfFoHEUXxhL2D1q0zqdC2hpqYaOX2Se7wnr9o06xq7T8anWwydNw9dfYg6SZQaOIBqgGdTh4oj+jaQMazXc1TsbHA96w0TA5LTaJVvSfNs2TC5XvEBx27q8hiZpRX1/94CjsLInDge7E+hNdixySd1mdKRr2o+CGexoyO0KxEDLwTRTG3zb8A2H7yHm0qxsJ8GAARQ/DcvC8PwJozX/nUErrsCbO9aeLnDOEKQ+ZZJtsqQot6A9Ey5Z21qDRU9jUqD9m9PClsGKLrl4RlcOdFik+YGM8FR5dqRwJ94JrCsjK5uh0MNWXxdSnRE7baIgdAEXH7y+9d7TXrXB+UTUcXED90+RFlxDBGxTDOyXWOLpMqR7iTHQKTSXZPKrVeJSkEpq09XDZ1Z8fDWEFEaLAij183X3xTlz9Dqbb7OGp+7Z8aaGC3rTrPtsBT1JUdoXSYh5f9khXgWi+RJ67lD/ZDAYFAybfKYy21bFeAHV4/ZtcIqPh7OEpD/tgMb+xYSJMfw2DkgmOI4Tu4YqIDf0qePa6g73CoSMuLZS46Rbwp8crOBY/zQ+mCDmMGkRWBlQF1ydJu4t9Zb3VlDfdrVReqSWpZzH0bdRskcAerT4nSm2W8KXDNjEGNtzZNW9rzqvOGhHjRDdlxBarFnfxkrB1T1eRLdUCXzOcn4uJNiMktkd12ZM7hH6GA3t8/REb/VIm4Ip1ZeDGZWLmg1a6J4jOpf21YCokiVG2CQwxQPjvhTwVYsNHDFuSChmpOvFgt+NSnnLYEutGYDXe9kd729mo3sIRN4jiPm4EdjXZGsPexcG7gS0z/zYHNsLFTQ3ysTuyU8bZY8APpg8kH9BaXG6rKmC0gfmRztZrmU3dneOz7U0jo+nBxr8YxcZXEUq68ULOJ4OxkXB7gDyvdsWV+Yc8EdSMmEVCyIfbiMK6qJVBpemFncWnjinw+6ueOH7vj2kVbuGZzAQCQ64vo5O8cBH2CdYHNCvdV3orlZ5643vJuT8iXjuCcJL9TfX0f92tG2ktIhfJgqPjpE3WBAFiaOzMzh90df4K02jZM/5uFMjG2gaO5zYkg6duORQuNvQ7G0x+c6Gg6VMyHg2KiHIeBXvpyvFTK2EtwV94riF8l08Jzbj9B0eeGAQMLM47gTBVguXAt2jORYEe2hKSEZT//Duy4ZR284626JOfLaFspwhIGYil0gxiWqzSP/q0y+7y1llSPzvq7dKSTUkHwUHPPYzw98WlmD3xHDUidjLl7n9HuceuVyahHRpiU7mS2/1dOacsHBGQbns2QjGTGdtCcSt8o3u0E4wNBgAGD6Tx2jsCHoVbnBNx8mQ2A2ZnAcBsJ+dmvxwKm8lvbDErx0o2n6I6McWLtuvF7iOeCP/xWVkLYTRbroJYni/xFpPIRf/gcXmh9MvIQd5YCE9Zjl3lW4vKfRo0SQX3lBRfjrGa4/+gJ34c7DYWPf5MBjRCq/Shx3ig+PwYuMxcNYk9NzwKHbzqcqhN7Pj+BjjE8gM9nAmx/FwnydhyB7FdJ+/Jn0nf0fOj1NYVE+wVLKu4u9PaOK/nzkD/eQw9n6qS8Ic1WxPU+kpF3FTzd1O26/wWDmbL/KjN2pZY4S8sytxAYUMkirGziTLCplnWRJQYreRUU8SR7bZhTQiAKQn0DoOCQimdWkm02gUzYZkxcpqEl3Yd0w4e9DFwl1JKs7sCxBm0ugE/zR1T+/AN19JnjM9iSNjP8qTyH5kTjqJbsFxQ31sprVM7R9kC0mnn88wgXW5wwF7uaRp64N7A6b7WNHbzAaYyzh+hpgoZmQd089KnrvtCXsFxKHNenqNtIQou2HbSUnX84I2C2MS+5EVMWzgIwzkbuYitpv7Q5Z46yGXWS2dc23Sss7cLSMIHBX1utLx1P0HjEZ6smtSo/jM1XRhJq8SX8h6Pf0RskNN/372ie5D4x/H96H1wdSZD4VuP9sGPJpU8kim9zuOepyRFuQP5ONBZrE949D3degI+Eo9Jn30Lhb8KxKGnq7X8a42djeal6Zj7grrNN6wkRn2Ru06SVs5e63BhX2TvW/WHxvMWLsb3b3n+eiZY+yvYXEUJb2O6NzGEVz9vswE13pB1z8ANpl9vsgyS5rZ7xhZ5uNRUQ6IV1sNary94yZ2eS0Z/B9QSwMEFAAAAAgAVFxLXXIslSfOBQAAJhsAADEAAABhZ2VudHNvdXJjZS12MS12Mi11cGdyYWRlL3NjcmlwdHMvdGVzdF9zY2FuX3YxLnB57Vlbb9s2FH73ryD0YmmwZKTbw+AiKIomwAbsUiDZXlyDYCTaYUNRKkk5MYL89x3eZMuWGidr1mKoH2JL5DnnO7ePl7CyrqRGzH5xdpU1mvGRe0Rqo8JPTct6yTgNz41gWlOlR0tZlagm+hqEvRr0Hh5Ho9Hvf5799ds5fv/28hd0al/GGBslGCfZLdPXWJCSxpHKicDrk6zeRMno4v35O5jdBZSpmubYmHLyvMqJZpVoZaMJ2rGWjIhSFIBYZUQU9kfGK1JQOfIih0bKqmhAuTVjDMZGKhlBFPyQmls9BvUCxL2i0Y7yjN4BUDc79uMJhCLngAhdwIu/Ty4hbHGIX2ae3hFFk9kIwaegS6s3VpQvJyivhKZCz5DS0s8wHxO8NiWgwvhB5OaMSZrrSm7iBBGFivC4FTQfk6yQj3ZKgqYoyjkDY5lW0YFAdiuZpljTOx17UBNERV4VTKxOo0Yv058he7tikupGihClzH4bvLHRB0EJ7powYElNKhSmoqgrJjS+avgNllUDRiGBMG6iXoACygsbnJ1wLJkwMJTJCYxYU3EHyxgwK42CdpgYTdcn01pWJtFaTY1PBH5gJpaVLG11TS0GKiTLr6PXH8S4ozLy/kmqalBOM1C2pEqBILhREsZBZBtI77D5WIyuQs8/NYR3od57bzJpipEVCPAEDxETrbMPk65Y58kCJCvIkqoamdN0fZIG56PJ4VTjaeo97RkO0UlN6vombH0nPLXOpzZTe3N3MO8XQFFRhUUVKgE3QlJONKR8fdJWxVGJH8h1QTS0GdS2yeTnshGUTtB8sY+yJPJGYdsAd4CZ1mAFguzKUmFIFeBfM3p7FNLIIb0HrJrpDSR7Ak2rak42lhrRgyEp6HNTSZ+D3NaMomsKjboZLhp0HzmE0cNQD/ps77aCK2iYQZ7uZbdrnMuOd2Ba2z0mPZm1ojp9syNU1doW2L7YmyE5XwkACmi5cGIN1/PIzY8WB03tJQSEIwhYO/OoJyjR4nFNJanrHdPZiuo4CCVDQpARApOH5GxhHvJRW0x2lq0dD/rXLeah2N5/EMhLTj6II2SP5rP5kXy26FLF/JBkJC2rNS1Sj8zxjOolmu/zv+z8xS5xh18vREPDK4EjIce1TyHYWjIg7g0MNcrs0fzi7AY5U4aIBL1VnMKeTJ63ZPLcVSIQKawPQHMWethp4MAozg3HqM+nUVoTqUtqV7lgIvtYXeHtyGNsetan481jSrrUuq/DbPPmUVfFMEcqKlhly6UVdnxnFLSDmENR8R7SbImva2+CesQtKwYnvzafbcsjBajpFnoaimS4d78R2Ta836TZ/5K1Qs/v9PcdnA/oM7eGfRUe6hYm7hf7DI0vCBxQx71VD6PhaDhGD0O97AFb7fu9O0OR1Q97j96uhPFgIbIWxv+Txvpe4IcF/qkxz0DTsFgqTJSva2xOKgqbuwk4tsNLd2XAoLZkk9vrmn99XPBGn7jE2W20RZ15BW5926viocbwsrYxvPyspwPnvkUWsMgc3wKcinYvkUzQjy+Qxx6Fl7KhMeE8jpxD0Y54VsJJnqzokPZk8O6mrHm1oRR/hHM37HnyqqyJ2GBzfATAG/MXzsqqkUuS02df4vgU2HRYjTYba8IhSSYLAzB68rKjlApZce53MF4v1pv6UZWHCtkSxVY+c1rsSf709BQNqknQNREFp06s71hIFB0WnyHYLbPlpk/8xdm3RZU6VKlHlVowEKEf0E8vwFJXvMpvoG4PaIqtRAWcOViMTOCSraS71YCXJuXP4KXpFL0112sX9noNrV+hVusM+ctKZO/GB4AYj9avsgHKscH7wxYO5P2O5o1m64PEH53pYw4rnK5IHnr0ikLwDXdzMPglAtbr10A9v0bjlw/2V2+M4avQ3oyQJZCevX+EL3v7CJUMKyuYfnY2gDZsIgaDe5CKJ6Xxm+KhTrhHwNHYEjPGyDAzhshCPHHkotj+d8a8jZPRP1BLAQIUAxQAAAAIAFRcS13dCkaWDQkAAGYUAAAiAAAAAAAAAAAAAACkgQAAAABhZ2VudHNvdXJjZS12MS12Mi11cGdyYWRlL1NLSUxMLm1kUEsBAhQDFAAAAAgAVFxLXWRT9DiADgAA1CYAADcAAAAAAAAAAAAAAKSBTQkAAGFnZW50c291cmNlLXYxLXYyLXVwZ3JhZGUvcmVmZXJlbmNlcy9taWdyYXRpb24tcnVsZXMubWRQSwECFAMUAAAACAC1gUZdOS1H4qIGAABnDgAANQAAAAAAAAAAAAAApIEiGAAAYWdlbnRzb3VyY2UtdjEtdjItdXBncmFkZS9yZWZlcmVuY2VzL3ZwLXZhbGlkYXRpb24ubWRQSwECFAMUAAAACABUXEtd72/KS4ILAADoJAAALAAAAAAAAAAAAAAApIEXHwAAYWdlbnRzb3VyY2UtdjEtdjItdXBncmFkZS9zY3JpcHRzL3NjYW5fdjEucHlQSwECFAMUAAAACABUXEtdciyVJ84FAAAmGwAAMQAAAAAAAAAAAAAApIHjKgAAYWdlbnRzb3VyY2UtdjEtdjItdXBncmFkZS9zY3JpcHRzL3Rlc3Rfc2Nhbl92MS5weVBLBQYAAAAABQAFANEBAAAAMQAAAAA=) (13 KB) The ZIP contains the skill definition, the migration-rules reference, and a residual-v1 scanner: ```plaintext theme={null} agentsource-v1-v2-upgrade/ ├── SKILL.md ├── references/ # the complete v1 → v2 migration rules └── scripts/ # scan_v1.py — inventories leftover v1 patterns ``` ## Install Extract the ZIP into the skill directory your coding agent uses: ```shell Claude Code theme={null} mkdir -p .claude/skills unzip agentsource-v1-v2-upgrade.zip -d .claude/skills ``` ```shell Agent Skills compatible theme={null} mkdir -p .agents/skills unzip agentsource-v1-v2-upgrade.zip -d .agents/skills ``` The extracted layout must be `/agentsource-v1-v2-upgrade/SKILL.md`. OpenCode discovers skills in both locations. > [!NOTE] > > **Commit the extracted directory** if the whole team should have the skill, and **restart your coding agent** if the skill directory didn't exist when the current session started. ### Register it in your project instructions Add an entry under the skills section of your agent instructions file (create a short `## Agent Skills` section if there isn't one): ```markdown CLAUDE.md theme={null} - **agentsource-v1-v2-upgrade**: Use when migrating or auditing Explorium AgentSource API integrations from v1 to v2. Invoke `/agentsource-v1-v2-upgrade` or ask Claude to migrate the AgentSource integration. ``` ```markdown AGENTS.md theme={null} - **agentsource-v1-v2-upgrade**: Migrates and audits AgentSource API integrations from v1 to v2, including endpoint, request, response, async-job, event, and webhook changes. ``` ## Run the migration Invoke it directly in Claude Code: ```plaintext theme={null} /agentsource-v1-v2-upgrade Migrate this project's AgentSource integration from v1 to v2. ``` Or in natural language, in any compatible agent: ```plaintext theme={null} Use the agentsource-v1-v2-upgrade skill to migrate this project from AgentSource API v1 to v2. Apply the changes, update tests, and report anything requiring manual review. ``` ## What it does * **Audits first** — runs the bundled `scan_v1.py` to inventory v1 endpoints, fields, filters, pagination, and event names across code, tests, fixtures, and docs. * **Applies the full contract** — `/v1` → `/v2` paths, `/bulk_enrich` removal, the `contact_information` rename and its removed `emails` field, `has_contact_details`, consolidated autocomplete, `executive_joined_company`, the deprecated `job_department` / `job_seniority_level` response fields, webhook binding, and the rest of [What's new](/v2/whats-new). * **Preserves behavior** — keeps sync `/enrich` semantics unless your code already orchestrates async work, and implements polling, failure, and input-limit handling whenever it chooses `/job`. * **Verifies** — updates tests to assert the new paths, bodies, and fields, re-runs the scanner, and lists any remaining manual-review items with file and line references. Review and commit the changes only after your project's tests and the skill's residual-v1 scanner both pass. ## Related > **[Migration guide](/v2/migration-from-v1)** > > The same contract in human-readable form — endpoint mapping, breaking changes, deprecation timeline > **[What's new in v2](/v2/whats-new)** > > Every change the skill applies, with the reasoning behind it # Get webhook Source: https://developers.explorium.ai/v2/webhooks/get_webhook get /v2/webhooks/{webhook_id} The secret is never returned — use [Rotate webhook secret](/v2/webhooks/rotate_webhook_secret) if you lost it. # List webhooks Source: https://developers.explorium.ai/v2/webhooks/list_webhooks get /v2/webhooks Returns every webhook in your scope, including the legacy v1 partner-level webhook flagged `legacy: true`. Secrets are never returned. Filter with the optional `status` query parameter. # Register webhook Source: https://developers.explorium.ai/v2/webhooks/register_webhook post /v2/webhooks Only `name` and `webhook_url` are required. The response includes the `webhook_secret` — **store it now; it is never returned by any read endpoint**. Creating a webhook never overrides an existing one; each tenant can hold up to 10. # Update webhook Source: https://developers.explorium.ai/v2/webhooks/update_webhook patch /v2/webhooks/{webhook_id} Any mutable field: `name`, `description`, `webhook_url`, `headers`, `payload_format`, `status`. Setting `status: "disabled"` retains the webhook but stops deliveries. # What's new in v2 Source: https://developers.explorium.ai/v2/whats-new Every change in AgentSource v2: structural conventions, new Research endpoints, renamed fields, removed response fields, and new limits. ## Structural changes | Change | Detail | | :- | :- | | **Path versioning** | Every endpoint moves under `/v2`, replacing its `/v1` equivalent | | **No bulk endpoints** | A single endpoint accepts one ID or a list of IDs; `/bulk_enrich` routes are removed | | **Sync/async pairing** | Every enrichment exposes `.../enrich` and `.../job` | | **Autocomplete consolidation** | One `/v2/autocomplete` endpoint replaces the per-entity autocomplete routes | ## New capabilities * **[Research (GenAI) endpoints](/v2/endpoints/research)** — custom AI-powered research over businesses or prospects, with a caller-defined `output_schema` and optional real-time web grounding. * **[Async job infrastructure](/v2/async-jobs)** — shared job submission, status, and result retrieval behind every `.../job` endpoint, with optional email notifications on job success or failure. * **Multi-webhook, tenant-scoped webhook management** — up to 10 webhooks per tenant, addressed by a server-generated `webhook_id`, each with its own rotatable secret; enrollments bind to a webhook explicitly. Replaces v1's single partner-level webhook and its silent overrides. See [Webhooks](/v2/endpoints/webhooks). * **Unified contact-availability filter** — prospects [fetch](/v2/prospects/fetch_prospects) and [stats](/v2/prospects/fetch_prospects_statistics) gain `has_contact_details` (`email`, `phone`, `email_or_phone`, `email_and_phone`), including the previously impossible "at least one of email or phone". * **[Contact information waterfall](/v2/prospects/enrichments/contact_information_job)** — the async contact endpoint can fall back to a verified external provider for prospects Explorium data cannot enrich, with per-result source tagging. * **[Hashed identifiers for ABM](/v2/prospects/enrichments/contact_information_enrich#hashed-identifiers-for-abm)** — contact information (sync and async) accepts `hashed_identifiers` in `contact_types` and returns SHA256-hashed professional and personal emails for ad-audience matching, at 1 credit per prospect. * **Enrich by details instead of IDs** — every sync enrichment except Research accepts up to 50 `businesses_to_match` or `prospects_to_match` as an alternative to IDs, matching and enriching in one call. See [Conventions](/v2/conventions#no-more-bulk-endpoints). ## Signal fixes Misspelled field names corrected in v2: | Endpoint / feature | Current (typo) | Correct in v2 | | :- | :- | :- | | `POST /v2/businesses/events` → `new_funding_round` payload | `founding_stage` | `funding_stage` | | `POST /v2/businesses/events` → `new_funding_round` payload | `founding_date` | `funding_date` | | `POST /v2/prospects/contact_information/enrich` → `ContactsInformationOutputSchema` | `professions_email` (title "Professions Email", format: email) | `professional_email` | | Business events, every v2 surface (fetch filters, enrollment `event_types`, webhook simulation, delivered `event_name`) | `employee_joined_company` | `executive_joined_company` | | `webstack` enrichment response | `money_spend_on_website_technologies` | `money_spent_on_website_technologies` | | `funding_and_acquisition` enrichment response | `latest_funding_increase_in_percents` | `latest_funding_increase_percentage` | | `response_context` on **every** v2 response | `time_took_in_seconds` | `time_taken_in_seconds` | ## Renamed | v1 | v2 | | :- | :- | | `contacts_information` endpoint | `contact_information` | ## Removed fields > [!WARNING] > > These are breaking changes for any consumer reading the fields below. * `entity_id` — no longer returned for enrichments * `emails` — the nested array is removed from every `contact_information` response (sync, async, and the result CSV); read `professional_email` instead. `phone_numbers` is unaffected. * `display_name` — removed from the business `linkedin_posts` enrichment response * Address signals removed from the `company_ratings_by_employees` enrichment: * `company_city` * `company_country_code` * `company_region` * `company_street` * `company_zip_code` ## Deprecated fields These fields are still returned, but are deprecated and will be removed in a future release. Move to the replacements now: | Deprecated field | Returned by | Use instead | | :- | :- | :- | | `job_department` | [Fetch prospects](/v2/prospects/fetch_prospects), [Profiles](/v2/prospects/enrichments/profiles_enrich) | `job_department_main` (primary department) / `job_department_array` (all departments) | | `job_seniority_level` | [Fetch prospects](/v2/prospects/fetch_prospects), [Profiles](/v2/prospects/enrichments/profiles_enrich) | `job_level_main` (primary level) / `job_level_array` (all levels) | This applies to the **response fields** only — the `job_department` fetch and statistics **filter** is unchanged. ## Removed filters `has_email` and `has_phone_number` are removed from the prospects fetch and stats filters. Use `has_contact_details` instead: | v1 | v2 | | :- | :- | | `"has_email": {"value": true}` | `"has_contact_details": {"value": "email"}` | | `"has_phone_number": {"value": true}` | `"has_contact_details": {"value": "phone"}` | | both together | `"has_contact_details": {"value": "email_and_phone"}` | `email_or_phone` — at least one of email or phone — is new in v2 and had no v1 equivalent. ## Changed defaults and parameters * The `size` parameter is **removed** from pagination in fetch. The default stays 60K. * `include_operating_locations` in business fetch now defaults to **`false`**. ## New limits | Limit | Value | | :- | :- | | Async enrichment input size | Max 10,000 records | | Async job run time | Max 24 hours | ## Coming next `max_per_company` support is planned as a follow-up improvement. ## Next > **[Migrating from v1](/v2/migration-from-v1)** > > Endpoint mapping and the v1 deprecation timeline # Generate: build and download lists without code Source: https://developers.explorium.ai/generate/overview A UI tool in the AgentSource admin panel for generating and downloading business and prospect lists — filter your audience, preview a sample with stats, and download an enriched CSV. **Generate** is a point-and-click way to get Explorium data without writing any code. Build an audience with the same filters the API exposes, preview a sample of matching records, and download up to **60,000 records** as a CSV — businesses with firmographics, or prospects optionally enriched with contact details (professional email and phone). Everything Generate does runs on the same public API your integrations use — [fetch](/v2/prospects/fetch_prospects), [statistics](/v2/prospects/fetch_prospects_statistics), [autocomplete](/v2/autocomplete), and [contact enrichment](/v2/prospects/enrichments/contact_information_enrich) — billed to an API key you pick per run. ## Where to find it Open the **AgentSource admin panel** and pick **Generate** under **Build & Manage**. ![The AgentSource admin panel sidebar with the Generate entry highlighted](https://mintcdn.com/explorium/x5fd8qwLqBDPTAvP/images/generate/admin-panel-generate-nav.png?fit=max\&auto=format\&n=x5fd8qwLqBDPTAvP\&q=85\&s=0e6cc8971ff61281e12159ccff966bff) > [!NOTE] > > Generate is being rolled out gradually and may not be visible on every account yet. If you don't see it in your admin panel, reach out to your Explorium contact. ## Generating a list **1. Pick an API key** Choose which of your account's API keys the run should use — it defaults to your platform key. Every call Generate makes (fetch, stats, enrichment, download) is billed against the selected key. **2. Choose Prospects or Businesses** The toggle at the top switches the audience type — and with it, the filter set and the columns you get in the preview and the CSV. **3. Build your audience criteria** Add filters in the left panel. Every filter supported by the [Fetch prospects](/v2/prospects/fetch_prospects) and [Fetch businesses](/v2/businesses/fetch_businesses) APIs is available, and value suggestions are powered by the same [autocomplete](/v2/autocomplete) the API exposes. ![Generate with the Prospects tab active and the audience criteria filter panel open](https://mintcdn.com/explorium/x5fd8qwLqBDPTAvP/images/generate/generate-prospects-filters.png?fit=max\&auto=format\&n=x5fd8qwLqBDPTAvP\&q=85\&s=cf47f500421511e137d5cc29755b3f3f) ![Industry filter with autocomplete suggestions for the term software](https://mintcdn.com/explorium/x5fd8qwLqBDPTAvP/images/generate/generate-autocomplete.png?fit=max\&auto=format\&n=x5fd8qwLqBDPTAvP\&q=85\&s=18c30938e42ee581cc21e6fac8d5e911) **4. Preview before you commit** Click **Preview** to fetch a **20-record sample** — it never downloads anything. The sample is billed like any fetch: **1 credit per returned record**, so a full preview costs **20 credits**; the exact amount consumed is shown at the bottom of the filter panel. The header shows the **total number of matching records** for your criteria. ![Preview table of prospects with name, job title, company, business ID, department, and level columns](https://mintcdn.com/explorium/x5fd8qwLqBDPTAvP/images/generate/generate-preview-table.png?fit=max\&auto=format\&n=x5fd8qwLqBDPTAvP\&q=85\&s=444d9aa5d07c3b39950c0daa0d4aaf2c) Switch to the **Stats** view for a distribution breakdown of the full matching audience. Unlike the sample, stats are powered by the free [statistics endpoints](/v2/prospects/fetch_prospects_statistics) — the Stats view and the total match count consume **no credits**, so use them freely while shaping your filters. ![Stats view showing the total number of prospects per location as a bar chart](https://mintcdn.com/explorium/x5fd8qwLqBDPTAvP/images/generate/generate-preview-stats.png?fit=max\&auto=format\&n=x5fd8qwLqBDPTAvP\&q=85\&s=781a07fa6cfefcbbbcd9a85b2e45a682) **5. Download the CSV** Click **Download CSV**, choose how many records to download (up to **60,000**), and hit **Generate**. The pipeline fetches the records, enriches prospects with contact details where available, builds the CSV, and downloads it — showing progress along the way and the **total credits consumed** when it finishes. ![Generate CSV modal asking how many records to download, with a maximum of 60,000](https://mintcdn.com/explorium/x5fd8qwLqBDPTAvP/images/generate/generate-download-modal.png?fit=max\&auto=format\&n=x5fd8qwLqBDPTAvP\&q=85\&s=9feb0b77c588c9f499256943dcdac247) ## What you get | Audience | Columns in the CSV | | :- | :- | | **Businesses** | Firmographics — name, website, country, city, number of employees, revenue range, and the Explorium business ID | | **Prospects** | Full name, job title, company, department, seniority level, the Explorium IDs — plus **contact details** (professional email and phone numbers) where available | ![Businesses preview table with name, website, country, city, employees, revenue, and business ID columns](https://mintcdn.com/explorium/x5fd8qwLqBDPTAvP/images/generate/generate-businesses-preview.png?fit=max\&auto=format\&n=x5fd8qwLqBDPTAvP\&q=85\&s=8fc335cadc048d2b0e967316de0a9ece) ## Credits * **Stats are free.** The Stats view and total match counts never consume credits — use them to validate filters before committing. * **Previews cost 1 credit per result.** A preview fetches a 20-record sample, billed at **1 credit per returned record** — so a full preview costs **20 credits**. The amount consumed is shown under the filter panel after each preview. * **Downloads are billed like the API.** Records fetched and contact details enriched are charged to the selected API key at the standard rates, and the total is displayed when the run completes. If credits run out mid-download, Generate stops and tells you. ## Generate or the API? Generate is the fastest way to pull a one-off list or to explore audience shapes visually. For recurring or automated list-building, use the same building blocks directly: [fetch](/v2/prospects/fetch_prospects) with your filters, [statistics](/v2/prospects/fetch_prospects_statistics) to size audiences, and the [async jobs infrastructure](/v2/async-guide) for large enriched batches. # Integrate with Base44 Source: https://developers.explorium.ai/integrations/base44/integrate-with-base44 Add company & prospect data to any Base44 AI app in under 3 minutes. ## 1. Open the Base44 Dashboard Launch [https://www.base44.com](https://www.base44.com/) and sign in. You'll land on the "What would you build today?" home screen. ![](https://mintcdn.com/explorium/s1uRl5fGOrKpLiGF/images/reference/b19a7d9f910251b57c5f29c7f51d1759ad310de9e00328b8985209171a789d7f-Screenshot_2025-04-29_at_16.38.12.png?fit=max\&auto=format\&n=s1uRl5fGOrKpLiGF\&q=85\&s=790309c0cfcec1018496c538679cbfec) ## 2. Browse to Integrations Catalog Click the puzzle-piece icon in the left nav to open Integrations. Locate Explorium in the Community Integrations list (you can use the search box). > [!TIP] > > **Tip:** > > If you don't see Explorium yet, hit Create Integration and paste the link your CSM provided. ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/14cbaaae11b48ef67b3427b7085f9293bfb9d8c5b3861ccd5ee423276afd41a7-Screenshot_2025-04-29_at_16.38.21.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=c76cae548b938bf2ca7c419d8743e00b) ## 3. Review the Explorium Card Click Explorium to open the integration detail page. You'll see example prompts and a status badge of Approved. Hit Use this integration to drop it into your new (or existing) project. ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/039c3986d9010662d374b40a077fa69dd86f0ee2e6bde1fec9882d08e4a18624-Screenshot_2025-04-29_at_16.38.30.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=003d70c96705d7de812d1474e0a91340) ## 4. Provide Your EXPLORIUM\_API\_KEY Base44 will prompt for required credentials. Select New value (or “Reuse existing” if you’ve added it before).\ Paste your **EXPLORIUM\_API\_KEY**.\ You can grab a fresh key anytime from [https://admin.explorium.ai](https://app.explorium.ai/api-usage).\ Once adding an api key – the red “**Missing required keys**” warning disappears.\ That’s it! The Explorium data functions are now available in your Base44 backend cloud functions. ![](https://mintcdn.com/explorium/s1uRl5fGOrKpLiGF/images/reference/e8986829f42545310495ee7b5b34bb1069f28318d703075ca2e5138356dc0bca-Screenshot_2025-04-29_at_16.38.42.png?fit=max\&auto=format\&n=s1uRl5fGOrKpLiGF\&q=85\&s=fefee19a2127b9c0a3f4b76deaf49d84) ### Have fun building! # Claude Desktop Integration Source: https://developers.explorium.ai/integrations/claude/claude-desktop-integration **Claude by Anthropic** - The most popular MCP-compatible AI assistant Claude Desktop provides native support for MCP servers, making it the ideal choice for accessing AgentSource data through natural conversation. #### Setup Instructions **1. Install Claude Desktop** Install Claude Desktop from [claude.ai](https://claude.ai/) **2. Click on "Search and tools" button** ![Screenshotat Nov0916 41 21 Pn](https://mintcdn.com/explorium/_Jy_yzKWZxUWaa_V/images/ScreenshotatNov0916-41-21.png?fit=max\&auto=format\&n=_Jy_yzKWZxUWaa_V\&q=85\&s=b4a92d537521c90c2f4be7323a4c73aa) **3. Click on the "Add connectors" option** ![Screenshot at Nov 09 14:02:24 PM](https://mintcdn.com/explorium/eyadf3qggkZgGT_W/images/ScreenshotatNov0914-02-24.png?fit=max\&auto=format\&n=eyadf3qggkZgGT_W\&q=85\&s=3d65a2aacc9dfd75b4559b90fd109926) **4. Go to "Desktop extensions" tab** ![Screenshot at Nov 09 14:08:08 PM](https://mintcdn.com/explorium/eyadf3qggkZgGT_W/images/ScreenshotatNov0914-08-08.png?fit=max\&auto=format\&n=eyadf3qggkZgGT_W\&q=85\&s=3f426458e5b903ddb40ca30582ca1821) **5. Select "Explorium business data hub" from the list of available extensions** ![Screenshot at Nov 09 14:45:08 PM](https://mintcdn.com/explorium/eyadf3qggkZgGT_W/images/ScreenshotatNov0914-45-08.png?fit=max\&auto=format\&n=eyadf3qggkZgGT_W\&q=85\&s=94b0e94583a96898c755454df254a2fe) **6. Click on the Install button and wait for the installation process to complete** ![Screenshot at Nov 09 14:46:37 PM](https://mintcdn.com/explorium/eyadf3qggkZgGT_W/images/ScreenshotatNov0914-46-37.png?fit=max\&auto=format\&n=eyadf3qggkZgGT_W\&q=85\&s=c4046899a73e1ee5b07f6055f21ab14c) **7. Verify that the Explorium business data hub is enabled now and close the extension window** ![Screenshot at Nov 09 14:55:52 PM](https://mintcdn.com/explorium/eyadf3qggkZgGT_W/images/ScreenshotatNov0914-55-52.png?fit=max\&auto=format\&n=eyadf3qggkZgGT_W\&q=85\&s=c82555618036a6d29463c70269547500) **8. Again click on the 'Search and tools' button to verify that Explorium business data hub appears and enable it by clicking on the toggle to the right of the extension name** ![Screenshotat Nov0915 44 18 Pn](https://mintcdn.com/explorium/eyadf3qggkZgGT_W/images/ScreenshotatNov0915-44-18.png?fit=max\&auto=format\&n=eyadf3qggkZgGT_W\&q=85\&s=42dfaec482803dbf1997273d9e756659) **9. Allow Explorium MCP access** * Allow Explorium MCP access ![MCP Access Permission](https://mintcdn.com/explorium/s1uRl5fGOrKpLiGF/images/reference/d98928e4d6121f3d09d302868a31dbc7c862b4ea4b855c94e6a560a3eba476d6-image.png?fit=max\&auto=format\&n=s1uRl5fGOrKpLiGF\&q=85\&s=195fedba8b0223988d4efde4f703d0df) #### Example Conversations **Finding Companies:** ``` You: Find me 10 SaaS companies in San Francisco with 50-200 employees Claude: I'll search for SaaS companies in San Francisco with 50-200 employees. [Searches using fetch_businesses tool] I found 10 SaaS companies matching your criteria: 1. TechFlow Analytics - 125 employees - Revenue: $10M-$25M - Technologies: AWS, React, PostgreSQL 2. DataSync Solutions - 87 employees - Revenue: $5M-$10M - Technologies: Google Cloud, Python, MongoDB [... continues with detailed results] ``` **Researching Contacts:** ``` You: Who is the CTO of Snowflake and what's their background? Claude: I'll look up information about Snowflake's CTO. [Uses match_businesses, then enrich_businesses_financial_metrics] The CTO of Snowflake is Benoit Dageville. Here's his background: - Co-founder of Snowflake - Previously at Oracle for 16 years - PhD in Computer Science from University of Paris - Expertise in database systems and query optimization ``` ## Common Patterns ### Research Assistant Pattern Transform your AI into a business research assistant: ``` 1. User asks about a company or industry 2. AI uses match_businesses or fetch_businesses 3. AI enriches with firmographics, technographics, financials 4. AI summarizes findings in natural language ``` ### Sales Intelligence Pattern Enable your AI to support sales activities: ``` 1. User provides target company name 2. AI finds company with match_businesses 3. AI fetches key contacts with fetch_prospects 4. AI enriches contact information 5. AI provides actionable insights ``` ### Market Analysis Pattern Use AI for competitive intelligence: ``` 1. User asks about market segment 2. AI searches companies with filters 3. AI aggregates statistics 4. AI identifies trends and patterns 5. AI generates market report ``` ## Best Practices ### Prompt Engineering **Be Specific** ``` Good: "Find B2B SaaS companies in NYC with 50-200 employees using AWS" Bad: "Find some tech companies" ``` **Chain Requests** ``` "First find Microsoft's business ID, then show me all VPs in their engineering department" ``` **Request Formats** ``` "Show me the results as a table with company name, size, and revenue" ``` ### Performance Tips * **Batch Operations**: Ask for multiple companies at once * **Specific Filters**: Use precise criteria to reduce results * **Caching**: AI assistants often cache recent results * **Pagination**: Request specific page numbers for large datasets ### Security Considerations * Store API keys in secure configuration files * Never share API keys in conversations * Use read-only keys when possible * Monitor usage through the admin panel ## Advanced Features ### Tool Chaining Most AI assistants can automatically chain multiple tools: ``` "Find the top 5 competitors of Salesforce and compare their employee counts and technologies" This triggers: 1. match_businesses (Salesforce) 2. enrich_businesses_competitive_landscape 3. match_businesses (for each competitor) 4. enrich_businesses_firmographics 5. enrich_businesses_technographics ``` ### Conversational Memory AI assistants maintain context across messages: ``` You: "Find info about Uber" AI: [Provides Uber details] You: "Now show me their main competitors" AI: [Understands "their" refers to Uber] ``` ### Natural Language Filters Convert natural language to API filters: ``` "Companies founded in the last 3 years" company_age: ["0-3"] "Mid-size businesses" company_size: ["51-200", "201-500"] "Tech companies" linkedin_category: ["Technology"] ``` ## Examples Gallery ### Company Research ``` "Give me a complete profile of Tesla including their technology stack, financial metrics, recent events, and key executives" ``` ### Competitive Analysis ``` "Compare the top 5 CRM companies by employee count, revenue, and technology stack. Show the results in a table." ``` ### Lead Generation ``` "Find marketing directors at fintech companies in London with 100-500 employees. Include their email addresses." ``` ### Market Trends ``` "What percentage of SaaS companies with $10M-$50M revenue are using AWS vs Google Cloud vs Azure?" ``` # Cursor Integration Source: https://developers.explorium.ai/integrations/cursor/cursor-integration ## Cursor IDE **Cursor** - The AI-powered code editor with MCP support Cursor's built-in AI features can leverage AgentSource data for research while coding, making it perfect for developers building data-driven applications. ### Setup Instructions **1. Open Cursor Settings** * Navigate to: Cursor > Settings > Cursor Settings > MCP Tools * Click the 'Add Custom MCP' button ![](https://mintcdn.com/explorium/s1uRl5fGOrKpLiGF/images/reference/9ca30e10d2b057ef0f7b4aa1a6f122e4463b82b1633f4aad435ccecadafb08dd-image.png?fit=max\&auto=format\&n=s1uRl5fGOrKpLiGF\&q=85\&s=e3a18c3dae6f0918bec4ff03f97fce9a) **2. Add Explorium MCP configuration** ```json JSON theme={null} { "mcpServers": { "explorium-mcp": { "type": "sse", "url": "https://mcp-v2.explorium.ai/sse", "headers": { "api_key": "" } } } } ``` > [!NOTE] > > Using AgentSource v1? The v1 server at `https://mcp.explorium.ai/sse` still works but is deprecated and will be retired together with AgentSource v1 — see the [deprecation timeline](/v2/migration-from-v1#v1-deprecation-timeline). **3. Enable Auto-Run Mode (Optional)** * Location: Cursor > Settings > Chat * Toggle: "Auto-Run Mode" * Benefit: Tools execute automatically without confirmation **4. Login** * Click 'Needs login' and click 'Open' on the dialog box. ![](https://mintcdn.com/explorium/s1uRl5fGOrKpLiGF/images/reference/aa9805999594a3a14cc36dd48c9052ae569a5ccb19a465ec4c7d724cae18696d-image.png?fit=max\&auto=format\&n=s1uRl5fGOrKpLiGF\&q=85\&s=6c4e0a04924258f4b968e1bd12f79a10) **5. Allow Explorium MCP access for Cursor** * Click the 'Allow Access' button. ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/3f78c5ebb8bf4dee1bd6c0aef9c4dfecbfe4f8ace09fadbb716a248eba07586d-image.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=e6fd184ae954949111b34dbd00b08a6a) **6. Confirm the server is connected** * Make sure the mcp is turned on and the tools are enabled ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/0b6a741658ad5e1b7177dc9823a9e217ad28eab050fd415a24a4edf291491447-image.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=f50b551bf2b39025741b0838a9246ee8) **7. Test the mcp** * Open chat (Cmd+K or Ctrl+K) * Ask: "find 5 companies in the fintech industry that use salesforce" ### Use Cases in Cursor * Research companies while building CRM integrations * Get real data for testing and development * Generate mock data based on real company information * Validate business logic with actual market data # MCP Integrations Source: https://developers.explorium.ai/integrations/mcp-integrations Connect AgentSource MCP with your favorite platforms and tools to access business and contact data wherever you work. ## Overview AgentSource MCP integrations allow you to seamlessly incorporate Explorium's data into your existing workflows. Whether you're building automation pipelines, enhancing AI applications, or connecting to no-code platforms, we provide ready-to-use integrations that get you up and running in minutes. ## Available Integrations ### AI Assistants **Enhance AI conversations with real-time data** Integrate AgentSource MCP with popular AI assistants to provide them with access to comprehensive business and contact information. **Supported Platforms:** * Claude Desktop * Cursor IDE * Custom AI agents **Key Features:** * Natural language queries * Automatic tool discovery * Context-aware responses * Real-time data access Get Started > **[Claude Desktop](/integrations/claude/claude-desktop-integration)** > **[Cursor](/integrations/cursor/cursor-integration)** ### [n8n](/integrations/n8n/integrate-with-n8n) **Visual workflow automation with MCP tools** Build powerful automation workflows that combine AgentSource data with hundreds of other services using n8n's visual interface. **Key Features:** * Drag-and-drop workflow builder * Claude-powered AI agent * 400+ app integrations * Self-hosted or cloud options **Use Cases:** * Automated lead enrichment * Customer data workflows * Research automation * Alert systems > **[n8n](/integrations/n8n/integrate-with-n8n)** ### [Base44](/integrations/base44/integrate-with-base44) **Add data to any Base44 AI app** Integrate AgentSource MCP into your Base44 applications with just a few clicks. Perfect for building custom AI-powered business tools. **Key Features:** * 3-minute setup * Pre-approved integration * Cloud functions support * Instant deployment **Use Cases:** * Custom AI assistants * Business intelligence apps * Sales tools * Research platforms > **[Base44](/integrations/base44/integrate-with-base44)** ### [Zapier](/integrations/zapier/integrate-with-zapier) **Connect to 5000+ apps** *Coming Soon* Automate workflows between AgentSource and thousands of applications without writing code. **Planned Features:** * Pre-built zap templates * Custom triggers and actions * Bulk operations support * Scheduled enrichments > **[Zapier](/integrations/zapier/integrate-with-zapier)** ### [Make (Integromat)](/integrations/make/integrate-with-make) **Advanced automation scenarios** *Coming Soon* Create complex automation scenarios with visual programming and AgentSource data. ## Integration Comparison | Platform | Setup Time | Best For | Pricing Model | Hosting | | :- | :- | :- | :- | :- | | **AI Assistants** | 5 min | Conversational AI | Per API call | Local/Cloud | | **n8n** | 15 min | Complex workflows | Self-hosted free / Cloud | Both | | **Base44** | 3 min | AI apps | Platform pricing | Cloud | | **Zapier** | 10 min | Simple automation | Per task | Cloud | | **Salesforce** | 30 min | CRM enrichment | Platform pricing | Cloud | ## Getting Started ### Prerequisites Before setting up any integration, ensure you have: 1. **AgentSource API Key** - [Get your key](/reference/setup/getting_your_api_key) 2. **Platform Account** - Active account on your chosen platform 3. **Basic Understanding** - Familiarity with the platform's interface ### General Setup Process Most integrations follow a similar pattern: 1. **Add AgentSource** - Find AgentSource in the platform's integration catalog 2. **Configure Authentication** - Add your API key 3. **Test Connection** - Verify the integration is working 4. **Start Building** - Use AgentSource tools in your workflows ## Common Use Cases ### Lead Enrichment Automation * Automatically enrich new CRM leads * Add contact information and company data * Score and route leads based on enriched data * Trigger personalized outreach campaigns ### Market Intelligence Workflows * Monitor competitor activities * Track industry trends * Alert on significant company events * Generate regular market reports ### Sales Intelligence * Research prospects before meetings * Find decision makers at target accounts * Identify technology stack for better positioning * Track job changes and company updates ### Data Quality Management * Validate and update existing records * Fill missing data fields * Deduplicate company records * Maintain data freshness ## Best Practices ### Security * Store API keys securely in platform vaults * Use environment variables when possible * Implement proper access controls * Monitor API usage regularly ### Performance * Use batch operations for bulk data * Implement caching where appropriate * Set up rate limiting rules * Monitor workflow execution times ### Design Patterns * Start with simple workflows * Test with small data sets first * Build modular, reusable components * Document your integrations ## Troubleshooting ### Common Issues **Authentication Errors** * Verify API key is correct * Check key permissions * Ensure proper header format **Rate Limiting** * Implement exponential backoff * Use batch operations * Spread requests over time **Data Format Issues** * Validate input parameters * Check response parsing * Handle null values properly ## Support Resources ### Documentation > **[API Reference](/reference/quick-starts/quick-starts)** ### Get Help * Technical Support: [support@explorium.ai](mailto:support@explorium.ai) * Community Forum: Coming soon ## Request an Integration Don't see your platform listed? We're constantly adding new integrations based on user feedback. > **[Request a New Integration](/reference/)** Include: * Platform name and website * Your use case * Expected data volume * Timeline requirements *Ready to connect? Choose an integration above or explore our[implementation guides](/mcp-docs/v2/developers-implementation-guides) for custom solutions.* # Explorium Event Triggered Outreach Source: https://developers.explorium.ai/integrations/n8n/explorium-event-triggered-outreach Automatically identify meaningful events such as product launches, new office opening and much more, enrich company & prospect data, and generate fully personalized outbound emails using Explorium MCP and LLM agents This n8n and agent-based workflow automates outbound prospecting by monitoring Explorium event data (e.g. product launches, new office opening, new investment and [more](/reference/businesses/events/types/ipo-announcement)), researching companies, identifying key contacts, and generating tailored sales emails leveraging the Explorium MCP server. ## Template Download the following json file and import it to a new n8n workflow: > **[explorium\_event\_outreach.json](https://drive.usercontent.google.com/u/0/uc?id=1jcHBBOQyM60gXT34VB6XlAgA_gg3uPTr\&export=download)** ![](https://mintcdn.com/explorium/s1uRl5fGOrKpLiGF/images/reference/c8b805c24352d0eb65805c9cf4cd692b8dc28dac9d32c1c3b43eca55964ac481-image.png?fit=max\&auto=format\&n=s1uRl5fGOrKpLiGF\&q=85\&s=42773be6de70de880e355762114ac10c) ## Workflow Overview ### Node 1: Webhook Trigger **Purpose:** Listens for real-time product launch events pushed from Explorium's webhook system. **How it works:** * Explorium sends HTTP POST requests containing event data * The webhook payload includes company name, business ID, domain, product name, and event type * Pay attention: Product launch is just one example. You can easily enroll to many more meaningful events. to learn about events and how to enroll to events, visit the events [documentation](/reference/webhooks). ### Node 2: Company Research Agent **Agent Type:** Tools Agent **Purpose:** Enrich company data after an event occurs. **How it works:** * Uses Explorium MCP via the MCP Client tool to gather additional company data * Uses Anthropic Claude (Chat Model) to process and interpret company information for downstream personalization ### Node 3: Employee Data Retrieval **Purpose:** Retrieve prospect-level data for targeting. **How it works:** * Uses HTTP Request node to call Explorium's `fetch_prospects` endpoint * Filters prospects by: * Company `business_id` * Departments: Product, R\&D, etc... * Seniority levels: owner, cxo, vp, director, senior, manager, partner, etc... * Pay Attention: Follow our fetch prospect [documentation](/reference/prospects/fetch_prospects) for the full list of filter and best practice. * Limits results to top 5 relevant employees * Code nodes handle: * Filtering logic * Cleaning API response * Formatting data for downstream agents ### Node 4: Conditional Branch - Prospect Data Check **If Node:** Checks whether prospect data was successfully retrieved **Logic:** * If prospects found personalized emails per person * If no prospects fallback to company-level general email ### Node 5A: Email Writer #1 (No Prospect Data) **Agent Type:** Tools Agent **Purpose:** Write generic outbound email using only company-level research and event info. **Powered by:** Anthropic Chat Model ### Node 5B: Loop Over Prospects Email Writer #2 (Personalized) **Agent Type:** Tools Agent **Purpose:** Write highly personalized email for each identified employee. **How it works:** * Loops through each individual prospect * Passes company research + employee data to LLM agent * Generates customized emails referencing: * Prospect's title & department * Product launch * Role-relevant Explorium value proposition ### Node 6: Slack Notifications **Purpose:** Posts completed emails to internal Slack channel for review or testing before final deployment. **Future State:** Can be swapped with an email sequencing platform in production. ## Setup Requirements ### Explorium API Access * MCP Client credentials for company enrichment and prospect fetching * Registered webhook for event listening ### n8n Configuration * Secure environment variables for API keys & webhook secret * Code nodes configured for JSON transformation, filtering & signature validation ## Customization Options ### Personalization Logic * Update LLM prompt instructions to reflect ICP priorities * Modify email templates based on role, department, or tenure logic * Adjust fallback behavior when prospect data is unavailable ### API Request Tuning * Adjust `page_size` for number of prospects retrieved * Fine-tune seniority and department filters to match evolving targeting ## Future Expansion * Swap Slack notifications for outbound email automation * Integrate call task assignment directly into CRM * Introduce engagement scoring feedback loop (opens, clicks, replies) ## Troubleshooting Tips * Validate webhook signature matching to prevent unauthorized requests * Ensure correct `business_id` is passed to prospect fetching endpoint * Confirm business enrichment returns sufficient data for company researcher agents * Review agent LLM responses for correct output structure and parsing consistency # Explorium Prospects Search Chatbot Source: https://developers.explorium.ai/integrations/n8n/explorium-prospects-search-chatbot An intelligent conversational interface that translates natural language queries into Explorium API calls to find B2B prospects and export them as CSV files. ## ## Template Download the following json file and import it to a new n8n workflow: > **[mcp\_to\_prospects\_to\_csv.json](https://drive.usercontent.google.com/u/0/uc?id=1_TO79jMUJxaDt5s2PAI2RYHOpB-7xPwD\&export=download)** ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/7d8d1a8a648e41b07f704212ebbbd392c38082aeffb70c23a4981c8ec0e03e0d-image.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=2ed87ef393246075f4675c26f24f61cd) ## Overview This n8n workflow creates a chatbot that understands natural language requests for finding business prospects and automatically: * Interprets your query using AI (Claude Sonnet 3.7) * Converts it to proper Explorium API filters * Validates the API request structure * Fetches prospect data from Explorium * Exports results as a downloadable CSV file Perfect for sales teams, recruiters, and business development professionals who need to quickly find and export targeted prospect lists without learning complex API syntax. ## Key Features * **Natural Language Interface**: Simply describe who you're looking for in plain English * **Smart Query Translation**: AI converts your request to valid API parameters * **Built-in Validation**: Ensures API calls meet Explorium's requirements * **Error Recovery**: Automatically retries with corrections if validation fails * **Pagination Support**: Handles large result sets automatically * **CSV Export**: Clean, formatted output ready for CRM import * **Conversation Memory**: Maintains context for follow-up queries ## Example Queries The chatbot understands queries like: * "Find marketing directors at SaaS companies in New York with 50-200 employees" * "Get me CTOs from fintech startups in California" * "Show me sales managers at healthcare companies with revenue over \$10M" * "Find engineers at Microsoft with 3-5 years experience" * "Get customer service leads from e-commerce companies in Europe" ## Prerequisites Before setting up this workflow, ensure you have: 1. **n8n instance** with chat interface enabled 2. **Anthropic API key** for Claude 3. **Explorium API credentials** (API Key) 4. Basic understanding of n8n chat workflows ## Supported Filters The chatbot can search using these criteria: ### Company Filters * **Size**: 1-10, 11-50, 51-200, 201-500, 501-1000, 1001-5000, 5001-10000, 10001+ employees * **Revenue**: Ranges from $0-500K up to $10T+ * **Age**: 0-3, 3-6, 6-10, 10-20, 20+ years * **Location**: Countries, regions, cities * **Industry**: Google categories, NAICS codes, LinkedIn categories * **Name**: Specific company names ### Prospect Filters * **Job Level**: CXO, VP, Director, Manager, Senior, Entry, etc. * **Department**: Sales, Marketing, Engineering, Finance, HR, etc. * **Experience**: Total months and current role duration * **Location**: Country and region codes * **Contact Info**: Filter by email/phone availability ## Installation & Setup ### Step 1: Import the Workflow **Step 1** Create a new workflow. **Step 2** Download the workflow JSON from above. **Step 3** In your n8n instance, go to **Workflows** **Add Workflow** **Import from File** **Step 4** Select the JSON file and click **Import** ### Step 2: Configure Anthropic Credentials **Step 1** Click on the **Anthropic Chat Model1** node **Step 2** Under Credentials, click **Create New** **Step 3** Add your Anthropic API key **Step 4** Name: "Anthropic API" **Step 5** Save credentials ### Step 3: Configure Explorium Credentials You'll need to set up Explorium credentials in two places: #### For MCP Client: **Step 1** Click on the **MCP Client** node **Step 2** Under Credentials, create new **Header Auth** **Step 3** Configure the header: 1. **Name**: `api_key` 2. **Value**: `YOUR_EXPLORIUM_API_TOKEN` **Step 4** Save credentials ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/8b89ad77232f806faab6590caca7dacc7a673f61ba10275f75e5bfec202fdbd5-image.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=37ed830df917eaa56abc4ad8da5285cb) #### For API Calls: **Step 1** Click on the **Prospects API Call** node **Step 2** Use the same Header Auth credentials created above **Step 3** Verify the API endpoint is correct ### Step 4: Activate the Workflow **Step 1** Save the workflow **Step 2** Click the **Active** toggle to enable it **Step 3** The chat interface will now be available ### Step 5: Access the Chat Interface **Step 1** Click on the **When chat message received** node **Step 2** Copy the webhook URL **Step 3** Access this URL in your browser to start chatting ## How It Works ### Workflow Architecture 1. **Chat Trigger**: Receives natural language queries from users 2. **Memory Buffer**: Maintains conversation context 3. **AI Agent**: Interprets queries and generates API parameters 4. **Validation**: Checks API structure against Explorium requirements 5. **API Call**: Fetches prospect data with pagination 6. **Data Processing**: Formats results for CSV export 7. **File Conversion**: Creates downloadable CSV file ### Processing Flow ``` User Query AI Interpretation Validation API Call CSV Export ↑ ↓ └──── Error Correction Loop ←──────┘ ``` ### Validation Rules The workflow validates: * Filter keys are allowed by Explorium API * Values match expected formats (e.g., valid country codes) * Range filters have proper gte/lte values * No duplicate values in arrays * Required structure is maintained ## Usage Guide ### Basic Conversation Flow **1. Start with your query** ``` "Find me VPs of Sales at software companies in the US" ``` **2. Bot processes and responds** * Generates API filters * Validates the structure * Fetches data * Returns CSV download link **3. Refine if needed** ``` "Can you also include directors and filter for companies with 100+ employees?" ``` ### Query Tips * **Be specific**: Include job titles, departments, company details * **Use standard terms**: "CTO" instead of "Chief Technology Officer" * **Specify locations**: Use country names or standard codes * **Include size/revenue**: Helps narrow results effectively ### Advanced Queries Combine multiple criteria: ``` "Find engineering managers and senior engineers at B2B SaaS companies in New York and California with 50-500 employees and revenue over $5M who have been in their role for at least 1 year" ``` ## Output Format The CSV file includes: * Prospect ID * Name (first, last, full) * Location (country, region, city) * LinkedIn profile * Experience summary * Skills and interests * Company details * Job information * Business ID ## Troubleshooting ### Common Issues **"Validation failed" errors** * Check that your query uses supported filter values * Ensure location names are spelled correctly * Verify company sizes/revenues match allowed ranges **No results returned** * Broaden your search criteria * Check if the company exists in Explorium's database * Verify filter combinations aren't too restrictive **Chat not responding** * Ensure workflow is activated * Check all credentials are properly configured * Verify webhook URL is accessible **Large result sets timing out** * Try adding more specific filters * Limit results by location or company size * Use the size parameter (max 10,000) ### Error Messages The bot provides clear feedback: * **Invalid filters**: Shows which filters aren't supported * **Value errors**: Lists correct options for each field * **API failures**: Explains connection or authentication issues ## Performance Optimization ### Best Practices 1. **Start broad, then narrow**: Begin with basic criteria and add filters 2. **Use business IDs**: When targeting specific companies 3. **Limit by contact info**: Add `has_email: true` for actionable leads 4. **Batch by location**: Process regions separately for large searches ### API Limits * Maximum 10,000 results per search * Pagination handles up to 100 records per page * Rate limits apply based on your Explorium subscription ## Customization Options ### Modify AI Behavior Edit the **AI Agent** system message to: * Change response format * Add custom filters * Adjust interpretation logic * Include additional instructions ### Extend Functionality Add nodes to: * Send results via email * Import directly to CRM * Schedule recurring searches * Create custom reports ### Integration Ideas * Connect to Slack for team queries * Add to CRM workflows * Create lead scoring systems * Build automated outreach campaigns ## Security Considerations * API credentials are stored securely in n8n * Chat sessions are isolated * No prospect data is stored permanently * CSV files are generated on-demand ## Support Resources For issues with: * **n8n platform**: Check n8n documentation * **Explorium API**: Contact Explorium support * **Anthropic/Claude**: Refer to Anthropic docs * **Workflow logic**: Review node configurations # Google Sheets Company Enrichment with Explorium MCP Source: https://developers.explorium.ai/integrations/n8n/google-sheets-company-enrichment-with-explorium-mcp Automatically enrich company data in Google Sheets using Explorium's comprehensive B2B intelligence platform through n8n automation. ## Template Download the following json file and import it to a new n8n workflow: > **[google\_sheets\_enrichment.json](https://drive.usercontent.google.com/u/0/uc?id=1SxlqU2hVn41e0XTjPx12Ryrx_yil3TUq\&export=download)** ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/47bf118229ab009f2b78df40f3c1cac4d0a965d5a01b12ec1b3cd4d34f1c466e-image.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=0407c910d991656c642148777129312a) ## Overview This n8n workflow template enables automatic enrichment of company information in your Google Sheets. When you add a new company or update existing company details (name or website), the workflow automatically fetches additional business intelligence data using Explorium MCP and updates your sheet with: * Business ID * NAICS industry code * Number of employees (range) * Annual revenue (range) ## Key Features * **Automatic Triggering**: Monitors your Google Sheet for new rows or updates to company name/website fields * **Smart Processing**: Only processes new or modified rows, not the entire sheet * **Data Validation**: Ensures both company name and website are present before processing * **Error Handling**: Processes each row individually to prevent one failure from affecting others * **Powered by AI**: Uses Claude Sonnet 4 with Explorium MCP for intelligent data enrichment ## Prerequisites Before setting up this workflow, ensure you have: 1. **n8n instance** (self-hosted or cloud) 2. **Google account** with access to Google Sheets 3. **Anthropic API key** for Claude 4. **Explorium MCP API key** ## Installation & Setup ### Step 1: Import the Workflow **Step 1** Create a new workflow. **Step 2** Download the workflow JSON from above. **Step 3** In your n8n instance, go to **Workflows** **Add Workflow** **Import from File** **Step 4** Select the JSON file and click **Import** ### Step 2: Create Google Sheet **Step 1** Create a new google sheet (or make a copy of this [template](https://docs.google.com/spreadsheets/d/14PypuKFWkMftiCtPrekpbav63tEGmgGgUP3cDwv7wXE/edit?usp=sharing)) **Step 2** Your Google Sheet must have the following columns (exact names): * `name` - Company name * `website` - Company website URL * `business_id` - Will be populated by the workflow * `naics` - Will be populated by the workflow * `number_of_employees_range` - Will be populated by the workflow * `yearly_revenue_range` - Will be populated by the workflow ### Step 3: Configure Google Sheets Credentials You'll need to set up two Google credentials: #### Google Sheets Trigger Credentials: **Step 1** Click on the **Google Sheets Trigger** node **Step 2** Under Credentials, click **Create New** **Step 3** If working on n8n Cloud, Click the 'Sign in with Google' button ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/200aac6aa2ac8e4d671f50d8d6c2186e4c571449ec57610d5209a036c968caf1-image.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=32f12df6728c78005210010747030ce3) **Step 4** Grant permissions to read and monitor your Google Sheets **Step 5** If working on n8n Instance, Follow the OAuth2 authentication process [here](https://docs.n8n.io/integrations/builtin/credentials/google/oauth-generic/#finish-your-n8n-credential) **Step 6** Fill the Client ID and Client Secret fields ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/789e2e7e6f7921533ac90c703b4307f90d6b913b187632b61f2f0957687739c7-image.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=e8d3ffbe0b61d87f977156cd453ad95e) **Step 7** Save the credentials #### Google Sheets Update Credentials: **Step 1** Click on the **Update Company Row** node **Step 2** Under Credentials, select the same credentials or create new ones (The same you did above) **Step 3** Ensure permissions include write access to your sheets ## ### Step 4: Configure Anthropic Credentials **Step 1** Click on the **Anthropic Chat Model** node **Step 2** Under Credentials, click **Create New** **Step 3** Enter your Anthropic API key ![](https://mintcdn.com/explorium/s1uRl5fGOrKpLiGF/images/reference/d5647de529ef23690408c6633136648999496c573dfac31e135868f2d1e3e30e-image.png?fit=max\&auto=format\&n=s1uRl5fGOrKpLiGF\&q=85\&s=8c8e941a317b53f74bd19eba43d6153c) **Step 4** Save the credentials ### Step 5: Configure Explorium MCP Credentials **Step 1** Click on the **MCP Client** node **Step 2** Under Credentials, click **Create New** (Header Auth) **Step 3** Fill the Name field with `api_key` **Step 4** Fill the Value field with your Explorium API Key ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/8b89ad77232f806faab6590caca7dacc7a673f61ba10275f75e5bfec202fdbd5-image.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=37ed830df917eaa56abc4ad8da5285cb) **Step 5** Save the credentials ### Step 6: Link Your Google Sheet **Step 1** In the **Google Sheets Trigger** node: * Select your Google Sheet from the dropdown * Select the worksheet (usually "Sheet1") ![](https://mintcdn.com/explorium/s1uRl5fGOrKpLiGF/images/reference/a8b6a167d9bc140714c7bdd08af5c08597f0a58af73231d239a46c95410cf051-image.png?fit=max\&auto=format\&n=s1uRl5fGOrKpLiGF\&q=85\&s=d0f911af699834254c3d1d86c69a9c32) **Step 2** In the **Update Company Row** node: * Select the same Google Sheet and worksheet * Ensure the matching column is set to `row_number` ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/10bfafaaa3572bc805d5482d038348d41bced7b03bf94c8f04a377218d7dcaa3-image.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=7247285dc9fb6a5456e5390039f846e8) ### Step 7: Activate the Workflow **Step 1** Click the **Active** toggle in the top right to activate the workflow **Step 2** The workflow will now monitor your sheet every minute for changes ## How It Works ### Workflow Process Flow 1. **Google Sheets Trigger**: Polls your sheet every minute for new rows or changes to name/website fields 2. **Filter Valid Rows**: Validates that both company name and website are present 3. **Loop Over Items**: Processes each company individually 4. **AI Agent**: Uses Explorium MCP to: * Find the company's business ID * Retrieve firmographic data (revenue, employees, NAICS code) 5. **Format Output**: Structures the data for Google Sheets 6. **Update Company Row**: Writes the enriched data back to the original row ### Trigger Behavior * **First Activation**: May process all existing rows to establish a baseline * **Ongoing Operation**: Only processes new rows or rows where name/website fields change * **Polling Frequency**: Checks for changes every minute ## Usage ### Adding New Companies **Step 1** Add a new row to your Google Sheet **Step 2** Fill in the `name` and `website` columns **Step 3** Within 1 minute, the workflow will automatically: * Detect the new row * Enrich the company data * Update the remaining columns ### Updating Existing Companies **Step 1** Modify the `name` or `website` field of an existing row **Step 2** The workflow will re-process that row with the updated information **Step 3** All enrichment data will be refreshed ### Monitoring Executions 1. In n8n, go to **Executions** to see workflow runs 2. Each execution shows: * Which rows were processed * Success/failure status * Detailed logs for troubleshooting ## Troubleshooting ### Common Issues **All rows are processed instead of just new/updated ones** * Ensure the workflow is **activated**, not just run manually * Manual test runs will process all rows * First activation may process all rows once **No data is returned for a company** * Verify the company name and website are correct * Check if the company exists in Explorium's database * Some smaller or newer companies may not have data available **Workflow isn't triggering** * Confirm the workflow is activated (Active toggle is ON) * Check that changes are made to the `name` or `website` columns * Verify Google Sheets credentials have proper permissions **Authentication errors** * Re-authenticate Google Sheets credentials * Verify Anthropic API key is valid and has credits * Check Explorium Bearer token is correct and active ### Error Handling The workflow processes each row individually, so if one company fails to enrich: * Other rows will still be processed * The failed row will retain its original data * Check the execution logs for specific error details ## Best Practices 1. **Data Quality**: Ensure company names and websites are accurate for best results 2. **Website Format**: Include full URLs ([https://example.com](https://example.com/)) rather than just domain names 3. **Batch Processing**: The workflow handles multiple updates efficiently, so you can add several companies at once 4. **Regular Monitoring**: Periodically check execution logs to ensure smooth operation ## API Limits & Considerations * **Google Sheets API**: Subject to Google's API quotas * **Anthropic API**: Each enrichment uses Claude Sonnet 4 tokens * **Explorium MCP**: Rate limits may apply based on your subscription ## Support For issues specific to: * **n8n platform**: Consult n8n documentation or community * **Google Sheets integration**: Check n8n's Google Sheets node documentation * **Explorium MCP**: Contact Explorium support for API-related issues * **Anthropic/Claude**: Refer to Anthropic's documentation for API issues ## Example Use Cases 1. **Sales Prospecting**: Automatically enrich lead lists with company size and revenue data 2. **Market Research**: Build comprehensive databases of companies in specific industries 3. **Competitive Analysis**: Track and monitor competitor information 4. **Investment Research**: Gather firmographic data for potential investment targets # HubSpot Contact Enrichment with Explorium Source: https://developers.explorium.ai/integrations/n8n/hubspot-contact-enrichment Automatically enrich new HubSpot contacts with professional email addresses and phone numbers using Explorium's B2B intelligence platform. ## Template Download the following json file and import it to a new n8n workflow: > **[hubspot\_flow.json](https://drive.usercontent.google.com/u/0/uc?id=1jbXjAIWEcyQoAAZQNQVLgoKw5jC-gF2h\&export=download)** ![](https://mintcdn.com/explorium/s1uRl5fGOrKpLiGF/images/reference/e0aa256a5be40904212aff7d1c0942ea8d18ff0797435468b8fea557c2a8aa98-image.png?fit=max\&auto=format\&n=s1uRl5fGOrKpLiGF\&q=85\&s=5c68561f05940f5aca5eef4a02449b85) ## Overview This n8n workflow monitors your HubSpot instance for newly created contacts and automatically enriches them with additional contact information. When a contact is created, the workflow: **Step 1** Detects the new contact via HubSpot webhook trigger **Step 2** Retrieves recent contact details from HubSpot **Step 3** Matches the contact against Explorium's database using name, company, and email **Step 4** Enriches the contact with professional emails and phone numbers **Step 5** Updates the HubSpot contact record with discovered information This automation ensures your sales and marketing teams have complete contact information, improving outreach success rates and data quality. ## Key Features * **Real-time Webhook Trigger**: Instantly processes new contacts as they're created * **Intelligent Matching**: Uses multiple data points (name, company, email) for accurate matching * **Comprehensive Enrichment**: Adds both professional and work emails, plus phone numbers * **Batch Processing**: Efficiently handles multiple contacts to optimize API usage * **Smart Data Mapping**: Intelligently maps multiple emails and phone numbers * **Profile Enrichment**: Optional additional enrichment for deeper contact insights * **Error Resilience**: Continues processing other contacts if some fail to match ## Prerequisites Before setting up this workflow, ensure you have: 1. **n8n instance** (self-hosted or cloud) 2. **HubSpot account** with: * Developer API access (for webhooks) * Private App or OAuth2 app created * Contact object permissions (read/write) 3. **Explorium API credentials** (API Key) 4. Understanding of HubSpot contact properties ## HubSpot Requirements ### Required Contact Properties The workflow uses these HubSpot contact properties: * `firstname` - Contact's first name * `lastname` - Contact's last name * `company` - Associated company name * `email` - Primary email (read and updated) * `work_email` - Work email (updated by workflow) * `phone` - Phone number (updated by workflow) ### API Access Setup **1. Create a Private App in HubSpot** **Create a Private App** in HubSpot: * Navigate to Settings Integrations Private Apps * Create new app with Contact read/write scopes * Copy the Access Token **2. Set up Webhooks (for Developer API)** **Set up Webhooks** (for Developer API): * Create app in HubSpot Developers portal * Configure webhook for contact.creation events * Note the App ID and Developer API Key ### Custom Properties (Optional) Consider creating custom properties for: * Multiple email addresses * Mobile vs. office phone numbers * Data enrichment timestamps * Match confidence scores ## Installation & Setup ### Step 1: Import the Workflow **Step 1** Create a new workflow. **Step 2** Download the workflow JSON from above. **Step 3** In your n8n instance, go to **Workflows** **Add Workflow** **Import from File** **Step 4** Select the JSON file and click **Import** ### Step 2: Configure HubSpot Developer API (Webhook) **Step 1** Click on the **HubSpot Trigger** node **Step 2** Under Credentials, click **Create New** **Step 3** Enter your HubSpot Developer credentials: * **App ID**: From your HubSpot app * **Developer API Key**: From your developer account * **Client Secret**: From your app settings **Step 4** Save as "HubSpot Developer account" ### Step 3: Configure HubSpot App Token **Step 1** Click on the **HubSpot Recently Created** node **Step 2** Under Credentials, click **Create New** (App Token) **Step 3** Enter your Private App access token **Step 4** Save as "HubSpot App Token account" **Step 5** Apply the same credentials to the **Update HubSpot** node ### Step 4: Configure Explorium API Credentials **Step 1** Click on the **Explorium Match Prospects** node **Step 2** Under Credentials, click **Create New** (HTTP Header Auth) **Step 3** Configure the authentication: * **Name**: `api_key` * **Value**: `YOUR_EXPLORIUM_API_TOKEN` **Step 4** Save as "Header Auth Connection" ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/8b89ad77232f806faab6590caca7dacc7a673f61ba10275f75e5bfec202fdbd5-image.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=37ed830df917eaa56abc4ad8da5285cb) **Step 5** Apply to all Explorium nodes: 1. Explorium Enrich Contacts Information 2. Explorium Enrich Profiles ### Step 5: Configure Webhook Subscription **Step 1** In HubSpot Developers portal: * Go to your app's webhook settings * Add subscription for `contact.creation` events * Set the target URL from the HubSpot Trigger node * Activate the subscription ### Step 6: Activate the Workflow **Step 1** Save the workflow **Step 2** Toggle the **Active** switch to ON **Step 3** The webhook is now listening for new contacts ## How It Works ### Workflow Process Flow ```mermaid theme={null} flowchart TD A["New Contact Created"] --> B["HubSpot Webhook Trigger"] B --> C["Get Recent Contacts"] C --> D["Loop Over Items"] D --> E["Match in Explorium"] E --> F{"Match Found?"} F -->|Yes| G["Extract Prospect IDs"] F -->|No| H["Continue Loop"] G --> I["Enrich Contact Info"] G --> J["Enrich Profile Data"] I --> K["Merge Results"] J --> K K --> L["Update HubSpot Contact"] L --> D H --> D ``` ### Node Descriptions 1. **HubSpot Trigger**: Webhook that fires when new contacts are created 2. **HubSpot Recently Created**: Fetches details of recently created contacts 3. **Loop Over Items**: Processes contacts in batches of 6 4. **Explorium Match Prospects**: Finds matching person in Explorium database 5. **Filter**: Validates successful matches 6. **Extract Prospect IDs**: Collects matched prospect identifiers 7. **Enrich Contacts Information**: Fetches emails and phone numbers 8. **Enrich Profiles**: Gets additional profile data (optional) 9. **Merge**: Combines all enrichment results 10. **Split Out**: Separates individual enriched records 11. **Update HubSpot**: Updates contact with new information ### Data Mapping Logic The workflow maps Explorium data to HubSpot properties: | Explorium Data | HubSpot Property | Notes | | :- | :- | :- | | `professions_email` | `email` | Primary professional email | | `emails[].address` | `work_email` | All email addresses joined | | `phone_numbers[].phone_number` | `phone` | All phones joined with commas | | `mobile_phone` | `phone` (fallback) | Used if no other phones found | ### Data Processing The workflow handles complex data scenarios: * **Multiple emails**: Joins all discovered emails with commas * **Phone numbers**: Combines all phone numbers into a single field * **Missing data**: Uses "null" as placeholder for empty fields * **Name parsing**: Cleans sample data and special characters ## Usage & Operation ### Automatic Processing Once activated: **Step 1** Every new contact triggers the webhook immediately **Step 2** Contact is enriched within seconds **Step 3** HubSpot record is updated automatically **Step 4** Process repeats for each new contact ### Manual Testing To test the workflow: **Step 1** Use the pinned test data in the HubSpot Trigger node, or **Step 2** Create a test contact in HubSpot **Step 3** Monitor the execution in n8n **Step 4** Verify the contact was updated in HubSpot ### Monitoring Performance Track workflow health: **Step 1** Go to **Executions** in n8n **Step 2** Filter by this workflow **Step 3** Monitor success rates **Step 4** Review any failed executions **Step 5** Check webhook delivery in HubSpot ## Troubleshooting ### Common Issues **Webhook not triggering** * Verify webhook subscription is active in HubSpot * Check the webhook URL is correct and accessible * Ensure workflow is activated in n8n * Test webhook delivery in HubSpot developers portal **Contacts not matching** * Verify contact has firstname, lastname, and company * Check for typos or abbreviations in company names * Some individuals may not be in Explorium's database * Email matching improves accuracy significantly **Updates failing in HubSpot** * Check API token has contact write permissions * Verify property names exist in HubSpot * Ensure rate limits haven't been exceeded * Check for validation rules on properties **Missing enrichment data** * Not all prospects have all data types * Phone numbers may be less available than emails * Profile enrichment is optional and may not always return data Error HandlingBuilt-in error resilience: * Failed matches don't block other contacts * Each batch processes independently * Partial enrichment is possible * All errors are logged for review Debugging Tips 1. **Check webhook logs**: HubSpot shows delivery attempts 2. **Review executions**: n8n logs show detailed error messages 3. **Test with pinned data**: Use the sample data for isolated testing 4. **Verify API responses**: Check Explorium API returns expected data ## Best Practices ### Data Quality 1. **Complete contact records**: Ensure name and company are populated 2. **Standardize company names**: Use official names, not abbreviations 3. **Include existing emails**: Improves match accuracy 4. **Regular data hygiene**: Clean up test and invalid contacts ### Performance Optimization 1. **Batch size**: 6 is optimal for rate limits 2. **Webhook reliability**: Monitor delivery success 3. **API quotas**: Track usage in both platforms 4. **Execution history**: Regularly clean old executions ### Compliance & Privacy 1. **GDPR compliance**: Ensure lawful basis for enrichment 2. **Data minimization**: Only enrich necessary fields 3. **Access controls**: Limit who can modify enriched data 4. **Audit trail**: Document enrichment for compliance ## Customization Options ### Additional Enrichment Extend with more Explorium data: * Job titles and departments * Social media profiles * Professional experience * Skills and interests * Company information ### Enhanced Processing Add workflow logic for: * Lead scoring based on enrichment * Routing based on data quality * Notifications for high-value matches * Custom field mapping Integration ExtensionsConnect to other systems: * Sync enriched data to CRM * Trigger marketing automation * Update data warehouse * Send notifications to Slack ## API Considerations ### HubSpot Limits * **API calls**: Monitor daily limits * **Webhook payload**: Max 200 contacts per trigger * **Rate limits**: 100 requests per 10 seconds * **Property limits**: Max 1000 custom properties ### Explorium Limits * **Match API**: Batched for efficiency * **Enrichment calls**: Two parallel enrichments * **Rate limits**: Based on your plan * **Data freshness**: Real-time matching ### Architecture Considerations This workflow integrates with: * HubSpot workflows and automation * Marketing campaigns and sequences * Sales engagement tools * Reporting and analytics * Other enrichment services ### Security Best Practices * **Webhook validation**: Verify requests are from HubSpot * **Token security**: Rotate API tokens regularly * **Access control**: Limit workflow modifications * **Data encryption**: All API calls use HTTPS * **Audit logging**: Track all enrichments ## Advanced Configuration ### Custom Field Mapping Modify the Update HubSpot node to map to custom properties: ```javascript JavaScript theme={null} // Example custom mapping { "custom_mobile": "{{ $json.data.mobile_phone }}", "custom_linkedin": "{{ $json.data.linkedin_url }}", "enrichment_date": "{{ $now.toISO() }}" } ``` ### Conditional Processing Add logic to process only certain contacts: * Filter by contact source * Check for specific properties * Validate email domains * Exclude test contacts ## Support Resources For assistance: * **n8n issues**: Check n8n documentation and forums * **HubSpot API**: Reference HubSpot developers documentation * **Explorium API**: Contact Explorium support * **Webhook issues**: Use HubSpot webhook testing tools # Integrate with n8n Source: https://developers.explorium.ai/integrations/n8n/integrate-with-n8n This guide walks you through building a chat-style workflow that lets an n8n AI Agent call Explorium’s Model Context Protocol (MCP) tools, powered by Anthropic’s Claude. You’ll end up with a flow like this: ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/4bfe7f8c7001e122c491342c5e50b8a42df434470ce8a0a05e4ffe85d147815f-Screenshot_2025-04-29_at_14.33.53.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=b7429b0a5a63368ba30f5597fd50948e) ## 1. Prerequisites | **Requirement** | **Notes** | | :- | :- | | n8n @ v1.31+ | Self-hosted or Cloud | | Explorium **API key** | Get one from your AgentSource Admin Panel | | Anthropic **API key** | Needed for Claude 3.x Sonnet | | SSE endpoint | [https://mcp-v2.explorium.ai/mcp](https://mcp-v2.explorium.ai/mcp) | > [!NOTE] > > Using AgentSource v1? The v1 server at `https://mcp.explorium.ai/mcp` still works but is deprecated and will be retired together with AgentSource v1 — see the [deprecation timeline](/v2/migration-from-v1#v1-deprecation-timeline). ## 2. Create Your Flow **1. Trigger** When chat message received (built-in) **2. AI Agent** type: Tools Agent **3. Anthropic Chat Model** Claude 3.7 Sonnet **4. Memory** simple in-flow memory **5. MCP Client** calls Explorium tools Connect the nodes just like the overview image (dotted lines = resource connections). ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/4c6e4df60f2087a6a4f653d6976a85a90261dfbf9c79c1a089dd241568e5099b-image.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=1a380c9065589ae5cedfc7831afad188) ## 3. Configure Each Node ### 3.1 AI Agent configuration | Setting | Value | | :- | :- | | Agent | Tools Agent | | Source for Prompt | Connected Chat Trigger Node | | System Message | Use a Claude-style system prompt. Example: The assistant is Claude, created by Anthropic. The current date is \{\{ Date() }}.\nYou are powered by Explorium's MCP tools. Always call tools when data is required… | | Chat Model | Connect the Anthropic Chat Model node | | Tool | Connect the MCP Client node | | Memory | Connect the Memory node | ![](https://mintcdn.com/explorium/s1uRl5fGOrKpLiGF/images/reference/a0d1049ff0611fa21b5cf42f2d801f24f341cbd3fca45c64e4e2f5c62651e1a3-image.png?fit=max\&auto=format\&n=s1uRl5fGOrKpLiGF\&q=85\&s=c2af7764cfb136adb10c1c045144b2ee) ### 3.2 Anthropic Chat Model * **Credential**: the Anthropic account you just created * **Model**: Claude 3.7 Sonnet * **Enable Thinking**: On (optional, shows the "thinking" indicator) ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/287a18b0cf2ed0cd1c3f5442c81f97525789be0daf2e765c0c7c716ee514012f-image.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=52da145703ef4ff095f126130f3d49fb) ### 3.3 Anthropic credential Enter your Anthropic key and test – you should see Connection tested successfully. ### 3.4 MCP Client node | Field | Value | | :- | :- | | SSE Endpoint | [https://mcp-v2.explorium.ai/mcp](https://mcp-v2.explorium.ai/mcp) | | Authentication | Header Auth | | Credential for Bearer Auth | Header Auth account | | Tools to include | All | ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/3c3bb20d826407ecbf06fbceb5729385b5df435f459740a7167f3f874e8e91ef-image.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=77b9c8e93c99cd4e12d2e4698e5f32d7) Fill the header fields: * Name: `api_key` * Value: `` ![](https://mintcdn.com/explorium/s1uRl5fGOrKpLiGF/images/reference/a3af8f50960010e8ebc7cf068824cde26635b57a9ac24d7dc25683e84898ff67-image.png?fit=max\&auto=format\&n=s1uRl5fGOrKpLiGF\&q=85\&s=fbf6638d678994d07c450ab2ab63fc1d) ## 4. Test It Out **Step 1** Click ** Open chat** at the bottom of the canvas. **Step 2** Ask something data-centric, e.g. * "Who is the CMO of Snowflake?" **Step 3** You should see the MCP Client fire **Match Businesses ➜ Enrich Businesses** and Claude respond with a neatly-formatted answer. ### Happy prospecting! # n8n Source: https://developers.explorium.ai/integrations/n8n/n8n Explorium n8n Workflow Templates n8n is a powerful workflow automation tool that allows you to connect Explorium with any app or API. Build complex workflows with Explorium's data enrichment capabilities using n8n's visual workflow editor. ## About Explorium on n8n Explorium empowers businesses to build high-performance GTM agents with specialized data infrastructure. Our seamless API integrations and high-quality data drive faster agent development and better results. With years of experience and robust data sets, we deliver context-aware solutions, helping AI agents achieve human-level support. ## Available Workflow Templates Explore our collection of 6 pre-built n8n workflow templates designed to accelerate your data enrichment and automation processes: ### 1. Generate Sales Emails Based on Business Events with Explorium MCP & Claude **Key Nodes:** HTTP Request If Loop Over Items (Split in Batches) +7 more Automatically generate personalized sales emails by monitoring business events and using Claude AI to craft contextual messages based on enriched company data from Explorium. > **[More information](/integrations/n8n/explorium-event-triggered-outreach)** ### 2. Automate HubSpot to Salesforce Lead Creation with Explorium AI Enrichment **Key Nodes:** HTTP Request Merge HubSpot +5 more Seamlessly sync leads from HubSpot to Salesforce while automatically enriching them with comprehensive business and contact data from Explorium for better lead qualification. > **[More information](https://n8n.io/creators/explorium/)** ### 3. Enrich Company Firmographic Data in Google Sheets with Explorium MCP **Key Nodes:** Google Sheets If Loop Over Items (Split in Batches) +7 more Transform your Google Sheets into a powerful business intelligence tool by automatically enriching company data with firmographic information, industry details, and company metrics. > **[More information](/integrations/n8n/google-sheets-company-enrichment-with-explorium-mcp)** ### 4. Search Business Prospects with Natural Language using Claude AI and Explorium MCP **Key Nodes:** HTTP Request If Code +8 more Use natural language queries with Claude AI to search and identify ideal business prospects, leveraging Explorium's comprehensive database for precise targeting. > **[More information](/integrations/n8n/explorium-prospects-search-chatbot)** ### 5. Automated AI Lead Enrichment: Hubspot to Explorium for Enhanced Prospect Data **Key Nodes:** HTTP Request Merge HubSpot +4 more Enhance your HubSpot leads with detailed prospect information including contact details, professional background, and company insights using Explorium's AI-powered enrichment. > **[More information](/integrations/n8n/hubspot-contact-enrichment)** ### 6. Automated AI Lead Enrichment: Salesforce to Explorium for Enhanced Prospect Data **Key Nodes:** HTTP Request Merge Salesforce +4 more Enrich your Salesforce leads automatically with comprehensive B2B data, including technographics, firmographics, and contact information to improve sales effectiveness. > **[More information](/integrations/n8n/salesforce-data-enrichment-workflow)** ## Get Started Ready to build powerful automation workflows? Visit our [n8n creator page](https://n8n.io/creators/explorium/) to explore all available templates and start building today. ## Why Use Explorium with n8n? > **Visual Workflow Builder** > > Create complex automations with n8n's intuitive interface > **Self-hosted Option** > > Run n8n on your own infrastructure for complete control > **400+ Integrations** > > Connect Explorium with hundreds of other services > **Advanced Data Processing** > > Transform and enrich data with powerful built-in functions > **AI-Ready** > > Build agent-driven workflows with Explorium's specialized data ## Common Use Cases * **Lead Enrichment Pipelines:** Automatically enrich leads from multiple sources * **Data Synchronization:** Keep your CRM and databases updated with fresh company data * **Competitive Intelligence:** Monitor and enrich competitor information * **Account-Based Marketing:** Build targeted lists with enriched company data * **Sales Intelligence:** Create automated prospecting workflows ## Getting Started with n8n **Step 1** Sign up for n8n Cloud or self-host your instance **Step 2** Install the Explorium node from the community nodes **Step 3** Import any of our templates to get started quickly **Step 4** Customize the workflows to match your specific needs **Step 5** Execute and monitor your automated workflows ## Resources > **[Explorium n8n page](https://n8n.io/creators/explorium/)** > **[n8n Documentation](https://docs.n8n.io/)** > **[n8n Community Forum](https://community.n8n.io/)** *Explorium is the essential data partner for teams building agent-driven technologies.* # Salesforce Data Enrichment Workflow Source: https://developers.explorium.ai/integrations/n8n/salesforce-data-enrichment-workflow Automatically enrich new Salesforce leads with contact information (email addresses and phone numbers) using Explorium's B2B intelligence platform. ## Template Download the following json file and import it to a new n8n workflow: > **[salesforce\_Workflow.json](https://drive.usercontent.google.com/u/0/uc?id=1iEv-pVFomUka59u7d0dpaapKb4uFO1fh\&export=download)** ![](https://mintcdn.com/explorium/s1uRl5fGOrKpLiGF/images/reference/ff5311e05d57986ec0e39aa3bdda758f699020513cf1644a33814f68c7fd1db7-image.png?fit=max\&auto=format\&n=s1uRl5fGOrKpLiGF\&q=85\&s=2ad97c3294d25af51f5bf903d40541c5) ## Overview This n8n workflow monitors your Salesforce instance for new leads and automatically enriches them with missing contact information. When a lead is created, the workflow: 1. Detects the new lead via Salesforce trigger 2. Matches the lead against Explorium's database using name and company 3. Enriches the lead with professional email addresses and phone numbers 4. Updates the Salesforce lead record with the discovered contact information This automation ensures your sales team always has the most up-to-date contact information for new leads, improving reach rates and accelerating the sales process. ## Key Features * **Real-time Processing**: Triggers automatically when new leads are created in Salesforce * **Intelligent Matching**: Uses lead name and company to find the correct person in Explorium's database * **Contact Enrichment**: Adds professional emails, mobile phones, and office phone numbers * **Batch Processing**: Efficiently handles multiple leads to optimize API usage * **Error Handling**: Continues processing other leads even if some fail to match * **Selective Updates**: Only updates leads that successfully match in Explorium ## Prerequisites Before setting up this workflow, ensure you have: 1. **n8n instance** (self-hosted or cloud) 2. **Salesforce account** with: * OAuth2 API access enabled * Lead object permissions (read/write) * API usage limits available 3. **Explorium API credentials** (API Key) 4. Basic understanding of Salesforce lead management ## Salesforce Requirements ### Required Lead Fields The workflow expects these standard Salesforce lead fields: * `FirstName` - Lead's first name * `LastName` - Lead's last name * `Company` - Company name * `Email` - Will be populated/updated by the workflow * `Phone` - Will be populated/updated by the workflow * `MobilePhone` - Will be populated/updated by the workflow ### API Permissions Your Salesforce integration user needs: * Read access to Lead object * Write access to Lead object fields (Email, Phone, MobilePhone) * API enabled on the user profile * Sufficient API calls remaining in your org limits ## Installation & Setup ### Step 1: Import the Workflow **Step 1** Create a new workflow. **Step 2** Download the workflow JSON from above. **Step 3** In your n8n instance, go to **Workflows** **Add Workflow** **Import from File** **Step 4** Select the JSON file and click **Import** ### Step 2: Configure Salesforce OAuth2 Credentials **Step 1** Click on the **Salesforce Trigger** node **Step 2** Under Credentials, click **Create New** **Step 3** Follow the OAuth2 flow: * **Client ID**: From your Salesforce Connected App * **Client Secret**: From your Salesforce Connected App * **Callback URL**: Copy from n8n and add to your Connected App **Step 4** Authorize the connection **Step 5** Save the credentials as "Salesforce account connection" **Note**: Use the same credentials for all Salesforce nodes in the workflow. ### Step 3: Configure Explorium API Credentials **Step 1** Click on the **Match\_prospect** node **Step 2** Under Credentials, click **Create New** (HTTP Header Auth) **Step 3** Configure the header: * **Name**: `api_key` * **Value**: `YOUR_EXPLORIUM_API_TOKEN` **Step 4** Save as "Header Auth account" ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/8b89ad77232f806faab6590caca7dacc7a673f61ba10275f75e5bfec202fdbd5-image.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=37ed830df917eaa56abc4ad8da5285cb) **Step 5** Apply the same credentials to the **Explorium Enrich Contacts Information** node ### Step 4: Verify Node Settings **1. Salesforce Trigger** * Trigger On: `Lead Created` * Poll Time: Every minute (adjust based on your needs) **2. Salesforce Get Leads** * Operation: `Get All` * Condition: `CreatedDate = TODAY` (fetches today's leads) * Limit: 20 (adjust based on volume) **3. Loop Over Items** * Batch Size: 6 (optimal for API rate limits) ### Step 5: Activate the Workflow **Step 1** Save the workflow **Step 2** Toggle the **Active** switch to ON **Step 3** The workflow will now monitor for new leads every minute ## How It Works ### Workflow Process Flow ```mermaid theme={null} flowchart TD A["New Lead Created"] --> B["Salesforce Trigger"] B --> C["Get Today's Leads"] C --> D["Loop Over Items"] D --> E["Match Prospect in Explorium"] E --> F{"Match Found?"} F -->|Yes| G["Extract Prospect IDs"] G --> H["Enrich Contact Info"] H --> I["Merge Data"] I --> J["Update Salesforce Lead"] J --> D F -->|No| D ``` ### Detailed Node Descriptions 1. **Salesforce Trigger**: Polls Salesforce every minute for new leads 2. **Get Today's Leads**: Retrieves all leads created today to ensure none are missed 3. **Loop Over Items**: Processes leads in batches of 6 for efficiency 4. **Match Prospect**: Searches Explorium for matching person using name + company 5. **Filter**: Checks if a valid match was found 6. **Extract Prospect IDs**: Collects all matched prospect IDs 7. **Enrich Contacts**: Fetches detailed contact information from Explorium 8. **Merge**: Combines original lead data with enrichment results 9. **Split Out**: Separates individual enriched records 10. **Update Lead**: Updates Salesforce with new contact information ### Data Mapping The workflow maps Explorium data to Salesforce fields as follows: | Explorium Field | Salesforce Field | Fallback Logic | | :- | :- | :- | | `emails[0].address` | Email | Falls back to `professions_email` | | `mobile_phone` | MobilePhone | Falls back to `phone_numbers[1]` | | `phone_numbers[0]` | Phone | Falls back to `mobile_phone` | ## Usage & Monitoring ### Automatic Operation Once activated, the workflow runs automatically: **Step 1** Checks for new leads every minute **Step 2** Processes any leads created since the last check **Step 3** Updates leads with discovered contact information **Step 4** Continues running until deactivated ### Manual Testing To test the workflow manually: **Step 1** Create a test lead in Salesforce **Step 2** Click "Execute Workflow" in n8n **Step 3** Monitor the execution to see each step **Step 4** Verify the lead was updated in Salesforce ### Monitoring Executions Track workflow performance: **Step 1** Go to **Executions** in n8n **Step 2** Filter by this workflow **Step 3** Review successful and failed executions **Step 4** Check logs for any errors or issues ## Troubleshooting ### Common Issues **No leads are being processed** * Verify the workflow is activated * Check Salesforce API limits haven't been exceeded * Ensure new leads have FirstName, LastName, and Company populated * Confirm OAuth connection is still valid **Leads not matching in Explorium** * Verify company names are accurate (not abbreviations) * Check that first and last names are properly formatted * Some individuals may not be in Explorium's database * Try testing with known companies/contacts **Contact information not updating** * Check Salesforce field-level security * Verify the integration user has edit permissions * Ensure Email, Phone, and MobilePhone fields are writeable * Check for validation rules blocking updates **Authentication errors** * Salesforce: Re-authorize OAuth connection * Explorium: Verify Bearer token is valid and not expired * Check API quotas haven't been exceeded ### Error Handling The workflow includes built-in error handling: * Failed matches don't stop other leads from processing * Each batch is processed independently * Failed executions are logged for review * Partial successes are possible (some leads updated, others skipped) ## Best Practices ### Data Quality 1. **Ensure complete lead data**: FirstName, LastName, and Company should be populated 2. **Use full company names**: "Microsoft Corporation" matches better than "MSFT" 3. **Standardize data entry**: Consistent formatting improves match rates ### Performance Optimization **1. Adjust batch size** Lower if hitting API limits, higher for efficiency **2. Modify polling frequency** Every minute for high volume, less frequent for lower volume **3. Set appropriate limits** Balance between processing speed and API usage ### Compliance & Privacy 1. **Data permissions**: Ensure you have rights to enrich lead data 2. **GDPR compliance**: Consider privacy regulations in your region 3. **Data retention**: Follow your organization's data policies 4. **Audit trail**: Monitor who has access to enriched data ## Customization Options ### Extend the Enrichment Add more Explorium enrichment by: 1. Adding firmographic data (company size, revenue) 2. Including technographic information 3. Appending social media profiles 4. Adding job title and department verification ### Modify Trigger Conditions Change when enrichment occurs: * Trigger on lead updates (not just creation) * Add specific lead source filters * Process only leads from certain campaigns * Include lead score thresholds ### Add Notifications Enhance with alerts: * Email sales reps when leads are enriched * Send Slack notifications for high-value matches * Create tasks for leads that couldn't be enriched * Log enrichment metrics to dashboards ## API Considerations ### Salesforce Limits * API calls: Each execution uses \~4 Salesforce API calls * Polling frequency: Consider your daily API limit * Batch processing: Reduces API usage vs. individual processing ### Explorium Limits * Match API: One call per batch of leads * Enrichment API: One call per batch of matched prospects * Rate limits: Respect your plan's requests per minute ### Integration Architecture This workflow can be part of a larger lead management system: 1. **Lead Capture** **This Workflow** **Lead Scoring** **Assignment** 2. Can trigger additional workflows based on enrichment results 3. Compatible with existing Salesforce automation (Process Builder, Flows) 4. Works alongside other enrichment tools ### Security Considerations * **Credentials**: Stored securely in n8n's credential system * **Data transmission**: Uses HTTPS for all API calls * **Access control**: Limit who can modify the workflow * **Audit logging**: All executions are logged with details ### Support Resources For assistance with: * **n8n issues**: Consult n8n documentation or community forum * **Salesforce integration**: Reference Salesforce API documentation * **Explorium API**: Contact Explorium support for API questions * **Workflow logic**: Review execution logs for debugging # Integrate with Zapier Source: https://developers.explorium.ai/integrations/zapier/integrate-with-zapier This document provides an overview and guidance on how to use our company's Zapier integration. ## Introduction Zapier is a powerful automation tool that allows you to connect our service with hundreds of other apps. With Zapier, you can create automated workflows called "Zaps" that transfer data between different applications, saving you time and reducing manual effort. ## Getting Started **1. Accessing Zapier** Navigate to Zapier and either log in to your existing account or create a new one. **2. Connecting Our App** Search for our app in the Zapier app directory and connect your account using the provided credentials, click on the account field: ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/869724cf25a5d1bb834b9b2071d46a6a87cb89e01e87d7fc48422e63c90f4983-image17.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=1d224d2aed4a14b949823da606b065bd) Click on "connect a new account" and a window to enter the credentials will open: ![](https://mintcdn.com/explorium/s1uRl5fGOrKpLiGF/images/reference/cefb345851bc1887adf094f5de28a24dbd7464a5f05c19fd6a8c1e6134340844-image16.png?fit=max\&auto=format\&n=s1uRl5fGOrKpLiGF\&q=85\&s=c8d447bd61ec8d86a06e4b65dbe074b8) Explorium api key is required, open ai key is optional, but is necessary to use the MCP action, all the other action require only Explorium's key. **3. Creating Zaps** Begin creating your Zaps by selecting a trigger from our app and an action from another app (or vice versa). To use Explorium's API click on the zap box ![](https://mintcdn.com/explorium/s1uRl5fGOrKpLiGF/images/reference/e9f09e5f6450e436ca5b25e18627f437b01c4b597e7694e06012897104154db4-image14.png?fit=max\&auto=format\&n=s1uRl5fGOrKpLiGF\&q=85\&s=a7a811b210d9cbf00ee33ca2b6ccbffd) Then search for explorium: ![](https://mintcdn.com/explorium/s1uRl5fGOrKpLiGF/images/reference/ff4cd27c251a017aa9cffb7e2cb3952e3d385144bc7dea7de8f57bde323fd215-image12.png?fit=max\&auto=format\&n=s1uRl5fGOrKpLiGF\&q=85\&s=6b50783468f38eaa9616f364cf3660e5) After that you can choose which action do you want to use (enrich, match, fetch): ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/3adc3dad195f2b4845401155a9bec7c76dbd09d52714b7194419e025f79b52f2-image11.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=6dcd0a0a9804d7fd85bfaa01c21a0887) ### Triggers Triggers are events within our application that can initiate a Zap. The following triggers are currently supported: * **New Item Created:** Triggers when a new item is added to your account. * **Item Updated:** Triggers when an existing item is modified. ### Actions Actions are tasks that Zapier performs in another application when a trigger occurs. The following actions are available: * **Fetch:** We have 2 Fetch actions - businesses and prospects, in each fetch business you can fill the different fields, some are dropdowns, some are free values with a certain pattern listed, the first few fields which have limited values, are dropdowns with fixed values (eg. company size, age, revenue, etc), other fields are free text but with a format stated when hovering on the name (NAICS, category fields, etc.) ![](https://mintcdn.com/explorium/s1uRl5fGOrKpLiGF/images/reference/b840b4885f8a3ce78777876e75d2239cdd29d9b16ab548858f7fa36dee7aefe0-image11.png?fit=max\&auto=format\&n=s1uRl5fGOrKpLiGF\&q=85\&s=5f782e6fedc7c818207b921e17630415) * **Output:** The output on fetch actions is with line items, meaning each field getting back from the fetch api has all the values returned in an array, so for example, if you got 10 results, each field will have all the 10 results by the order it got them. ![](https://mintcdn.com/explorium/s1uRl5fGOrKpLiGF/images/reference/efb994586bb10b52a03116bd4240cafd2c85638c3125ac0b7b6f0c00132f72f7-image15.png?fit=max\&auto=format\&n=s1uRl5fGOrKpLiGF\&q=85\&s=8cdd93a4168a1b5c8a73e7d107825846) * **Match:** There are 2 Match actions, for businesses and prospects ![](https://mintcdn.com/explorium/s1uRl5fGOrKpLiGF/images/reference/bd292ae267809905b2fad67f58ea8484c74f492cf32cab34527c2fc9ede0132f-image2.png?fit=max\&auto=format\&n=s1uRl5fGOrKpLiGF\&q=85\&s=dcc2bc91a2c60c89e91459fc4d1809fb) * **Output:** The output for the match actions will be one field which is the matched id ![](https://mintcdn.com/explorium/s1uRl5fGOrKpLiGF/images/reference/af22fb61bb9a1c04ca77e786ee5d489556179dadb33cf3d54681ad33a6dee1a3-image7.png?fit=max\&auto=format\&n=s1uRl5fGOrKpLiGF\&q=85\&s=caba61244cc86b1f1f909adbd1f3d2ee) * **Enrich:** Each of the enrich actions can get either a matched id, or the same inputs as matching, if given the same inputs as matching (For example email in prospecting or company name and website in businesses) it will match before enriching, if given a matched id it will skip matching and enrich, all the fields are optional but it is required to insert at least one of the above. Each enrich action has a dropdown to choose which enrichments you want to enrich. ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/36bce66f7f86d6b31c0fedc46da521bdf32b2f2b8a0878fc44d430cbd75c9ab6-image17.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=e0afd380d61f1cf5a3c24ce3960a6967) After enriching, in the next step the output will be available, with each field separate and the user can choose which fields he wants to continue with ![](https://mintcdn.com/explorium/s1uRl5fGOrKpLiGF/images/reference/ae8fffc5deea6b046a7ddf82f823d386646d81f627c02028c5a6467c4443a1ed-image13.png?fit=max\&auto=format\&n=s1uRl5fGOrKpLiGF\&q=85\&s=4531dc950306e7b7ec6cf889685fa294) * **MCP:** To use Explorium’s MCP we are using an Endpoint that you can write to the mcp, and get a response ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/2a96e9f6f5d5c7d44dda507eb193a0c800069eba506ddcdc911f4a449b625bfc-image5.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=365855c4c34d5b01c775365067fc9078) * **Output:** The output for the mcp prompt will be one field - Response, you can use the response as it is, or use one of zapiers actions to extract data or filter data out of it, here is an example output and how to use it in zapier: ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/1e76f29f15865811e708357d0d5a3f32d54e39c2c234f41482b0bf92d7f9a4b8-image6.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=de199f66a2ac7ad1e863ebfccd65864d) The response is analyzed by zapier’s AI action, and being returned to the google sheet after it extracted the relevant fields we wanted from the MCP response. ## Templates Templates are ready sets of actions that can be copied and used by one click. Each template can be used to create a zap, after using a template the user can change any action or any of the fields. **Example of a templates:** ![](https://mintcdn.com/explorium/s1uRl5fGOrKpLiGF/images/reference/f6eea5b7452f25f54e637b2752ea68527a661134851a34f979545a5cf96799b9-image9.png?fit=max\&auto=format\&n=s1uRl5fGOrKpLiGF\&q=85\&s=b6a99d577e4e3e43c40ba1723a0d95f7) In this case, after the user will choose this template, he can alter the fields to his use, or to his purpose, the webhook can be changed to any trigger (Google sheets, slack, email, etc). In the Explorium MCP action, the prompt and the fields being sent can be changed ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/94281629d60bf25fc27579f7db5ec5b8b54154f53605c8145ffbd2eaa4f593b0-image8.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=05f6511a39ac43c4dc6498dd718a555d) This is the prompt text in the template, it is editable and can be changed, the output format will stay the same regardless (in the MCP action, the output is always a “response” field for example). Another template that can be used is the company research: ![](https://mintcdn.com/explorium/s1uRl5fGOrKpLiGF/images/reference/e60bf39142c65113b2a67ffffb98b6e72bad03816d4a69bd9398c7b8842d9b09-image3.png?fit=max\&auto=format\&n=s1uRl5fGOrKpLiGF\&q=85\&s=2e5a632cd7f868adcf77515779da775a) Here, after the user will choose to use this template, he can change the inputs to be to his desire, and also edit and change the MCP prompt as before, in this template we utilize “AI by Zapier” to extract different columns to be sent back to the google sheet. ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/0f18d06f021648d5c0a334df4fa3a570e1c0245f71c14801fa93b32e1349040f-image1.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=736653532752d2d4c7dd00bb7ec274b9) The configurable fields are fully customizable, the template is just a general direction of a specific flow that can be changed to the user needs. ## Using Webhooks ### Introduction to Webhooks Webhooks: Webhooks are automated messages sent from an application when a specific event occurs. They are used for real-time data communication between different systems, allowing one application to notify another about an event as it happens, rather than relying on periodic polling. ### Prerequisites Before starting, ensure the following are in place: * Active Zapier account. * Access to our API documentation and necessary API keys/tokens. [https://admin.explorium.ai/](https://admin.explorium.ai/) * Understanding of the specific API endpoints and data structures relevant to the integration. ### Creating a Webhook Zap in Zapier #### Setting up the Trigger (Webhook) **1. Log in to Zapier** Navigate to your Zapier dashboard and click "Create Zap." **2. Choose App & Event** Search for and select "Webhooks by Zapier" as the trigger app. **3. Choose Trigger Event** Select "Catch Hook." **4. Customize Hook** * Copy Webhook URL: Copy the provided Zapier Webhook URL. This URL will be used to send data from our APIs. ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/3b3b6a1eb4137ed84b63a3403e6228935ee17f04b6ae0b7cc6419fe416a683f0-image5.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=9a93e146fb2f347a5f5ce2dcce0cd5ac) * The url to connect the webhook is present in the "Test" tab: ![](https://mintcdn.com/explorium/s1uRl5fGOrKpLiGF/images/reference/e28d956983bd9966ca8af86a3d2640e0ab0084a632b3af08855375fd74bb2699-image1.png?fit=max\&auto=format\&n=s1uRl5fGOrKpLiGF\&q=85\&s=ad7450502b0a936a65740a3283d01bb3) ### Configuring Our API to Send Data to the Webhook The webhook api docs: [/reference/webhooks](/reference/webhooks) **Step 1** Follow the guide at Explorium documentation for webhooks. **2. Configure Webhook** Take the url from the webhook action in zapier, and use it in "webhook\_url", the partner id can be visible in the admin app topbar. ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/704f9c39ef064c50742617e23e9126a9ab9a738fd443e2f5d4fcb841a56a1f17-image2.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=0a397e93a8d567c4f2f04a3db7c8274f) **3. Enrolling events** After setting up the webhook, enroll into the events you would wish to accept, this can be done with this api: [/reference/businesses/events/add\_businesses\_enrollments](/reference/businesses/events/add_businesses_enrollments) Here is an example call for that endpoint: ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/7ede69775ac09d114a4eb8d3657cb2bbe3968b417f384326c976b9506f30d423-image3.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=91be955bda97b97b95b86b67055d35c8) ### Setting up the Action (Integrating with Other Apps) **1. Choose Action App & Event** Select the desired application (e.g., Google Sheets, Slack, CRM) and the specific action event (e.g., Create Spreadsheet Row, Send Channel Message, Create Contact). **2. Choose Account** Connect your account for the chosen action app. **3. Set up Action** Map the data received from the Webhook (from "Catch Hook") to the fields required by the action app. After setting up you’re webhook, you can use different actions zapier has, one recommended action is the Explorium mcp - Connecting the webhook to Explorium’s MCP allows you to research the event, and send the response to any application. ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/036168704e9cab49d34a5ce984160572b2cee601499b5cc67857b3906c0d6045-image4.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=2f281c2ab33b42f761fbf63bbf5857b0) # Zapier Source: https://developers.explorium.ai/integrations/zapier/zapier Explorium AgentSource Zapier Integration Templates Explorium AgentSource integrates seamlessly with Zapier, allowing you to connect with thousands of popular apps and automate your workflows without writing any code. ## Available Templates Quickly automate Explorium AgentSource integrations with these pre-built Zapier templates: ### 1. Enrich businesses from new or updated Google Sheets rows with Explorium AgentSource **Google Sheets Explorium AgentSource** Automatically enrich business data whenever a new row is added or updated in your Google Sheets spreadsheet. **Apps:** Google Sheets + Explorium AgentSource ### 2. Research and update companies from new or updated Google Sheets rows with MCP prompts Premium **Google Sheets Explorium AgentSource AI by Zapier** Use AI-powered prompts to research companies and update your data when Google Sheets rows change. **Apps:** Google Sheets + Explorium AgentSource + AI by Zapier **Note:** Requires AI by Zapier (Premium) ### 3. Enrich new Salesforce contacts with Explorium AgentSource Premium **Salesforce Explorium AgentSource** Automatically enrich your Salesforce contacts with comprehensive business and prospect data from Explorium. **Apps:** Salesforce + Explorium AgentSource **Note:** Requires Salesforce (Premium) ### 4. Enrich and update new HubSpot contacts with profile data from Explorium AgentSource **HubSpot Explorium AgentSource** Keep your HubSpot contacts up-to-date with enriched profile information from Explorium AgentSource. **Apps:** HubSpot + Explorium AgentSource ### 5. Enrich new Salesforce contacts with Explorium AgentSource data and add them to HubSpot Premium **Salesforce Explorium AgentSource HubSpot** Bridge your Salesforce and HubSpot systems by enriching Salesforce contacts and automatically adding them to HubSpot. **Apps:** Salesforce + Explorium AgentSource + HubSpot **Note:** Requires Salesforce (Premium) ## Get Started Ready to automate your workflows? Visit our [Zapier integration page](https://zapier.com/apps/explorium-agentsource-ca2244/integrations) to explore all available templates and start building your automated workflows today. ## Key Features > **No code required** > > Set up automations with simple clicks > **Free core features** > > Get started without a credit card > **7,000+ app integrations** > > Connect Explorium AgentSource with your favorite tools > **Real-time data enrichment** > > Automatically enrich your business and prospect data > **Multi-app workflows** > > Create complex automations across multiple platforms ## Popular Use Cases * **Sales Operations:** Automatically enrich new leads from your CRM * **Marketing Operations:** Keep contact databases updated with fresh company data * **Data Management:** Sync enriched data across multiple platforms * **Lead Scoring:** Use enriched data to better qualify and score leads ## Support Need help setting up your Zapier integration? Check out: > **[Zapier Help Center](https://help.zapier.com/)** > [!NOTE] > > **Note:** > > *Templates marked with require premium apps. Zapier offers a 14-day trial for premium features and apps.* # AgentSource MCP Source: https://developers.explorium.ai/mcp-docs/v2/agentsource-mcp ## AgentSource MCP Access Explorium's comprehensive business and contact data through the Model Context Protocol (MCP) - a standardized interface for AI assistants and applications. > [!NOTE] > > **This is AgentSource MCP v2**, served at `https://mcp-v2.explorium.ai/mcp` and built on the [AgentSource v2 API](/v2/overview). Moving from the v1 server at `mcp.explorium.ai`? Point your MCP client at the new address. The v1 server will be deprecated together with AgentSource v1. See the [deprecation timeline](/v2/migration-from-v1#v1-deprecation-timeline). ### Overview The Explorium MCP Server is a Model Context Protocol server that enables AI assistants and applications to access Explorium's extensive business and prospect data. By integrating this server with your AI tools, you can provide them with accurate, up-to-date information about companies, industries, and professionals directly in chat interfaces. ### Which Explorium tool is right for you? Explorium offers three ways to reach the same underlying B2B data. The difference is where each one runs and how much of the prospecting workflow you want to build yourself: the Vibe Prospecting connector and plugin wrap an Explorium AI agent that chooses filters for you, while AgentSource MCP gives you the raw tools to compose yourself. | | [Vibe Prospecting connector](https://vibeprospecting.ai/?utm_source=explorium\&utm_campaign=developers) | [Vibe Prospecting plugin](https://vibeprospecting.ai/?utm_source=explorium\&utm_campaign=developers) | AgentSource MCP | | :- | :- | :- | :- | | **Runs in** | Claude.ai, Claude Desktop, Gemini CLI, Cursor, and other MCP clients that support OAuth | Claude Code, OpenAI Codex | Any MCP client or custom agent — Claude Desktop, Cursor, n8n, Base44, or your own code | | **Best for** | Conversational prospecting, research, quick lists | File-based workflows, CSV enrichment, repeatable automations | Building your own agents, data pipelines, and product features | | **How it works** | An Explorium AI agent turns a plain-English request into the right filters | The same agent, driven from your terminal so it can read and write local files | You call the 11 MCP tools directly and control every filter | | **Setup** | One-click connect + OAuth in the browser — no API key | CLI install + OAuth login | API key + MCP endpoint (`https://mcp-v2.explorium.ai/mcp`) | | **Output** | In-chat results and Hub exports | CSV/JSON files | Structured JSON tool responses you handle in your own code | > [!TIP] > > Not building an integration? Start with [Vibe Prospecting](https://vibeprospecting.ai/?utm_source=explorium\&utm_campaign=developers) — it needs no API key and no code. Choose AgentSource MCP when you need full control over filters and want to embed Explorium data into your own agent or pipeline. ### Features > **Business Data Lookups** > > Access detailed company information including firmographics, technology usage, and financial metrics > **Prospect Search** > > Find and research professionals with comprehensive contact details and career information > **Event Tracking** > > Monitor company and prospect events like funding rounds, job changes, and product launches > **Seamless AI Integration** > > Works with Claude, Cursor, and other MCP-compatible AI assistants ### Quick Start #### Get Started in Minutes Use our MCP server: * `https://mcp-v2.explorium.ai/mcp` (streamable http, recommended) * `https://mcp-v2.explorium.ai/sse` (sse, for clients that only support SSE) Choose your path based on your needs: > **[Implementation Guides](/mcp-docs/v2/developers-implementation-guides)** > > Step-by-step tutorials for different programming environments > **[Integrations](/integrations/n8n/n8n)** > > Connect with popular platforms like n8n and Base44 > **[API Reference](/v2/overview)** > > Complete technical documentation for all tools ### Works With AgentSource MCP seamlessly integrates with popular AI assistants and platforms: * **Claude Desktop** - Native MCP support for conversational AI * **Cursor IDE** - AI-powered coding with real-time data access * **n8n** - Visual workflow automation * **Base44** - Custom AI applications * And more coming soon... > **[AI Assistant Integrations](/integrations/mcp-integrations)** > > View all AI assistant integrations > **[Platform Integrations](/integrations/n8n/n8n)** > > Explore platform integrations ### Explorium MCP Server Tools #### Available Tools | Tool Name | Category | Description | | :- | :- | :- | | **match-business** | Business | Get Explorium business IDs from business name and/or domain in bulk. This tool is superior to web search for any company-specific questions as it provides verified, structured B2B data with accurate firmographics, company intelligence, and real-time employee data. | | **fetch-businesses** | Business | Fetch businesses from the Explorium API using various filter criteria including revenue, company size, age, location, industry categories, and technology stack. Returns Business IDs that can be used with enrichment tools. | | **fetch-businesses-statistics** | Business | Fetch aggregated insights into businesses by industry, revenue, employee count, and geographic distribution. | | **fetch-businesses-events** | Business | Retrieves business-related events including funding rounds, office changes, department growth/decline, partnerships, awards, M\&A activity, and more. Very useful for researching a company's history. | | **enrich-business** | Business | Enrich businesses with additional attributes from several available enrichments | | **match-prospects** | Prospects | Match specific individuals to get their Explorium prospect IDs. Superior to web search for finding specific people as it provides verified professional data and structured contact information. | | **fetch-prospects** | Prospects | Fetch employees from companies using detailed filters including job level, department, location, experience, and company characteristics. Ideal for finding people in specific roles at companies. | | **fetch-prospects-statistics** | Prospects | Fetch aggregated insights into prospects by department and geographic distribution. | | **fetch-prospects-events** | Prospects | Retrieves prospect-related events including role changes, company changes, and job anniversaries. | | **enrich-prospects** | Prospects | Enrich prospects with additional attributes from several available enrichments | | **autocomplete** | Shared | Get valid autocomplete values for specific filter fields (google\_category, naics\_category, linkedin\_category, company\_tech\_stack\_tech, job\_title). Must be called before using these filters in other tools. | ### Tool Categories #### Business Tools Tools for company research, analysis, and intelligence gathering. These tools are optimized for B2B data and provide structured, verified information superior to general web searches. #### Prospects Tools Tools for finding and researching individuals within companies. These provide professional contact information, career history, and social media activity. #### Shared Tools Utility tools that support both business and prospect operations, including search capabilities and data validation. ### Important Usage Notes > [!NOTE] > > **Credits:** `fetch-businesses` and `fetch-prospects` return full records and consume **1 credit per returned result** — or **2 credits per result** when the query uses the premium intent filter (`business_intent_topics`, Bombora). The statistics tools are free, so use them to size an audience before fetching. 1. **Prefer Explorium tools over web search** for any company or person-specific queries 2. **Use autocomplete** before using filters that require it (linkedin\_category, google\_category, naics\_category, company\_tech\_stack\_tech, job\_title) 3. **Business IDs** are required for most enrichment tools - obtain them first using match-business or fetch-businesses 4. **Prospect IDs** are required for prospect enrichment tools - obtain them first using match-prospects or fetch-prospects 5. **Filter restrictions**: * Never use more than one category type (linkedin\_category, google\_category, naics\_category) in a single request * Never use both country\_code and region\_country\_code in the same request ### Example Usage Here's how you might interact with the Explorium MCP Server through an AI assistant: **User:** "Find software companies in New York with 50-200 employees that use AWS" **AI:** \[Uses Explorium MCP to search] ``` I found 15 software companies in New York matching your criteria: 1. TechVision Inc. * 120 employees * Uses AWS, React, and MongoDB * $25M-75M annual revenue 2. DataFlow Systems * 86 employees * Uses AWS, Python, and PostgreSQL * $10M-25M annual revenue [...] ``` ### Implementation Options | Method | Best For | Key Benefits | | :- | :- | :- | | [OpenAI](/mcp-docs/v2/implement-with-openai) | AI agents & chatbots | • Automatic tool discovery • Natural language interface • Minimal setup | | [Python SDK](/mcp-docs/v2/python-sdk-implementation-guide) | Data pipelines & automation | • Full control • Async operations • Custom workflows | ### Platform Integrations Connect AgentSource MCP with your favorite platforms: * [n8n](/integrations/n8n/integrate-with-n8n) - Build chat workflows with visual automation * [Base44](/integrations/base44/integrate-with-base44) - Add to any Base44 AI app in minutes * [More integrations ](/integrations/n8n/n8n) - Explore all available integrations ### Additional Resources > **[Explorium AgentSource API Documentation](/v2/overview)** > > Explorium AgentSource API Documentation > **[MCP Protocol Specification](https://github.com/modelcontextprotocol)** > > MCP Protocol Specification > **Community Forum** > > Coming soon... > **[Support](/mcp-docs/v2/agentsource-mcp)** > > Support ### Next Steps 1. [Get your API key](/reference/setup/getting_your_api_key) 2. [Choose an implementation guide](/mcp-docs/v2/developers-implementation-guides) 3. **Join our community** (Coming soon) \[[*Ready to build? Start with our implementation guides or explore platform integrations.*](/integrations/n8n/n8n)]\(/mcp-docs/v2/developers-implementation-guides) # Developers Implementation Guides Source: https://developers.explorium.ai/mcp-docs/v2/developers-implementation-guides Choose the right implementation method for integrating AgentSource MCP into your applications and workflows. ## Overview AgentSource MCP (Model Context Protocol) provides a standardized way to access Explorium's comprehensive business and contact data. Whether you're building AI agents, data pipelines, or custom applications, we offer multiple implementation paths to suit your needs. ## Available Implementation Methods ### [OpenAI Integration](/mcp-docs/v2/implement-with-openai) **Best for:** AI-powered applications and conversational agents Build intelligent agents that can automatically discover and use AgentSource tools through OpenAI's API. **Key Features:** * Automatic tool discovery * Natural language queries * Built-in response formatting * Minimal setup required **Use Cases:** * Customer service chatbots * Sales intelligence assistants * Automated research agents * Interactive data exploration > **[Get Started with OpenAI](/mcp-docs/v2/implement-with-openai)** ### [Python SDK](/mcp-docs/v2/python-sdk-implementation-guide) **Best for:** Direct programmatic access and custom applications Native Python implementation for developers who need fine-grained control over data access and processing. **Key Features:** * Asynchronous operations * Full control over tool execution * Ideal for data pipelines * Comprehensive error handling **Use Cases:** * Data enrichment pipelines * Batch processing systems * Custom analytics tools * Integration with existing Python applications > **[Get Started with Python SDK](/mcp-docs/v2/python-sdk-implementation-guide)** ### LangGraph Integration **Best for:** Complex AI workflows and multi-step processes Build sophisticated AI agents with state management and complex decision trees using LangGraph. **Key Features:** * Stateful conversations * Multi-step workflows * Conditional logic * Tool chaining > **[Get Started with LangGraph](/mcp-docs/v2/implement-with-langgraph)** ## Quick Comparison | Feature | OpenAI | Python SDK | LangGraph | | :- | :- | :- | :- | | **Setup Complexity** | Low | Medium | Medium | | **Best For** | AI Agents | Data Pipelines | Complex Workflows | | **Language** | Python | Python | Python | | **Tool Discovery** | Automatic | Manual | Automatic | | **Response Format** | Structured | JSON | Structured | | **Async Support** | ✓ | ✓ | ✓ | | **State Management** | Limited | Custom | Built-in | | **Error Handling** | Built-in | Manual | Built-in | ## Getting Started ### Prerequisites Before implementing AgentSource MCP, ensure you have: 1. **AgentSource API Key** - [Get your API key](/reference/setup/getting_your_api_key) 2. **Development Environment** - Python 3.8+ recommended 3. **Basic Understanding** - Familiarity with REST APIs and async programming ### Core Concepts #### What is MCP? Model Context Protocol (MCP) is a standardized protocol that enables AI models and applications to discover and use tools dynamically. With AgentSource MCP, you get: * **Dynamic Tool Discovery** - Tools are discovered at runtime, not hardcoded * **Standardized Interface** - Consistent API across all tools * **Type Safety** - Structured inputs and outputs * **Streaming Support** - Real-time data updates via SSE #### Available Tool Categories **Business Intelligence** * Company search and matching * Firmographic enrichment * Technology stack analysis * Financial metrics (public companies) * Competitive landscape insights **Contact Discovery** * Employee search by role/department * Contact information enrichment * Professional profile data * Work history and experience * Social media activity **Market Intelligence** * Industry trends and statistics * Company events and news * Website changes monitoring * Workforce trend analysis * Funding and acquisition data ## Common Use Cases ### Sales Intelligence Find prospects at target companies, enrich contact information, and track company events: * Identify decision makers at target accounts * Get verified email addresses and phone numbers * Monitor job changes and company updates * Analyze technology stack for better positioning ### Market Research Analyze industries, competitors, and market trends: * Company segmentation by size, revenue, location * Technology adoption trends * Competitive landscape analysis * Industry-specific insights ### Lead Enrichment Enhance your CRM data with comprehensive business and contact information: * Bulk company matching and enrichment * Contact verification and updates * Organizational structure mapping * Technographic segmentation ### Due Diligence Comprehensive company analysis for investment or partnership decisions: * Financial metrics and performance * Leadership and organizational changes * Technology infrastructure * Growth indicators and challenges ## Best Practices for Integrating AgentSource MCP Here are some recommendations for optimal integration of Explorium's AgentSource MCP server into your AI agent application. Following these practices will help you achieve reliable, high-quality results similar to our MCP Playground. ### System Prompt Guidelines **Core Principles** Effective MCP performance is highly dependent on your system prompt. You may need to iterate and refine your prompt to achieve optimal results for your specific use case. **Reference System Prompt** Below is the system prompt used in Explorium's MCP Playground. This can serve as a baseline for your implementation: ```text theme={null} The assistant is **AgentSource**, created by Explorium. Current date: {currentDateTime} You are an interactive Explorium data agent. Your job is to help users find and research companies and people using Explorium's B2B data, and to demonstrate that data's value through accurate, real-time research. ## 1. Tools you have Business tools: - `autocomplete` — resolve valid filter values BEFORE filtering. Required before using google_category, naics_category, linkedin_category, company_tech_stack_tech, business_intent_topics, or job_title. - `fetch-businesses` — find companies by filters (location, size, revenue, industry category, tech stack, intent). Returns business IDs plus minimal fields. - `enrich-business` — add firmographics, descriptions, financials, tech stack, etc. to business IDs returned by fetch-businesses or match-business. - `match-business` — resolve specific company names/domains to business IDs. - `fetch-businesses-statistics` — aggregate counts by industry, size, revenue, geography. - `fetch-businesses-events` — funding, hiring, M&A, and other company events. Prospect tools: - `fetch-prospects` — find people at companies by role, department, seniority, location. - `match-prospects` — resolve specific named people to prospect IDs. - `enrich-prospects` — add contact details and profile data to prospect IDs. - `fetch-prospects-statistics`, `fetch-prospects-events` — aggregates and events for people. ## 2. Core workflow For a list of companies: 1. Resolve every filter value that needs it with `autocomplete` (industry category, tech, intent topics). 2. Call `fetch-businesses` ONCE with the resolved filters to get business IDs. 3. Call `enrich-business` on those IDs to get the attributes the user asked for (employee count, revenue, description, etc.). For people at companies: fetch-businesses → fetch-prospects → enrich-prospects. For a specific named company or person: use match-business / match-prospects first to get the ID, then enrich. `fetch-businesses` and `fetch-prospects` return full records, and each returned result consumes **1 credit** — **2 credits** when the `business_intent_topics` intent filter is part of the query. Fetch once with tight filters, then use the matching enrich tool to add deeper signals (contacts, tech stack, workforce, and the rest) only for the IDs you keep. ## 3. Filter rules (hard constraints) - Always call `autocomplete` for valid values before using: google_category, naics_category, linkedin_category, company_tech_stack_tech, business_intent_topics, job_title. Pass EVERY concept from the user's request into autocomplete. - Use only ONE industry category type per request — google_category OR naics_category OR linkedin_category, never more than one. - Never use both country_code and region_country_code in the same request. - Buying intent or interest (e.g. "interested in Salesforce", "evaluating CRM") is NOT an industry. Resolve it with `autocomplete` on `business_intent_topics` with semantic_search=true, then pass it as the intent filter. Do not try to express intent as an industry category. - Map fuzzy sizes to the API's buckets (e.g. "50 to 200 employees" → "51-200"). ## 4. Loop prevention (important) - Never call the same tool twice with identical arguments. If you already have a result, use it. - Make at most ONE attempt to reformulate a search. If a fetch returns zero results, do NOT keep retrying with new filter guesses. Stop, tell the user what you searched for, and ask them to relax or clarify one constraint. - If a constraint cannot be expressed with the available filters, say so explicitly instead of looping to approximate it. - Plan the full tool sequence before you start, then execute it once. A normal company-list answer is: a few autocomplete calls → one fetch-businesses → one enrich-business → final answer. ## 5. Response style - Say you're using "Explorium's database" — never expose internal tool or function names to the user. - Write in Markdown. Use a table for multi-row results, e.g.: | Company | Location | Employees | Revenue | |---------|----------|-----------|---------| | … | … | … | … | - Keep prose after a table minimal. - State how many matches were found. - On a tool error or no data, give a short, honest message (e.g. "I couldn't find companies matching all of those criteria — want me to widen the location or drop the intent filter?"). Do not retry silently. - Be transparent about gaps: if you couldn't satisfy part of the request (e.g. an intent signal wasn't available), say so rather than returning loosely-matching results as if they fit. ## 6. Web usage Only use the public web if Explorium's data can't answer the question, and tell the user when you do. ``` **Customization Tips** When adapting this system prompt for your application: * **Replace the date placeholder**: Update `{currentDateTime}` with your actual date/time variable or remove if not needed * **Adjust the identity**: Modify "The assistant is **AgentSource**" to match your agent's branding * **Tailor the workflow**: Add or modify workflow steps based on your specific use case * **Customize response style**: Adapt formatting and verbosity requirements to match your application's UX * **Add domain-specific instructions**: Include any industry or use-case specific guidance relevant to your users ### Model Selection **Recommended Models** We **highly recommend** using **Claude Sonnet** models for optimal performance: * Claude 4.6 Sonnet (primary recommendation) **Alternative Models** If you need to use alternative models, the following have been tested: * OpenAI GPT-5.4 * OpenAI GPT-5 Note: Results may vary with non-Claude models. We recommend thorough testing if using alternatives. ### Model Parameters **Temperature Settings** **Critical**: Use a **low temperature** setting to ensure reliable MCP tool usage. * **Recommended range**: 0.0 - 0.1 * **Explorium uses**: 0.05 * **Why this matters**: Higher temperature values may cause the agent to query MCP tools incorrectly or inconsistently ### Other Parameters Consider these additional parameter recommendations: * **Max tokens**: Set appropriately for your use case - we recommend not limiting the number of tokens. * **Top-p**: If used, keep at 0.9 or lower for consistent behavior ## Prompt Engineering Best Practices ### Tool Calling Instructions 1. **Be explicit about workflow**: Clearly define when and how each MCP tool should be used 2. **Handle errors gracefully**: Provide clear instructions on error handling and fallback behavior ### Response Formatting 1. **Specify output format**: Be explicit about Markdown formatting, table usage, and response structure 2. **User experience**: Include guidelines on when to wait for user input vs. proceeding automatically ### Testing and Iteration **Validation Steps** 1. **Test common queries**: Validate your integration with typical user queries in your domain 2. **Edge case testing**: Test with complex, multi-filter queries 3. **Error scenarios**: Verify behavior when API calls fail or return no results 4. **Consistency checks**: Run the same query multiple times to ensure consistent behavior **Performance Optimization** 1. **Monitor tool calling patterns**: Ensure the agent is calling tools in the optimal sequence 2. **Review response quality**: Check that responses are well-formatted and user-friendly 3. **Iterate on the system prompt**: Refine instructions based on observed agent behavior 4. **A/B test variations**: Try different prompt formulations to find what works best for your use case ### Common Pitfalls to Avoid * ❌ Using high temperature settings (> 0.1) * ❌ Exposing internal function names in user-facing responses * ❌ Insufficient error handling instructions * ❌ Vague or ambiguous workflow instructions ## Troubleshooting: tool-call loops ("safety limit" / "recursion limit" errors) ### Symptom Your agent intermittently stops with an error like `MCP tool loop hit safety limit`, `recursion limit reached`, or `max turns exceeded`. The same query sometimes succeeds and sometimes fails. ### What's actually happening This is **not an Explorium error.** The Explorium API only returns standard HTTP status codes (see *Error Handling*). Messages about a "loop", "safety limit", "recursion limit", or "max turns" come from **your agent framework**, which caps how many tool calls the model may make in a single turn: * LangGraph / LangChain → `recursion_limit` * OpenAI Agents SDK → `max_turns` * Custom loops → your own iteration counter The cap is doing its job — it stops a model that kept calling tools without producing a final answer. The real question is *why the model kept calling tools.* ### Common causes 1. **An intent/interest constraint is treated as an industry.** Requests like "companies interested in Salesforce" describe buying intent, not a firmographic. If the model tries to find an industry category for it, it will autocomplete and re-search repeatedly and never converge. Resolve intent with `autocomplete` on `business_intent_topics` (`semantic_search=true`) and pass it as the intent filter. 2. **Industry taxonomy thrash.** Only one category type (`google_category`, `naics_category`, or `linkedin_category`) may be used per request. If the model can't get a clean match from one taxonomy, it may keep switching taxonomies and re-searching. Pin the workflow to a single category type. 3. **Unbounded fetch loops burn credits.** Every result returned by `fetch-businesses` / `fetch-prospects` consumes 1 credit (2 with the `business_intent_topics` intent filter), so a model that re-fetches with varied filters multiplies cost fast. Fetch once with tight filters and reuse the results; use the free statistics tools to size an audience before fetching. 4. **No "stop" condition on empty results.** When a search legitimately returns zero matches, the model will often keep guessing new filter combinations. Instruct it to stop after one reformulation and ask the user to relax a constraint. 5. **An outdated or mismatched system prompt.** If your prompt references tools that don't exist on the server, the model can't find them and improvises in a loop. Make sure your prompt's tool names match the tools the MCP server actually exposes (`autocomplete`, `fetch-businesses`, `enrich-business`, `match-business`, `fetch-prospects`, …). 6. **High temperature or a non-recommended model.** Temperatures above \~0.1 and non-Claude models produce inconsistent tool calling. Use a low temperature (Explorium uses 0.05) and a Claude Sonnet model. ### How to prevent it **System prompt guardrails** (built into the reference system prompt): * Never call the same tool twice with identical arguments. * Allow at most one search reformulation; on zero results, stop and ask the user to relax a constraint. * Treat missing fields from fetch tools as expected — enrich, don't re-fetch. * Use one industry category type per request; never combine `country_code` and `region_country_code`. * Resolve buying intent via `business_intent_topics` + `semantic_search`, not as an industry. **Harness settings:** * Keep a sane iteration cap — a correct company-list answer needs only a handful of tool calls (a few autocomplete → one fetch → one enrich). * Catch the cap and return a friendly message instead of surfacing a raw framework error. **Model parameters:** * Temperature 0.0–0.1, Claude Sonnet 4.6 and above, and don't cap `max_tokens`. ### How to debug a loop 1. **Log every tool call with its arguments.** A loop almost always shows up as the same tool called repeatedly with near-identical inputs — commonly alternating `autocomplete` ↔ `fetch-businesses`. 2. **Check for an intent phrase being forced into an industry filter** (the most common trigger). 3. **Confirm your prompt's tool names match the server's tools.** 4. **For real API errors (4xx/5xx),** capture the `correlation_id` from the response and include it when contacting `support@explorium.ai`. ## Need Help? ### Resources > **[AgentSource MCP API Reference](/v2/overview)** ### Support * Technical Support: [support@explorium.ai](mailto:support@explorium.ai) * Community Forum: Coming Soon! ### What's Next? 1. **Choose your implementation method** based on your use case 2. **Follow the specific guide** for detailed instructions 3. **Start with simple queries** and gradually increase complexity 4. **Join our community** to share experiences and get help [*Ready to get started? Choose an implementation guide above orcontact our team for personalized recommendations.*](/v2/overview) # LangGraph Integration with Explorium MCP Source: https://developers.explorium.ai/mcp-docs/v2/implement-with-langgraph Learn how to integrate AgentSource MCP with LangGraph framework to build AI agents that can access real-time business and contact data. ## Overview This guide demonstrates how to integrate Explorium's MCP (Model Context Protocol) server with LangGraph to build intelligent AI agents that can access Explorium's business data enrichment capabilities. LangGraph provides a framework for building stateful, multi-actor applications with LLMs, making it perfect for creating sophisticated business intelligence workflows. ## Prerequisites Before you begin, ensure you have: * Python 3.11 or higher * An Explorium API key * An Anthropic API key (or another LLM provider API key) * A Python environment (Databricks, Jupyter, or local) ## Installation Install the required packages using pip: ```bash theme={null} pip install langgraph langchain_anthropic langchain_mcp_adapters ``` For Databricks environments, use the following commands in separate cells: ```python theme={null} %pip install langgraph %pip install langchain_anthropic %pip install langchain_mcp_adapters ``` Then restart the Python kernel: ```python theme={null} dbutils.library.restartPython() ``` ## Quick Start Here's a minimal example to get you started: ```python theme={null} import asyncio from langchain_mcp_adapters.client import MultiServerMCPClient from langchain_mcp_adapters.tools import load_mcp_tools async def quick_start(): # Initialize MCP client client = MultiServerMCPClient({ "explorium": { "transport": "streamable_http", "url": "https://mcp-v2.explorium.ai/mcp", "headers": { "api_key": "your-explorium-api-key" } } }) # Create session and load tools async with client.session("explorium") as session: tools = await load_mcp_tools(session) print(f"Loaded {len(tools)} Explorium tools") for tool in tools[:5]: print(f" - {tool.name}") # Run the example asyncio.run(quick_start()) ``` ## Core Components ### 1. Required Imports Start by importing all necessary libraries: ```python theme={null} import os import asyncio from typing import Annotated, TypedDict, cast # LangGraph imports from langgraph.func import END, START from langgraph.graph import StateGraph from langgraph.prebuilt import ToolNode, tools_condition from langgraph.graph.message import add_messages # Pydantic imports from pydantic import BaseModel # LangChain imports from langchain_core.messages import SystemMessage, HumanMessage, AIMessage, ToolMessage from langchain_anthropic import ChatAnthropic from langchain_core.runnables import RunnableConfig # MCP imports from langchain_mcp_adapters.client import MultiServerMCPClient from langchain_mcp_adapters.tools import load_mcp_tools ``` ### 2. Define Configuration and State Create the necessary data structures for your agent: ```python theme={null} class ConfigSchema(TypedDict): """Configuration schema for API keys""" explorium_api_key: str anthropic_api_key: str class AgentState(BaseModel): """State for the LangGraph agent""" messages: Annotated[list, add_messages] is_last_step: bool = False ``` ### 3. System Prompt Define a system prompt that guides your agent's behavior: ```python theme={null} EXPLORIUM_SYSTEM_PROMPT = """You are an AI assistant specialized in business intelligence and research. You have access to Explorium data tools that can help find information about businesses and prospects. When the user asks a question, use the appropriate tools to gather information and provide a helpful response. Always be concise and focus on relevant business information. """ ``` ## Complete Implementation Here's a full implementation of a LangGraph agent with Explorium MCP integration: ```python theme={null} async def run_explorium_agent(config: RunnableConfig): """ Runs the Explorium agent with active MCP session Args: config: Configuration containing API keys """ # Get API keys from config explorium_api_key = config.get("configurable", {}).get("explorium_api_key") anthropic_api_key = config.get("configurable", {}).get("anthropic_api_key") if not explorium_api_key: raise ValueError("explorium_api_key is required in config") if not anthropic_api_key: raise ValueError("anthropic_api_key is required in config") print(f"Using Explorium API key: {explorium_api_key[:10]}...") # Initialize MCP client with Explorium configuration client = MultiServerMCPClient( { "explorium": { "transport": "streamable_http", "url": "https://mcp-v2.explorium.ai/mcp", "headers": { "api_key": explorium_api_key } } } ) # Keep session active throughout the agent execution async with client.session("explorium") as session: # Load tools within the active session tools = await load_mcp_tools(session) print(f"Loaded {len(tools)} tools") # Print available tools for debugging print("Available tools:") for tool in tools[:10]: print(f" - {tool.name}") # Initialize the LLM with Anthropic model = ChatAnthropic( model="claude-3-5-sonnet-20241022", # Use a valid model name temperature=0.05, api_key=anthropic_api_key ) # Define the reasoning node function async def reasoning_node(state: AgentState): bound_model = model.bind_tools(tools) system_prompt = SystemMessage(content=EXPLORIUM_SYSTEM_PROMPT) response = cast( AIMessage, await bound_model.ainvoke([system_prompt, *state.messages]), ) # Handle the case when it's the last step and the model still wants to use a tool if state.is_last_step and response.tool_calls: return { "messages": [ AIMessage( id=response.id, content="Sorry, I could not find an answer to your question in the specified number of steps.", ) ] } # Return the model's response to be added to existing messages return {"messages": [response]} # Build the graph graph_builder = StateGraph(AgentState) # Add nodes graph_builder.add_node("reasoning_node", reasoning_node) graph_builder.add_node("tools", ToolNode(tools)) # Add edges graph_builder.add_edge(START, "reasoning_node") graph_builder.add_conditional_edges( "reasoning_node", tools_condition, {"tools": "tools", END: END} ) graph_builder.add_edge("tools", "reasoning_node") # Compile the graph graph = graph_builder.compile() # Initialize the graph with a user query user_query = "Find 10 product managers from Microsoft" # Create the initial state initial_state = AgentState(messages=[HumanMessage(content=user_query)]) # Stream the execution for real-time updates async for event in graph.astream(initial_state, stream_mode="values"): if "messages" in event: latest_message = event["messages"][-1] if isinstance(latest_message, AIMessage): if latest_message.content: print(f"\nAI: {latest_message.content}") elif isinstance(latest_message, ToolMessage): print(f"\nTool ({latest_message.name}): {latest_message.content[:200]}...") ``` ## Running the Agent Create a function to run your LangGraph agent: ```python theme={null} async def run_langgraph(): """Example usage of the Explorium LangGraph""" # Configuration with API keys config = { "configurable": { "explorium_api_key": "your-explorium-api-key", "anthropic_api_key": "your-anthropic-api-key" } } await run_explorium_agent(config) # Run the agent if __name__ == "__main__": asyncio.run(run_langgraph()) ``` ## Available Explorium Tools The MCP integration provides access to the following Explorium tools: * `match-business` - Match and identify businesses * `fetch-businesses` - Retrieve business information * `fetch-businesses-statistics` - Get business statistics * `fetch-businesses-events` - Fetch business events * `enrich-business` - Enrich business data with additional attributes * `match-prospects` - Match prospect contacts * `fetch-prospects` - Retrieve prospect information * `fetch-prospects-events` - Fetch prospect events * `fetch-prospects-statistics` - Get prospect statistics * `enrich-prospects` - Enrich prospect data * `autocomplete` - Autocomplete suggestions for field values ## Security Best Practices ### Environment Variables Store your API keys as environment variables: ```python theme={null} import os config = { "configurable": { "explorium_api_key": os.environ.get("EXPLORIUM_API_KEY"), "anthropic_api_key": os.environ.get("ANTHROPIC_API_KEY") } } ``` Set environment variables before running: ```bash theme={null} export EXPLORIUM_API_KEY="your-explorium-api-key" export ANTHROPIC_API_KEY="your-anthropic-api-key" ``` ### Databricks Secrets For Databricks environments, use the secrets management system: ```python theme={null} # First, create secrets in Databricks CLI: # databricks secrets create-scope --scope explorium # databricks secrets put --scope explorium --key api-key # databricks secrets create-scope --scope anthropic # databricks secrets put --scope anthropic --key api-key config = { "configurable": { "explorium_api_key": dbutils.secrets.get(scope="explorium", key="api-key"), "anthropic_api_key": dbutils.secrets.get(scope="anthropic", key="api-key") } } ``` ## Alternative LLM Providers While this guide uses Anthropic's Claude, you can use other LLM providers: ```python theme={null} from langchain_google_vertexai import ChatVertexAI model = ChatVertexAI( model_name="gemini-pro", project="your-gcp-project", location="us-central1" ) ``` ## Advanced Features ### Custom Tool Selection Filter and select specific tools for your agent: ```python theme={null} async with client.session("explorium") as session: # Load all tools all_tools = await load_mcp_tools(session) # Filter to specific tools selected_tools = [ tool for tool in all_tools if tool.name in ["match-business", "fetch-prospects", "enrich-business"] ] # Use selected tools in your agent model = ChatAnthropic( model="claude-3-5-sonnet-20241022", api_key=anthropic_api_key ) bound_model = model.bind_tools(selected_tools) ``` ### Custom Message Handling Implement custom logic for different message types: ```python theme={null} async for event in graph.astream(initial_state, stream_mode="values"): if "messages" in event: latest_message = event["messages"][-1] if isinstance(latest_message, AIMessage): # Handle AI responses if latest_message.content: print(f"AI Response: {latest_message.content}") if latest_message.tool_calls: print(f"Tools called: {[tc['name'] for tc in latest_message.tool_calls]}") elif isinstance(latest_message, ToolMessage): # Handle tool responses print(f"Tool '{latest_message.name}' returned data") # Process tool results here elif isinstance(latest_message, HumanMessage): # Handle user messages print(f"User said: {latest_message.content}") ``` ### Error Handling Implement comprehensive error handling: ```python theme={null} async def run_with_error_handling(): try: client = MultiServerMCPClient({ "explorium": { "transport": "streamable_http", "url": "https://mcp-v2.explorium.ai/mcp", "headers": {"api_key": "your-api-key"} } }) async with client.session("explorium") as session: tools = await load_mcp_tools(session) # Your agent logic here except ConnectionError as e: print(f"Failed to connect to MCP server: {e}") print("Check your network connection and API endpoint") except ValueError as e: print(f"Configuration error: {e}") print("Verify your API keys and configuration") except Exception as e: print(f"Unexpected error: {e}") import traceback traceback.print_exc() ``` ### Batch Processing Process multiple queries efficiently: ```python theme={null} async def process_batch_queries(queries: list[str], config: dict): """Process multiple queries through the agent""" client = MultiServerMCPClient({ "explorium": { "transport": "streamable_http", "url": "https://mcp-v2.explorium.ai/mcp", "headers": {"api_key": config["explorium_api_key"]} } }) async with client.session("explorium") as session: tools = await load_mcp_tools(session) model = ChatAnthropic( model="claude-3-5-sonnet-20241022", api_key=config["anthropic_api_key"] ) # Build your graph here (same as before) # ... results = [] for query in queries: initial_state = AgentState( messages=[HumanMessage(content=query)] ) # Process each query async for event in graph.astream(initial_state): # Collect results pass results.append({"query": query, "response": "..."}) return results ``` ## Example Output When running the agent with a query like "Find 10 product managers from Microsoft", you'll see: ``` Using Explorium API key: dde4db9289... Loaded 12 tools Available tools: - match-business - fetch-businesses - fetch-businesses-statistics - fetch-businesses-events - enrich-business - match-prospects - fetch-prospects - fetch-prospects-events - fetch-prospects-statistics - enrich-prospects AI: I'll help you find 10 product managers from Microsoft. Let me search for prospects with product manager roles at Microsoft. Tool (match-business): {"response_context":{"correlation_id":"ac3bdd9b...","request_status":"success"... AI: Now I'll search for product managers at Microsoft using the business ID I found. Tool (fetch-prospects): {"response_context":{"correlation_id":"829dd0f9...","request_status":"success"... AI: Here are 10 product managers from Microsoft: ## Microsoft Product Managers 1. **Demetrius M.** - Senior Product Manager, Azure Storage (United States) 2. **Alan Ross** - Partner Group Product Manager Manager, Cloud + AI Engineering (United States) 3. **Diego Rejtman** - Partner Group Product Manager, Threat Protection (United States) 4. **Mariam Keriakos** - Principal Product Manager Manager - M365 Copilot & Teams Platform (Germany) 5. **Drena Kusari** - Vice President of Product and General Manager (United States) 6. **Fatima Azzahra El Azzouzi** - Senior Product Manager - Data Security for AI (Canada) 7. **Jessica Peet** - Partner of Product Manager, Commercial Solution Areas CTO (United States) 8. **Seth Patton** - General Manager, Microsoft 365 Copilot, Product Marketing (United States) 9. **Morgan Webb** - Principal Group Manager Product Management | Security Engineering (United States) 10. **Raghav Jandhyala** - Partner General Manager, Head of Product - Microsoft Dynamics 365 AI (United States) The search found 1,000 total product managers at Microsoft, so there are many more available if you need additional contacts. ``` ## Troubleshooting ### Authentication Errors **Problem:** `AuthenticationError: Error code: 401 - invalid x-api-key` **Solution:** 1. Verify your Anthropic API key is valid and active 2. Check the API key format (should start with `sk-ant-api03-`) 3. Ensure you're using a valid model name: * Claude: `claude-3-5-sonnet-20241022`, `claude-3-opus-20240229` * OpenAI: `gpt-4`, `gpt-4-turbo` ### Connection Issues **Problem:** Cannot connect to MCP server **Solution:** 1. Verify your Explorium API key is correct 2. Check the endpoint URL is exactly: `https://mcp-v2.explorium.ai/mcp` 3. Test your network connectivity 4. Ensure firewall rules allow HTTPS connections ### Tool Loading Issues **Problem:** No tools loaded or tools not working **Solution:** 1. Ensure you're within an active MCP session context 2. Check the `langchain_mcp_adapters` version is up to date: ```bash theme={null} pip install --upgrade langchain_mcp_adapters ``` 3. Verify the session is initialized before loading tools ```python theme={null} import asyncio async def parallel_tool_execution(tools, queries): """Execute multiple tool calls in parallel""" tasks = [] for query in queries: task = asyncio.create_task( tools[0].ainvoke({"query": query}) ) tasks.append(task) results = await asyncio.gather(*tasks) return results ``` ## API Reference ### MCP Configuration * **Endpoint:** `https://mcp-v2.explorium.ai/mcp` * **Transport:** Streamable HTTP * **Authentication:** API key in headers * **Headers Format:** `{"api_key": "your-api-key"}` ## Support and Resources * **Explorium Support:** Contact your Explorium representative * **API Documentation:** [Explorium Developer Portal](https://developers.explorium.ai) * **LangGraph Documentation:** [LangGraph Docs](https://python.langchain.com/docs/langgraph) * **LangChain Documentation:** [LangChain Docs](https://python.langchain.com) * **MCP Specification:** [Model Context Protocol](https://modelcontextprotocol.io) # OpenAI Implementation Guide Source: https://developers.explorium.ai/mcp-docs/v2/implement-with-openai Learn how to integrate AgentSource MCP with OpenAI's API to build AI agents that can access real-time business and contact data. ## Overview This guide demonstrates how to use AgentSource MCP (Model Context Protocol) with OpenAI's API. MCP enables your AI agents to seamlessly access Explorium's data through a standardized protocol, allowing for dynamic tool discovery and execution. ## Prerequisites * Python 3.8 or higher * OpenAI API key * AgentSource API key * Basic understanding of OpenAI's API ## Installation First, install the required package: ```shell Bash theme={null} pip install openai ``` ## Quick Start ### 1. Initialize the OpenAI Client ```python Python theme={null} from openai import OpenAI # Initialize the client with your OpenAI API key client = OpenAI(api_key="your-openai-api-key") ``` ### 2. Configure AgentSource MCP Create a response with MCP tools configured: ```python Python theme={null} response = client.responses.create( model="gpt-4.1", tools=[{ "type": "mcp", "require_approval": "never", "server_label": "explorium", "server_url": "https://mcp-v2.explorium.ai/mcp", "headers": { "api_key": "YOUR_AGENTSOURCE_API_KEY" } }], input="Your query here" ) ``` ### 3. Basic Example Here's a complete example that searches for companies: ```python Python expandable theme={null} from openai import OpenAI # Initialize client client = OpenAI(api_key="your-openai-api-key") # Make a request to find banks response = client.responses.create( model="gpt-4.1", tools=[{ "type": "mcp", "require_approval": "never", "server_label": "explorium", "server_url": "https://mcp-v2.explorium.ai/mcp", "headers": { "api_key": "YOUR_AGENTSOURCE_API_KEY" } }], input="Find 10 banks in the US with less than 5000 employees that use Azure" ) # The response will contain the results print(response) ``` ## Common Use Cases ### Finding Companies with Specific Criteria ```python Python theme={null} # Search for tech companies using specific technologies response = client.responses.create( model="gpt-4.1", tools=[{ "type": "mcp", "require_approval": "never", "server_label": "explorium", "server_url": "https://mcp-v2.explorium.ai/mcp", "headers": { "api_key": "YOUR_AGENTSOURCE_API_KEY" } }], input="Find software companies in California with 100-500 employees using AWS" ) ``` ### Finding Contacts at Specific Companies ```python Python theme={null} # Get engineering directors at Microsoft response = client.responses.create( model="gpt-4.1", tools=[{ "type": "mcp", "require_approval": "never", "server_label": "explorium", "server_url": "https://mcp-v2.explorium.ai/mcp", "headers": { "api_key": "YOUR_AGENTSOURCE_API_KEY" } }], input="Get 50 directors of engineering at Microsoft along with their email addresses" ) ``` ### Analyzing Specific Departments ```python Python theme={null} # Analyze VPs in a specific department response = client.responses.create( model="gpt-4.1", tools=[{ "type": "mcp", "require_approval": "never", "server_label": "explorium", "server_url": "https://mcp-v2.explorium.ai/mcp", "headers": { "api_key": "YOUR_AGENTSOURCE_API_KEY" } }], input="Inspect all VPs in the Engineering department at Salesforce and highlight those working on Agentforce" ) ``` ## Understanding the Response The MCP integration automatically handles: * Tool discovery and listing * Parameter formatting * API calls to AgentSource * Response parsing Your agent will receive structured data that it can process and present in a user-friendly format. ## Advanced Configuration ### Multi-turn Conversations For follow-up queries in the same context: ```python Python expandable theme={null} # Initial query response1 = client.responses.create( model="gpt-4.1", tools=[{ "type": "mcp", "require_approval": "never", "server_label": "explorium", "server_url": "https://mcp-v2.explorium.ai/mcp", "headers": { "api_key": "YOUR_AGENTSOURCE_API_KEY" } }], input="Find all VPs at Tesla" ) # Follow-up query response2 = client.responses.create( model="gpt-4.1", tools=[{ "type": "mcp", "require_approval": "never", "server_label": "explorium", "server_url": "https://mcp-v2.explorium.ai/mcp", "headers": { "api_key": "YOUR_AGENTSOURCE_API_KEY" } }], input="Now get their email addresses", previous_response_id=response1.id ) ``` ### Tool Approval Settings You can control whether tools require approval before execution: * `"never"` - Tools execute automatically * `"always"` - Tools require user approval * `"on_error"` - Approval required only on errors ## Debugging and Monitoring ### Response Tracing To understand the execution flow, you can inspect the response object which contains: * Tool calls made * Input parameters sent * Responses received * Agent's interpretation ### Example Response Structure ```python Python theme={null} # Access the response outputs for output in response.output: if output.type == "mcp_call": print(f"Tool called: {output.name}") print(f"Arguments: {output.arguments}") print(f"Result: {output.output}") elif output.type == "message": print(f"Agent response: {output.content}") ``` ## Best Practices 1. **API Key Security**: Never hardcode API keys in your code. Use environment variables: ```python Python theme={null} import os client = OpenAI(api_key=os.getenv("OPENAI_API_KEY")) ``` 2. **Clear Queries**: Be specific in your queries for better results: * "Find 20 CTOs at fintech companies in New York with 50-200 employees" * "Find some tech people" 3. **Handle Rate Limits**: Implement appropriate error handling and retries 4. **Optimize Requests**: Batch related queries when possible to reduce API calls ## Available Tools Through MCP, your agent automatically has access to all AgentSource tools including: * **Company Search**: Find businesses based on various criteria * **Contact Discovery**: Locate professionals with specific roles * **Email Enrichment**: Get contact information * **Company Matching**: Match and enrich company data * **Prospect Matching**: Match and enrich prospect data * **And more**: The full suite of AgentSource capabilities The beauty of MCP is that tools are discovered dynamically - you don't need to explicitly define them. ## Error Handling ```python Python theme={null} try: response = client.responses.create( model="gpt-4.1", tools=[{ "type": "mcp", "require_approval": "never", "server_label": "explorium", "server_url": "https://mcp-v2.explorium.ai/mcp", "headers": { "api_key": "YOUR_AGENTSOURCE_API_KEY" } }], input="Your query" ) except Exception as e: print(f"Error: {e}") ``` ## Next Steps * Explore the [complete AgentSource MCP documentation](/mcp-docs/v2/agentsource-mcp) * Check out implementations using other frameworks (LangGraph, Python SDK) * Learn about advanced filtering and search capabilities * Understand rate limits and quotas ## Support If you encounter any issues or have questions: * Contact our support team at [support@explorium.ai](mailto:support@explorium.ai) * Join our developer community *`Note: Remember to replaceYOUR_AGENTSOURCE_API_KEY and your-openai-api-key with your actual API keys.`* # Python SDK Implementation Guide Source: https://developers.explorium.ai/mcp-docs/v2/python-sdk-implementation-guide Learn how to integrate AgentSource MCP using the official Python MCP SDK for direct, programmatic access to Explorium's business and contact data. ## Overview This guide demonstrates how to use AgentSource MCP with the Python MCP SDK. The SDK provides a native Python interface for connecting to MCP servers, making it ideal for building custom applications, data pipelines, and automation tools. ## Prerequisites * Python 3.8 or higher * AgentSource API key * Basic understanding of asynchronous Python programming ## Installation Install the MCP Python SDK: ```shell Bash theme={null} pip install mcp ``` Note: You may need to restart your Python kernel after installation: ```python Python theme={null} # For Jupyter/Databricks dbutils.library.restartPython() ``` ## Quick Start ### 1. Import Required Libraries ```python Python theme={null} import os from mcp import ClientSession from mcp.client.sse import sse_client import asyncio import json ``` ### 2. Basic Connection Example ```python Python expandable theme={null} async def connect_to_agentsource(): # Configure your API key api_key = os.environ.get('EXPLORIUM_API_KEY', 'your-api-key-here') headers = { "Authorization": f"Bearer {api_key}", } # Connect to the MCP endpoint async with sse_client( url="https://mcp-v2.explorium.ai/sse", headers=headers ) as streams: read_stream, write_stream = streams async with ClientSession(read_stream, write_stream) as session: await session.initialize() print("✓ Successfully connected to AgentSource MCP!") # List available tools tools = await session.list_tools() print(f"Available tools: {len(tools.tools)}") for tool in tools.tools[:5]: # Show first 5 tools print(f" • {tool.name}: {tool.description[:60]}...") # Run the async function asyncio.run(connect_to_agentsource()) ``` ## Common Use Cases ### Matching Businesses Find business IDs for companies by name or domain: ```python Python expandable theme={null} async def match_businesses_example(): api_key = os.environ.get('EXPLORIUM_API_KEY', 'your-api-key') headers = {"Authorization": f"Bearer {api_key}"} async with sse_client( url="https://mcp-v2.explorium.ai/sse", headers=headers ) as streams: read_stream, write_stream = streams async with ClientSession(read_stream, write_stream) as session: await session.initialize() # Prepare businesses to match match_input = { "businesses_to_match": [ {"name": "Google"}, {"domain": "microsoft.com"}, {"name": "Amazon", "domain": "amazon.com"} ] } # Call the match_businesses tool result = await session.call_tool("match_businesses", arguments=match_input) # Process results if hasattr(result, 'content') and result.content: data = json.loads(result.content[0].text) print(f"Matched {data['total_matches']} businesses:") for business in data['matched_businesses']: print(f" • {business['input']} ID: {business['business_id']}") asyncio.run(match_businesses_example()) ``` ### Finding Prospects at Companies Search for employees with specific roles: ```python Python expandable theme={null} async def find_prospects_example(): api_key = os.environ.get('EXPLORIUM_API_KEY', 'your-api-key') headers = {"Authorization": f"Bearer {api_key}"} async with sse_client( url="https://mcp-v2.explorium.ai/sse", headers=headers ) as streams: read_stream, write_stream = streams async with ClientSession(read_stream, write_stream) as session: await session.initialize() # First, match the company match_result = await session.call_tool( "match_businesses", arguments={"businesses_to_match": [{"name": "Salesforce"}]} ) # Extract business ID from match result match_data = json.loads(match_result.content[0].text) business_id = match_data['matched_businesses'][0]['business_id'] # Search for VPs in Engineering prospects_input = { "filters": { "business_id": [business_id], "job_level": ["vp"], "job_department": ["Engineering"] }, "size": 20, "page_size": 10, "page": 1 } # Fetch prospects prospects_result = await session.call_tool( "fetch_prospects", arguments=prospects_input ) # Process and display results prospects_data = json.loads(prospects_result.content[0].text) print(f"Found {len(prospects_data['data'])} VPs in Engineering:") for prospect in prospects_data['data'][:5]: print(f" • {prospect['full_name']} - {prospect['job_title']}") asyncio.run(find_prospects_example()) ``` ### Enriching Contact Information Get email addresses and phone numbers for prospects: ```python Python expandable theme={null} async def enrich_contacts_example(): api_key = os.environ.get('EXPLORIUM_API_KEY', 'your-api-key') headers = {"Authorization": f"Bearer {api_key}"} async with sse_client( url="https://mcp-v2.explorium.ai/sse", headers=headers ) as streams: read_stream, write_stream = streams async with ClientSession(read_stream, write_stream) as session: await session.initialize() # Assume we have prospect IDs from a previous search prospect_ids = ["prospect_id_1", "prospect_id_2"] # Enrich contact information enrich_result = await session.call_tool( "enrich_prospects_contacts_information", arguments={"prospect_ids": prospect_ids} ) # Display enriched data enrich_data = json.loads(enrich_result.content[0].text) for prospect in enrich_data['data']: if 'emails' in prospect['data']: print(f"Contact: {prospect['prospect_id']}") for email in prospect['data']['emails']: print(f" • Email ({email['type']}): {email['email']}") asyncio.run(enrich_contacts_example()) ``` ## Advanced Patterns ### Using Autocomplete for Valid Filter Values Many filters require valid values from the autocomplete tool: ```python Python expandable theme={null} async def search_with_autocomplete(): api_key = os.environ.get('AGENTSOURCE_API_KEY', 'your-api-key') headers = {"Authorization": f"Bearer {api_key}"} async with sse_client( url="https://mcp-v2.explorium.ai/sse", headers=headers ) as streams: read_stream, write_stream = streams async with ClientSession(read_stream, write_stream) as session: await session.initialize() # Get valid LinkedIn® categories for "software" autocomplete_result = await session.call_tool( "autocomplete", arguments={ "field": "linkedin_category", "query": "software" } ) # Parse autocomplete results auto_data = json.loads(autocomplete_result.content[0].text) categories = [item['value'] for item in auto_data['data']] # Use the validated categories in search search_result = await session.call_tool( "fetch_businesses", arguments={ "filters": { "linkedin_category": categories[:2], # Use first 2 categories "company_size": ["51-200", "201-500"], "country_code": ["US"] }, "size": 10 } ) # Process results search_data = json.loads(search_result.content[0].text) print(f"Found {search_data['total_results']} companies") asyncio.run(search_with_autocomplete()) ``` ### Comprehensive Company Analysis Combine multiple enrichment tools for detailed insights: ```python Python expandable theme={null} async def comprehensive_company_analysis(): api_key = os.environ.get('AGENTSOURCE_API_KEY', 'your-api-key') headers = {"Authorization": f"Bearer {api_key}"} async with sse_client( url="https://mcp-v2.explorium.ai/sse", headers=headers ) as streams: read_stream, write_stream = streams async with ClientSession(read_stream, write_stream) as session: await session.initialize() # Match a company match_result = await session.call_tool( "match_businesses", arguments={"businesses_to_match": [{"domain": "tesla.com"}]} ) match_data = json.loads(match_result.content[0].text) business_id = match_data['matched_businesses'][0]['business_id'] # Gather multiple types of enrichment data enrichment_tools = [ ("enrich_businesses_firmographics", "Company Overview"), ("enrich_businesses_technographics", "Technology Stack"), ("enrich_businesses_workforce_trends", "Workforce Trends"), ("enrich_businesses_funding_and_acquisitions", "Funding History") ] for tool_name, description in enrichment_tools: print(f"\n{description}:") result = await session.call_tool( tool_name, arguments={"business_ids": [business_id]} ) # Process and display key insights data = json.loads(result.content[0].text) # Display relevant information based on the tool print(f" ✓ Data retrieved successfully") asyncio.run(comprehensive_company_analysis()) ``` ## Error Handling Implement robust error handling for production use: ```python Python expandable theme={null} async def safe_mcp_call(): api_key = os.environ.get('AGENTSOURCE_API_KEY') if not api_key: raise ValueError("AGENTSOURCE_API_KEY environment variable not set") headers = {"Authorization": f"Bearer {api_key}"} try: async with sse_client( url="https://mcp-v2.explorium.ai/sse", headers=headers ) as streams: read_stream, write_stream = streams async with ClientSession(read_stream, write_stream) as session: try: await session.initialize() # Your MCP operations here result = await session.call_tool( "match_businesses", arguments={"businesses_to_match": [{"name": "Example Corp"}]} ) return result except Exception as e: print(f"Error during tool execution: {e}") raise except Exception as e: print(f"Connection error: {e}") raise # Run with error handling try: result = asyncio.run(safe_mcp_call()) except Exception as e: print(f"Failed to execute MCP call: {e}") ``` ## Best Practices ### 1. Environment Variables Always use environment variables for API keys: ```python Python theme={null} import os api_key = os.environ.get('EXPLORIUM_API_KEY') if not api_key: raise ValueError("Please set EXPLORIUM_API_KEY environment variable") ``` ### 2. Connection Management Use context managers to ensure proper connection cleanup: ```python Python theme={null} async with sse_client(url, headers) as streams: async with ClientSession(*streams) as session: # Your operations here pass # Connection automatically closed ``` ### 3. Result Parsing Always validate and parse results safely: ```python Python theme={null} def parse_tool_result(result): """Safely parse tool results""" if hasattr(result, 'content') and result.content: try: return json.loads(result.content[0].text) except (json.JSONDecodeError, IndexError, AttributeError): print("Failed to parse result") return None return None ``` ### 4. Batch Operations When processing multiple items, use appropriate page sizes: ```python Python theme={null} # Good: Process in reasonable batches page_size = 50 for page in range(1, total_pages + 1): result = await session.call_tool( "fetch_businesses", arguments={ "filters": {...}, "page_size": page_size, "page": page } ) ``` ## Available Tools Reference The MCP SDK provides access to all AgentSource tools: * **Business Tools**: `match_businesses`, `fetch_businesses`, `enrich_businesses_*` * **Prospect Tools**: `match_prospects`, `fetch_prospects`, `enrich_prospects_*` * **Utility Tools**: `autocomplete`, `fetch_businesses_events`, `fetch_prospects_events` Use `session.list_tools()` to discover all available tools and their parameters. ## Debugging Tips Enable verbose logging to troubleshoot issues: ```python Python theme={null} import logging # Set up logging logging.basicConfig(level=logging.DEBUG) logger = logging.getLogger(__name__) # Log tool calls logger.debug(f"Calling tool: {tool_name}") logger.debug(f"Arguments: {json.dumps(arguments, indent=2)}") ``` ## Next Steps * Explore the [complete AgentSource MCP documentation](/mcp-docs/v2/agentsource-mcp) * Check out the [OpenAI implementation guide](/mcp-docs/v2/implement-with-openai) for AI agent integration * Learn about advanced filtering and search capabilities * Build production-ready data pipelines with MCP ## Support If you encounter any issues or have questions: * Check the [AgentSource MCP reference](/mcp-docs/v2/agentsource-mcp) * Contact our support team at [support@explorium.ai](mailto:support@explorium.ai) > [!NOTE] > > **Note:** > > *Remember to replace`'your-api-key-here'` with your actual AgentSource API key.* # Check webhook connectivity Source: https://developers.explorium.ai/v2/webhooks/check_webhook_connectivity post /v2/webhooks/{webhook_id}/check_connectivity Sends a test event to this webhook and returns the outcome. Add the optional `simulation` block (`event_name`, `number_of_events`, `event_time`) to push realistic mock events — see the [webhooks guide](/v2/endpoints/webhooks#step-3-test-webhook-connectivity). # Delete webhook Source: https://developers.explorium.ai/v2/webhooks/delete_webhook delete /v2/webhooks/{webhook_id} Fails with a conflict while active [enrollments](/v2/endpoints/events) reference the webhook. Pass `?force=true` to delete anyway: affected enrollments are set to `paused` (delivery stops, entity lists preserved) and returned in `affected_enrollment_ids`. Enrollments are never silently re-pointed. # Rotate webhook secret Source: https://developers.explorium.ai/v2/webhooks/rotate_webhook_secret post /v2/webhooks/{webhook_id}/rotate_secret Returns a new `webhook_secret` for this webhook only — others are unaffected. Replaces the v1 pattern of re-registering to rotate. # Generate: build and download lists without code Source: https://developers.explorium.ai/generate/overview A UI tool in the AgentSource admin panel for generating and downloading business and prospect lists — filter your audience, preview a sample with stats, and download an enriched CSV. **Generate** is a point-and-click way to get Explorium data without writing any code. Build an audience with the same filters the API exposes, preview a sample of matching records, and download up to **60,000 records** as a CSV — businesses with firmographics, or prospects optionally enriched with contact details (professional email and phone). Everything Generate does runs on the same public API your integrations use — [fetch](/v2/prospects/fetch_prospects), [statistics](/v2/prospects/fetch_prospects_statistics), [autocomplete](/v2/autocomplete), and [contact enrichment](/v2/prospects/enrichments/contact_information_enrich) — billed to an API key you pick per run. ## Where to find it Open the **AgentSource admin panel** and pick **Generate** under **Build & Manage**. ![The AgentSource admin panel sidebar with the Generate entry highlighted](https://mintcdn.com/explorium/x5fd8qwLqBDPTAvP/images/generate/admin-panel-generate-nav.png?fit=max\&auto=format\&n=x5fd8qwLqBDPTAvP\&q=85\&s=0e6cc8971ff61281e12159ccff966bff) > [!NOTE] > > Generate is being rolled out gradually and may not be visible on every account yet. If you don't see it in your admin panel, reach out to your Explorium contact. ## Generating a list **1. Pick an API key** Choose which of your account's API keys the run should use — it defaults to your platform key. Every call Generate makes (fetch, stats, enrichment, download) is billed against the selected key. **2. Choose Prospects or Businesses** The toggle at the top switches the audience type — and with it, the filter set and the columns you get in the preview and the CSV. **3. Build your audience criteria** Add filters in the left panel. Every filter supported by the [Fetch prospects](/v2/prospects/fetch_prospects) and [Fetch businesses](/v2/businesses/fetch_businesses) APIs is available, and value suggestions are powered by the same [autocomplete](/v2/autocomplete) the API exposes. ![Generate with the Prospects tab active and the audience criteria filter panel open](https://mintcdn.com/explorium/x5fd8qwLqBDPTAvP/images/generate/generate-prospects-filters.png?fit=max\&auto=format\&n=x5fd8qwLqBDPTAvP\&q=85\&s=cf47f500421511e137d5cc29755b3f3f) ![Industry filter with autocomplete suggestions for the term software](https://mintcdn.com/explorium/x5fd8qwLqBDPTAvP/images/generate/generate-autocomplete.png?fit=max\&auto=format\&n=x5fd8qwLqBDPTAvP\&q=85\&s=18c30938e42ee581cc21e6fac8d5e911) **4. Preview before you commit** Click **Preview** to fetch a **20-record sample** — it never downloads anything. The sample is billed like any fetch: **1 credit per returned record**, so a full preview costs **20 credits**; the exact amount consumed is shown at the bottom of the filter panel. The header shows the **total number of matching records** for your criteria. ![Preview table of prospects with name, job title, company, business ID, department, and level columns](https://mintcdn.com/explorium/x5fd8qwLqBDPTAvP/images/generate/generate-preview-table.png?fit=max\&auto=format\&n=x5fd8qwLqBDPTAvP\&q=85\&s=444d9aa5d07c3b39950c0daa0d4aaf2c) Switch to the **Stats** view for a distribution breakdown of the full matching audience. Unlike the sample, stats are powered by the free [statistics endpoints](/v2/prospects/fetch_prospects_statistics) — the Stats view and the total match count consume **no credits**, so use them freely while shaping your filters. ![Stats view showing the total number of prospects per location as a bar chart](https://mintcdn.com/explorium/x5fd8qwLqBDPTAvP/images/generate/generate-preview-stats.png?fit=max\&auto=format\&n=x5fd8qwLqBDPTAvP\&q=85\&s=781a07fa6cfefcbbbcd9a85b2e45a682) **5. Download the CSV** Click **Download CSV**, choose how many records to download (up to **60,000**), and hit **Generate**. The pipeline fetches the records, enriches prospects with contact details where available, builds the CSV, and downloads it — showing progress along the way and the **total credits consumed** when it finishes. ![Generate CSV modal asking how many records to download, with a maximum of 60,000](https://mintcdn.com/explorium/x5fd8qwLqBDPTAvP/images/generate/generate-download-modal.png?fit=max\&auto=format\&n=x5fd8qwLqBDPTAvP\&q=85\&s=9feb0b77c588c9f499256943dcdac247) ## What you get | Audience | Columns in the CSV | | :- | :- | | **Businesses** | Firmographics — name, website, country, city, number of employees, revenue range, and the Explorium business ID | | **Prospects** | Full name, job title, company, department, seniority level, the Explorium IDs — plus **contact details** (professional email and phone numbers) where available | ![Businesses preview table with name, website, country, city, employees, revenue, and business ID columns](https://mintcdn.com/explorium/x5fd8qwLqBDPTAvP/images/generate/generate-businesses-preview.png?fit=max\&auto=format\&n=x5fd8qwLqBDPTAvP\&q=85\&s=8fc335cadc048d2b0e967316de0a9ece) ## Credits * **Stats are free.** The Stats view and total match counts never consume credits — use them to validate filters before committing. * **Previews cost 1 credit per result.** A preview fetches a 20-record sample, billed at **1 credit per returned record** — so a full preview costs **20 credits**. The amount consumed is shown under the filter panel after each preview. * **Downloads are billed like the API.** Records fetched and contact details enriched are charged to the selected API key at the standard rates, and the total is displayed when the run completes. If credits run out mid-download, Generate stops and tells you. ## Generate or the API? Generate is the fastest way to pull a one-off list or to explore audience shapes visually. For recurring or automated list-building, use the same building blocks directly: [fetch](/v2/prospects/fetch_prospects) with your filters, [statistics](/v2/prospects/fetch_prospects_statistics) to size audiences, and the [async jobs infrastructure](/v2/async-guide) for large enriched batches. # Integrate with Base44 Source: https://developers.explorium.ai/integrations/base44/integrate-with-base44 Add company & prospect data to any Base44 AI app in under 3 minutes. ## 1. Open the Base44 Dashboard Launch [https://www.base44.com](https://www.base44.com/) and sign in. You'll land on the "What would you build today?" home screen. ![](https://mintcdn.com/explorium/s1uRl5fGOrKpLiGF/images/reference/b19a7d9f910251b57c5f29c7f51d1759ad310de9e00328b8985209171a789d7f-Screenshot_2025-04-29_at_16.38.12.png?fit=max\&auto=format\&n=s1uRl5fGOrKpLiGF\&q=85\&s=790309c0cfcec1018496c538679cbfec) ## 2. Browse to Integrations Catalog Click the puzzle-piece icon in the left nav to open Integrations. Locate Explorium in the Community Integrations list (you can use the search box). > [!TIP] > > **Tip:** > > If you don't see Explorium yet, hit Create Integration and paste the link your CSM provided. ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/14cbaaae11b48ef67b3427b7085f9293bfb9d8c5b3861ccd5ee423276afd41a7-Screenshot_2025-04-29_at_16.38.21.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=c76cae548b938bf2ca7c419d8743e00b) ## 3. Review the Explorium Card Click Explorium to open the integration detail page. You'll see example prompts and a status badge of Approved. Hit Use this integration to drop it into your new (or existing) project. ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/039c3986d9010662d374b40a077fa69dd86f0ee2e6bde1fec9882d08e4a18624-Screenshot_2025-04-29_at_16.38.30.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=003d70c96705d7de812d1474e0a91340) ## 4. Provide Your EXPLORIUM\_API\_KEY Base44 will prompt for required credentials. Select New value (or “Reuse existing” if you’ve added it before).\ Paste your **EXPLORIUM\_API\_KEY**.\ You can grab a fresh key anytime from [https://admin.explorium.ai](https://app.explorium.ai/api-usage).\ Once adding an api key – the red “**Missing required keys**” warning disappears.\ That’s it! The Explorium data functions are now available in your Base44 backend cloud functions. ![](https://mintcdn.com/explorium/s1uRl5fGOrKpLiGF/images/reference/e8986829f42545310495ee7b5b34bb1069f28318d703075ca2e5138356dc0bca-Screenshot_2025-04-29_at_16.38.42.png?fit=max\&auto=format\&n=s1uRl5fGOrKpLiGF\&q=85\&s=fefee19a2127b9c0a3f4b76deaf49d84) ### Have fun building! # Claude Desktop Integration Source: https://developers.explorium.ai/integrations/claude/claude-desktop-integration **Claude by Anthropic** - The most popular MCP-compatible AI assistant Claude Desktop provides native support for MCP servers, making it the ideal choice for accessing AgentSource data through natural conversation. #### Setup Instructions **1. Install Claude Desktop** Install Claude Desktop from [claude.ai](https://claude.ai/) **2. Click on "Search and tools" button** ![Screenshotat Nov0916 41 21 Pn](https://mintcdn.com/explorium/_Jy_yzKWZxUWaa_V/images/ScreenshotatNov0916-41-21.png?fit=max\&auto=format\&n=_Jy_yzKWZxUWaa_V\&q=85\&s=b4a92d537521c90c2f4be7323a4c73aa) **3. Click on the "Add connectors" option** ![Screenshot at Nov 09 14:02:24 PM](https://mintcdn.com/explorium/eyadf3qggkZgGT_W/images/ScreenshotatNov0914-02-24.png?fit=max\&auto=format\&n=eyadf3qggkZgGT_W\&q=85\&s=3d65a2aacc9dfd75b4559b90fd109926) **4. Go to "Desktop extensions" tab** ![Screenshot at Nov 09 14:08:08 PM](https://mintcdn.com/explorium/eyadf3qggkZgGT_W/images/ScreenshotatNov0914-08-08.png?fit=max\&auto=format\&n=eyadf3qggkZgGT_W\&q=85\&s=3f426458e5b903ddb40ca30582ca1821) **5. Select "Explorium business data hub" from the list of available extensions** ![Screenshot at Nov 09 14:45:08 PM](https://mintcdn.com/explorium/eyadf3qggkZgGT_W/images/ScreenshotatNov0914-45-08.png?fit=max\&auto=format\&n=eyadf3qggkZgGT_W\&q=85\&s=94b0e94583a96898c755454df254a2fe) **6. Click on the Install button and wait for the installation process to complete** ![Screenshot at Nov 09 14:46:37 PM](https://mintcdn.com/explorium/eyadf3qggkZgGT_W/images/ScreenshotatNov0914-46-37.png?fit=max\&auto=format\&n=eyadf3qggkZgGT_W\&q=85\&s=c4046899a73e1ee5b07f6055f21ab14c) **7. Verify that the Explorium business data hub is enabled now and close the extension window** ![Screenshot at Nov 09 14:55:52 PM](https://mintcdn.com/explorium/eyadf3qggkZgGT_W/images/ScreenshotatNov0914-55-52.png?fit=max\&auto=format\&n=eyadf3qggkZgGT_W\&q=85\&s=c82555618036a6d29463c70269547500) **8. Again click on the 'Search and tools' button to verify that Explorium business data hub appears and enable it by clicking on the toggle to the right of the extension name** ![Screenshotat Nov0915 44 18 Pn](https://mintcdn.com/explorium/eyadf3qggkZgGT_W/images/ScreenshotatNov0915-44-18.png?fit=max\&auto=format\&n=eyadf3qggkZgGT_W\&q=85\&s=42dfaec482803dbf1997273d9e756659) **9. Allow Explorium MCP access** * Allow Explorium MCP access ![MCP Access Permission](https://mintcdn.com/explorium/s1uRl5fGOrKpLiGF/images/reference/d98928e4d6121f3d09d302868a31dbc7c862b4ea4b855c94e6a560a3eba476d6-image.png?fit=max\&auto=format\&n=s1uRl5fGOrKpLiGF\&q=85\&s=195fedba8b0223988d4efde4f703d0df) #### Example Conversations **Finding Companies:** ``` You: Find me 10 SaaS companies in San Francisco with 50-200 employees Claude: I'll search for SaaS companies in San Francisco with 50-200 employees. [Searches using fetch_businesses tool] I found 10 SaaS companies matching your criteria: 1. TechFlow Analytics - 125 employees - Revenue: $10M-$25M - Technologies: AWS, React, PostgreSQL 2. DataSync Solutions - 87 employees - Revenue: $5M-$10M - Technologies: Google Cloud, Python, MongoDB [... continues with detailed results] ``` **Researching Contacts:** ``` You: Who is the CTO of Snowflake and what's their background? Claude: I'll look up information about Snowflake's CTO. [Uses match_businesses, then enrich_businesses_financial_metrics] The CTO of Snowflake is Benoit Dageville. Here's his background: - Co-founder of Snowflake - Previously at Oracle for 16 years - PhD in Computer Science from University of Paris - Expertise in database systems and query optimization ``` ## Common Patterns ### Research Assistant Pattern Transform your AI into a business research assistant: ``` 1. User asks about a company or industry 2. AI uses match_businesses or fetch_businesses 3. AI enriches with firmographics, technographics, financials 4. AI summarizes findings in natural language ``` ### Sales Intelligence Pattern Enable your AI to support sales activities: ``` 1. User provides target company name 2. AI finds company with match_businesses 3. AI fetches key contacts with fetch_prospects 4. AI enriches contact information 5. AI provides actionable insights ``` ### Market Analysis Pattern Use AI for competitive intelligence: ``` 1. User asks about market segment 2. AI searches companies with filters 3. AI aggregates statistics 4. AI identifies trends and patterns 5. AI generates market report ``` ## Best Practices ### Prompt Engineering **Be Specific** ``` Good: "Find B2B SaaS companies in NYC with 50-200 employees using AWS" Bad: "Find some tech companies" ``` **Chain Requests** ``` "First find Microsoft's business ID, then show me all VPs in their engineering department" ``` **Request Formats** ``` "Show me the results as a table with company name, size, and revenue" ``` ### Performance Tips * **Batch Operations**: Ask for multiple companies at once * **Specific Filters**: Use precise criteria to reduce results * **Caching**: AI assistants often cache recent results * **Pagination**: Request specific page numbers for large datasets ### Security Considerations * Store API keys in secure configuration files * Never share API keys in conversations * Use read-only keys when possible * Monitor usage through the admin panel ## Advanced Features ### Tool Chaining Most AI assistants can automatically chain multiple tools: ``` "Find the top 5 competitors of Salesforce and compare their employee counts and technologies" This triggers: 1. match_businesses (Salesforce) 2. enrich_businesses_competitive_landscape 3. match_businesses (for each competitor) 4. enrich_businesses_firmographics 5. enrich_businesses_technographics ``` ### Conversational Memory AI assistants maintain context across messages: ``` You: "Find info about Uber" AI: [Provides Uber details] You: "Now show me their main competitors" AI: [Understands "their" refers to Uber] ``` ### Natural Language Filters Convert natural language to API filters: ``` "Companies founded in the last 3 years" company_age: ["0-3"] "Mid-size businesses" company_size: ["51-200", "201-500"] "Tech companies" linkedin_category: ["Technology"] ``` ## Examples Gallery ### Company Research ``` "Give me a complete profile of Tesla including their technology stack, financial metrics, recent events, and key executives" ``` ### Competitive Analysis ``` "Compare the top 5 CRM companies by employee count, revenue, and technology stack. Show the results in a table." ``` ### Lead Generation ``` "Find marketing directors at fintech companies in London with 100-500 employees. Include their email addresses." ``` ### Market Trends ``` "What percentage of SaaS companies with $10M-$50M revenue are using AWS vs Google Cloud vs Azure?" ``` # Cursor Integration Source: https://developers.explorium.ai/integrations/cursor/cursor-integration ## Cursor IDE **Cursor** - The AI-powered code editor with MCP support Cursor's built-in AI features can leverage AgentSource data for research while coding, making it perfect for developers building data-driven applications. ### Setup Instructions **1. Open Cursor Settings** * Navigate to: Cursor > Settings > Cursor Settings > MCP Tools * Click the 'Add Custom MCP' button ![](https://mintcdn.com/explorium/s1uRl5fGOrKpLiGF/images/reference/9ca30e10d2b057ef0f7b4aa1a6f122e4463b82b1633f4aad435ccecadafb08dd-image.png?fit=max\&auto=format\&n=s1uRl5fGOrKpLiGF\&q=85\&s=e3a18c3dae6f0918bec4ff03f97fce9a) **2. Add Explorium MCP configuration** ```json JSON theme={null} { "mcpServers": { "explorium-mcp": { "type": "sse", "url": "https://mcp-v2.explorium.ai/sse", "headers": { "api_key": "" } } } } ``` > [!NOTE] > > Using AgentSource v1? The v1 server at `https://mcp.explorium.ai/sse` still works but is deprecated and will be retired together with AgentSource v1 — see the [deprecation timeline](/v2/migration-from-v1#v1-deprecation-timeline). **3. Enable Auto-Run Mode (Optional)** * Location: Cursor > Settings > Chat * Toggle: "Auto-Run Mode" * Benefit: Tools execute automatically without confirmation **4. Login** * Click 'Needs login' and click 'Open' on the dialog box. ![](https://mintcdn.com/explorium/s1uRl5fGOrKpLiGF/images/reference/aa9805999594a3a14cc36dd48c9052ae569a5ccb19a465ec4c7d724cae18696d-image.png?fit=max\&auto=format\&n=s1uRl5fGOrKpLiGF\&q=85\&s=6c4e0a04924258f4b968e1bd12f79a10) **5. Allow Explorium MCP access for Cursor** * Click the 'Allow Access' button. ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/3f78c5ebb8bf4dee1bd6c0aef9c4dfecbfe4f8ace09fadbb716a248eba07586d-image.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=e6fd184ae954949111b34dbd00b08a6a) **6. Confirm the server is connected** * Make sure the mcp is turned on and the tools are enabled ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/0b6a741658ad5e1b7177dc9823a9e217ad28eab050fd415a24a4edf291491447-image.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=f50b551bf2b39025741b0838a9246ee8) **7. Test the mcp** * Open chat (Cmd+K or Ctrl+K) * Ask: "find 5 companies in the fintech industry that use salesforce" ### Use Cases in Cursor * Research companies while building CRM integrations * Get real data for testing and development * Generate mock data based on real company information * Validate business logic with actual market data # MCP Integrations Source: https://developers.explorium.ai/integrations/mcp-integrations Connect AgentSource MCP with your favorite platforms and tools to access business and contact data wherever you work. ## Overview AgentSource MCP integrations allow you to seamlessly incorporate Explorium's data into your existing workflows. Whether you're building automation pipelines, enhancing AI applications, or connecting to no-code platforms, we provide ready-to-use integrations that get you up and running in minutes. ## Available Integrations ### AI Assistants **Enhance AI conversations with real-time data** Integrate AgentSource MCP with popular AI assistants to provide them with access to comprehensive business and contact information. **Supported Platforms:** * Claude Desktop * Cursor IDE * Custom AI agents **Key Features:** * Natural language queries * Automatic tool discovery * Context-aware responses * Real-time data access Get Started > **[Claude Desktop](/integrations/claude/claude-desktop-integration)** > **[Cursor](/integrations/cursor/cursor-integration)** ### [n8n](/integrations/n8n/integrate-with-n8n) **Visual workflow automation with MCP tools** Build powerful automation workflows that combine AgentSource data with hundreds of other services using n8n's visual interface. **Key Features:** * Drag-and-drop workflow builder * Claude-powered AI agent * 400+ app integrations * Self-hosted or cloud options **Use Cases:** * Automated lead enrichment * Customer data workflows * Research automation * Alert systems > **[n8n](/integrations/n8n/integrate-with-n8n)** ### [Base44](/integrations/base44/integrate-with-base44) **Add data to any Base44 AI app** Integrate AgentSource MCP into your Base44 applications with just a few clicks. Perfect for building custom AI-powered business tools. **Key Features:** * 3-minute setup * Pre-approved integration * Cloud functions support * Instant deployment **Use Cases:** * Custom AI assistants * Business intelligence apps * Sales tools * Research platforms > **[Base44](/integrations/base44/integrate-with-base44)** ### [Zapier](/integrations/zapier/integrate-with-zapier) **Connect to 5000+ apps** *Coming Soon* Automate workflows between AgentSource and thousands of applications without writing code. **Planned Features:** * Pre-built zap templates * Custom triggers and actions * Bulk operations support * Scheduled enrichments > **[Zapier](/integrations/zapier/integrate-with-zapier)** ### [Make (Integromat)](/integrations/make/integrate-with-make) **Advanced automation scenarios** *Coming Soon* Create complex automation scenarios with visual programming and AgentSource data. ## Integration Comparison | Platform | Setup Time | Best For | Pricing Model | Hosting | | :- | :- | :- | :- | :- | | **AI Assistants** | 5 min | Conversational AI | Per API call | Local/Cloud | | **n8n** | 15 min | Complex workflows | Self-hosted free / Cloud | Both | | **Base44** | 3 min | AI apps | Platform pricing | Cloud | | **Zapier** | 10 min | Simple automation | Per task | Cloud | | **Salesforce** | 30 min | CRM enrichment | Platform pricing | Cloud | ## Getting Started ### Prerequisites Before setting up any integration, ensure you have: 1. **AgentSource API Key** - [Get your key](/reference/setup/getting_your_api_key) 2. **Platform Account** - Active account on your chosen platform 3. **Basic Understanding** - Familiarity with the platform's interface ### General Setup Process Most integrations follow a similar pattern: 1. **Add AgentSource** - Find AgentSource in the platform's integration catalog 2. **Configure Authentication** - Add your API key 3. **Test Connection** - Verify the integration is working 4. **Start Building** - Use AgentSource tools in your workflows ## Common Use Cases ### Lead Enrichment Automation * Automatically enrich new CRM leads * Add contact information and company data * Score and route leads based on enriched data * Trigger personalized outreach campaigns ### Market Intelligence Workflows * Monitor competitor activities * Track industry trends * Alert on significant company events * Generate regular market reports ### Sales Intelligence * Research prospects before meetings * Find decision makers at target accounts * Identify technology stack for better positioning * Track job changes and company updates ### Data Quality Management * Validate and update existing records * Fill missing data fields * Deduplicate company records * Maintain data freshness ## Best Practices ### Security * Store API keys securely in platform vaults * Use environment variables when possible * Implement proper access controls * Monitor API usage regularly ### Performance * Use batch operations for bulk data * Implement caching where appropriate * Set up rate limiting rules * Monitor workflow execution times ### Design Patterns * Start with simple workflows * Test with small data sets first * Build modular, reusable components * Document your integrations ## Troubleshooting ### Common Issues **Authentication Errors** * Verify API key is correct * Check key permissions * Ensure proper header format **Rate Limiting** * Implement exponential backoff * Use batch operations * Spread requests over time **Data Format Issues** * Validate input parameters * Check response parsing * Handle null values properly ## Support Resources ### Documentation > **[API Reference](/reference/quick-starts/quick-starts)** ### Get Help * Technical Support: [support@explorium.ai](mailto:support@explorium.ai) * Community Forum: Coming soon ## Request an Integration Don't see your platform listed? We're constantly adding new integrations based on user feedback. > **[Request a New Integration](/reference/)** Include: * Platform name and website * Your use case * Expected data volume * Timeline requirements *Ready to connect? Choose an integration above or explore our[implementation guides](/mcp-docs/v2/developers-implementation-guides) for custom solutions.* # Explorium Event Triggered Outreach Source: https://developers.explorium.ai/integrations/n8n/explorium-event-triggered-outreach Automatically identify meaningful events such as product launches, new office opening and much more, enrich company & prospect data, and generate fully personalized outbound emails using Explorium MCP and LLM agents This n8n and agent-based workflow automates outbound prospecting by monitoring Explorium event data (e.g. product launches, new office opening, new investment and [more](/reference/businesses/events/types/ipo-announcement)), researching companies, identifying key contacts, and generating tailored sales emails leveraging the Explorium MCP server. ## Template Download the following json file and import it to a new n8n workflow: > **[explorium\_event\_outreach.json](https://drive.usercontent.google.com/u/0/uc?id=1jcHBBOQyM60gXT34VB6XlAgA_gg3uPTr\&export=download)** ![](https://mintcdn.com/explorium/s1uRl5fGOrKpLiGF/images/reference/c8b805c24352d0eb65805c9cf4cd692b8dc28dac9d32c1c3b43eca55964ac481-image.png?fit=max\&auto=format\&n=s1uRl5fGOrKpLiGF\&q=85\&s=42773be6de70de880e355762114ac10c) ## Workflow Overview ### Node 1: Webhook Trigger **Purpose:** Listens for real-time product launch events pushed from Explorium's webhook system. **How it works:** * Explorium sends HTTP POST requests containing event data * The webhook payload includes company name, business ID, domain, product name, and event type * Pay attention: Product launch is just one example. You can easily enroll to many more meaningful events. to learn about events and how to enroll to events, visit the events [documentation](/reference/webhooks). ### Node 2: Company Research Agent **Agent Type:** Tools Agent **Purpose:** Enrich company data after an event occurs. **How it works:** * Uses Explorium MCP via the MCP Client tool to gather additional company data * Uses Anthropic Claude (Chat Model) to process and interpret company information for downstream personalization ### Node 3: Employee Data Retrieval **Purpose:** Retrieve prospect-level data for targeting. **How it works:** * Uses HTTP Request node to call Explorium's `fetch_prospects` endpoint * Filters prospects by: * Company `business_id` * Departments: Product, R\&D, etc... * Seniority levels: owner, cxo, vp, director, senior, manager, partner, etc... * Pay Attention: Follow our fetch prospect [documentation](/reference/prospects/fetch_prospects) for the full list of filter and best practice. * Limits results to top 5 relevant employees * Code nodes handle: * Filtering logic * Cleaning API response * Formatting data for downstream agents ### Node 4: Conditional Branch - Prospect Data Check **If Node:** Checks whether prospect data was successfully retrieved **Logic:** * If prospects found personalized emails per person * If no prospects fallback to company-level general email ### Node 5A: Email Writer #1 (No Prospect Data) **Agent Type:** Tools Agent **Purpose:** Write generic outbound email using only company-level research and event info. **Powered by:** Anthropic Chat Model ### Node 5B: Loop Over Prospects Email Writer #2 (Personalized) **Agent Type:** Tools Agent **Purpose:** Write highly personalized email for each identified employee. **How it works:** * Loops through each individual prospect * Passes company research + employee data to LLM agent * Generates customized emails referencing: * Prospect's title & department * Product launch * Role-relevant Explorium value proposition ### Node 6: Slack Notifications **Purpose:** Posts completed emails to internal Slack channel for review or testing before final deployment. **Future State:** Can be swapped with an email sequencing platform in production. ## Setup Requirements ### Explorium API Access * MCP Client credentials for company enrichment and prospect fetching * Registered webhook for event listening ### n8n Configuration * Secure environment variables for API keys & webhook secret * Code nodes configured for JSON transformation, filtering & signature validation ## Customization Options ### Personalization Logic * Update LLM prompt instructions to reflect ICP priorities * Modify email templates based on role, department, or tenure logic * Adjust fallback behavior when prospect data is unavailable ### API Request Tuning * Adjust `page_size` for number of prospects retrieved * Fine-tune seniority and department filters to match evolving targeting ## Future Expansion * Swap Slack notifications for outbound email automation * Integrate call task assignment directly into CRM * Introduce engagement scoring feedback loop (opens, clicks, replies) ## Troubleshooting Tips * Validate webhook signature matching to prevent unauthorized requests * Ensure correct `business_id` is passed to prospect fetching endpoint * Confirm business enrichment returns sufficient data for company researcher agents * Review agent LLM responses for correct output structure and parsing consistency # Explorium Prospects Search Chatbot Source: https://developers.explorium.ai/integrations/n8n/explorium-prospects-search-chatbot An intelligent conversational interface that translates natural language queries into Explorium API calls to find B2B prospects and export them as CSV files. ## ## Template Download the following json file and import it to a new n8n workflow: > **[mcp\_to\_prospects\_to\_csv.json](https://drive.usercontent.google.com/u/0/uc?id=1_TO79jMUJxaDt5s2PAI2RYHOpB-7xPwD\&export=download)** ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/7d8d1a8a648e41b07f704212ebbbd392c38082aeffb70c23a4981c8ec0e03e0d-image.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=2ed87ef393246075f4675c26f24f61cd) ## Overview This n8n workflow creates a chatbot that understands natural language requests for finding business prospects and automatically: * Interprets your query using AI (Claude Sonnet 3.7) * Converts it to proper Explorium API filters * Validates the API request structure * Fetches prospect data from Explorium * Exports results as a downloadable CSV file Perfect for sales teams, recruiters, and business development professionals who need to quickly find and export targeted prospect lists without learning complex API syntax. ## Key Features * **Natural Language Interface**: Simply describe who you're looking for in plain English * **Smart Query Translation**: AI converts your request to valid API parameters * **Built-in Validation**: Ensures API calls meet Explorium's requirements * **Error Recovery**: Automatically retries with corrections if validation fails * **Pagination Support**: Handles large result sets automatically * **CSV Export**: Clean, formatted output ready for CRM import * **Conversation Memory**: Maintains context for follow-up queries ## Example Queries The chatbot understands queries like: * "Find marketing directors at SaaS companies in New York with 50-200 employees" * "Get me CTOs from fintech startups in California" * "Show me sales managers at healthcare companies with revenue over \$10M" * "Find engineers at Microsoft with 3-5 years experience" * "Get customer service leads from e-commerce companies in Europe" ## Prerequisites Before setting up this workflow, ensure you have: 1. **n8n instance** with chat interface enabled 2. **Anthropic API key** for Claude 3. **Explorium API credentials** (API Key) 4. Basic understanding of n8n chat workflows ## Supported Filters The chatbot can search using these criteria: ### Company Filters * **Size**: 1-10, 11-50, 51-200, 201-500, 501-1000, 1001-5000, 5001-10000, 10001+ employees * **Revenue**: Ranges from $0-500K up to $10T+ * **Age**: 0-3, 3-6, 6-10, 10-20, 20+ years * **Location**: Countries, regions, cities * **Industry**: Google categories, NAICS codes, LinkedIn categories * **Name**: Specific company names ### Prospect Filters * **Job Level**: CXO, VP, Director, Manager, Senior, Entry, etc. * **Department**: Sales, Marketing, Engineering, Finance, HR, etc. * **Experience**: Total months and current role duration * **Location**: Country and region codes * **Contact Info**: Filter by email/phone availability ## Installation & Setup ### Step 1: Import the Workflow **Step 1** Create a new workflow. **Step 2** Download the workflow JSON from above. **Step 3** In your n8n instance, go to **Workflows** **Add Workflow** **Import from File** **Step 4** Select the JSON file and click **Import** ### Step 2: Configure Anthropic Credentials **Step 1** Click on the **Anthropic Chat Model1** node **Step 2** Under Credentials, click **Create New** **Step 3** Add your Anthropic API key **Step 4** Name: "Anthropic API" **Step 5** Save credentials ### Step 3: Configure Explorium Credentials You'll need to set up Explorium credentials in two places: #### For MCP Client: **Step 1** Click on the **MCP Client** node **Step 2** Under Credentials, create new **Header Auth** **Step 3** Configure the header: 1. **Name**: `api_key` 2. **Value**: `YOUR_EXPLORIUM_API_TOKEN` **Step 4** Save credentials ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/8b89ad77232f806faab6590caca7dacc7a673f61ba10275f75e5bfec202fdbd5-image.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=37ed830df917eaa56abc4ad8da5285cb) #### For API Calls: **Step 1** Click on the **Prospects API Call** node **Step 2** Use the same Header Auth credentials created above **Step 3** Verify the API endpoint is correct ### Step 4: Activate the Workflow **Step 1** Save the workflow **Step 2** Click the **Active** toggle to enable it **Step 3** The chat interface will now be available ### Step 5: Access the Chat Interface **Step 1** Click on the **When chat message received** node **Step 2** Copy the webhook URL **Step 3** Access this URL in your browser to start chatting ## How It Works ### Workflow Architecture 1. **Chat Trigger**: Receives natural language queries from users 2. **Memory Buffer**: Maintains conversation context 3. **AI Agent**: Interprets queries and generates API parameters 4. **Validation**: Checks API structure against Explorium requirements 5. **API Call**: Fetches prospect data with pagination 6. **Data Processing**: Formats results for CSV export 7. **File Conversion**: Creates downloadable CSV file ### Processing Flow ``` User Query AI Interpretation Validation API Call CSV Export ↑ ↓ └──── Error Correction Loop ←──────┘ ``` ### Validation Rules The workflow validates: * Filter keys are allowed by Explorium API * Values match expected formats (e.g., valid country codes) * Range filters have proper gte/lte values * No duplicate values in arrays * Required structure is maintained ## Usage Guide ### Basic Conversation Flow **1. Start with your query** ``` "Find me VPs of Sales at software companies in the US" ``` **2. Bot processes and responds** * Generates API filters * Validates the structure * Fetches data * Returns CSV download link **3. Refine if needed** ``` "Can you also include directors and filter for companies with 100+ employees?" ``` ### Query Tips * **Be specific**: Include job titles, departments, company details * **Use standard terms**: "CTO" instead of "Chief Technology Officer" * **Specify locations**: Use country names or standard codes * **Include size/revenue**: Helps narrow results effectively ### Advanced Queries Combine multiple criteria: ``` "Find engineering managers and senior engineers at B2B SaaS companies in New York and California with 50-500 employees and revenue over $5M who have been in their role for at least 1 year" ``` ## Output Format The CSV file includes: * Prospect ID * Name (first, last, full) * Location (country, region, city) * LinkedIn profile * Experience summary * Skills and interests * Company details * Job information * Business ID ## Troubleshooting ### Common Issues **"Validation failed" errors** * Check that your query uses supported filter values * Ensure location names are spelled correctly * Verify company sizes/revenues match allowed ranges **No results returned** * Broaden your search criteria * Check if the company exists in Explorium's database * Verify filter combinations aren't too restrictive **Chat not responding** * Ensure workflow is activated * Check all credentials are properly configured * Verify webhook URL is accessible **Large result sets timing out** * Try adding more specific filters * Limit results by location or company size * Use the size parameter (max 10,000) ### Error Messages The bot provides clear feedback: * **Invalid filters**: Shows which filters aren't supported * **Value errors**: Lists correct options for each field * **API failures**: Explains connection or authentication issues ## Performance Optimization ### Best Practices 1. **Start broad, then narrow**: Begin with basic criteria and add filters 2. **Use business IDs**: When targeting specific companies 3. **Limit by contact info**: Add `has_email: true` for actionable leads 4. **Batch by location**: Process regions separately for large searches ### API Limits * Maximum 10,000 results per search * Pagination handles up to 100 records per page * Rate limits apply based on your Explorium subscription ## Customization Options ### Modify AI Behavior Edit the **AI Agent** system message to: * Change response format * Add custom filters * Adjust interpretation logic * Include additional instructions ### Extend Functionality Add nodes to: * Send results via email * Import directly to CRM * Schedule recurring searches * Create custom reports ### Integration Ideas * Connect to Slack for team queries * Add to CRM workflows * Create lead scoring systems * Build automated outreach campaigns ## Security Considerations * API credentials are stored securely in n8n * Chat sessions are isolated * No prospect data is stored permanently * CSV files are generated on-demand ## Support Resources For issues with: * **n8n platform**: Check n8n documentation * **Explorium API**: Contact Explorium support * **Anthropic/Claude**: Refer to Anthropic docs * **Workflow logic**: Review node configurations # Google Sheets Company Enrichment with Explorium MCP Source: https://developers.explorium.ai/integrations/n8n/google-sheets-company-enrichment-with-explorium-mcp Automatically enrich company data in Google Sheets using Explorium's comprehensive B2B intelligence platform through n8n automation. ## Template Download the following json file and import it to a new n8n workflow: > **[google\_sheets\_enrichment.json](https://drive.usercontent.google.com/u/0/uc?id=1SxlqU2hVn41e0XTjPx12Ryrx_yil3TUq\&export=download)** ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/47bf118229ab009f2b78df40f3c1cac4d0a965d5a01b12ec1b3cd4d34f1c466e-image.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=0407c910d991656c642148777129312a) ## Overview This n8n workflow template enables automatic enrichment of company information in your Google Sheets. When you add a new company or update existing company details (name or website), the workflow automatically fetches additional business intelligence data using Explorium MCP and updates your sheet with: * Business ID * NAICS industry code * Number of employees (range) * Annual revenue (range) ## Key Features * **Automatic Triggering**: Monitors your Google Sheet for new rows or updates to company name/website fields * **Smart Processing**: Only processes new or modified rows, not the entire sheet * **Data Validation**: Ensures both company name and website are present before processing * **Error Handling**: Processes each row individually to prevent one failure from affecting others * **Powered by AI**: Uses Claude Sonnet 4 with Explorium MCP for intelligent data enrichment ## Prerequisites Before setting up this workflow, ensure you have: 1. **n8n instance** (self-hosted or cloud) 2. **Google account** with access to Google Sheets 3. **Anthropic API key** for Claude 4. **Explorium MCP API key** ## Installation & Setup ### Step 1: Import the Workflow **Step 1** Create a new workflow. **Step 2** Download the workflow JSON from above. **Step 3** In your n8n instance, go to **Workflows** **Add Workflow** **Import from File** **Step 4** Select the JSON file and click **Import** ### Step 2: Create Google Sheet **Step 1** Create a new google sheet (or make a copy of this [template](https://docs.google.com/spreadsheets/d/14PypuKFWkMftiCtPrekpbav63tEGmgGgUP3cDwv7wXE/edit?usp=sharing)) **Step 2** Your Google Sheet must have the following columns (exact names): * `name` - Company name * `website` - Company website URL * `business_id` - Will be populated by the workflow * `naics` - Will be populated by the workflow * `number_of_employees_range` - Will be populated by the workflow * `yearly_revenue_range` - Will be populated by the workflow ### Step 3: Configure Google Sheets Credentials You'll need to set up two Google credentials: #### Google Sheets Trigger Credentials: **Step 1** Click on the **Google Sheets Trigger** node **Step 2** Under Credentials, click **Create New** **Step 3** If working on n8n Cloud, Click the 'Sign in with Google' button ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/200aac6aa2ac8e4d671f50d8d6c2186e4c571449ec57610d5209a036c968caf1-image.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=32f12df6728c78005210010747030ce3) **Step 4** Grant permissions to read and monitor your Google Sheets **Step 5** If working on n8n Instance, Follow the OAuth2 authentication process [here](https://docs.n8n.io/integrations/builtin/credentials/google/oauth-generic/#finish-your-n8n-credential) **Step 6** Fill the Client ID and Client Secret fields ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/789e2e7e6f7921533ac90c703b4307f90d6b913b187632b61f2f0957687739c7-image.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=e8d3ffbe0b61d87f977156cd453ad95e) **Step 7** Save the credentials #### Google Sheets Update Credentials: **Step 1** Click on the **Update Company Row** node **Step 2** Under Credentials, select the same credentials or create new ones (The same you did above) **Step 3** Ensure permissions include write access to your sheets ## ### Step 4: Configure Anthropic Credentials **Step 1** Click on the **Anthropic Chat Model** node **Step 2** Under Credentials, click **Create New** **Step 3** Enter your Anthropic API key ![](https://mintcdn.com/explorium/s1uRl5fGOrKpLiGF/images/reference/d5647de529ef23690408c6633136648999496c573dfac31e135868f2d1e3e30e-image.png?fit=max\&auto=format\&n=s1uRl5fGOrKpLiGF\&q=85\&s=8c8e941a317b53f74bd19eba43d6153c) **Step 4** Save the credentials ### Step 5: Configure Explorium MCP Credentials **Step 1** Click on the **MCP Client** node **Step 2** Under Credentials, click **Create New** (Header Auth) **Step 3** Fill the Name field with `api_key` **Step 4** Fill the Value field with your Explorium API Key ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/8b89ad77232f806faab6590caca7dacc7a673f61ba10275f75e5bfec202fdbd5-image.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=37ed830df917eaa56abc4ad8da5285cb) **Step 5** Save the credentials ### Step 6: Link Your Google Sheet **Step 1** In the **Google Sheets Trigger** node: * Select your Google Sheet from the dropdown * Select the worksheet (usually "Sheet1") ![](https://mintcdn.com/explorium/s1uRl5fGOrKpLiGF/images/reference/a8b6a167d9bc140714c7bdd08af5c08597f0a58af73231d239a46c95410cf051-image.png?fit=max\&auto=format\&n=s1uRl5fGOrKpLiGF\&q=85\&s=d0f911af699834254c3d1d86c69a9c32) **Step 2** In the **Update Company Row** node: * Select the same Google Sheet and worksheet * Ensure the matching column is set to `row_number` ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/10bfafaaa3572bc805d5482d038348d41bced7b03bf94c8f04a377218d7dcaa3-image.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=7247285dc9fb6a5456e5390039f846e8) ### Step 7: Activate the Workflow **Step 1** Click the **Active** toggle in the top right to activate the workflow **Step 2** The workflow will now monitor your sheet every minute for changes ## How It Works ### Workflow Process Flow 1. **Google Sheets Trigger**: Polls your sheet every minute for new rows or changes to name/website fields 2. **Filter Valid Rows**: Validates that both company name and website are present 3. **Loop Over Items**: Processes each company individually 4. **AI Agent**: Uses Explorium MCP to: * Find the company's business ID * Retrieve firmographic data (revenue, employees, NAICS code) 5. **Format Output**: Structures the data for Google Sheets 6. **Update Company Row**: Writes the enriched data back to the original row ### Trigger Behavior * **First Activation**: May process all existing rows to establish a baseline * **Ongoing Operation**: Only processes new rows or rows where name/website fields change * **Polling Frequency**: Checks for changes every minute ## Usage ### Adding New Companies **Step 1** Add a new row to your Google Sheet **Step 2** Fill in the `name` and `website` columns **Step 3** Within 1 minute, the workflow will automatically: * Detect the new row * Enrich the company data * Update the remaining columns ### Updating Existing Companies **Step 1** Modify the `name` or `website` field of an existing row **Step 2** The workflow will re-process that row with the updated information **Step 3** All enrichment data will be refreshed ### Monitoring Executions 1. In n8n, go to **Executions** to see workflow runs 2. Each execution shows: * Which rows were processed * Success/failure status * Detailed logs for troubleshooting ## Troubleshooting ### Common Issues **All rows are processed instead of just new/updated ones** * Ensure the workflow is **activated**, not just run manually * Manual test runs will process all rows * First activation may process all rows once **No data is returned for a company** * Verify the company name and website are correct * Check if the company exists in Explorium's database * Some smaller or newer companies may not have data available **Workflow isn't triggering** * Confirm the workflow is activated (Active toggle is ON) * Check that changes are made to the `name` or `website` columns * Verify Google Sheets credentials have proper permissions **Authentication errors** * Re-authenticate Google Sheets credentials * Verify Anthropic API key is valid and has credits * Check Explorium Bearer token is correct and active ### Error Handling The workflow processes each row individually, so if one company fails to enrich: * Other rows will still be processed * The failed row will retain its original data * Check the execution logs for specific error details ## Best Practices 1. **Data Quality**: Ensure company names and websites are accurate for best results 2. **Website Format**: Include full URLs ([https://example.com](https://example.com/)) rather than just domain names 3. **Batch Processing**: The workflow handles multiple updates efficiently, so you can add several companies at once 4. **Regular Monitoring**: Periodically check execution logs to ensure smooth operation ## API Limits & Considerations * **Google Sheets API**: Subject to Google's API quotas * **Anthropic API**: Each enrichment uses Claude Sonnet 4 tokens * **Explorium MCP**: Rate limits may apply based on your subscription ## Support For issues specific to: * **n8n platform**: Consult n8n documentation or community * **Google Sheets integration**: Check n8n's Google Sheets node documentation * **Explorium MCP**: Contact Explorium support for API-related issues * **Anthropic/Claude**: Refer to Anthropic's documentation for API issues ## Example Use Cases 1. **Sales Prospecting**: Automatically enrich lead lists with company size and revenue data 2. **Market Research**: Build comprehensive databases of companies in specific industries 3. **Competitive Analysis**: Track and monitor competitor information 4. **Investment Research**: Gather firmographic data for potential investment targets # HubSpot Contact Enrichment with Explorium Source: https://developers.explorium.ai/integrations/n8n/hubspot-contact-enrichment Automatically enrich new HubSpot contacts with professional email addresses and phone numbers using Explorium's B2B intelligence platform. ## Template Download the following json file and import it to a new n8n workflow: > **[hubspot\_flow.json](https://drive.usercontent.google.com/u/0/uc?id=1jbXjAIWEcyQoAAZQNQVLgoKw5jC-gF2h\&export=download)** ![](https://mintcdn.com/explorium/s1uRl5fGOrKpLiGF/images/reference/e0aa256a5be40904212aff7d1c0942ea8d18ff0797435468b8fea557c2a8aa98-image.png?fit=max\&auto=format\&n=s1uRl5fGOrKpLiGF\&q=85\&s=5c68561f05940f5aca5eef4a02449b85) ## Overview This n8n workflow monitors your HubSpot instance for newly created contacts and automatically enriches them with additional contact information. When a contact is created, the workflow: **Step 1** Detects the new contact via HubSpot webhook trigger **Step 2** Retrieves recent contact details from HubSpot **Step 3** Matches the contact against Explorium's database using name, company, and email **Step 4** Enriches the contact with professional emails and phone numbers **Step 5** Updates the HubSpot contact record with discovered information This automation ensures your sales and marketing teams have complete contact information, improving outreach success rates and data quality. ## Key Features * **Real-time Webhook Trigger**: Instantly processes new contacts as they're created * **Intelligent Matching**: Uses multiple data points (name, company, email) for accurate matching * **Comprehensive Enrichment**: Adds both professional and work emails, plus phone numbers * **Batch Processing**: Efficiently handles multiple contacts to optimize API usage * **Smart Data Mapping**: Intelligently maps multiple emails and phone numbers * **Profile Enrichment**: Optional additional enrichment for deeper contact insights * **Error Resilience**: Continues processing other contacts if some fail to match ## Prerequisites Before setting up this workflow, ensure you have: 1. **n8n instance** (self-hosted or cloud) 2. **HubSpot account** with: * Developer API access (for webhooks) * Private App or OAuth2 app created * Contact object permissions (read/write) 3. **Explorium API credentials** (API Key) 4. Understanding of HubSpot contact properties ## HubSpot Requirements ### Required Contact Properties The workflow uses these HubSpot contact properties: * `firstname` - Contact's first name * `lastname` - Contact's last name * `company` - Associated company name * `email` - Primary email (read and updated) * `work_email` - Work email (updated by workflow) * `phone` - Phone number (updated by workflow) ### API Access Setup **1. Create a Private App in HubSpot** **Create a Private App** in HubSpot: * Navigate to Settings Integrations Private Apps * Create new app with Contact read/write scopes * Copy the Access Token **2. Set up Webhooks (for Developer API)** **Set up Webhooks** (for Developer API): * Create app in HubSpot Developers portal * Configure webhook for contact.creation events * Note the App ID and Developer API Key ### Custom Properties (Optional) Consider creating custom properties for: * Multiple email addresses * Mobile vs. office phone numbers * Data enrichment timestamps * Match confidence scores ## Installation & Setup ### Step 1: Import the Workflow **Step 1** Create a new workflow. **Step 2** Download the workflow JSON from above. **Step 3** In your n8n instance, go to **Workflows** **Add Workflow** **Import from File** **Step 4** Select the JSON file and click **Import** ### Step 2: Configure HubSpot Developer API (Webhook) **Step 1** Click on the **HubSpot Trigger** node **Step 2** Under Credentials, click **Create New** **Step 3** Enter your HubSpot Developer credentials: * **App ID**: From your HubSpot app * **Developer API Key**: From your developer account * **Client Secret**: From your app settings **Step 4** Save as "HubSpot Developer account" ### Step 3: Configure HubSpot App Token **Step 1** Click on the **HubSpot Recently Created** node **Step 2** Under Credentials, click **Create New** (App Token) **Step 3** Enter your Private App access token **Step 4** Save as "HubSpot App Token account" **Step 5** Apply the same credentials to the **Update HubSpot** node ### Step 4: Configure Explorium API Credentials **Step 1** Click on the **Explorium Match Prospects** node **Step 2** Under Credentials, click **Create New** (HTTP Header Auth) **Step 3** Configure the authentication: * **Name**: `api_key` * **Value**: `YOUR_EXPLORIUM_API_TOKEN` **Step 4** Save as "Header Auth Connection" ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/8b89ad77232f806faab6590caca7dacc7a673f61ba10275f75e5bfec202fdbd5-image.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=37ed830df917eaa56abc4ad8da5285cb) **Step 5** Apply to all Explorium nodes: 1. Explorium Enrich Contacts Information 2. Explorium Enrich Profiles ### Step 5: Configure Webhook Subscription **Step 1** In HubSpot Developers portal: * Go to your app's webhook settings * Add subscription for `contact.creation` events * Set the target URL from the HubSpot Trigger node * Activate the subscription ### Step 6: Activate the Workflow **Step 1** Save the workflow **Step 2** Toggle the **Active** switch to ON **Step 3** The webhook is now listening for new contacts ## How It Works ### Workflow Process Flow ```mermaid theme={null} flowchart TD A["New Contact Created"] --> B["HubSpot Webhook Trigger"] B --> C["Get Recent Contacts"] C --> D["Loop Over Items"] D --> E["Match in Explorium"] E --> F{"Match Found?"} F -->|Yes| G["Extract Prospect IDs"] F -->|No| H["Continue Loop"] G --> I["Enrich Contact Info"] G --> J["Enrich Profile Data"] I --> K["Merge Results"] J --> K K --> L["Update HubSpot Contact"] L --> D H --> D ``` ### Node Descriptions 1. **HubSpot Trigger**: Webhook that fires when new contacts are created 2. **HubSpot Recently Created**: Fetches details of recently created contacts 3. **Loop Over Items**: Processes contacts in batches of 6 4. **Explorium Match Prospects**: Finds matching person in Explorium database 5. **Filter**: Validates successful matches 6. **Extract Prospect IDs**: Collects matched prospect identifiers 7. **Enrich Contacts Information**: Fetches emails and phone numbers 8. **Enrich Profiles**: Gets additional profile data (optional) 9. **Merge**: Combines all enrichment results 10. **Split Out**: Separates individual enriched records 11. **Update HubSpot**: Updates contact with new information ### Data Mapping Logic The workflow maps Explorium data to HubSpot properties: | Explorium Data | HubSpot Property | Notes | | :- | :- | :- | | `professions_email` | `email` | Primary professional email | | `emails[].address` | `work_email` | All email addresses joined | | `phone_numbers[].phone_number` | `phone` | All phones joined with commas | | `mobile_phone` | `phone` (fallback) | Used if no other phones found | ### Data Processing The workflow handles complex data scenarios: * **Multiple emails**: Joins all discovered emails with commas * **Phone numbers**: Combines all phone numbers into a single field * **Missing data**: Uses "null" as placeholder for empty fields * **Name parsing**: Cleans sample data and special characters ## Usage & Operation ### Automatic Processing Once activated: **Step 1** Every new contact triggers the webhook immediately **Step 2** Contact is enriched within seconds **Step 3** HubSpot record is updated automatically **Step 4** Process repeats for each new contact ### Manual Testing To test the workflow: **Step 1** Use the pinned test data in the HubSpot Trigger node, or **Step 2** Create a test contact in HubSpot **Step 3** Monitor the execution in n8n **Step 4** Verify the contact was updated in HubSpot ### Monitoring Performance Track workflow health: **Step 1** Go to **Executions** in n8n **Step 2** Filter by this workflow **Step 3** Monitor success rates **Step 4** Review any failed executions **Step 5** Check webhook delivery in HubSpot ## Troubleshooting ### Common Issues **Webhook not triggering** * Verify webhook subscription is active in HubSpot * Check the webhook URL is correct and accessible * Ensure workflow is activated in n8n * Test webhook delivery in HubSpot developers portal **Contacts not matching** * Verify contact has firstname, lastname, and company * Check for typos or abbreviations in company names * Some individuals may not be in Explorium's database * Email matching improves accuracy significantly **Updates failing in HubSpot** * Check API token has contact write permissions * Verify property names exist in HubSpot * Ensure rate limits haven't been exceeded * Check for validation rules on properties **Missing enrichment data** * Not all prospects have all data types * Phone numbers may be less available than emails * Profile enrichment is optional and may not always return data Error HandlingBuilt-in error resilience: * Failed matches don't block other contacts * Each batch processes independently * Partial enrichment is possible * All errors are logged for review Debugging Tips 1. **Check webhook logs**: HubSpot shows delivery attempts 2. **Review executions**: n8n logs show detailed error messages 3. **Test with pinned data**: Use the sample data for isolated testing 4. **Verify API responses**: Check Explorium API returns expected data ## Best Practices ### Data Quality 1. **Complete contact records**: Ensure name and company are populated 2. **Standardize company names**: Use official names, not abbreviations 3. **Include existing emails**: Improves match accuracy 4. **Regular data hygiene**: Clean up test and invalid contacts ### Performance Optimization 1. **Batch size**: 6 is optimal for rate limits 2. **Webhook reliability**: Monitor delivery success 3. **API quotas**: Track usage in both platforms 4. **Execution history**: Regularly clean old executions ### Compliance & Privacy 1. **GDPR compliance**: Ensure lawful basis for enrichment 2. **Data minimization**: Only enrich necessary fields 3. **Access controls**: Limit who can modify enriched data 4. **Audit trail**: Document enrichment for compliance ## Customization Options ### Additional Enrichment Extend with more Explorium data: * Job titles and departments * Social media profiles * Professional experience * Skills and interests * Company information ### Enhanced Processing Add workflow logic for: * Lead scoring based on enrichment * Routing based on data quality * Notifications for high-value matches * Custom field mapping Integration ExtensionsConnect to other systems: * Sync enriched data to CRM * Trigger marketing automation * Update data warehouse * Send notifications to Slack ## API Considerations ### HubSpot Limits * **API calls**: Monitor daily limits * **Webhook payload**: Max 200 contacts per trigger * **Rate limits**: 100 requests per 10 seconds * **Property limits**: Max 1000 custom properties ### Explorium Limits * **Match API**: Batched for efficiency * **Enrichment calls**: Two parallel enrichments * **Rate limits**: Based on your plan * **Data freshness**: Real-time matching ### Architecture Considerations This workflow integrates with: * HubSpot workflows and automation * Marketing campaigns and sequences * Sales engagement tools * Reporting and analytics * Other enrichment services ### Security Best Practices * **Webhook validation**: Verify requests are from HubSpot * **Token security**: Rotate API tokens regularly * **Access control**: Limit workflow modifications * **Data encryption**: All API calls use HTTPS * **Audit logging**: Track all enrichments ## Advanced Configuration ### Custom Field Mapping Modify the Update HubSpot node to map to custom properties: ```javascript JavaScript theme={null} // Example custom mapping { "custom_mobile": "{{ $json.data.mobile_phone }}", "custom_linkedin": "{{ $json.data.linkedin_url }}", "enrichment_date": "{{ $now.toISO() }}" } ``` ### Conditional Processing Add logic to process only certain contacts: * Filter by contact source * Check for specific properties * Validate email domains * Exclude test contacts ## Support Resources For assistance: * **n8n issues**: Check n8n documentation and forums * **HubSpot API**: Reference HubSpot developers documentation * **Explorium API**: Contact Explorium support * **Webhook issues**: Use HubSpot webhook testing tools # Integrate with n8n Source: https://developers.explorium.ai/integrations/n8n/integrate-with-n8n This guide walks you through building a chat-style workflow that lets an n8n AI Agent call Explorium’s Model Context Protocol (MCP) tools, powered by Anthropic’s Claude. You’ll end up with a flow like this: ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/4bfe7f8c7001e122c491342c5e50b8a42df434470ce8a0a05e4ffe85d147815f-Screenshot_2025-04-29_at_14.33.53.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=b7429b0a5a63368ba30f5597fd50948e) ## 1. Prerequisites | **Requirement** | **Notes** | | :- | :- | | n8n @ v1.31+ | Self-hosted or Cloud | | Explorium **API key** | Get one from your AgentSource Admin Panel | | Anthropic **API key** | Needed for Claude 3.x Sonnet | | SSE endpoint | [https://mcp-v2.explorium.ai/mcp](https://mcp-v2.explorium.ai/mcp) | > [!NOTE] > > Using AgentSource v1? The v1 server at `https://mcp.explorium.ai/mcp` still works but is deprecated and will be retired together with AgentSource v1 — see the [deprecation timeline](/v2/migration-from-v1#v1-deprecation-timeline). ## 2. Create Your Flow **1. Trigger** When chat message received (built-in) **2. AI Agent** type: Tools Agent **3. Anthropic Chat Model** Claude 3.7 Sonnet **4. Memory** simple in-flow memory **5. MCP Client** calls Explorium tools Connect the nodes just like the overview image (dotted lines = resource connections). ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/4c6e4df60f2087a6a4f653d6976a85a90261dfbf9c79c1a089dd241568e5099b-image.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=1a380c9065589ae5cedfc7831afad188) ## 3. Configure Each Node ### 3.1 AI Agent configuration | Setting | Value | | :- | :- | | Agent | Tools Agent | | Source for Prompt | Connected Chat Trigger Node | | System Message | Use a Claude-style system prompt. Example: The assistant is Claude, created by Anthropic. The current date is \{\{ Date() }}.\nYou are powered by Explorium's MCP tools. Always call tools when data is required… | | Chat Model | Connect the Anthropic Chat Model node | | Tool | Connect the MCP Client node | | Memory | Connect the Memory node | ![](https://mintcdn.com/explorium/s1uRl5fGOrKpLiGF/images/reference/a0d1049ff0611fa21b5cf42f2d801f24f341cbd3fca45c64e4e2f5c62651e1a3-image.png?fit=max\&auto=format\&n=s1uRl5fGOrKpLiGF\&q=85\&s=c2af7764cfb136adb10c1c045144b2ee) ### 3.2 Anthropic Chat Model * **Credential**: the Anthropic account you just created * **Model**: Claude 3.7 Sonnet * **Enable Thinking**: On (optional, shows the "thinking" indicator) ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/287a18b0cf2ed0cd1c3f5442c81f97525789be0daf2e765c0c7c716ee514012f-image.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=52da145703ef4ff095f126130f3d49fb) ### 3.3 Anthropic credential Enter your Anthropic key and test – you should see Connection tested successfully. ### 3.4 MCP Client node | Field | Value | | :- | :- | | SSE Endpoint | [https://mcp-v2.explorium.ai/mcp](https://mcp-v2.explorium.ai/mcp) | | Authentication | Header Auth | | Credential for Bearer Auth | Header Auth account | | Tools to include | All | ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/3c3bb20d826407ecbf06fbceb5729385b5df435f459740a7167f3f874e8e91ef-image.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=77b9c8e93c99cd4e12d2e4698e5f32d7) Fill the header fields: * Name: `api_key` * Value: `` ![](https://mintcdn.com/explorium/s1uRl5fGOrKpLiGF/images/reference/a3af8f50960010e8ebc7cf068824cde26635b57a9ac24d7dc25683e84898ff67-image.png?fit=max\&auto=format\&n=s1uRl5fGOrKpLiGF\&q=85\&s=fbf6638d678994d07c450ab2ab63fc1d) ## 4. Test It Out **Step 1** Click ** Open chat** at the bottom of the canvas. **Step 2** Ask something data-centric, e.g. * "Who is the CMO of Snowflake?" **Step 3** You should see the MCP Client fire **Match Businesses ➜ Enrich Businesses** and Claude respond with a neatly-formatted answer. ### Happy prospecting! # n8n Source: https://developers.explorium.ai/integrations/n8n/n8n Explorium n8n Workflow Templates n8n is a powerful workflow automation tool that allows you to connect Explorium with any app or API. Build complex workflows with Explorium's data enrichment capabilities using n8n's visual workflow editor. ## About Explorium on n8n Explorium empowers businesses to build high-performance GTM agents with specialized data infrastructure. Our seamless API integrations and high-quality data drive faster agent development and better results. With years of experience and robust data sets, we deliver context-aware solutions, helping AI agents achieve human-level support. ## Available Workflow Templates Explore our collection of 6 pre-built n8n workflow templates designed to accelerate your data enrichment and automation processes: ### 1. Generate Sales Emails Based on Business Events with Explorium MCP & Claude **Key Nodes:** HTTP Request If Loop Over Items (Split in Batches) +7 more Automatically generate personalized sales emails by monitoring business events and using Claude AI to craft contextual messages based on enriched company data from Explorium. > **[More information](/integrations/n8n/explorium-event-triggered-outreach)** ### 2. Automate HubSpot to Salesforce Lead Creation with Explorium AI Enrichment **Key Nodes:** HTTP Request Merge HubSpot +5 more Seamlessly sync leads from HubSpot to Salesforce while automatically enriching them with comprehensive business and contact data from Explorium for better lead qualification. > **[More information](https://n8n.io/creators/explorium/)** ### 3. Enrich Company Firmographic Data in Google Sheets with Explorium MCP **Key Nodes:** Google Sheets If Loop Over Items (Split in Batches) +7 more Transform your Google Sheets into a powerful business intelligence tool by automatically enriching company data with firmographic information, industry details, and company metrics. > **[More information](/integrations/n8n/google-sheets-company-enrichment-with-explorium-mcp)** ### 4. Search Business Prospects with Natural Language using Claude AI and Explorium MCP **Key Nodes:** HTTP Request If Code +8 more Use natural language queries with Claude AI to search and identify ideal business prospects, leveraging Explorium's comprehensive database for precise targeting. > **[More information](/integrations/n8n/explorium-prospects-search-chatbot)** ### 5. Automated AI Lead Enrichment: Hubspot to Explorium for Enhanced Prospect Data **Key Nodes:** HTTP Request Merge HubSpot +4 more Enhance your HubSpot leads with detailed prospect information including contact details, professional background, and company insights using Explorium's AI-powered enrichment. > **[More information](/integrations/n8n/hubspot-contact-enrichment)** ### 6. Automated AI Lead Enrichment: Salesforce to Explorium for Enhanced Prospect Data **Key Nodes:** HTTP Request Merge Salesforce +4 more Enrich your Salesforce leads automatically with comprehensive B2B data, including technographics, firmographics, and contact information to improve sales effectiveness. > **[More information](/integrations/n8n/salesforce-data-enrichment-workflow)** ## Get Started Ready to build powerful automation workflows? Visit our [n8n creator page](https://n8n.io/creators/explorium/) to explore all available templates and start building today. ## Why Use Explorium with n8n? > **Visual Workflow Builder** > > Create complex automations with n8n's intuitive interface > **Self-hosted Option** > > Run n8n on your own infrastructure for complete control > **400+ Integrations** > > Connect Explorium with hundreds of other services > **Advanced Data Processing** > > Transform and enrich data with powerful built-in functions > **AI-Ready** > > Build agent-driven workflows with Explorium's specialized data ## Common Use Cases * **Lead Enrichment Pipelines:** Automatically enrich leads from multiple sources * **Data Synchronization:** Keep your CRM and databases updated with fresh company data * **Competitive Intelligence:** Monitor and enrich competitor information * **Account-Based Marketing:** Build targeted lists with enriched company data * **Sales Intelligence:** Create automated prospecting workflows ## Getting Started with n8n **Step 1** Sign up for n8n Cloud or self-host your instance **Step 2** Install the Explorium node from the community nodes **Step 3** Import any of our templates to get started quickly **Step 4** Customize the workflows to match your specific needs **Step 5** Execute and monitor your automated workflows ## Resources > **[Explorium n8n page](https://n8n.io/creators/explorium/)** > **[n8n Documentation](https://docs.n8n.io/)** > **[n8n Community Forum](https://community.n8n.io/)** *Explorium is the essential data partner for teams building agent-driven technologies.* # Salesforce Data Enrichment Workflow Source: https://developers.explorium.ai/integrations/n8n/salesforce-data-enrichment-workflow Automatically enrich new Salesforce leads with contact information (email addresses and phone numbers) using Explorium's B2B intelligence platform. ## Template Download the following json file and import it to a new n8n workflow: > **[salesforce\_Workflow.json](https://drive.usercontent.google.com/u/0/uc?id=1iEv-pVFomUka59u7d0dpaapKb4uFO1fh\&export=download)** ![](https://mintcdn.com/explorium/s1uRl5fGOrKpLiGF/images/reference/ff5311e05d57986ec0e39aa3bdda758f699020513cf1644a33814f68c7fd1db7-image.png?fit=max\&auto=format\&n=s1uRl5fGOrKpLiGF\&q=85\&s=2ad97c3294d25af51f5bf903d40541c5) ## Overview This n8n workflow monitors your Salesforce instance for new leads and automatically enriches them with missing contact information. When a lead is created, the workflow: 1. Detects the new lead via Salesforce trigger 2. Matches the lead against Explorium's database using name and company 3. Enriches the lead with professional email addresses and phone numbers 4. Updates the Salesforce lead record with the discovered contact information This automation ensures your sales team always has the most up-to-date contact information for new leads, improving reach rates and accelerating the sales process. ## Key Features * **Real-time Processing**: Triggers automatically when new leads are created in Salesforce * **Intelligent Matching**: Uses lead name and company to find the correct person in Explorium's database * **Contact Enrichment**: Adds professional emails, mobile phones, and office phone numbers * **Batch Processing**: Efficiently handles multiple leads to optimize API usage * **Error Handling**: Continues processing other leads even if some fail to match * **Selective Updates**: Only updates leads that successfully match in Explorium ## Prerequisites Before setting up this workflow, ensure you have: 1. **n8n instance** (self-hosted or cloud) 2. **Salesforce account** with: * OAuth2 API access enabled * Lead object permissions (read/write) * API usage limits available 3. **Explorium API credentials** (API Key) 4. Basic understanding of Salesforce lead management ## Salesforce Requirements ### Required Lead Fields The workflow expects these standard Salesforce lead fields: * `FirstName` - Lead's first name * `LastName` - Lead's last name * `Company` - Company name * `Email` - Will be populated/updated by the workflow * `Phone` - Will be populated/updated by the workflow * `MobilePhone` - Will be populated/updated by the workflow ### API Permissions Your Salesforce integration user needs: * Read access to Lead object * Write access to Lead object fields (Email, Phone, MobilePhone) * API enabled on the user profile * Sufficient API calls remaining in your org limits ## Installation & Setup ### Step 1: Import the Workflow **Step 1** Create a new workflow. **Step 2** Download the workflow JSON from above. **Step 3** In your n8n instance, go to **Workflows** **Add Workflow** **Import from File** **Step 4** Select the JSON file and click **Import** ### Step 2: Configure Salesforce OAuth2 Credentials **Step 1** Click on the **Salesforce Trigger** node **Step 2** Under Credentials, click **Create New** **Step 3** Follow the OAuth2 flow: * **Client ID**: From your Salesforce Connected App * **Client Secret**: From your Salesforce Connected App * **Callback URL**: Copy from n8n and add to your Connected App **Step 4** Authorize the connection **Step 5** Save the credentials as "Salesforce account connection" **Note**: Use the same credentials for all Salesforce nodes in the workflow. ### Step 3: Configure Explorium API Credentials **Step 1** Click on the **Match\_prospect** node **Step 2** Under Credentials, click **Create New** (HTTP Header Auth) **Step 3** Configure the header: * **Name**: `api_key` * **Value**: `YOUR_EXPLORIUM_API_TOKEN` **Step 4** Save as "Header Auth account" ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/8b89ad77232f806faab6590caca7dacc7a673f61ba10275f75e5bfec202fdbd5-image.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=37ed830df917eaa56abc4ad8da5285cb) **Step 5** Apply the same credentials to the **Explorium Enrich Contacts Information** node ### Step 4: Verify Node Settings **1. Salesforce Trigger** * Trigger On: `Lead Created` * Poll Time: Every minute (adjust based on your needs) **2. Salesforce Get Leads** * Operation: `Get All` * Condition: `CreatedDate = TODAY` (fetches today's leads) * Limit: 20 (adjust based on volume) **3. Loop Over Items** * Batch Size: 6 (optimal for API rate limits) ### Step 5: Activate the Workflow **Step 1** Save the workflow **Step 2** Toggle the **Active** switch to ON **Step 3** The workflow will now monitor for new leads every minute ## How It Works ### Workflow Process Flow ```mermaid theme={null} flowchart TD A["New Lead Created"] --> B["Salesforce Trigger"] B --> C["Get Today's Leads"] C --> D["Loop Over Items"] D --> E["Match Prospect in Explorium"] E --> F{"Match Found?"} F -->|Yes| G["Extract Prospect IDs"] G --> H["Enrich Contact Info"] H --> I["Merge Data"] I --> J["Update Salesforce Lead"] J --> D F -->|No| D ``` ### Detailed Node Descriptions 1. **Salesforce Trigger**: Polls Salesforce every minute for new leads 2. **Get Today's Leads**: Retrieves all leads created today to ensure none are missed 3. **Loop Over Items**: Processes leads in batches of 6 for efficiency 4. **Match Prospect**: Searches Explorium for matching person using name + company 5. **Filter**: Checks if a valid match was found 6. **Extract Prospect IDs**: Collects all matched prospect IDs 7. **Enrich Contacts**: Fetches detailed contact information from Explorium 8. **Merge**: Combines original lead data with enrichment results 9. **Split Out**: Separates individual enriched records 10. **Update Lead**: Updates Salesforce with new contact information ### Data Mapping The workflow maps Explorium data to Salesforce fields as follows: | Explorium Field | Salesforce Field | Fallback Logic | | :- | :- | :- | | `emails[0].address` | Email | Falls back to `professions_email` | | `mobile_phone` | MobilePhone | Falls back to `phone_numbers[1]` | | `phone_numbers[0]` | Phone | Falls back to `mobile_phone` | ## Usage & Monitoring ### Automatic Operation Once activated, the workflow runs automatically: **Step 1** Checks for new leads every minute **Step 2** Processes any leads created since the last check **Step 3** Updates leads with discovered contact information **Step 4** Continues running until deactivated ### Manual Testing To test the workflow manually: **Step 1** Create a test lead in Salesforce **Step 2** Click "Execute Workflow" in n8n **Step 3** Monitor the execution to see each step **Step 4** Verify the lead was updated in Salesforce ### Monitoring Executions Track workflow performance: **Step 1** Go to **Executions** in n8n **Step 2** Filter by this workflow **Step 3** Review successful and failed executions **Step 4** Check logs for any errors or issues ## Troubleshooting ### Common Issues **No leads are being processed** * Verify the workflow is activated * Check Salesforce API limits haven't been exceeded * Ensure new leads have FirstName, LastName, and Company populated * Confirm OAuth connection is still valid **Leads not matching in Explorium** * Verify company names are accurate (not abbreviations) * Check that first and last names are properly formatted * Some individuals may not be in Explorium's database * Try testing with known companies/contacts **Contact information not updating** * Check Salesforce field-level security * Verify the integration user has edit permissions * Ensure Email, Phone, and MobilePhone fields are writeable * Check for validation rules blocking updates **Authentication errors** * Salesforce: Re-authorize OAuth connection * Explorium: Verify Bearer token is valid and not expired * Check API quotas haven't been exceeded ### Error Handling The workflow includes built-in error handling: * Failed matches don't stop other leads from processing * Each batch is processed independently * Failed executions are logged for review * Partial successes are possible (some leads updated, others skipped) ## Best Practices ### Data Quality 1. **Ensure complete lead data**: FirstName, LastName, and Company should be populated 2. **Use full company names**: "Microsoft Corporation" matches better than "MSFT" 3. **Standardize data entry**: Consistent formatting improves match rates ### Performance Optimization **1. Adjust batch size** Lower if hitting API limits, higher for efficiency **2. Modify polling frequency** Every minute for high volume, less frequent for lower volume **3. Set appropriate limits** Balance between processing speed and API usage ### Compliance & Privacy 1. **Data permissions**: Ensure you have rights to enrich lead data 2. **GDPR compliance**: Consider privacy regulations in your region 3. **Data retention**: Follow your organization's data policies 4. **Audit trail**: Monitor who has access to enriched data ## Customization Options ### Extend the Enrichment Add more Explorium enrichment by: 1. Adding firmographic data (company size, revenue) 2. Including technographic information 3. Appending social media profiles 4. Adding job title and department verification ### Modify Trigger Conditions Change when enrichment occurs: * Trigger on lead updates (not just creation) * Add specific lead source filters * Process only leads from certain campaigns * Include lead score thresholds ### Add Notifications Enhance with alerts: * Email sales reps when leads are enriched * Send Slack notifications for high-value matches * Create tasks for leads that couldn't be enriched * Log enrichment metrics to dashboards ## API Considerations ### Salesforce Limits * API calls: Each execution uses \~4 Salesforce API calls * Polling frequency: Consider your daily API limit * Batch processing: Reduces API usage vs. individual processing ### Explorium Limits * Match API: One call per batch of leads * Enrichment API: One call per batch of matched prospects * Rate limits: Respect your plan's requests per minute ### Integration Architecture This workflow can be part of a larger lead management system: 1. **Lead Capture** **This Workflow** **Lead Scoring** **Assignment** 2. Can trigger additional workflows based on enrichment results 3. Compatible with existing Salesforce automation (Process Builder, Flows) 4. Works alongside other enrichment tools ### Security Considerations * **Credentials**: Stored securely in n8n's credential system * **Data transmission**: Uses HTTPS for all API calls * **Access control**: Limit who can modify the workflow * **Audit logging**: All executions are logged with details ### Support Resources For assistance with: * **n8n issues**: Consult n8n documentation or community forum * **Salesforce integration**: Reference Salesforce API documentation * **Explorium API**: Contact Explorium support for API questions * **Workflow logic**: Review execution logs for debugging # Integrate with Zapier Source: https://developers.explorium.ai/integrations/zapier/integrate-with-zapier This document provides an overview and guidance on how to use our company's Zapier integration. ## Introduction Zapier is a powerful automation tool that allows you to connect our service with hundreds of other apps. With Zapier, you can create automated workflows called "Zaps" that transfer data between different applications, saving you time and reducing manual effort. ## Getting Started **1. Accessing Zapier** Navigate to Zapier and either log in to your existing account or create a new one. **2. Connecting Our App** Search for our app in the Zapier app directory and connect your account using the provided credentials, click on the account field: ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/869724cf25a5d1bb834b9b2071d46a6a87cb89e01e87d7fc48422e63c90f4983-image17.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=1d224d2aed4a14b949823da606b065bd) Click on "connect a new account" and a window to enter the credentials will open: ![](https://mintcdn.com/explorium/s1uRl5fGOrKpLiGF/images/reference/cefb345851bc1887adf094f5de28a24dbd7464a5f05c19fd6a8c1e6134340844-image16.png?fit=max\&auto=format\&n=s1uRl5fGOrKpLiGF\&q=85\&s=c8d447bd61ec8d86a06e4b65dbe074b8) Explorium api key is required, open ai key is optional, but is necessary to use the MCP action, all the other action require only Explorium's key. **3. Creating Zaps** Begin creating your Zaps by selecting a trigger from our app and an action from another app (or vice versa). To use Explorium's API click on the zap box ![](https://mintcdn.com/explorium/s1uRl5fGOrKpLiGF/images/reference/e9f09e5f6450e436ca5b25e18627f437b01c4b597e7694e06012897104154db4-image14.png?fit=max\&auto=format\&n=s1uRl5fGOrKpLiGF\&q=85\&s=a7a811b210d9cbf00ee33ca2b6ccbffd) Then search for explorium: ![](https://mintcdn.com/explorium/s1uRl5fGOrKpLiGF/images/reference/ff4cd27c251a017aa9cffb7e2cb3952e3d385144bc7dea7de8f57bde323fd215-image12.png?fit=max\&auto=format\&n=s1uRl5fGOrKpLiGF\&q=85\&s=6b50783468f38eaa9616f364cf3660e5) After that you can choose which action do you want to use (enrich, match, fetch): ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/3adc3dad195f2b4845401155a9bec7c76dbd09d52714b7194419e025f79b52f2-image11.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=6dcd0a0a9804d7fd85bfaa01c21a0887) ### Triggers Triggers are events within our application that can initiate a Zap. The following triggers are currently supported: * **New Item Created:** Triggers when a new item is added to your account. * **Item Updated:** Triggers when an existing item is modified. ### Actions Actions are tasks that Zapier performs in another application when a trigger occurs. The following actions are available: * **Fetch:** We have 2 Fetch actions - businesses and prospects, in each fetch business you can fill the different fields, some are dropdowns, some are free values with a certain pattern listed, the first few fields which have limited values, are dropdowns with fixed values (eg. company size, age, revenue, etc), other fields are free text but with a format stated when hovering on the name (NAICS, category fields, etc.) ![](https://mintcdn.com/explorium/s1uRl5fGOrKpLiGF/images/reference/b840b4885f8a3ce78777876e75d2239cdd29d9b16ab548858f7fa36dee7aefe0-image11.png?fit=max\&auto=format\&n=s1uRl5fGOrKpLiGF\&q=85\&s=5f782e6fedc7c818207b921e17630415) * **Output:** The output on fetch actions is with line items, meaning each field getting back from the fetch api has all the values returned in an array, so for example, if you got 10 results, each field will have all the 10 results by the order it got them. ![](https://mintcdn.com/explorium/s1uRl5fGOrKpLiGF/images/reference/efb994586bb10b52a03116bd4240cafd2c85638c3125ac0b7b6f0c00132f72f7-image15.png?fit=max\&auto=format\&n=s1uRl5fGOrKpLiGF\&q=85\&s=8cdd93a4168a1b5c8a73e7d107825846) * **Match:** There are 2 Match actions, for businesses and prospects ![](https://mintcdn.com/explorium/s1uRl5fGOrKpLiGF/images/reference/bd292ae267809905b2fad67f58ea8484c74f492cf32cab34527c2fc9ede0132f-image2.png?fit=max\&auto=format\&n=s1uRl5fGOrKpLiGF\&q=85\&s=dcc2bc91a2c60c89e91459fc4d1809fb) * **Output:** The output for the match actions will be one field which is the matched id ![](https://mintcdn.com/explorium/s1uRl5fGOrKpLiGF/images/reference/af22fb61bb9a1c04ca77e786ee5d489556179dadb33cf3d54681ad33a6dee1a3-image7.png?fit=max\&auto=format\&n=s1uRl5fGOrKpLiGF\&q=85\&s=caba61244cc86b1f1f909adbd1f3d2ee) * **Enrich:** Each of the enrich actions can get either a matched id, or the same inputs as matching, if given the same inputs as matching (For example email in prospecting or company name and website in businesses) it will match before enriching, if given a matched id it will skip matching and enrich, all the fields are optional but it is required to insert at least one of the above. Each enrich action has a dropdown to choose which enrichments you want to enrich. ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/36bce66f7f86d6b31c0fedc46da521bdf32b2f2b8a0878fc44d430cbd75c9ab6-image17.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=e0afd380d61f1cf5a3c24ce3960a6967) After enriching, in the next step the output will be available, with each field separate and the user can choose which fields he wants to continue with ![](https://mintcdn.com/explorium/s1uRl5fGOrKpLiGF/images/reference/ae8fffc5deea6b046a7ddf82f823d386646d81f627c02028c5a6467c4443a1ed-image13.png?fit=max\&auto=format\&n=s1uRl5fGOrKpLiGF\&q=85\&s=4531dc950306e7b7ec6cf889685fa294) * **MCP:** To use Explorium’s MCP we are using an Endpoint that you can write to the mcp, and get a response ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/2a96e9f6f5d5c7d44dda507eb193a0c800069eba506ddcdc911f4a449b625bfc-image5.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=365855c4c34d5b01c775365067fc9078) * **Output:** The output for the mcp prompt will be one field - Response, you can use the response as it is, or use one of zapiers actions to extract data or filter data out of it, here is an example output and how to use it in zapier: ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/1e76f29f15865811e708357d0d5a3f32d54e39c2c234f41482b0bf92d7f9a4b8-image6.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=de199f66a2ac7ad1e863ebfccd65864d) The response is analyzed by zapier’s AI action, and being returned to the google sheet after it extracted the relevant fields we wanted from the MCP response. ## Templates Templates are ready sets of actions that can be copied and used by one click. Each template can be used to create a zap, after using a template the user can change any action or any of the fields. **Example of a templates:** ![](https://mintcdn.com/explorium/s1uRl5fGOrKpLiGF/images/reference/f6eea5b7452f25f54e637b2752ea68527a661134851a34f979545a5cf96799b9-image9.png?fit=max\&auto=format\&n=s1uRl5fGOrKpLiGF\&q=85\&s=b6a99d577e4e3e43c40ba1723a0d95f7) In this case, after the user will choose this template, he can alter the fields to his use, or to his purpose, the webhook can be changed to any trigger (Google sheets, slack, email, etc). In the Explorium MCP action, the prompt and the fields being sent can be changed ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/94281629d60bf25fc27579f7db5ec5b8b54154f53605c8145ffbd2eaa4f593b0-image8.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=05f6511a39ac43c4dc6498dd718a555d) This is the prompt text in the template, it is editable and can be changed, the output format will stay the same regardless (in the MCP action, the output is always a “response” field for example). Another template that can be used is the company research: ![](https://mintcdn.com/explorium/s1uRl5fGOrKpLiGF/images/reference/e60bf39142c65113b2a67ffffb98b6e72bad03816d4a69bd9398c7b8842d9b09-image3.png?fit=max\&auto=format\&n=s1uRl5fGOrKpLiGF\&q=85\&s=2e5a632cd7f868adcf77515779da775a) Here, after the user will choose to use this template, he can change the inputs to be to his desire, and also edit and change the MCP prompt as before, in this template we utilize “AI by Zapier” to extract different columns to be sent back to the google sheet. ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/0f18d06f021648d5c0a334df4fa3a570e1c0245f71c14801fa93b32e1349040f-image1.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=736653532752d2d4c7dd00bb7ec274b9) The configurable fields are fully customizable, the template is just a general direction of a specific flow that can be changed to the user needs. ## Using Webhooks ### Introduction to Webhooks Webhooks: Webhooks are automated messages sent from an application when a specific event occurs. They are used for real-time data communication between different systems, allowing one application to notify another about an event as it happens, rather than relying on periodic polling. ### Prerequisites Before starting, ensure the following are in place: * Active Zapier account. * Access to our API documentation and necessary API keys/tokens. [https://admin.explorium.ai/](https://admin.explorium.ai/) * Understanding of the specific API endpoints and data structures relevant to the integration. ### Creating a Webhook Zap in Zapier #### Setting up the Trigger (Webhook) **1. Log in to Zapier** Navigate to your Zapier dashboard and click "Create Zap." **2. Choose App & Event** Search for and select "Webhooks by Zapier" as the trigger app. **3. Choose Trigger Event** Select "Catch Hook." **4. Customize Hook** * Copy Webhook URL: Copy the provided Zapier Webhook URL. This URL will be used to send data from our APIs. ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/3b3b6a1eb4137ed84b63a3403e6228935ee17f04b6ae0b7cc6419fe416a683f0-image5.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=9a93e146fb2f347a5f5ce2dcce0cd5ac) * The url to connect the webhook is present in the "Test" tab: ![](https://mintcdn.com/explorium/s1uRl5fGOrKpLiGF/images/reference/e28d956983bd9966ca8af86a3d2640e0ab0084a632b3af08855375fd74bb2699-image1.png?fit=max\&auto=format\&n=s1uRl5fGOrKpLiGF\&q=85\&s=ad7450502b0a936a65740a3283d01bb3) ### Configuring Our API to Send Data to the Webhook The webhook api docs: [/reference/webhooks](/reference/webhooks) **Step 1** Follow the guide at Explorium documentation for webhooks. **2. Configure Webhook** Take the url from the webhook action in zapier, and use it in "webhook\_url", the partner id can be visible in the admin app topbar. ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/704f9c39ef064c50742617e23e9126a9ab9a738fd443e2f5d4fcb841a56a1f17-image2.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=0a397e93a8d567c4f2f04a3db7c8274f) **3. Enrolling events** After setting up the webhook, enroll into the events you would wish to accept, this can be done with this api: [/reference/businesses/events/add\_businesses\_enrollments](/reference/businesses/events/add_businesses_enrollments) Here is an example call for that endpoint: ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/7ede69775ac09d114a4eb8d3657cb2bbe3968b417f384326c976b9506f30d423-image3.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=91be955bda97b97b95b86b67055d35c8) ### Setting up the Action (Integrating with Other Apps) **1. Choose Action App & Event** Select the desired application (e.g., Google Sheets, Slack, CRM) and the specific action event (e.g., Create Spreadsheet Row, Send Channel Message, Create Contact). **2. Choose Account** Connect your account for the chosen action app. **3. Set up Action** Map the data received from the Webhook (from "Catch Hook") to the fields required by the action app. After setting up you’re webhook, you can use different actions zapier has, one recommended action is the Explorium mcp - Connecting the webhook to Explorium’s MCP allows you to research the event, and send the response to any application. ![](https://mintcdn.com/explorium/TmftfUQ2HnGT0gSe/images/reference/036168704e9cab49d34a5ce984160572b2cee601499b5cc67857b3906c0d6045-image4.png?fit=max\&auto=format\&n=TmftfUQ2HnGT0gSe\&q=85\&s=2f281c2ab33b42f761fbf63bbf5857b0) # Zapier Source: https://developers.explorium.ai/integrations/zapier/zapier Explorium AgentSource Zapier Integration Templates Explorium AgentSource integrates seamlessly with Zapier, allowing you to connect with thousands of popular apps and automate your workflows without writing any code. ## Available Templates Quickly automate Explorium AgentSource integrations with these pre-built Zapier templates: ### 1. Enrich businesses from new or updated Google Sheets rows with Explorium AgentSource **Google Sheets Explorium AgentSource** Automatically enrich business data whenever a new row is added or updated in your Google Sheets spreadsheet. **Apps:** Google Sheets + Explorium AgentSource ### 2. Research and update companies from new or updated Google Sheets rows with MCP prompts Premium **Google Sheets Explorium AgentSource AI by Zapier** Use AI-powered prompts to research companies and update your data when Google Sheets rows change. **Apps:** Google Sheets + Explorium AgentSource + AI by Zapier **Note:** Requires AI by Zapier (Premium) ### 3. Enrich new Salesforce contacts with Explorium AgentSource Premium **Salesforce Explorium AgentSource** Automatically enrich your Salesforce contacts with comprehensive business and prospect data from Explorium. **Apps:** Salesforce + Explorium AgentSource **Note:** Requires Salesforce (Premium) ### 4. Enrich and update new HubSpot contacts with profile data from Explorium AgentSource **HubSpot Explorium AgentSource** Keep your HubSpot contacts up-to-date with enriched profile information from Explorium AgentSource. **Apps:** HubSpot + Explorium AgentSource ### 5. Enrich new Salesforce contacts with Explorium AgentSource data and add them to HubSpot Premium **Salesforce Explorium AgentSource HubSpot** Bridge your Salesforce and HubSpot systems by enriching Salesforce contacts and automatically adding them to HubSpot. **Apps:** Salesforce + Explorium AgentSource + HubSpot **Note:** Requires Salesforce (Premium) ## Get Started Ready to automate your workflows? Visit our [Zapier integration page](https://zapier.com/apps/explorium-agentsource-ca2244/integrations) to explore all available templates and start building your automated workflows today. ## Key Features > **No code required** > > Set up automations with simple clicks > **Free core features** > > Get started without a credit card > **7,000+ app integrations** > > Connect Explorium AgentSource with your favorite tools > **Real-time data enrichment** > > Automatically enrich your business and prospect data > **Multi-app workflows** > > Create complex automations across multiple platforms ## Popular Use Cases * **Sales Operations:** Automatically enrich new leads from your CRM * **Marketing Operations:** Keep contact databases updated with fresh company data * **Data Management:** Sync enriched data across multiple platforms * **Lead Scoring:** Use enriched data to better qualify and score leads ## Support Need help setting up your Zapier integration? Check out: > **[Zapier Help Center](https://help.zapier.com/)** > [!NOTE] > > **Note:** > > *Templates marked with require premium apps. Zapier offers a 14-day trial for premium features and apps.*