Skip to content

Import key catalog

POST
/api/v1/applications/{applicationId}/keys/import

Replaces the key catalog with the keys, base texts and arguments compiled from the translation files of the application (stx i18n push). New keys are added, changed keys are updated and missing keys become obsolete; translations are never deleted.

applicationId
required

Lowercase slug that identifies an application

string
/^[a-z][a-z0-9-]{1,62}$/

Identifier of the application, a lowercase slug chosen at creation (match-tracker). Consumer applications configure it, so it never changes.

Idempotency-Key
required
string

Client-generated UUIDv7, required on every mutating request (POST, PUT, PATCH, DELETE), that makes the request safe to retry. A repeated request with the same key and the same payload returns the stored response (marked with the Idempotent-Replayed: true header) instead of executing again; the same key with a different payload is refused with 422. Keys older than the retention window (30 days) are rejected. A key that is not a UUID is refused with 400.

The complete key catalog of the application in its base locale, as compiled from its translation files. Keys that are not in the catalog become obsolete.

object
baseLocale
required

BCP 47 language tag (language, optionally a script and a region)

string
/^[a-z]{2,3}(-[A-Z][a-z]{3})?(-([A-Z]{2}|[0-9]{3}))?$/
keys
required
Array<object>
<= 10000 items
object
key
required

Dotted message key, as in the translation files of the application

string
<= 200 characters /^[A-Za-z0-9_]+(\.[A-Za-z0-9_]+)*$/
baseText
required

Text of a message in ICU MessageFormat: plain text, {name}, {n, number}, {d, date, short}, {n, plural, one {...} other {...}} and {x, select, a {...} other {...}}. It may only use the arguments of its key.

string
<= 4000 characters
description
string
<= 1000 characters
arguments
Array<object>
object
name
required
string
/^[A-Za-z][A-Za-z0-9_]*$/
type
required

Type of a message argument: ANY (formatted with toString), NUMBER (number, plural and #), DATE (date and time), STRING (select).

string
Allowed values: ANY NUMBER DATE STRING

Catalog imported, or the stored response of an earlier request with the same Idempotency-Key

object
added
required

New keys

integer format: int32
updated
required

Keys with a new base text, description or arguments

integer format: int32
obsoleted
required

Keys that were not in the catalog and are now obsolete

integer format: int32
unchanged
required
integer format: int32
invalidated

Translations whose arguments no longer match their key after the import. They are kept, but cannot be published until they are fixed.

Array<object>
object
key
required

Dotted message key, as in the translation files of the application

string
<= 200 characters /^[A-Za-z0-9_]+(\.[A-Za-z0-9_]+)*$/
locale
required

BCP 47 language tag (language, optionally a script and a region)

string
/^[a-z]{2,3}(-[A-Z][a-z]{3})?(-([A-Z]{2}|[0-9]{3}))?$/
Idempotent-Replayed
string
Allowed values: true

Present (true) when the response was replayed from an earlier request with the same Idempotency-Key, instead of being executed again

Request validation failed

object
type
required

Canonical error type identifier (URI). The values are the problem types of stratastax-http’s problem-core; stratastax-codegen fails the build of a service when the two disagree.

string
Allowed values: https://errors.stratastax.dev/authentication https://errors.stratastax.dev/authorization https://errors.stratastax.dev/validation https://errors.stratastax.dev/not-found https://errors.stratastax.dev/conflict https://errors.stratastax.dev/precondition-failed https://errors.stratastax.dev/internal
title
required

Short, human-readable summary

string
status
required

HTTP status code

integer format: int32
detail
required

Human-readable explanation

string
instance

URI of the request that caused the error

string format: uri
errors
Array<object>
object
field
required

Field or property that failed validation

string
code
required

Machine-readable validation error code, e.g. REQUIRED, VALUE_TOO_LONG, INVALID_FORMAT, OUT_OF_RANGE. Canonical list is maintained per resource in the documentation.

string
message
required

Human readable validation message

string
rejectedValue

The actual value that failed validation. Omitted if the value is sensitive.

Examples
{
"type": "https://errors.stratastax.dev/validation",
"title": "Bad Request",
"status": 400,
"detail": "Received invalid request data",
"errors": [
{
"field": "displayName",
"code": "REQUIRED",
"message": "missing required field"
}
]
}

Authentication required or token invalid

object
type
required

Canonical error type identifier (URI). The values are the problem types of stratastax-http’s problem-core; stratastax-codegen fails the build of a service when the two disagree.

string
Allowed values: https://errors.stratastax.dev/authentication https://errors.stratastax.dev/authorization https://errors.stratastax.dev/validation https://errors.stratastax.dev/not-found https://errors.stratastax.dev/conflict https://errors.stratastax.dev/precondition-failed https://errors.stratastax.dev/internal
title
required

Short, human-readable summary

string
status
required

HTTP status code

integer format: int32
detail
required

Human-readable explanation

string
instance

URI of the request that caused the error

string format: uri
Examples
{
"type": "https://errors.stratastax.dev/authentication",
"title": "Unauthorized",
"status": 401,
"detail": "Authentication required"
}

Insufficient permissions

object
type
required

Canonical error type identifier (URI). The values are the problem types of stratastax-http’s problem-core; stratastax-codegen fails the build of a service when the two disagree.

string
Allowed values: https://errors.stratastax.dev/authentication https://errors.stratastax.dev/authorization https://errors.stratastax.dev/validation https://errors.stratastax.dev/not-found https://errors.stratastax.dev/conflict https://errors.stratastax.dev/precondition-failed https://errors.stratastax.dev/internal
title
required

Short, human-readable summary

string
status
required

HTTP status code

integer format: int32
detail
required

Human-readable explanation

string
instance

URI of the request that caused the error

string format: uri
Examples
{
"type": "https://errors.stratastax.dev/authorization",
"title": "Access denied",
"status": 403,
"detail": "Insufficient permissions"
}

Resource not found

object
type
required

Canonical error type identifier (URI). The values are the problem types of stratastax-http’s problem-core; stratastax-codegen fails the build of a service when the two disagree.

string
Allowed values: https://errors.stratastax.dev/authentication https://errors.stratastax.dev/authorization https://errors.stratastax.dev/validation https://errors.stratastax.dev/not-found https://errors.stratastax.dev/conflict https://errors.stratastax.dev/precondition-failed https://errors.stratastax.dev/internal
title
required

Short, human-readable summary

string
status
required

HTTP status code

integer format: int32
detail
required

Human-readable explanation

string
instance

URI of the request that caused the error

string format: uri
Examples
{
"type": "https://errors.stratastax.dev/not-found",
"title": "Resource not found",
"status": 404,
"detail": "The requested resource could not be found"
}

The requested mutation is not allowed in the resource’s current state, or it conflicts with existing data (a unique value that is already taken)

object
type
required

Canonical error type identifier (URI). The values are the problem types of stratastax-http’s problem-core; stratastax-codegen fails the build of a service when the two disagree.

string
Allowed values: https://errors.stratastax.dev/authentication https://errors.stratastax.dev/authorization https://errors.stratastax.dev/validation https://errors.stratastax.dev/not-found https://errors.stratastax.dev/conflict https://errors.stratastax.dev/precondition-failed https://errors.stratastax.dev/internal
title
required

Short, human-readable summary

string
status
required

HTTP status code

integer format: int32
detail
required

Human-readable explanation

string
instance

URI of the request that caused the error

string format: uri
Examples
{
"type": "https://errors.stratastax.dev/conflict",
"title": "Already exists",
"status": 409,
"detail": "A game with source bgg:199792 already exists."
}

The Idempotency-Key was already used for a request with a different payload

object
type
required

Canonical error type identifier (URI). The values are the problem types of stratastax-http’s problem-core; stratastax-codegen fails the build of a service when the two disagree.

string
Allowed values: https://errors.stratastax.dev/authentication https://errors.stratastax.dev/authorization https://errors.stratastax.dev/validation https://errors.stratastax.dev/not-found https://errors.stratastax.dev/conflict https://errors.stratastax.dev/precondition-failed https://errors.stratastax.dev/internal
title
required

Short, human-readable summary

string
status
required

HTTP status code

integer format: int32
detail
required

Human-readable explanation

string
instance

URI of the request that caused the error

string format: uri
errors
Array<object>
object
field
required

Field or property that failed validation

string
code
required

Machine-readable validation error code, e.g. REQUIRED, VALUE_TOO_LONG, INVALID_FORMAT, OUT_OF_RANGE. Canonical list is maintained per resource in the documentation.

string
message
required

Human readable validation message

string
rejectedValue

The actual value that failed validation. Omitted if the value is sensitive.

Examples
{
"type": "https://errors.stratastax.dev/validation",
"title": "Unprocessable Content",
"status": 422,
"detail": "Idempotency key reused for a different request",
"errors": [
{
"field": "Idempotency-Key",
"code": "IDEMPOTENCY_KEY_REUSED",
"message": "0192f100-0000-7000-8000-0000000000a5 was already used for a different request"
}
]
}

Unexpected server error

object
type
required

Canonical error type identifier (URI). The values are the problem types of stratastax-http’s problem-core; stratastax-codegen fails the build of a service when the two disagree.

string
Allowed values: https://errors.stratastax.dev/authentication https://errors.stratastax.dev/authorization https://errors.stratastax.dev/validation https://errors.stratastax.dev/not-found https://errors.stratastax.dev/conflict https://errors.stratastax.dev/precondition-failed https://errors.stratastax.dev/internal
title
required

Short, human-readable summary

string
status
required

HTTP status code

integer format: int32
detail
required

Human-readable explanation

string
instance

URI of the request that caused the error

string format: uri
Examples
{
"type": "https://errors.stratastax.dev/internal",
"title": "Oops! Something went wrong.",
"status": 500,
"detail": "Try again later."
}