Skip to main content
GetSales runs outbound as one product. Playtables hold the people and companies with their enrichment columns and the data sources that fill them, Workflows run the LinkedIn and email steps, Unibox keeps every thread in one inbox next to the AI SDR that answers in it, Signals watches your website and your senders’ profile views, and the integrations service connects all of it to your own APIs, CRMs and webhook receivers. Everything the app does is exposed twice from one schema: as typed REST endpoints, and as MCP tools an AI agent can call.

The API surface

Five services, one contract style. Every endpoint authenticates the same way, returns the same response envelope, and fails with the same error taxonomy. Paths in the reference are relative to these base URLs. POST /api/playtables/search means POST https://beta.getsales.io/playtables/v1/api/playtables/search. A bare /api/... path on the app host is not an API route: the prefix is part of the path.

Start here

Quickstart

Mint an API key and make your first call in a few minutes.

Authentication

API keys, OAuth access tokens, session JWTs and the Team-SID header.

API reference

Every endpoint of the five services, with an interactive playground.

Receive webhooks

Subscribe an endpoint, verify signed deliveries, read the delivery log.

MCP server

Give Claude, Cursor or ChatGPT the same tools over the Model Context Protocol.

Changelog

What shipped, in the order it shipped.

How the contract behaves

  • Every success body is an envelope: success: true, one typed operation shape (search, get, create, update, delete, metrics, action), and a meta block with a trace_id you can quote to support.
  • Every failure is one McpError envelope with a code from a fixed 16-code taxonomy, so you map errors once and reuse the mapping everywhere. See Envelopes and errors.
  • Lists page with page_size plus an opaque forward cursor, and filters are typed per field. See Pagination and filtering.
  • Endpoints marked deprecated in the reference are 501 stubs: the request contract is final and validated, but the capability has not shipped yet. Build against them, do not ship against them. The reason is in each operation’s description.

Where the reference comes from

The reference is generated from the same registry that defines the MCP tools, one endpoint per tool. It is not written by hand, so what the playground shows is what the server actually validates.