Skip to content

Keys endpoints

Manage translation keys and their translated values.

Overview

Translation keys are the named slots that hold translated strings for each language. A key belongs to a group, lives inside a project, and can have one translation value per language.


GET /v1/keys

List all non-deleted translation keys for the project.

Request

GET https://sapi.i18nme.com/v1/keys
ParameterInRequiredDescription
groupqueryFilter keys by group name
HeaderRequiredDescription
X-API-KeyYour project API key

Response

200 OK

json
{
  "project_id": "3fa85f64-...",
  "keys": [
    {
      "id": "a1b2c3d4-...",
      "key": "common.welcome",
      "group_name": "common",
      "description": "Greeting shown on the home page",
      "created_at": "2026-01-15T10:00:00Z",
      "updated_at": "2026-01-15T10:00:00Z"
    }
  ],
  "count": 1
}

POST /v1/keys

Create a new translation key.

Plan limits

The number of keys per project depends on your subscription plan. The API returns 402 Payment Required when the limit is reached.

PlanKeys per project
Free250
Solo2,500
Team / BusinessUnlimited

Request

POST https://sapi.i18nme.com/v1/keys
Content-Type: application/json
HeaderRequiredDescription
X-API-KeyYour project API key
json
{
  "key": "common.welcome",
  "group_name": "common",
  "description": "Greeting shown on the home page"
}
FieldRequiredMax lengthDescription
key500Unique key identifier within the project
group_name200Group to assign the key to (default: "Default")
description1,000Optional human-readable description

Response

201 Created

json
{
  "id": "a1b2c3d4-...",
  "project_id": "3fa85f64-...",
  "key": "common.welcome",
  "group_name": "common",
  "description": "Greeting shown on the home page"
}

402 Payment Required — key limit reached for your plan.
409 Conflict — a key with this name already exists in this group.


PATCH /v1/keys/

Update the group_name and/or description of an existing key. The key name itself cannot be changed — delete and recreate if needed.

Request

PATCH https://sapi.i18nme.com/v1/keys/{key_id}
Content-Type: application/json
ParameterInRequiredDescription
key_idpathUUID of the key
json
{
  "group_name": "nav",
  "description": "Updated description"
}

Response

200 OK

json
{
  "id": "a1b2c3d4-...",
  "project_id": "3fa85f64-...",
  "updated": true,
  "group_name": "nav"
}

404 Not Found — key does not exist or belongs to another project.


DELETE /v1/keys/

Soft-delete a translation key and all its translation values.

Request

DELETE https://sapi.i18nme.com/v1/keys/{key_id}

Response

204 No Content — key deleted; no response body.

404 Not Found — key does not exist.


PUT /v1/keys/{key_id}/translations/

Create or update the translation value for a specific key and language. If a translation already exists for that language it is overwritten.

Request

PUT https://sapi.i18nme.com/v1/keys/{key_id}/translations/{language}
Content-Type: application/json
ParameterInRequiredDescription
key_idpathUUID of the key
languagepathBCP-47 language code (e.g. en, en-US)
json
{
  "value": "Welcome",
  "status": "approved"
}
FieldRequiredDescription
valueTranslated string (max 10,000 characters)
statusdraft (default), review, or approved

Response

200 OK

json
{
  "key_id": "a1b2c3d4-...",
  "language": "en",
  "value": "Welcome",
  "status": "approved",
  "project_id": "3fa85f64-..."
}

404 Not Found — key does not exist or belongs to another project.


DELETE /v1/keys/{key_id}/translations/

Permanently delete a single translation value (one language for one key).

Request

DELETE https://sapi.i18nme.com/v1/keys/{key_id}/translations/{language}

Response

204 No Content — translation deleted; no response body.

404 Not Found — key or translation not found.


Examples

bash
curl -X POST https://sapi.i18nme.com/v1/keys \
  -H "X-API-Key: key_live_XXXX" \
  -H "Content-Type: application/json" \
  -d '{"key": "common.welcome", "group_name": "common"}'
bash
curl -X PUT https://sapi.i18nme.com/v1/keys/a1b2c3d4-.../translations/en \
  -H "X-API-Key: key_live_XXXX" \
  -H "Content-Type: application/json" \
  -d '{"value": "Welcome", "status": "approved"}'
bash
curl -X DELETE https://sapi.i18nme.com/v1/keys/a1b2c3d4-... \
  -H "X-API-Key: key_live_XXXX"

i18nme is provided on a best-effort basis. While we strive for reliability and rapid issue resolution, no specific uptime, response time, or bug-fix timeframe is guaranteed.
Translation content and AI-generated output should be reviewed before production use.