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.
Authorizations
Section titled “Authorizations”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters”Lowercase slug that identifies an application
Identifier of the application, a lowercase slug chosen at creation (match-tracker). Consumer applications configure it, so it never changes.
Header Parameters
Section titled “Header Parameters”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.
Request Bodyrequired
Section titled “Request Bodyrequired”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
BCP 47 language tag (language, optionally a script and a region)
object
Dotted message key, as in the translation files of the application
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.
object
Type of a message argument: ANY (formatted with toString), NUMBER (number, plural and #), DATE (date and time), STRING (select).
Responses
Section titled “ Responses ”Catalog imported, or the stored response of an earlier request with the same Idempotency-Key
object
New keys
Keys with a new base text, description or arguments
Keys that were not in the catalog and are now obsolete
Translations whose arguments no longer match their key after the import. They are kept, but cannot be published until they are fixed.
object
Dotted message key, as in the translation files of the application
BCP 47 language tag (language, optionally a script and a region)
Headers
Section titled “Headers”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
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.
Short, human-readable summary
HTTP status code
Human-readable explanation
URI of the request that caused the error
object
Field or property that failed validation
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.
Human readable validation message
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" } ]}{ "type": "https://errors.stratastax.dev/validation", "title": "Bad Request", "status": 400, "detail": "Received invalid request data", "errors": [ { "field": "participants[2].ghostPlayerId", "code": "DUPLICATE_GHOST_PLAYER", "message": "the ghost player already takes part in this match" } ]}{ "type": "https://errors.stratastax.dev/validation", "title": "Bad Request", "status": 400, "detail": "Request validation failed", "errors": [ { "field": "query", "code": "INVALID_SEARCH", "message": "'nonsense' is not a filterable field" } ]}Authentication required or token invalid
object
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.
Short, human-readable summary
HTTP status code
Human-readable explanation
URI of the request that caused the error
Examples
{ "type": "https://errors.stratastax.dev/authentication", "title": "Unauthorized", "status": 401, "detail": "Authentication required"}Insufficient permissions
object
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.
Short, human-readable summary
HTTP status code
Human-readable explanation
URI of the request that caused the error
Examples
{ "type": "https://errors.stratastax.dev/authorization", "title": "Access denied", "status": 403, "detail": "Insufficient permissions"}Resource not found
object
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.
Short, human-readable summary
HTTP status code
Human-readable explanation
URI of the request that caused the error
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
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.
Short, human-readable summary
HTTP status code
Human-readable explanation
URI of the request that caused the error
Examples
{ "type": "https://errors.stratastax.dev/conflict", "title": "Already exists", "status": 409, "detail": "A game with source bgg:199792 already exists."}{ "type": "https://errors.stratastax.dev/conflict", "title": "Self ghost player", "status": 409, "detail": "The ghost player that represents yourself cannot be deleted or unclaimed."}{ "type": "https://errors.stratastax.dev/conflict", "title": "Match is finalized", "status": 409, "detail": "This match is FINALIZED; propose a change via POST /matches/{matchId}/edits instead."}The Idempotency-Key was already used for a request with a different payload
object
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.
Short, human-readable summary
HTTP status code
Human-readable explanation
URI of the request that caused the error
object
Field or property that failed validation
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.
Human readable validation message
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
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.
Short, human-readable summary
HTTP status code
Human-readable explanation
URI of the request that caused the error
Examples
{ "type": "https://errors.stratastax.dev/internal", "title": "Oops! Something went wrong.", "status": 500, "detail": "Try again later."}