Retrieve Contact Info at Scale

Contact info is requested asynchronously and metered separately from enrichment — the workflow is built around batches, not per-record calls.

Tip: You don’t always have to wait for the poll. On the v3 contact-info endpoint, the submit response returns any contact data we already hold for the requested persons immediately in its items array — cached records come back on the spot, while the batch keeps running to fill in whatever’s missing.

Step paths below are relative — every request also needs the version and environment prefix, https://api.aggknowledgeai.com/v2/{environment}. So POST /person/enrich is called at https://api.aggknowledgeai.com/v2/test/person/enrich. See Environments.
1
Collect person IDs
Contact requests key off personId — gather them via Enrich, Match, or Discover first.
2
Submit the requestPOST /person/contact-info
Batch the qualified set and pass your own IDs in metadata for reconciliation, same as bulk enrichment. On v3 the path is POST /contact-info, and the response’s items already carry any contact points we have on file, so you can action those without waiting.
3
Poll batch statusGET /person/contact-info/{id}
Poll with the id returned by the submit call. On v3 the path is GET /contact-info/{id}. Contact resolution takes longer than enrichment — poll with generous backoff rather than tight loops.
4
Consume results
Each contact point carries a verification status and confidence — store them and route only verified points to outbound systems.
5
Set a refresh policy
Don’t re-request records you haven’t actioned; contact data has a cache window and re-requests inside it return the same result.
Warning: Contact data carries compliance obligations — make sure your outreach satisfies the regulations that apply in your recipients’ jurisdictions.