curl --request POST \
--url https://api.example.com/api/waitlist{
"success": true
}curl --request POST \
--url https://api.example.com/api/waitlist{
"success": true
}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.
POST /api/waitlist
/api/form-token endpoint.429 Too Many Requests with a Retry-After header when exceeded.
Origin header)Content-Type: application/jsoncheckpoint) must be empty/api/form-token{
"email": "user@example.com",
"company": "Acme Corp",
"use_case": "Processing sensitive medical data in TEEs",
"metadata": {
"source": "homepage",
"referrer": "search"
},
"form_token": "a1b2c3d4e5f6.1709654400.8f3a2b1c4d5e6f7890123456789abcdef0123456",
"checkpoint": ""
}
Content-Type headerRetry-After header with seconds to wait)# First, get a form token
TOKEN=$(curl https://umbra.concrete-security.com/api/form-token | jq -r '.token')
# Then submit the waitlist request
curl -X POST https://umbra.concrete-security.com/api/waitlist \
-H "Content-Type: application/json" \
-H "Origin: https://umbra.concrete-security.com" \
-d "{
\"email\": \"user@example.com\",
\"company\": \"Acme Corp\",
\"use_case\": \"Processing sensitive medical data\",
\"form_token\": \"$TOKEN\",
\"checkpoint\": \"\"
}"
{
"success": true
}
{
"error": "Email is required"
}
upsert behavior using email as the conflict key. Submitting the same email multiple times will update the existing record./^[^\s@]+@[^\s@]+\.[^\s@]+$/), converted to lowercasefrontend/app/api/waitlist/route.ts