Skip to main content
Quo is the phone system your business answers with: one shared place for every call, text, and the customer behind them. The Quo API opens that system to the rest of your software. Your CRM can pull conversation history and a script can keep contacts in sync. So can an AI agent, at 2am, without waking anyone up. You don’t need to be a developer to get value from this page. You need to know what the API can reach, what it promises, and where to start.

One request, end to end

Here is the whole shape of the API in a single exchange: an API key in the Authorization header, a date in the Quo-Api-Version header, JSON back.
curl https://api.quo.com/users?limit=1 \
  --header "Authorization: YOUR_API_KEY" \
  --header "Quo-Api-Version: 2026-03-30"
{
  "data": [
    {
      "id": "USu3X8sIB9",
      "email": "renee@pinkswindows.com",
      "firstName": "Renee",
      "lastName": "Ortiz",
      "pictureUrl": null,
      "role": "owner",
      "createdAt": "2024-08-02T17:31:08Z",
      "updatedAt": "2026-05-19T09:12:45Z"
    }
  ],
  "nextCursor": null
}
Every endpoint follows this pattern. If you can read this response, you can read all of them.

The API at a glance

Base URLhttps://api.quo.com
AuthenticationAPI key in the Authorization header. Details
VersioningQuo-Api-Version: 2026-03-30 header, required on every request. How versioning works
FormatJSON in, JSON out. Single resources arrive wrapped in data; lists add nextCursor.
PaginationCursor-based: limit (1–50, default 10) and after. Making requests
Rate limit10 requests per second per API key. Rate limits
ErrorsA structured envelope that names the field at fault and can include a trace id for support. Errors

How it’s designed

Three rules shape everything here. Versions never change after they ship. New endpoints and new optional fields land inside the current version. Anything that would break existing integrations gets a new dated version, and you upgrade when you choose to. The full contract fits on one page. Errors name the field at fault. Every error tells you what went wrong and points to the offending field. When a response includes a trace id, support can use it to find your exact request in our logs. The docs serve people and machines. These pages, the OpenAPI spec, and the LLM-ready formats describe one contract. An agent and a human reading them reach the same understanding.

What’s available today

This version is new, and we’d rather show you a precise map than a generous one.
SurfaceStatus
UsersAvailable. List and retrieve workspace users.
Calls, transcripts & summariesIn development
ContactsIn development
Conversations & messagesIn progress. Mark a conversation as read and retry a failed message are live; more endpoints are in development.
Phone numbersIn development
New endpoints are announced in the changelog as they land (there’s an RSS feed). Additions never break the version you’re on, so picking them up is optional.
Need messaging, calls, or contacts today? The v1 API remains fully supported. Switch versions with the selector in the top navigation; new capability ships here.

Where to next

Make your first request

From API key to a 200 in about two minutes.

Versioning

What a dated version guarantees, and why it’s in a header.

Making requests

Headers, envelopes, ids, timestamps, and pagination.

Build with AI & agents

MCP, llms.txt, and the spec. Quo for software that reads.