Skip to content

Get Project Config

GET
/api/integrations/project-config
curl --request GET \
--url https://app.lionrapid.com/api/integrations/project-config

Flat project language config for SDK integration keys.

Companion track to the named-key↔auto_ map (docs/20-named-key-autokey-map): the SDK’s language switcher and default locale stop being hardcoded — they come from the dashboard. Adding a target language creates its ProjectFileTarget eagerly, so it shows up here on the SDK’s next load.

Trust model matches translation reads: any key carrying config:read (pk_ publishable and master). Editor-session keys are denied (403).

Returns { projectId, projectName, defaultLocale, languages } where languages is source-first, then every dashboard-configured target locale (deduped).

projectId is the project_uuid, and it is here so a client can verify WHICH project its key points at. lionrapid.yml’s project: is free text that nothing checks; it once said “tm-frontpage” while 30 jobs went elsewhere. The identity is a property of the key, so it is read off the authenticated project rather than accepted from the caller.

surface
Any of:
string
x-api-key
Any of:
string
x-lr-surface
Any of:
string

Successful Response

Media typeapplication/json
ProjectConfigResponse

Flat project language config for SDK integration keys.

Companion track to the named-key↔auto_ map (docs/20): the SDK’s language switcher and default locale stop being hardcoded — they come from the dashboard. Same trust model as translation reads (any config:read key, i.e. pk_/master). languages is source-first, then every dashboard-configured target locale, deduped. Locales are ISO 639-1 where one exists (else the raw code). The client (packages/core NetworkRepository.getProjectConfig) treats a 404 or unusable payload as “keep local fallback”.

projectId/projectName are additive (CLI onboarding): the CLI writes the id into lionrapid.yml and verifies it before every command, which is what the free-text project: field could never do — it once read “tm-frontpage” for 30 jobs that went somewhere else. Both come from the key’s own project, so no new scope is needed: whoever may read the config already is that project, and config:read is what a pk_ carries.

object
projectId
required
Projectid

The project’s UUID — stable across renames, and what a client should store

string
projectName
required
Projectname

Display name, for confirming to a human which project a key points at

string
defaultLocale
required
Defaultlocale

The project’s source language as a locale (ISO 639-1 where available)

string
languages
Languages

All locales this project serves — source first, then dashboard-configured targets

Array<string>
Example
{
"defaultLocale": "en",
"languages": [
"en",
"es",
"fi"
],
"projectId": "019fd669-673f-75ec-a1e7-2ef8a70eda0a",
"projectName": "Acme marketing site"
}

Validation Error

Media typeapplication/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
Examplegenerated
{
"detail": [
{
"loc": [
"example"
],
"msg": "example",
"type": "example"
}
]
}