Skip to content

REST API

Updated: September 9, 2026

AZbox publishes libraries for three stacks: Dart/Flutter on pub.dev, Node.js on npm and PHP on Packagist. Every other stack — React Native, native iOS or Android, Vue, Angular, Go, Python — integrates through this API.

We would rather say that here than let you spend an afternoon looking for an SDK that does not exist.

Fetching the keywords of a project

GET https://api.azbox.io/v1/projects/{projectId}/keywords
ParameterInRequiredDescription
projectIdpathyesYour project ID, from the dashboard
tokenqueryyesYour API key
languagequeryyesLanguage code: EN, ES, PT
afterUpdatedAtStrquerynoISO date. Returns only keywords updated after it

Example

curl "https://api.azbox.io/v1/projects/YOUR_PROJECT_ID/keywords?token=YOUR_API_KEY&language=ES"

Response

An array of keywords. Each one carries its id and its data:

[
  {
    "id": "home.title",
    "data": {
      "translation": "Bienvenido a AZbox",
      "context": null,
      "updatedAt": "2026-09-02T10:14:00.000Z"
    }
  }
]

Syncing only what changed

Pass afterUpdatedAtStr with the timestamp of your last sync and you get back only the keywords touched since then. This is what makes over-the-air updates practical: correct a string in the dashboard and your next refresh picks it up without a deploy and without going through the store.

curl "https://api.azbox.io/v1/projects/YOUR_PROJECT_ID/keywords?token=YOUR_API_KEY&language=ES&afterUpdatedAtStr=2026-09-01T00:00:00.000Z"

Store the timestamp of the response you last applied, not the current clock, or you will miss anything written while your request was in flight.

Notes worth reading before you build

  • The API is read-only for keywords. They are created in the dashboard or by importing a file. There is no endpoint here that uploads them.
  • One request per language. There is no combined response.
  • Interpolation is yours. Strings come back exactly as stored, placeholders included. Substituting {count} and friends is your job.
  • Cache the result. One request per string at render time will be slow. Fetch once at startup and refresh on an interval.
  • Keep the token server-side where you can. It travels as a query parameter, so it ends up in access logs, proxies and browser history if you call the API straight from a client.

Reference implementation

The Node client is about a hundred lines and does exactly this and nothing more. If you are writing a client for another language, it is the shortest thing to read: azbox-node on npm.

For the three stacks that do have a library, start with the quickstart instead: Flutter, Node.js or PHP.

Call to action background

Start Global Growth Today

Upload your language files, get them translated, and keep every locale in sync as your product keeps changing.

Get Started - It's Free