canonical: https://jentic.com/apis/api.crowdin.com/crowdin

# Crowdin API

Jentic publishes the only available OpenAPI specification for Crowdin API, keeping it validated and agent-ready. The Crowdin API exposes the core of the Crowdin localization platform - projects, source files, translation builds, AI-powered translation prompts, and team collaboration. Agents typically use it to spin up a new translation project, fetch translated files for a release, queue an AI translation prompt, or download a finished translation build for a CI pipeline. The API uses bearer-token auth that accepts both personal access tokens and OAuth access tokens, so it slots equally well into single-developer scripts and multi-tenant integrations.

## For AI agents

Manage localization projects, build and download translations, and run AI translation prompts on Crowdin. Bearer-token authenticated.

## Scope

Does not handle source-string authoring, machine-translation engines themselves, or human translator marketplaces - use for managing Crowdin projects, files, and translation builds only.

## Capabilities

- Create and update Crowdin localization projects via /projects
- List source files attached to a project through `/projects/{projectId}/files`
- Trigger a translation build with POST `/projects/{projectId}/translations/builds`
- Download a finished translation bundle via `/translations/builds/{buildId}/download`
- Manage AI prompts under `/ai/prompts` to automate translation review and tone
- Inspect build history to detect failed or stalled translation jobs

## Use cases

### Continuous Localization in CI

Wire Crowdin into a CI pipeline so every release branch automatically pushes source strings, builds translations, and pulls the resulting language bundles back into the repo. POST `/projects/{projectId}/translations/builds` queues the build, and GET `/projects/{projectId}/translations/builds/{buildId}/download` fetches the zip when it is ready. The whole flow takes a few minutes and removes manual export-and-import steps from release engineering.

Example prompt: Trigger a translation build for project 12345 with branchId 678, poll the build status until finished, then download the resulting zip

### AI-Powered Translation Review

Use Crowdin AI prompts to enforce brand tone, fix terminology, or post-edit machine translations. Agents create a prompt definition under `/ai/prompts` that captures the target voice, then attach it to translation workflows so every new string passes through the prompt before reaching reviewers. This shortens the human review queue and keeps multilingual UI copy consistent.

Example prompt: Create an AI prompt that enforces a friendly conversational tone for French translations and attach it to project 12345

### Project Provisioning for New Products

Spin up a new Crowdin project with a single API call when a new product line or microsite needs translation. POST /projects accepts a name, source language, and target languages list, returning a project id you can immediately use to upload source files. Useful for agencies that onboard new clients frequently and want to skip the dashboard click-through.

Example prompt: Create a new Crowdin project named 'Acme Mobile App' with source language en and target languages fr, de, ja and return the project id

### AI Agent Localization Assistant

Agents use Crowdin via Jentic to manage translation backlogs without holding Crowdin OAuth tokens directly. The agent searches for the right operation by intent, loads the schema, and executes the call with the project id supplied at runtime. Particularly useful for support agents that need to answer 'is the German translation ready?' or 'kick off translation for this PR'.

Example prompt: Search Jentic for 'check translation build status', load the schema, and report whether build 9876 in project 12345 has completed

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/projects` | List Crowdin projects |
| POST | `/projects` | Create a new project |
| POST | `/projects/{projectId}/translations/builds` | Trigger a translation build |
| GET | `/projects/{projectId}/translations/builds/{buildId}/download` | Download a finished build |
| GET | `/projects/{projectId}/files` | List source files in a project |
| POST | `/ai/prompts` | Create an AI translation prompt |

## Key resources

- **Projects** — Create, update, and inspect Crowdin localization projects
- **Files** — Enumerate source files attached to a project
- **Translation Builds** — Queue, monitor, and download translation builds
- **AI Prompts** — Manage AI prompts that post-edit and stylise translations

## Why Jentic

- **Setup:** Wiring the Crowdin API by hand means handling its bearer auth, targeting the v2 host, and mapping the project, file, and translation-build routes yourself. Through Jentic you install once, import Crowdin from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** Crowdin puts the project id in the URL path (`/projects/{projectId}/translations/builds`, `/projects/{projectId}/files`), so a rule can pin your agent to one project: it can build and download translations for that project and nothing else. You choose the operations it may call, so creating projects is only included if you add it.
- **Credential handling:** Your Crowdin bearer token is stored once, encrypted, by your own Jentic One instance and injected into the Authorization header at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'trigger a Crowdin translation build', and Jentic returns the matching operation with its input schema, including projectId and branchId, so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Phrase API** — Phrase is a competing localization platform with comparable project, file, and translation operations.
- **Smartling API** — Smartling is an enterprise translation management system with a similar build-and-download workflow.
- **HubSpot Account Info API** — HubSpot multi-language content can be exported to Crowdin for translation and re-imported.

## FAQ

### Why is there no official OpenAPI spec for Crowdin API?

Crowdin does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Crowdin API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Crowdin API use?

The Crowdin API uses bearer-token authentication. You can use either a personal access token generated from your Crowdin account or an OAuth access token issued to a Crowdin app. The token goes in the `Authorization: Bearer <token>` header. Jentic stores the token in the encrypted vault and injects it on every call so agents never see the raw secret.

### Can I trigger a translation build with the Crowdin API?

Yes - POST `/projects/{projectId}/translations/builds` queues a build for a project, optionally scoped to a branch or specific target languages. The response returns a build id you poll via GET `/projects/{projectId}/translations/builds`, and once status is `finished` you call GET `/projects/{projectId}/translations/builds/{buildId}/download` to fetch the zip.

### What are the rate limits for the Crowdin API?

Crowdin enforces tiered rate limits depending on your plan, typically starting around 20 requests per second for paid plans with bursts allowed. Translation build endpoints are heavier and may be rate-limited more aggressively. The current limit and remaining quota are returned in standard `X-RateLimit-*` response headers - read these on each call to back off cleanly.

### How do I download a finished translation through Jentic?

Run `pip install jentic`, search for 'download crowdin translation build', load the GET `/projects/{projectId}/translations/builds/{buildId}/download` schema, and execute with the project and build ids. Jentic streams the zip back through the SDK so the agent can write it straight to disk or pipe it into a deployment step.

### Can I use the Crowdin AI prompts endpoints?

Yes. POST `/ai/prompts` creates a prompt definition that can be attached to translation workflows for tone enforcement, terminology checks, or post-editing machine translations. GET `/ai/prompts` lists existing prompts so an agent can reuse a brand-voice prompt across projects rather than recreating it each time.

### Can I limit what my agent is allowed to do with the Crowdin API?

Yes. Because you run Jentic One yourself, your own rules decide which Crowdin operations and credentials the agent may use. Since Crowdin puts the project id in the URL path (`/projects/{projectId}/translations/builds`, `/projects/{projectId}/files`), you can pin the agent to a single project so it only builds and downloads translations for that project and nothing else. You also choose the exact operations it may call, so creating new projects via POST /projects is included only if you add it.
