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

> ## Agent Instructions
> Automate.ax automations are TypeScript programs.
> Use Bun for installation and command examples.
> Use Automate.ax for the product name and automate.ax for the package, CLI, and domain.
> Treat documented public APIs as current; do not invent transitional or deprecated names.

# Connect Apollo and extend its API

> Connect Apollo with OAuth or a master API key, receive Workflow webhooks, and call uncovered v1 endpoints.

Automate.ax connects Apollo through OAuth or an API key. OAuth requests the exact scopes used by each action. API-key requests act in the connected Apollo workspace; Apollo attributes them to the workspace's oldest active administrator.

`apollo.listContactDeals`, `apollo.searchCalls`, `apollo.createCall`, `apollo.updateCall`, and `apollo.getEmailStats` require a master API key. Apollo rejects OAuth access tokens for contact deals, omits the call scopes from OAuth app registration, and doesn't support OAuth for email stats.

Apollo does not expose a lifecycle webhook subscription API with a stable event payload. Apollo Workflows can send a user-configured webhook for people and company events, so receive those deliveries with `onHttpRequest` and validate the workflow's body in your automation. Automate.ax does not create, reconcile, or label those workflow webhooks as managed Apollo triggers.

```ts automations/apollo-workflow-webhook.automation.ts theme={null}
import { automation, markSignificant, onHttpRequest } from "automate.ax"

export default automation("Receive an Apollo workflow", () => {
  const request = onHttpRequest({ scope: "automation" })
  markSignificant(request)
})
```

Use `getApolloApi(account)` inside a custom account-backed action for an uncovered Apollo REST endpoint. Paths are relative to `https://api.apollo.io/api/v1/`; queries use provider-native names, and every response requires a Zod schema. Failures throw `ApolloApiError` with HTTP status, provider code and message, and retry delay.

Apollo rate limits apply per workspace, endpoint, and minute, hour, or day. A `429` response includes the retry delay when available. The synchronous analytics report is limited to five requests per hour. The deprecated `GET /typed_custom_fields` endpoint is intentionally excluded; use `apollo.listFields({ source: "custom" })`.

See Apollo's [API overview](https://docs.apollo.io/reference/apollo-api), [authentication guide](https://docs.apollo.io/reference/authentication), [OAuth flow](https://docs.apollo.io/docs/use-oauth-20-authorization-flow-to-access-apollo-user-information-partners), [rate limits](https://docs.apollo.io/reference/rate-limits), and [status codes](https://docs.apollo.io/reference/status-codes).
