---
title: "Salesloft API: pricing, rate limits & MCP | ONEGTMLAB"
description: "Salesloft API: Enterprise sales engagement platform (cadences, dialer, conversations, deals) with a REST API v2 (~215 endpoints), customer API keys or…"
canonical: https://www.onegtmlab.dev/tool-directory/sending/salesloft
---

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

[](/)

[

Book a call

](/book)

![](/_astro/salesloft.DjQqZo-d.svg)

API review

# Salesloft API review

Enterprise sales engagement platform (cadences, dialer, conversations, deals) with a REST API v2 (~215 endpoints), customer API keys or OAuth apps, a team-wide cost-based rate limit, async bulk upsert jobs, signed webhooks and an official read-only MCP server for Agent-package customers; sales-quoted pricing. Best for integrating with a customer's Salesloft team: people, accounts, cadences, cadence memberships, steps/actions, calls, notes, meetings, conversations.

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

[

Salesloft API docs

](https://developers.salesloft.com/docs/api/)

At a glance

Category

Sending, CRM

Pricing model

Per seat

Free tier

None listed

Auth

OAuth

Official MCP

Yes

Best for

Integrating with a customer's Salesloft team: people, accounts, cadences, cadence memberships, steps/actions…

[salesloft.com ↗](https://www.salesloft.com)[Pricing page ↗](https://www.salesloft.com/pricing)

## Rate limits

Cost-based, per TEAM (shared by all integrations on that team): 600 cost points per minute, default cost 1 per request.

More on limitsLess

Page parameter beyond 100 costs extra: 101-150 = 3, 151-250 = 8, 251-500 = 10, 501+ = 30 points. Headers x-ratelimit-endpoint-cost and x-ratelimit-remaining-minute. Salesloft can adjust per customer/team. MCP server calls route through the API and count against the same limits.

## How to get an API key

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

1.  Create a Salesloft account.
2.  Customers: Your Applications -> API Keys -> Create New, pick scopes (keys look like ak\_ + 64 hex, act as the issuing user). Partners: create an OAuth app (Authorization Code) or, for private admin use, Client Credentials.
3.  Send it with every request: header: Authorization: Bearer <token>.
4.  Make a first call: List all owned cadences, Cadences are user defined engines to run their outbound process. Keep the key in an environment variable, never in the command.
    
    ```
    curl -X GET "https://api.salesloft.com/public_api/v1/cadences" \
      -H "Authorization: Bearer $SALESLOFT_ACCESS_TOKEN"
    ```
    

## Where the docs live

What

Where

Documentation

[developers.salesloft.com/docs/platform/intro](https://developers.salesloft.com/docs/platform/intro/)

API reference

[developers.salesloft.com/docs/api](https://developers.salesloft.com/docs/api/)

Base URL

`https://api.salesloft.com`

MCP server

`https://mcp.salesloft.com/mcp`

## Strengths and limits

### Where it fits

-   Integrating with a customer's Salesloft team: people, accounts, cadences, cadence memberships, steps/actions, calls, notes, meetings, conversations
-   Signed (HMAC-SHA1) webhooks on 37 event types incl. cadence membership, meeting booked, conversation transcript
-   Async bulk upserts of people/accounts/calendar events via bulk jobs
-   Third-party dialer integrations (Voice Links, call data records)

### Where it falls short

-   Self-serve cold email at volume: no public pricing, demo only
-   Partner apps on API keys: partner apps must use OAuth or will not be approved
-   Deep page-number pagination: pages past 100 cost 3-30 rate-limit points each; use an updated\_at cursor
-   AI agents that need to write: the official MCP server is read-only (no updates, writes or deletes, no cadence data) and only included with Salesloft Agent packages

### Worth knowing

-   Rate limit is per TEAM, not per integration: every connected app shares the same 600 points/min.
-   High page numbers are surcharged (page 501+ costs 30 points); poll with an updated\_at cursor instead.
-   Out-of-range per\_page/page values are silently reset to defaults instead of erroring.
-   API keys are customer-only; partner apps submitted on API keys are rejected.
-   Client Credentials apps cannot be allowlisted and run with the creating admin's permissions.

9 moreShow fewer

-   Only one bulk job runs at a time per tenant and the queue is shared with teammates; results deleted after 30 days.
-   Webhook retries are short: 3 retries 15 s apart, then failed; a brief outage loses events.
-   Action/step details are only supported for phone-type actions.
-   Turning on Voice Links releases all existing Salesloft phone numbers.
-   Request parameters are rendered client-side on the reference pages, so static downloads carry only method, path and description.
-   The official MCP server is read-only, beta, excludes cadences, needs an admin toggle, and is only included with Salesloft Agent packages.
-   MCP queries are ordinary API calls and spend the same team-wide 600 points/min as every other integration.
-   email\_contents is a privileged scope (needed for the email\_with\_body\_and\_subject\_updated webhook), not an event type.
-   Voice Links and dialer webhooks are switched on per customer by their customer success manager, not self-serve.

## Who should use it

Use Salesloft for

Integrating with a customer's Salesloft team: people, accounts, cadences, cadence memberships, steps/actions, calls, notes, meetings, conversations

Look elsewhere for

Self-serve cold email at volume: no public pricing, demo only

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

Three things to settle first, each read off Salesloft's own pages.

-   **Keep the key out of your code**OAuth. It is sent as: header: Authorization: Bearer <token>.
    
-   **Design around the rate limit**Cost-based, per TEAM (shared by all integrations on that team): 600 cost points per minute, default cost 1 per request.
    
-   **Know the catch before you scale**Rate limit is per TEAM, not per integration: every connected app shares the same 600 points/min.
    

## Want us to build it for you?

Tell us what you want Salesloft 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 [salesloft.com/pricing](https://www.salesloft.com/pricing), [developers.salesloft.com/docs/api](https://developers.salesloft.com/docs/api/) and [developers.salesloft.com/docs/platform/api-basics/rate-limits](https://developers.salesloft.com/docs/platform/api-basics/rate-limits/). Verified 25 Oct 2026.

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

**Base URL:** `https://api.salesloft.com`

**Bulk and async:** Bulk jobs (account/upsert, person/upsert, calendar/events/upsert) run async, ONE job at a time per tenant, shared team queue, not for time-sensitive work; row results deleted after 30 days.

**Webhooks:** Events: account\_created, account\_deleted, account\_updated, bulk\_job\_completed, cadence\_created, cadence\_deleted, cadence\_membership\_created, cadence\_membership\_updated, cadence\_updated, call\_created, call\_data\_record\_created, call\_data\_record\_updated and 25 more. Retries: Failing webhook retried 3 more times, 15 seconds apart, then marked failed. Payload signed with x-salesloft-signature (HMAC-SHA1 hex).

Filter endpoints

215 endpoints

Method

Path

What it does

Cost

GET

`/public_api/v1/cadences`

List all owned cadences, Cadences are user defined engines to run their outbound process.

Not stated

GET

`/public_api/v1/calls`

List all account calls, A call is the data recording the results of a phone interaction with a person.

Not stated

POST

`/public_api/v1/companies`

Create a single company, Companies are unique across a team, so any companies you add will be visible to the entire team.

Not stated

GET

`/public_api/v1/companies/:id`

Fetches a single company, A Company can be looked up by id or domain. Companies are unique by domain across a team, so any edits you make to a Company will be visible to every user on the team. IDs will never change.

Not stated

PUT

`/public_api/v1/companies/:id`

Updates a single company, A company can be looked up by id or domain. Companies are unique across teams, so any edits you make to a company will be visible to every user on the team. IDs will never change.

Not stated

GET

`/public_api/v1/me`

Fetches information about a User, User information which can be used to create an account in an integrating system.

Not stated

GET

`/public_api/v1/custom_fields`

List all team custom fields, Custom Fields are used to add additional information to people. They are simple key/value pairs stored on a Person.

Not stated

POST

`/public_api/v1/people`

Create a single person, People are unique by email address across a team, so any people you add will be visible to the entire team.

Not stated

GET

`/public_api/v1/people/:id`

Fetches a single person, A person can be looked up by id or email. People are unique by email address across a team, so any edits you make to a person will be visible to every user on the team. IDs will never change.

Not stated

PUT

`/public_api/v1/people/:id`

Updates a single person, A person can be looked up by id or email. People are unique by email address across a team, so any edits you make to a person will be visible to every user on the team. IDs will never change.

Not stated

POST

`/public_api/v1/people/:person_id/cadence_memberships`

Add a person to a cadence

Not stated

GET

`/public_api/v1/people/:person_id/cadence_memberships`

List all cadences for a person, Results are ordered by cadence\_id ASC.

Not stated

GET

`/public_api/v1/successes`

List all account successes, A success is recorded manually by a user when they take an action that they classify as successful. This could be reaching a prospect, getting a demo, etc. It is important to understand how success is

Not stated

GET

`/public_api/v1/tags`

List all tags, Tags are used to organize different entities in the system. Tags are added to a specific entity through the endpoints for that entity.

Not stated

GET

`/v2/account_stages`

List account stages, Fetches multiple account stage records. The records can be filtered, paged, and sorted according to the respective parameters.

Not stated

GET

`/v2/account_stages/:id`

Fetch an account stage, Fetches an account stage, by ID only.

Not stated

GET

`/v2/account_team_member_roles`

List CRM Account Team Member Roles, Fetches multiple CRM Account Team Member Role records. The records can be filtered, paged, and sorted according to the respective parameters.

Not stated

GET

`/v2/account_tiers`

List Account Tiers, Fetches multiple account tier records. The records can be filtered, paged, and sorted according to the respective parameters.

Not stated

GET

`/v2/account_tiers/:id`

Fetch an account tier, Fetches an account tier, by ID only.

Not stated

GET

`/v2/account_types`

List distinct account types, Fetches distinct account types for the team to be used in filter selections. Returns an array of unique account type values that exist in the team's companies. This endpoint respects user permissions

Not stated

POST

`/v2/account_upserts`

Upsert an account, Upserts an account record. The upsert\_key dictates how the upsert will be performed. The create and update behavior is exactly the same as the individual create and update endpoints.

Not stated

POST

`/v2/accounts`

Create an account, Creates an account.

Not stated

DELETE

`/v2/accounts/:id`

Delete an account, Deletes an account. This operation is not reversible without contacting support. This operation can be called multiple times successfully.

Not stated

GET

`/v2/accounts`

List accounts, Fetches multiple account records. The records can be filtered, paged, and sorted according to the respective parameters.

Not stated

GET

`/v2/accounts/:id`

Fetch an account, Fetches an account, by ID only.

Not stated

PUT

`/v2/accounts/:id`

Update an existing Account, Updates an account.

Not stated

GET

`/v2/action_details/call_instructions`

List call instructions, Fetches multiple call instruction records. The records can be filtered, paged, and sorted according to the respective parameters.

Not stated

GET

`/v2/action_details/call_instructions/:id`

Fetch a call instructions, Fetches a call instruction, by ID only.

Not stated

GET

`/v2/actions`

List actions, Fetches multiple action records. The records can be filtered, paged, and sorted according to the respective parameters. Only actions that are currently "in\_progess" will be returned by this endpoint.

Not stated

GET

`/v2/actions/:id`

Fetch an action, Fetches an action, by ID only. This endpoint will only return actions that are in\_progress or pending\_activity. Once an action is complete, the request for that action will return a 404 status code.

Not stated

POST

`/v2/activities/calls`

Create a call, Creates a call. The parameters of this endpoint can be used to create an action and ensure that the CRM Task is mapped correctly.

Not stated

GET

`/v2/activities/calls`

List calls, Fetches multiple call records. The records can be filtered, paged, and sorted according to the respective parameters.

Not stated

GET

`/v2/activities/calls/:id`

Fetch a call, Fetches a call, by ID only.

Not stated

POST

`/v2/activities`

Create an activity, Creates an activity. An activity will mark the associated action as completed. Currently, only certain action types can have an activity explicitly created for them.

Not stated

GET

`/v2/activities/emails`

List emails, Fetches multiple email records. The records can be filtered, paged, and sorted according to the respective parameters.

Not stated

GET

`/v2/activities/emails/:id`

Fetch an email, Fetches an email, by ID only.

Not stated

GET

`/v2/activity_histories`

List Past Activities, Fetches all of the customer's past activities for your application. Returns all the Activities that are found on the Salesloft Activity Feed.

Not stated

POST

`/v2/audit_reports`

Create a new audit report, Creates a request for a new audit report.

Not stated

GET

`/v2/audit_reports`

List generated audit reports, Returns all reports that have been requested by user's tenant\_id, paged by 25 records

Not stated

GET

`/v2/audit_reports/:id`

Fetch an audit report, Fetch an audit report by ID.

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)
