curl --request GET \
--url https://api.example.com/api/form-token{
"token": "<string>"
}curl --request GET \
--url https://api.example.com/api/form-token{
"token": "<string>"
}Documentation Index
Fetch the complete documentation index at: https://mintlify.com/concrete-security/umbra/llms.txt
Use this file to discover all available pages before exploring further.
GET /api/form-token
Origin header){nonce}.{timestamp}.{signature}nonce: 32-character hex string (16 bytes of randomness)timestamp: Unix timestamp in millisecondssignature: 64-character HMAC-SHA256 signatureFORM_TOKEN_SECRET environment variable not configuredcurl https://umbra.concrete-security.com/api/form-token \
-H "Origin: https://umbra.concrete-security.com"
{
"token": "a1b2c3d4e5f67890123456789abcdef0.1709654400000.8f3a2b1c4d5e6f7890123456789abcdef01234567890abcdef1234567890abcd"
}
{
"error": "Unable to issue a form token. Please try again later."
}
FORM_TOKEN_SECRET{nonce}.{timestamp}.{signature}
a1b2c3d4e5f67890123456789abcdef0 (32 hex chars)1709654400000 (milliseconds since epoch)8f3a2b1c4d5e6f7890123456789abcdef01234567890abcdef1234567890abcd (64 hex chars)HMAC-SHA256(nonce + "." + timestamp, FORM_TOKEN_SECRET)
FORM_TOKEN_SECRET environment variable must be configured and kept secure. It’s used to sign and verify all form tokens./api/form-token/api/waitlist or /api/feedbackfrontend/app/api/form-token/route.ts and frontend/lib/security/form-token.ts