Skip to content

List pending invites

GET
/api/team/invites/
curl --request GET \
--url http://localhost:8000/api/team/invites/ \
--header 'Authorization: Bearer <token>'

Returns invites currently in pending state for the active team, newest first. Cancelled, accepted, and expired invites are excluded — query history isn’t exposed because the UI surfaces only what’s actionable. Empty array when no team or nothing pending.

Media typeapplication/json
Array<object>

Full invite row — owner-facing (pending invites list).

object
id
required

Invite UUID — use to cancel via DELETE /api/team/invites//.

string format: uuid
email
required

Recipient email.

string format: email
display_name
required

Friendly name as supplied at invite creation (optional).

string
status
required

pending / accepted / cancelled / expired.

  • pending - Pending
  • accepted - Accepted
  • expired - Expired
  • cancelled - Cancelled
string
Allowed values: pending accepted expired cancelled
expires_at
required

ISO-8601 UTC. Invites expire after the team-wide TTL (currently 7 days).

string format: date-time
accepted_at
required

Stamped when the recipient accepts. Null otherwise.

string format: date-time
nullable
created_at
required

When the invite was sent.

string format: date-time
Examples
ExampleOnePendingInvite

One pending invite

[
[
{
"id": "9b1c7e2a-4d3f-4a8b-9c0d-1e2f3a4b5c6d",
"email": "newcoach@club.example",
"display_name": "New Coach",
"status": "pending",
"expires_at": "2026-06-10T00:00:00Z",
"created_at": "2026-05-27T09:00:00Z"
}
]
]
Media typeapplication/json
object
detail
required

Human-readable message, or a stable machine code for the cases a client branches on. The standard envelope for 400 (validation — a field-keyed object may appear instead), 401 (missing / invalid credentials), 403 (authenticated but not permitted), and 404 (absent — cross-team records are collapsed to 404 so the API never leaks the existence of another team’s data).

string
Examplegenerated
{
"detail": "example"
}
Media typeapplication/json
object
detail
required

Human-readable message, or a stable machine code for the cases a client branches on. The standard envelope for 400 (validation — a field-keyed object may appear instead), 401 (missing / invalid credentials), 403 (authenticated but not permitted), and 404 (absent — cross-team records are collapsed to 404 so the API never leaks the existence of another team’s data).

string
Examplegenerated
{
"detail": "example"
}