---
title: "Get Invitation"
method: GET
path: "/invitations/{invitation_id}"
tags: ["team-invitations"]
---

# Get Invitation

`GET /invitations/{invitation_id}`

Get an invitation for the email deep-link landing page.

Args:
    invitation_id: Invitation identifier.
    auth: Authenticated caller.
    service: Team service.

Returns:
    Invitation details, scoped to the caller's email address.

Raises:
    HTTPException: If the identity email is unavailable.

## Path parameters

- `invitation_id` string, uuid, required

## Response `200`

Successful Response

- TeamInvitationResponse — Response model for a team invitation.
  - `id` string, required
  - `team_id` string, required
  - `team_name` string, required
  - `email` string, required
  - `role` 'owner' | 'billing' | 'admin' | 'editor' | 'viewer', required — Team member roles with hierarchical permissions. Wire DTO mirror of the ORM ``TeamRoleType`` enum. Used only for API request/response serialization; authorization decisions route through the ORM matrix (``database_tables.permissions``), never this enum.
  - `status` 'pending' | 'accepted' | 'declined' | 'expired', required — Status of a team invitation.
  - `invited_by` string, required
  - `inviter_name` string, nullable
  - `inviter_email` string, nullable
  - `created_at` string, required
  - `expires_at` string, required
  - `email_sent` boolean — Whether the invitation email was successfully handed off to SendGrid. Only meaningful on the create-invite response; list endpoints do not track historical delivery and default to True.

## Other responses

- `422` — Validation Error

## Changes

- **2026-09-24** `1cffaad2a921` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/pioneer/apis/brain-api/changes/invitations/:invitation_id/get.md)

---

[API](https://skmtc.dev/pioneer/apis/brain-api.md) · [All operations](https://skmtc.dev/pioneer/apis/brain-api/llms.txt) · [OpenAPI document](https://skmtc.dev/pioneer/apis/brain-api/revisions/1cffaad2a921?raw)
