Manual
CLI
API
Log in Get started free

Introduction

How requests and responses of the Continuous Translations API look, with a first request.

The API is what the app, the CLI and the MCP server use. Everything you can do in the app, you can do with the API.

Base URL #

TEXT
https://api.continuous-translations.com

All routes on the endpoint pages are relative to it.

Your first request #

Create an API key under Account settings, see Authentication, and list your projects:

SH
curl https://api.continuous-translations.com/projects \
  -H "Authorization: Bearer $CT_API_KEY"

The key needs the projects:read scope. The answer is a JSON list of projects, see List projects.

Requests #

  • Send the token in the Authorization header: Authorization: Bearer <token>. Only registration, login, password reset, invitations and the webhooks of GitHub and GitLab work without one.
  • Send request bodies as JSON, with Content-Type: application/json. Query parameters go in the URL.
  • Ids are UUIDs, for example 0197a3c2-5b1e-7c4a-9d2f-3e8b6a1f0c55. A path with an id that is not a UUID returns 404.
  • Language codes are lower case, such as en-gb or de. See Languages and time zones.

Responses #

  • Answers are JSON. A route that has nothing to say answers 204 with no body, and some 202 or 201 without one. The endpoint page says which.
  • Timestamps are ISO 8601 with an offset, for example 2026-10-16T09:30:00+00:00.
  • Fields ending in Minutes, such as ageMinutes, say how many minutes ago something happened.
  • Every response carries RateLimit-* headers, see Rate limiting.
StatusMeaning
200Done, the answer is in the body
201Created
202Accepted
204Done, no body
4xxThe request is wrong, see Errors
5xxSomething went wrong on our side, or at GitHub or GitLab

Where to go next #