Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.dacard.ai/llms.txt

Use this file to discover all available pages before exploring further.

Inspect a pending invite by email (no auth required), then accept or decline (auth required). Used by the invite landing page.

Inspect a pending invite

curl -X GET "https://app.dacard.ai/api/teams/tm_2x1B3y/accept?email=designer@acme.com"
PropertyValue
AuthNot required (public preview)
IdempotentYes
Response:
{
  "teamName": "Acme Product",
  "inviteStatus": "pending",
  "memberRole": "scorer",
  "functionScope": "design"
}

Accept or decline

curl -X POST https://app.dacard.ai/api/teams/tm_2x1B3y/accept \
  -H "Authorization: Bearer $DACARD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "decision": "accept" }'
PropertyValue
AuthRequired
IdempotentYes (second accept is a no-op)
Body: { "decision": "accept" } or { "decision": "decline" }. The caller’s authenticated email must match the invited email. Mismatches return 403.

Errors

StatusCodeWhen
401AUTH_REQUIREDPOST without session.
403Email does not match inviteAuthed user’s email differs from the invite’s email.
404Team not foundBad team id.
410TEAM_INVITE_EXPIREDInvite token aged out.
500INTERNAL_ERRORWrite failed.