Quickstart
This walks from nothing to a parsed translation bundle. It takes about five minutes and needs only curl.
-
Create an API token
In the Localeo dashboard, open the project you want to read, then Project → API tokens → Create token. Give it a name that says where it will be used (
ci-deploy,mobile-app), because that name is all you will have to identify it later.The token is shown once, at creation. Copy it now.
localeo_9fK2xY7pQ3mNvB8sL1tR4wZ6cD0aJ5hG2eU7iO9kKeep it in the shell for the rest of this page:
Terminal window export LOCALEO_TOKEN="localeo_9fK2xY7pQ3mNvB8sL1tR4wZ6cD0aJ5hG2eU7iO9k"export LOCALEO_API="https://api-public.localeo.app/v1" -
Confirm the token works
Terminal window curl -s "$LOCALEO_API/projects" \-H "Authorization: Bearer $LOCALEO_TOKEN"{"items": [{"id": "Qk3vAe","name": "Acme Web App","base_language_code": "en","created_at": "2026-01-15T09:30:00Z"}]}A token is scoped to exactly one project, so
itemsalways holds exactly one entry. If you get401, jump to Authentication. -
Find a release
Terminal window curl -s "$LOCALEO_API/releases?page_size=5" \-H "Authorization: Bearer $LOCALEO_TOKEN"{"items": [{"id": "7bWq0R","name": "Spring campaign copy","tag": "v1.4.0","status": "published","published_at": "2026-03-02T14:05:00Z","created_at": "2026-03-01T11:20:00Z"}]}Releases come back newest-first. Only published ones are ever returned.
-
Get its download URLs
Terminal window curl -s "$LOCALEO_API/releases/7bWq0R" \-H "Authorization: Bearer $LOCALEO_TOKEN"{"id": "7bWq0R","name": "Spring campaign copy","tag": "v1.4.0","status": "published","published_at": "2026-03-02T14:05:00Z","created_at": "2026-03-01T11:20:00Z","languages": [{"code": "en","is_base_language": true,"download_urls": {"json": "https://cdn.localeo.app/p/8Qw2ZrKt6Yb1Nc0P/r/Ld4Hs9Vx2Tg7Mq3B/en.json","yaml": "https://cdn.localeo.app/p/8Qw2ZrKt6Yb1Nc0P/r/Ld4Hs9Vx2Tg7Mq3B/en.yaml","arb": "https://cdn.localeo.app/p/8Qw2ZrKt6Yb1Nc0P/r/Ld4Hs9Vx2Tg7Mq3B/en.arb"}},{"code": "nl","is_base_language": false,"download_urls": {"json": "https://cdn.localeo.app/p/8Qw2ZrKt6Yb1Nc0P/r/Ld4Hs9Vx2Tg7Mq3B/nl.json","yaml": "https://cdn.localeo.app/p/8Qw2ZrKt6Yb1Nc0P/r/Ld4Hs9Vx2Tg7Mq3B/nl.yaml","arb": "https://cdn.localeo.app/p/8Qw2ZrKt6Yb1Nc0P/r/Ld4Hs9Vx2Tg7Mq3B/nl.arb"}}]} -
Download a bundle
The download URLs need no token — they are unauthenticated CDN files:
Terminal window curl -s "https://cdn.localeo.app/p/8Qw2ZrKt6Yb1Nc0P/r/Ld4Hs9Vx2Tg7Mq3B/nl.json"{"checkout.title": "Afrekenen","checkout.submit": "Bestelling plaatsen"}That is the whole integration. Everything else is detail about doing it reliably.
Where to go next
- Downloading the newest release without looking it up first → Releases & bundles
- Handling
429correctly → Rate limits - Why a second identical request is instant → Caching
- Copy-pasteable Node, Go and CI examples → Recipes