Skip to content

Initiate OAuth/OIDC login

POST
/v1/auth/login/{providerId}
curl --request POST \
--url https://example.com/v1/auth/login/example \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "redirectUri": "https://example.com" }'

Framework generates state + PKCE code_verifier (S256 challenge). Caller redirects the user-agent to authorizationUrl. Provider redirects back to redirectUri with code + state; caller POSTs those to /v1/auth/callback/:providerId to complete the flow. When the provider config populated allowedRedirectUris, the effective redirect_uri MUST be an exact match — otherwise 400 redirect-uri-not-allowed.

providerId
required
string
>= 1 characters
Idempotency-Key
string
>= 1 characters

Caller-supplied idempotency key. Retries with the same key return the original response byte-identical (per docs/API-ROUTE-CONVENTIONS.md §3.1).

Media typeapplication/json

Optional body for POST /v1/auth/login/:providerId. redirectUri overrides metadata.defaultRedirectUri on the provider config; at least one MUST be supplied.

object
redirectUri
string format: uri
Examplegenerated
{
"redirectUri": "https://example.com"
}

Authorization URL + PKCE parameters.

Media typeapplication/json
object
authorizationUrl
required

URL the caller redirects the user-agent to. Includes client_id, redirect_uri, scope, state, code_challenge, code_challenge_method=S256.

string format: uri
state
required
string
>= 1 characters
codeChallenge
required
string
>= 1 characters
codeChallengeMethod
required
string
Allowed values: S256
Example
{
"codeChallengeMethod": "S256"
}

Malformed request body.

Media typeapplication/json
object
error
required
object
code
required

Stable machine-readable discriminant. Values match domain error codes (see docs/API-ROUTE-CONVENTIONS.md §4.3).

string
message
required
string
details

Optional, kind-specific.

object
key
additional properties
any
requestId
required

Server-assigned request id; also echoed via X-Request-Id header.

string
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"details": {},
"requestId": "example"
}
}

Missing / malformed / expired / revoked bearer token.

Media typeapplication/json
object
error
required
object
code
required

Stable machine-readable discriminant. Values match domain error codes (see docs/API-ROUTE-CONVENTIONS.md §4.3).

string
message
required
string
details

Optional, kind-specific.

object
key
additional properties
any
requestId
required

Server-assigned request id; also echoed via X-Request-Id header.

string
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"details": {},
"requestId": "example"
}
}

No identity provider registered with that id under this tenant.

Media typeapplication/json
object
error
required
object
code
required

Stable machine-readable discriminant. Values match domain error codes (see docs/API-ROUTE-CONVENTIONS.md §4.3).

string
message
required
string
details

Optional, kind-specific.

object
key
additional properties
any
requestId
required

Server-assigned request id; also echoed via X-Request-Id header.

string
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"details": {},
"requestId": "example"
}
}

Idempotency-Key was reused with a different body, or resource-state conflict.

Media typeapplication/json
object
error
required
object
code
required

Stable machine-readable discriminant. Values match domain error codes (see docs/API-ROUTE-CONVENTIONS.md §4.3).

string
message
required
string
details

Optional, kind-specific.

object
key
additional properties
any
requestId
required

Server-assigned request id; also echoed via X-Request-Id header.

string
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"details": {},
"requestId": "example"
}
}

Server error (unmapped domain code or framework crash).

Media typeapplication/json
object
error
required
object
code
required

Stable machine-readable discriminant. Values match domain error codes (see docs/API-ROUTE-CONVENTIONS.md §4.3).

string
message
required
string
details

Optional, kind-specific.

object
key
additional properties
any
requestId
required

Server-assigned request id; also echoed via X-Request-Id header.

string
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"details": {},
"requestId": "example"
}
}