Integrations
Apollo.io
An Apollo.io integration connects an Apollo API key to Mobius so loops can search and enrich people and organizations.
Use Apollo.io when a run needs sales or account research before creating a ticket, updating a CRM, or drafting a human review artifact.
Capability map
| Capability | Value |
|---|---|
| Provider ID | apollo |
| Auth kind | api_key |
| Connect flow | Inline API key |
| Actions | Yes |
| Events | No |
| Webhook delivery | No |
| Event samples | No |
| Live status | No |
Connect Apollo.io
| Surface | Support |
|---|---|
| App | Open Library > Integrations, choose Apollo.io, and paste the API key. |
| CLI | The mobius CLI does not connect Apollo.io integrations yet. Use the app or API. |
| API | Call POST /v1/projects/{project}/integrations/providers/apollo/connect with the Apollo credential body from the API reference. |
Use a project-owned key when output depends on your Apollo plan, saved filters, or account quota.
Actions
Apollo holds two separate populations of records, and each action reads exactly one of them. People and organizations are Apollo's global prospecting database. You search it to find companies and people you do not yet know, and these calls spend Apollo credits. Accounts and contacts are the records already saved in your own Apollo workspace, and those calls are free.
Prospecting, against Apollo's database:
apollo.person.search
apollo.person.enrich
apollo.organization.search
apollo.organization.enrich
apollo.organization.bulk_enrich
apollo.job_posting.list
apollo.news_article.searchYour Apollo workspace:
apollo.account.search
apollo.account.get
apollo.account.create
apollo.account.update
apollo.account.update_owner
apollo.account_stage.list
apollo.contact.search
apollo.contact.create
apollo.contact.update
apollo.contact_stage.list
apollo.list.searchSearch before enrichment when the run starts from partial account or contact data. Enrichment calls usually spend provider quota, so keep them behind a specific trigger condition.
apollo.person.search identifies matches but withholds contact data: last names
come back partially masked and emails and phone numbers appear only as
availability flags. Pass a match to apollo.person.enrich to resolve the
contact details.
Use apollo.organization.bulk_enrich instead of repeated
apollo.organization.enrich calls when working through a list; it takes up to
ten domains per call.
apollo.job_posting.list and apollo.news_article.search are timing signals for
account research: open roles and funding or hiring news for a company you have
already identified. Both take an Apollo organization ID and spend a credit per
page.
Searching your own workspace first is usually cheaper than enriching. A run that
calls apollo.contact.search before apollo.person.enrich skips paying for
people you already know.
Writing back to Apollo
apollo.account.create, apollo.contact.create, and the matching update actions
save agent research into the customer's Apollo workspace so it is visible to the
humans working there.
Apollo applies no deduplication when creating an account, so a retried run
creates a second account. Search first, or update the existing record. Contact
creation is safer: set run_dedupe and Apollo updates a matching contact in
place instead.
The stage and list actions exist to resolve names into IDs. Apollo expects an
account_stage_id or contact_stage_id, not a stage name, so call
apollo.account_stage.list or apollo.contact_stage.list first and match on the
display name.
Events
Apollo.io does not register source events. Start the run from a schedule, HTTP trigger, or another provider event, then call Apollo actions.
Next
- Put research calls in action steps.
- Store result sets in tables.
- Keep provider credentials in integrations.