---
title: "Outreach API: pricing, rate limits & MCP | ONEGTMLAB"
description: "Outreach API: Enterprise sales engagement and revenue platform (sequences, dialer, conversation intelligence, forecasting) with a JSON:API REST API (~254…"
canonical: https://www.onegtmlab.dev/tool-directory/sending/outreach
---

# Outreach API: pricing, rate limits & MCP | ONEGTMLAB

[](/)

[

Book a call

](/book)

![](/_astro/outreach.B1Zxg-6O_Z2fvL32.webp)

API review

# Outreach API review

Enterprise sales engagement and revenue platform (sequences, dialer, conversation intelligence, forecasting) with a JSON:API REST API (~254 operations) behind OAuth apps, a bulk/import API, webhooks and a hosted OAuth 2.1 MCP server; priced per seat plus AI credits, quote-only. Best for integrating with an enterprise customer's existing Outreach org.

Verified 25 Oct 2026 · 254 endpoints listed · Official MCP server

[

See pricing

](#pricing)[

Outreach API docs

](https://developers.outreach.io/api/reference/overview/)

At a glance

Category

Sending, CRM

Pricing model

Per seat

Free tier

None listed

Auth

OAuth

Official MCP

Yes

Best for

Integrating with an enterprise customer's existing Outreach org

[outreach.ai ↗](https://www.outreach.ai)[Pricing page ↗](https://www.outreach.ai/pricing)

## Pricing, plan by plan

US dollars, as Outreach's pricing page shows them on 25 Oct 2026. Monthly and annual billing are shown apart.

### Amplify Essentials

One-off pack

10,000 AI credits; per-user seats; Outreach MCP (Server & Client); no API-call allowance or custom objects listed

Plan details

Additional AI credit packs can be bought at any time (price not public)

### Amplify Core

One-off pack

25,000 AI credits; 250,000 API calls (period not stated); 5 custom objects; 500 MB knowledge; Outreach MCP (Server & Client)

API includedPlan details

Additional AI credit packs can be bought at any time (price not public)

### Amplify Plus

One-off pack

50,000 AI credits; 500,000 API calls (period not stated); 10 custom objects; 750 MB knowledge; Outreach MCP (Server & Client); everything in Essentials + Core

API includedPlan details

Additional AI credit packs can be bought at any time (price not public)

### Amplify Pro

One-off pack

100,000 AI credits; 1,000,000 API calls (period not stated); 20 custom objects; 1,500 MB knowledge; everything in Plus (incl.

API includedPlan details

Outreach MCP)

Additional AI credit packs can be bought at any time (price not public)

## Rate limits

Per user: 10,000 requests per hour, with X-RateLimit-Limit/Remaining/Reset (alias Retry-After) headers and 429 on excess.

Limit

Amplify Core

Amplify Plus

Amplify Pro

Api Calls

250,000 API calls (period not stated)

500,000 API calls (period not stated)

1,000,000 API calls (period not stated)

More on limitsLess

Kaia recordings/transcripts: 3 calls/s and 6,000/day per org. Bulk: max 100,000 items per bulk request and 5 million records/day per org (429 beyond). Pagination: page\[limit\] <= 1,000, max offset 10,000.

## How to get an API key

Outreach uses OAuth. The steps below follow Outreach's own docs.

1.  Create a Outreach account. API access starts on the Amplify Core plan.
2.  Create an Outreach app in the Developer Portal, configure API access (redirect URIs, scopes). Dev credentials work immediately for up to 10 people in the owning org; production credentials need publishing (public Marketplace apps need a demo and 5 beta customers). Access tokens expire in 7,200 s with refresh tokens. Alternative S2S token (RS256 JWT from your app key + install ID) covers only a limited endpoint set.
3.  Send it with every request: header: Authorization: Bearer <access\_token>; Content-Type must be application/vnd.api+json.
4.  Make a first call: Get a Collection of Account Notes. Keep the key in an environment variable, never in the command.
    
    ```
    curl -X GET "https://api.outreach.io/api/v2/accountNotes" \
      -H "Authorization: Bearer $OUTREACH_ACCESS_TOKEN"
    ```
    

## Where the docs live

What

Where

Documentation

[developers.outreach.io/api](https://developers.outreach.io/api/)

API reference

[developers.outreach.io/api/reference/overview](https://developers.outreach.io/api/reference/overview/)

OpenAPI spec

[developers.outreach.io/page-data/shared/oas-api/reference.yaml.json](https://developers.outreach.io/page-data/shared/oas-api/reference.yaml.json)

llms.txt

[developers.outreach.io/llms.txt](https://developers.outreach.io/llms.txt)

Changelog

[developers.outreach.io/api/release-notes.md](https://developers.outreach.io/api/release-notes.md)

Base URL

`https://api.outreach.io/api/v2`

SDKs

Client-extension JavaScript SDK (in-app extensions, not a REST client)

## Strengths and limits

### Where it fits

-   Integrating with an enterprise customer's existing Outreach org (sequences, prospects, accounts, opportunities, tasks, calls, mailings)
-   Event-driven sync via webhooks on mailing delivered/opened/replied/bounced and sequenceState changes
-   Large imports: bulk actions up to 100,000 items per request, CSV import and bulk upsert
-   Agent access with user-level RBAC via the hosted MCP (OAuth 2.1 + DCR)

### Where it falls short

-   Self-serve or startup cold email: no public price, seats only via sales
-   Simple API-key scripts: every call needs an OAuth app (or S2S JWT for a limited endpoint set)
-   Deep pagination of huge collections: max offset 10,000, page limit 1,000

### Worth knowing

-   No public pricing at all: every Amplify tier is 'Request pricing'.
-   Requests must send Content-Type application/vnd.api+json or get 415 (JSON:API 1.0).
-   Rate limit is per USER (10,000/h), so a single integration user is a bottleneck; Kaia transcript endpoints are 3/s and 6,000/day per org.
-   Max pagination offset is 10,000 and page\[limit\] max 1,000; page across ID ranges or tighter filters instead.
-   Development OAuth credentials are meant for up to 10 users of the owning org and grants can be expired/revoked; customer installs need a published app, and public Marketplace listing needs a demo plus 5 beta customers.

6 moreShow fewer

-   S2S tokens carry no user identity: reads work, but some writes need an extra authorizer user id or fail entirely.
-   OAuth client secrets are shown once; regenerate if lost.
-   From 1 Oct 2026 prospect responses drop contactHistogram by default (deprecation notice).
-   Bulk upsert batch results are deleted after 30 days.
-   Webhooks are not retried on any HTTP error status (500 and 429 count as delivered); only network failures get 3 retries 1 s apart, with a 5 s timeout.
-   Non-customers cannot self-serve API access: [outreach.ai/platform/api](https://www.outreach.ai/platform/api) routes to a manually reviewed 'Outreach API Access Request' form; the Developer Portal 'My apps' requires an existing Outreach user login.

## Who should use it

Use Outreach for

Integrating with an enterprise customer's existing Outreach org (sequences, prospects, accounts, opportunities, tasks, calls, mailings)

Look elsewhere for

Self-serve or startup cold email: no public price, seats only via sales

## If Outreach is not the answer

Other Email sending tools in this directory, each with its own review.

[

![](/_astro/aimfox.Cl8sLyp7.svg)

Aimfox

LinkedIn outreach

From $40.83/moOfficial MCP

Best for multi-account LinkedIn outreach where you want to rent extra sender profiles natively.

Aimfox API review →](/tool-directory/linkedin-outreach/aimfox)[

![](/_astro/dripify.CHsfpJDs_1kJMTW.webp)

Dripify

LinkedIn outreach

From $59/moOfficial MCP

Best for solo sellers or small teams running LinkedIn + email sequences from their own accounts.

Dripify API review →](/tool-directory/linkedin-outreach/dripify)[

![](/_astro/emailbison.fVnRcAh4_Z1AVftg.webp)

EmailBison

Email sending

From $599/mo

Best for agencies and teams sending hundreds of thousands of emails a month that want dedicated IPs and no per-seat or per-lead….

EmailBison API review →](/tool-directory/sending/emailbison)

## Before you build

Four things to settle first, each read off Outreach's own pages.

-   **Confirm the API is on your plan**API access starts on the Amplify Core plan.
    
-   **Keep the key out of your code**OAuth. It is sent as: header: Authorization: Bearer <access\_token>; Content-Type must be application/vnd.api+json.
    
-   **Design around the rate limit**Per user: 10,000 requests per hour, with X-RateLimit-Limit/Remaining/Reset (alias Retry-After) headers and 429 on excess.
    
-   **Know the catch before you scale**No public pricing at all: every Amplify tier is 'Request pricing'.
    

## Want us to build it for you?

Tell us what you want Outreach to do in your stack. We will show you how we would wire it into your data, outbound or CRM, and what we would check first.

[

Book a call

](/book)[

See case studies

](/case-studies)

Read from [outreach.ai/pricing](https://www.outreach.ai/pricing), [developers.outreach.io/api/reference/overview](https://developers.outreach.io/api/reference/overview/) and [developers.outreach.io/api/getting-started.md](https://developers.outreach.io/api/getting-started.md). Verified 25 Oct 2026.

All 254 endpointsFor developers: method, path, what it does and what it costs.

**Base URL:** `https://api.outreach.io/api/v2`

**Bulk and async:** Bulk actions with filters and confirmation step (batch state pending/confirming, poll GET /batches/{id}), CSV import API via presigned S3 upload, bulk upsert (JSON records, max 2 MB request; results kept 30 days); max 100,000 items per request and 5M records/day per org (429 beyond); import 'finished' webhook.

**Webhooks:** Webhooks are API resources (POST /webhooks) with resource+action filters, default '\*'. Create/update payloads carry only changed attributes. Optional secret adds an Outreach-Webhook-Signature header (HMAC-SHA256 hexdigest of the body). No fixed sender IP list. Each webhook gets a cleanupToken for POST /webhooks/cleanup. Events: account created/updated/destroyed, call created/updated/destroyed, emailAddress \*, import created/finished, kaiaRecording created, mailing created/updated/destroyed/bounced/delivered/opened/replied, opportunity \*, opportunityProspectRole \*, prospect \*, sequence \*, sequenceState created/updated/destroyed/advanced/finished, task created/updated/destroyed/completed and 1 more. Retries: No retry on any HTTP status (incl. 500 and 429, which count as acks); no redirects followed; 5 s response timeout; retries only on network failures: 4 attempts (3 retries) 1 s apart.

Filter endpoints

254 endpoints

Method

Path

What it does

Cost

GET

`/accountNotes`

Get a Collection of Account Notes

Not stated

POST

`/accountNotes`

Create a New Account Note

Not stated

DELETE

`/accountNotes/{id}`

Delete an Existing Account Note by ID

Not stated

GET

`/accountNotes/{id}`

Get an Account Note by ID

Not stated

PATCH

`/accountNotes/{id}`

Update an Account Note

Not stated

GET

`/accounts`

Get a Collection of Accounts

Not stated

POST

`/accounts`

Create a New Account

Not stated

DELETE

`/accounts/{id}`

Delete an Existing Account by ID

Not stated

GET

`/accounts/{id}`

Get an Account by ID

Not stated

PATCH

`/accounts/{id}`

Update an Account

Not stated

GET

`/auditLogs`

Get a Collection of Audit Logs

Not stated

GET

`/batchItems`

Get a Collection of Batch Items

Not stated

GET

`/batchItems/{id}`

Get a Batch Item by ID

Not stated

GET

`/batches`

Get a Collection of Batches

Not stated

GET

`/batches/{id}`

Get a Batch by ID

Not stated

POST

`/batches/{id}/actions/cancel`

Cancel, ### Member Action Action to call to cancel the batch

Not stated

POST

`/batches/{id}/actions/confirm`

Confirm, ### Member Action Action to call to confirm the batch

Not stated

POSTasync

`/batches/actions/accountAddTags`

Account Add Tags, ### Bulk Action Adds tags to the accounts targeted by the query parameters (default: ALL) using the {tags} array of strings passed in request body

Not stated

POSTasync

`/batches/actions/accountsAddAssignments`

Accounts Add Assignments, ### Bulk Action Adds assignments to the accounts targeted by the query parameters (default: ALL) using the {userIds} array of strings passed in request body

Not stated

POSTasync

`/batches/actions/accountsAssignOwner`

Accounts Assign Owner, ### Bulk Action assign an user with {ownerId} as owner to all the targeted accounts

Not stated

POSTasync

`/batches/actions/accountsBulkModify`

Accounts Bulk Modify, ### Bulk Action Modifies the accounts targeted by the query parameters (default: ALL) using the {field: value,...} pairs passed in request body. Alternative request body for a single field modific

Not stated

POSTasync

`/batches/actions/accountsDestroyAll`

Accounts Destroy All, ### Bulk Action Deletes the accounts targeted by the query parameters (default: ALL)

Not stated

POSTasync

`/batches/actions/accountsRemoveAllAssignments`

Accounts Remove All Assignments, ### Bulk Action Removes all assignments from the accounts targeted by the query parameters (default: ALL)

Not stated

POSTasync

`/batches/actions/accountsRemoveAssignments`

Accounts Remove Assignments, ### Bulk Action Removes assignments from the accounts targeted by the query parameters (default: ALL) using the {userIds} array of strings passed in request body

Not stated

POSTasync

`/batches/actions/accountsRemoveTags`

Accounts Remove Tags, ### Bulk Action Removes tags from the accounts targeted by the query parameters (default: ALL) using the {tags} array of strings passed in request body

Not stated

POSTasync

`/batches/actions/customObjectBulkDelete`

Custom Object Bulk Delete, ### Bulk Action Action to delete custom objects of type selected by the query parameter {objectName}

Not stated

POSTasync

`/batches/actions/customObjectBulkModify`

Custom Object Bulk Modify, ### Bulk Action Action to modify custom objects of type selected by the query parameter {objectName}

Not stated

POSTasync

`/batches/actions/prospectsAddAssignments`

Prospects Add Assignments, ### Bulk Action Adds assignments to the prospects targeted by the query parameters (default: ALL) using the {userIds} array of strings passed in request body

Not stated

POSTasync

`/batches/actions/prospectsAddTags`

Prospects Add Tags, ### Bulk Action Adds tags to the prospects targeted by the query parameters (default: ALL) using the {tags} array of strings passed in request body

Not stated

POSTasync

`/batches/actions/prospectsAddToSequence`

Prospects Add To Sequence, ### Bulk Action Add Prospects To Sequence

Not stated

POSTasync

`/batches/actions/prospectsAssignAccount`

Prospects Assign Account, ### Bulk Action Sets the account to the prospects targeted by the query parameters (default: ALL) using the {accountId} which specifies the account to add to the prospects

Not stated

POSTasync

`/batches/actions/prospectsAssignOpportunity`

Prospects Assign Opportunity, ### Bulk Action Sets the opportunity to the prospects targeted by the query parameters (default: ALL) using the {opportunityId} which specifies the account to add to the prospects

Not stated

POSTasync

`/batches/actions/prospectsAssignOwner`

Prospects Assign Owner, ### Bulk Action assign an user with {ownerId} as owner to all the targeted prospects

Not stated

POSTasync

`/batches/actions/prospectsBulkModify`

Prospects Bulk Modify, ### Bulk Action Modifies the prospects targeted by the query parameters (default: ALL) using the {field: value,...} pairs passed in request body Alternative request body for a single field modific

Not stated

POSTasync

`/batches/actions/prospectsDestroyAll`

Prospects Destroy All, ### Bulk Action Deletes the prospects targeted by the query parameters (default: ALL)

Not stated

POSTasync

`/batches/actions/prospectsFinishAll`

Prospects Finish All, ### Bulk Action For all prospects targeted by the query parameters (default: ALL), attempt to finish the associated prospect sequence

Not stated

POSTasync

`/batches/actions/prospectsPauseAll`

Prospects Pause All, ### Bulk Action For all prospects targeted by the query parameters (default: ALL), attempt to pause the associated prospect sequence

Not stated

POSTasync

`/batches/actions/prospectsRemoveAllAssignments`

Prospects Remove All Assignments, ### Bulk Action Removes all assignments from the prospects targeted by the query parameters (default: ALL)

Not stated

POSTasync

`/batches/actions/prospectsRemoveAssignments`

Prospects Remove Assignments, ### Bulk Action Removes assignments from the prospects targeted by the query parameters (default: ALL) using the {userIds} array of strings passed in request body

Not stated

POSTasync

`/batches/actions/prospectsRemoveTags`

Prospects Remove Tags, ### Bulk Action Removes tags from the prospects targeted by the query parameters (default: ALL) using the {tags} array of strings passed in request body

Not stated

[](/)

© 2026 ONEGTMLAB Private Limited. All rights reserved.

COMPANY

[

Why Us

](/#why-us)[

Process

](/#timeline)[

Blogs

](/blogs)[

About

](/about)[

Clients

](/clients)[

Free resources

](/free-resources)[

Newsletter

](/newsletter)

Services

[

GTM Engineering

](/ai-gtm-engineering)[

Account-Based Marketing

](/services/account-based-marketing)[

Paid Media

](/services/paid-media)[

Content Engineering

](/linkedin-personal-branding)[

RevOps

](/services/revops)[

SEO, AEO & GEO

](/services/seo-aeo-geo)[

All services

](/services)

![](/_astro/wordmark-3d.CMEfGdYr.svg)
