Skip to content
KismetKismetDevelopers
Beta accessllms.txt

Start a card invitation sign-in

View .md

POST /v1/developer/guest-auth/wallet/authorizations

Operation ID: startDeveloperGuestWalletAuthorization

BFF-only. Requires guest_auth.write and guest_wallet_requests.write, an exact registered callback and Origin, state and S256 PKCE. Returns a Kismet authorization URL. This does not prove guest identity: the browser must hold Kismet’s HttpOnly invitation grant. No membership, consent or payment is created. Deployment gated beta.

Field Value
Maturity preview
Required capability guest_auth.write
Freshness class authenticated-state
Quota cost 1

All operations require a Kismet Developer Bearer credential. Collection and resource authority is resolved from the credential’s installation grants; identifiers in the URL never grant access.

Name In Type Required Description
origin header string yes
x-kismet-csrf header string yes

The request body is JSON. The canonical schema is:

{
"type": "object",
"additionalProperties": false,
"properties": {
"requestId": {
"type": "string",
"format": "uuid"
},
"callbackUrl": {
"type": "string",
"maxLength": 2048,
"pattern": "^https?://[^\\s]+$"
},
"codeChallenge": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{43}$"
},
"state": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{43}$"
},
"kidSid": {
"type": "string",
"pattern": "^kid_[A-Za-z0-9]{8}$"
}
},
"required": [
"requestId",
"callbackUrl",
"codeChallenge",
"state",
"kidSid"
]
}

Minimal example:

{
"requestId": "string",
"callbackUrl": "string",
"codeChallenge": "string",
"state": "string",
"kidSid": "kid_Ab12Cd34"
}

Set KISMET_API_ORIGIN=https://api.ksmt.app and configure KISMET_DEVELOPER_API_KEY in your environment. Run server-credential requests from your backend, not browser code.

Guest access tokens come from the signed-in guest session held by your backend. Forward a CSRF proof only after your same-origin backend validates it. If shown, KISMET_SITE_ORIGIN is the authorized origin of your site. Do not substitute a guest ID or an invented token.

Terminal window
curl --request POST \
"$KISMET_API_ORIGIN/v1/developer/guest-auth/wallet/authorizations" \
--header "Authorization: Bearer $KISMET_DEVELOPER_API_KEY" \
--header "Accept: application/json" \
--header "origin: $KISMET_SITE_ORIGIN" \
--header "x-kismet-csrf: $VALIDATED_CSRF_TOKEN" \
--header "Content-Type: application/json" \
--data '{"requestId":"string","callbackUrl":"string","codeChallenge":"string","state":"string","kidSid":"kid_Ab12Cd34"}'
Status Meaning
201 Created successfully.
400 Invalid request parameters or body.
401 Missing, invalid, expired, or inappropriate credential/session.
403 Credential lacks the required grant/capability, or an origin/CSRF check failed.
404 The authorized resource was not found.
409 Request conflicts with the installation environment or current state.
410 The single-use authentication challenge is no longer valid.
429 Rate limit or quota exceeded; inspect response metadata before retrying.
503 A required Kismet dependency is temporarily unavailable.

Content type: application/json. Required fields, nullable values, and nested structures are defined below.

View complete response schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"authorizationUrl": {
"type": "string",
"maxLength": 2048,
"pattern": "^https?://[^\\s]+$"
},
"expiresAt": {
"type": "string",
"format": "date-time"
}
},
"required": [
"authorizationUrl",
"expiresAt"
]
}