# Retrieve an invitation

`GET https://api.morevoice.ai/v1/invitations/{id}`

Returns the `Invitation` object. Answers `404` with the code `resource_missing` when nothing has this ID in this organisation and mode.

Authenticate with a secret API key: `Authorization: Bearer $MOREVOICE_API_KEY`.

Operation ID: `invitations_retrieve`.

## Parameters

### Path parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | `string` | yes | A invitation ID (`inv_t_…`). |

### Headers

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `MoreVoice-Version` | `string` | no | The API version to use for this request. Defaults to the version the API key is pinned to. |

## Responses

### 200 OK

OK Returns `Invitation`.

| Field | Type | Description |
| --- | --- | --- |
| `id` | `string` | The invitation's ID. |
| `object` | `"invitation"` | — |
| `livemode` | `boolean` | `true` in live mode, `false` in test mode. |
| `email` | `string` | — |
| `role` | `"owner" \| "admin" \| "supervisor" \| "agent"` | The role they get when they accept. |
| `billing` | `boolean` | — |
| `team_id` | `string \| null` | `team_…` ID. |
| `status` | `"pending" \| "expired"` | `pending` until it expires (7 days); accepted and withdrawn invitations are no longer listed. |
| `invited_by` | `string \| null` | The user who invited them (for an API key: the user who created the key). |
| `existing_user` | `boolean` | The address already has an account (in another organisation): they join with it. |
| `created` | `string` | An ISO-8601 timestamp in UTC. |
| `expires` | `string` | An ISO-8601 timestamp in UTC. |
| `emailed` | `boolean` | On create and resend: whether the invitation email went out. False when your organisation's invitation emails are off — share the link from the dashboard. |

Example:

```json
{
  "billing": false,
  "created": "2026-11-03T09:14:22.000Z",
  "email": "yossi@example.com",
  "emailed": true,
  "existing_user": false,
  "expires": "2026-11-10T09:14:22.000Z",
  "id": "inv_t_3Rt6Vx0Zb3Nd5Fh7Jk9Lm1N",
  "invited_by": "usr_2Lm8Pq4Rt6Vx0Zb3Nd5Fh7",
  "livemode": true,
  "object": "invitation",
  "role": "agent",
  "status": "pending",
  "team_id": null
}
```

### 400 Bad Request

The request is invalid: a parameter is missing, malformed or unknown, or the version header is unknown. Returns `ErrorEnvelope`.

### 401 Unauthorized

No valid API key was sent. Returns `ErrorEnvelope`.

### 403 Forbidden

The key may not do this (a missing scope, a plan limit, or a compliance block). Returns `ErrorEnvelope`.

### 404 Not Found

No object with this ID exists in this organisation and mode. Returns `ErrorEnvelope`.

### 429 Too Many Requests

Too many requests, or no call capacity right now. Retry after the Retry-After delay. Returns `ErrorEnvelope`.

### 500 Internal Server Error

Something went wrong on MoreVoice's side. Retry with the same Idempotency-Key. Returns `ErrorEnvelope`.

## Code samples

**TypeScript**

```ts
import MoreVoice from "@morevoice/sdk";

const mv = new MoreVoice(); // MOREVOICE_API_KEY from the environment

const invitation = await mv.invitations.retrieve("inv_t_7Hk2Lm9Qp");
console.log(invitation);
```

**Python**

```python
from morevoice import MoreVoice

client = MoreVoice()  # MOREVOICE_API_KEY from the environment

invitation = client.invitations.retrieve("inv_t_7Hk2Lm9Qp")
print(invitation)
```

**cURL**

```sh
curl https://api.morevoice.ai/v1/invitations/inv_t_7Hk2Lm9Qp \
  -H "Authorization: Bearer $MOREVOICE_API_KEY"
```
