Curvo AI logoCurvo

Curvo API

Your deals, meetings, actions and transcripts, over a read-only REST API.

Base URL/api/v1
OpenAPI spec

Quickstart

Three steps to your first response.

  1. 1

    Get an API key

    A company admin creates keys in Company Settings, under Public API.

    Shell
    export CURVO_API_KEY="curvo_api_..."
  2. 2

    Make a request

    List your five most recently created deals.

    curl "/api/v1/deals?limit=5" \
      -H "Authorization: Bearer $CURVO_API_KEY"
  3. 3

    Explore

    Send live requests from the console, or import the OpenAPI spec into Postman, Insomnia or a client generator.

    OpenAPI spec

Authentication

Send your key as a bearer token on every request.

Header
Authorization: Bearer curvo_api_...
  • Server-side only

    A key reads company-wide data. Never ship it in a browser or mobile app.

  • One per integration

    Revoke a single integration without breaking the others.

  • Rotate without downtime

    Keys do not expire. Create a new one, deploy it, then revoke the old one.

Pagination and limits

List endpoints take limit and offset and return pagination.hasMore. Each key can make 60 requests per rolling minute; a 429 says how many seconds to wait in Retry-After. This loop handles both.

# Page 1, then keep adding the page size to offset while pagination.hasMore is true
curl "/api/v1/deals?limit=200&offset=0" -H "Authorization: Bearer $CURVO_API_KEY"
curl "/api/v1/deals?limit=200&offset=200" -H "Authorization: Bearer $CURVO_API_KEY"

Errors

Errors come back as JSON with a message, for example { "message": "Invalid API key" }.

StatusMeaningWhat to do
400A query parameter is invalid.Check the types and allowed values.
401The key is missing, malformed or revoked.Send Authorization: Bearer curvo_api_....
403The Public API is off or the company is suspended.Ask a company admin or Curvo support.
404Unknown route, or the record is not in your company.Check the path and ID.
405The API is read-only.Use GET.
429More than 60 requests in 60 seconds on this key.Wait Retry-After seconds, then retry.
500Something failed on our side.Retry with backoff. Contact support if it persists.
503Transcript search is temporarily unavailable.Retry later. Empty results are not a "no match".

Data and access

What a key can see, and what Curvo records.

  • Read-only. Every write method returns 405.
  • Scoped to your company. Other companies' records return 404.
  • Meeting and transcript results can be cached for up to 7 days.
  • Each request is logged with its key, route and outcome for auditing.

Endpoints

GETAll endpoints are relative to /api/v1 and return JSON.

Deals

Meetings

Actions

Transcripts

Stuck? Email support@curvo.ai with the endpoint, the time and the status you got.