Skip to content

Read the ID configuration for a site

GET
/v1/id/config
curl --request GET \
--url https://your-tenant-host/v1/id/config \
--header 'x-edgekit-site-id: site_example'

Unauthenticated and edge-cacheable. Selects the site with the same header as every other route, and the response varies on it (Vary: x-edgekit-site-id) rather than being keyed by a query parameter — one site must never be served another’s descriptor from a shared cache. Carries no branding or copy: the organization resolves presentation before the browser. Answers * for any origin on Access-Control-Allow-Origin, unlike the rest of the surface, because the descriptor carries no credential and is public to anyone who can guess a site id. Cached for up to 5 minutes on a shared cache (s-maxage=300) and 1 minute in the browser (max-age=60) — a setting changed here, including idMode, can take up to 5 minutes to reach a client even though the server enforces the change immediately.

x-edgekit-site-id
required

The site this request is for, within this tenant. Every official EdgeKit SDK sets it from the client you configured; set it yourself only when calling this API directly.

string
>= 1 characters <= 128 characters

Example

site_example

The site this request is for, within this tenant. Every official EdgeKit SDK sets it from the client you configured; set it yourself only when calling this API directly.

The configuration a client needs to drive the flows.

Media typeapplication/json
object
methods
required
Array<object>
object
name
required

Open: accept a member not listed. Known: magic-link, email-otp, google.

string
registrationTraits
required
Array<object>
object
name
required
string
type
required

Open: accept a member not listed. Known: string, integer, number, boolean, list.

string
label
required
string
required
required
boolean
constraints
required
object
key
additional properties
clientId
string
captcha
required
object
provider
required
string
siteKey
required
string
flow
required
object
otpLength
required
integer
otpExpiresIn
required
integer
magicLinkExpiresIn
required
integer
resendCooldown
required
integer
operations
required
Array<string>
idMode
required

Open: accept a member not listed. Known: edgekit_only, external_only, dual.

string

Example

{
"methods": [
{
"name": "magic-link",
"registrationTraits": [
{
"name": "job_industry",
"type": "string",
"label": "Industry",
"required": false,
"constraints": {
"items": [
{
"id": "01926f3a-8b51-7e99-9aaa-8b9c0d1e2f3a",
"label": "Fashion",
"externalId": "IND_FASHION"
}
]
}
}
],
"clientId": "1234.apps.googleusercontent.com"
}
],
"captcha": {
"provider": "turnstile",
"siteKey": "0x4AAAAAAA"
},
"flow": {
"otpLength": 6,
"otpExpiresIn": 300,
"magicLinkExpiresIn": 300,
"resendCooldown": 60
},
"operations": [
"sign-in"
],
"idMode": "edgekit_only"
}

Invalid request.

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
details

Example

{
"error": {
"code": "unauthorized",
"message": "Invalid or missing API key."
}
}

Resource not found.

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
details

Example

{
"error": {
"code": "unauthorized",
"message": "Invalid or missing API key."
}
}

Request validation failed.

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
details

Example

{
"error": {
"code": "unauthorized",
"message": "Invalid or missing API key."
}
}

Unexpected error.

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
details

Example

{
"error": {
"code": "unauthorized",
"message": "Invalid or missing API key."
}
}