Go to developer

OAuth Verify / Initialize OAuth authorization

Initialize OAuth authorization

POST/oauth/authorize/init

Starts PKCE authorization for @keyra/web-sdk. Default scope is openid profile phone. Returns auth_request_id + authorize_url (HTTP 201).

Authentication

BROWSER OK

Publishable client_idSend publishable cp_* in JSON body. No secret.

Request

Request body

Content-Type: application/json · required

  • client_idstringrequired

    Publishable client id (cp_*)

  • code_challengestringrequired

    PKCE S256 challenge

  • code_challenge_methodstring

    Enum: S256

  • modestring

    Enum: popup, redirect, auto

  • redirect_uristringrequired

    Exact registered callback URL

  • response_typestring

    Enum: code

  • scopestring
  • statestringrequired

    CSRF opaque value; required by runtime

Response

201 Authorization challenge created

  • auth_request_idstring (uuid)required
  • authorize_urlstring (uri)required
  • expires_inintegerrequired

    Challenge TTL seconds (default 600)

400 Invalid request or redirect_uri

  • errorstring
  • error_descriptionstring
  • validboolean

401 Unknown publishable client

  • errorstring
  • error_descriptionstring
  • validboolean

Errors

ErrorHTTPMeaningFix
invalid_request400Missing client_id, redirect_uri, state, or code_challengeInclude all required PKCE start fields Diagnose →
invalid_redirect_uri400redirect_uri not registeredExact-match registered callback URL Diagnose →
invalid_client401Unknown publishable clientUse a valid cp_* key for the project Diagnose →

SDK equivalent

Examples

Bash
curl -X POST "https://auth.keyra.ie/oauth/authorize/init" \
  -H "Content-Type: application/json" \
  -d '{"client_id":"cp_test_xxxxxxxx","redirect_uri":"http://localhost:3000/auth/keyra/callback","state":"state_abc123","code_challenge":"E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM","code_challenge_method":"S256","mode":"popup","scope":"openid profile phone"}'

Response

response.jsonJSON
{
  "auth_request_id": "550e8400-e29b-41d4-a716-446655440000",
  "authorize_url": "https://get-started.keyra.ie/oauth/authorize?auth_request_id=550e8400-e29b-41d4-a716-446655440000&mode=popup&scope=openid%20profile%20phone",
  "expires_in": 600
}