Create a project

Creates a new localization project in the workspace that the API key belongs to. The project type determines the resource file format used for translations (e.g., 'ANDROID_XML', 'IOS_STRINGS', 'STANDARD_JSON'). A source language and at least one target language are required. Requires workspace-level stack management permission. Optional stack_id selects an existing stack and also requires stack-level settings and language management permissions.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params

Request body for creating a LingoHub project.

string
required
length between 2 and 255

The name of the project.

string | null

The AI context of the project.

string
enum
required

Specifies the type of project by the resources it uses for storing and handling segments.

string
required

The source language code for the project.

target_language_codes
array of strings
required
length between 1 and 2147483647

List of target language codes for translation.

target_language_codes*
string | null
#[0-9a-fA-F]{6}

Hex color code of the project icon. Optional: omit it and the server assigns a random color.

string | null
^stack_[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$

Optional destination stack. Omit or send null to create a new private stack. The destination must use the requested source language (or have no source yet). An occupied private stack cannot accept another project. Existing stack configuration and access are retained; missing target languages are added stack-wide.

Headers
string
length between 1 and 255

Optional unique key for best-effort POST retry protection. Redis reserves the key, the request runs with ordinary service transactions, then the successful response is cached separately for 24 hours by default. There is no request-wide transaction or atomic commit between the operation and its replay result. A matching cached response is replayed verbatim with Idempotent-Replayed: true. Redis loss/eviction or retention expiry can remove protection and allow re-execution. Uploads and chunked bodies are covered; multipart boundaries and JSON property order may differ. Retries still pass validation and current authorization; a later 403/404 does not undo the original operation. A changed payload returns 422 idempotency_key_mismatch. A recent active reservation returns 409 idempotency_key_in_use with Retry-After. A retry with an unresolved key, including an unfinished reservation older than 5 minutes, returns 409 idempotency_outcome_unknown without Retry-After. This timeout does not release the reservation or permit re-execution while it is retained. Inspect the affected resource before starting a new operation; do not blindly reuse an unresolved key after expiry. A 4xx rejection releases the reservation, allowing the same key to be retried after correcting the cause. A 5xx or interruption after execution starts leaves it unresolved. An unavailable reservation store returns 503 before execution; an oversized request returns 413. Cache-save failure or a response over the cache limit preserves the original success status, headers and body; only future retries become unresolved. When idempotency is explicitly disabled by server configuration, the header is ignored and requests execute normally without retry protection. Use a new unique key for each intended operation.

string
enum
Defaults to application/json

Generated from available response content types

Allowed:
Responses

Language
Credentials
Bearer
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json
application/problem+json