> ## Documentation Index
> Fetch the complete documentation index at: https://developers.explorium.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# What's new in v2

> 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.

## 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.
</Warning>

* `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`

## 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

<Card title="Migrating from v1" icon="arrow-right-arrow-left" href="/v2/migration-from-v1">
  Endpoint mapping and the v1 deprecation timeline
</Card>
