# Accept a repository invitation

> Accept an invitation to a repository sent to you.

<div class="g1t-endpoint"><span class="g1t-method" data-method="patch">PATCH</span><code>/user/repository_invitations/{id}</code></div>

You get its role on that repository at once, as an outside collaborator unless you belong to its workspace. Refused when the workspace asks something of everyone with access that your account does not meet, such as two-factor authentication. People only.

The role is yours at once. `404` when you have no pending invitation with that id (it may have expired or been revoked), and `403` when your account does not meet what the workspace asks of everyone with access, such as two-factor authentication, with a message that says what to turn on. See [Access and roles](/guides/access-and-roles/).

- **Authentication:** Required. Send an [access token](/reference/api/#authentication) as `Authorization: Bearer`.
- **MCP tool:** [`account`](/reference/mcp/#account) with `action` `accept_repository_invitation`, and the same inputs
- **Scope:** An access token needs [`account:write`](/guides/authentication/#scopes).

## Path parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The invitation's id, from [`list_my_repo_invitations`](/reference/api/access/list-my-repo-invitations/). |

## Example request

```sh
curl -X PATCH https://api.g1t.sh/user/repository_invitations/rin_01kp3e9f0g1h2j3k4m5n6p7q8r \
  -H "Authorization: Bearer $G1T_TOKEN"
```

## Example response

A successful request answers `200` with:

```json
{
  "id": "rin_01kp3e9f0g1h2j3k4m5n6p7q8r",
  "repo": "flagon-io/hello",
  "repo_id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr",
  "invitee": "ada",
  "email": null,
  "role": "triage",
  "invited_by": "syntaqx",
  "inviter_avatar": null,
  "status": "accepted",
  "created_at": "2026-10-05T17:00:00.000Z",
  "expires_at": "2026-10-12T17:00:00.000Z"
}
```

## Errors

A failed request answers with one of these statuses and a body like `{"error": {"code": "not_found", "message": "Repository not found."}}`. See [errors](/reference/api/#errors).

| Status | Code | When |
| --- | --- | --- |
| 401 | `unauthenticated` | A token is required, or the one sent is not valid. |
| 403 | `forbidden` | The token is valid but not allowed to do this, such as a member-only change or an agent token outside its repository. |
| 404 | `not_found` | It does not exist, or you cannot see it. |
| 409 | `conflict` | The request conflicts with the current state. |
| 422 | `invalid` | The input is not valid. `message` says which field and why. |
