---
title: "DELETE /projects/{project_id}/invitations/{invitation_id}"
method: DELETE
path: "/projects/{project_id}/invitations/{invitation_id}"
tags: ["Projects"]
---

# DELETE /projects/{project_id}/invitations/{invitation_id}

`DELETE /projects/{project_id}/invitations/{invitation_id}`

## Request

- Base URL: `https://api.primitive.dev/v1`
- URL: `https://api.primitive.dev/v1/projects/{project_id}/invitations/{invitation_id}`
- Auth: HTTP bearer

Requires a current human organization membership. Machine credentials are refused. Results are scoped to current project access. No local paths or existing conversation history are shared.

## Path parameters

- `project_id` string, uuid, required
- `invitation_id` string, uuid, required

## Response `200`

Success

- object
  - `success` true, required
  - `data` ProjectsInviteProjectMemberResult, required
    - `id` string, uuid, required
    - `project_id` string, uuid, required
    - `email` string, email, required
    - `status` 'preparing' | 'pending' | 'accepted' | 'expired' | 'revoked' | 'unknown' | 'failed', required
    - `delivery` 'accepted' | 'unknown' | 'rejected', required
    - `expires_at` string, nullable, required
    - `revoked_reason` 'inviter_departed' | 'inviter_lost_permission' | 'accepted_after_inviter_departed', nullable
    - `failure_reason` 'member_limit' | 'already_member' | 'already_invited' | 'invalid_address' | 'not_allowed' | 'refused'

## Other responses

- `400`: Invalid request parameters
- `401`: Invalid or missing API key
- `403`: Authenticated caller lacks permission for the operation
- `404`: Resource not found
- `409`: The request conflicts with the current state of the resource
- `429`: Rate limit exceeded. The `ratelimit-*` headers describe the limiter that rejected this request, with its own limit and window, not the API budget that successful responses report. A limiter that reports only a wait sends `Retry-After` alone.
- `502`: invitation_unconfirmed: the identity provider did not confirm the invitation's state. Nothing was changed locally that could send a second invitation; retry the same request to refresh it.
- `503`: directory_limit: the organization agent directory is larger than projects can read. Narrow the directory before retrying.

## Changes

> 32 revisions in range; 1 not diffed.

- **2026-10-21** `0360ea8d4f3d`: 80 warning, 2 info
  - added the new `agent_changed` enum value to the `error/code` response property for the response status `400`
  - added the new `agent_changed` enum value to the `error/code` response property for the response status `401`
  - added the new `agent_changed` enum value to the `error/code` response property for the response status `403`
  - added the new `agent_changed` enum value to the `error/code` response property for the response status `404`
  - …78 more
- **2026-10-21** `5279a7bed7ac`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/primitive/apis/primitive-api/changes/projects/:project_id/invitations/:invitation_id/delete.md)

---

[API](https://skmtc.dev/primitive/apis/primitive-api.md) - [All operations](https://skmtc.dev/primitive/apis/primitive-api/llms.txt) - [OpenAPI document](https://skmtc.dev/primitive/apis/primitive-api/revisions/bce409c97acb?raw)
