---
title: "Remove a member from a vault"
method: DELETE
path: "/vaults/{id}/members/{userId}"
tags: ["Contract Intelligence"]
---

# Remove a member from a vault

`DELETE /vaults/{id}/members/{userId}`

## Request

- Base URL: `https://app.gc.ai/api/external/v1`
- URL: `https://app.gc.ai/api/external/v1/vaults/{id}/members/{userId}`
- Auth: API key in header `Authorization`
- TypeScript: <https://skmtc.dev/gc-ai/apis/gc-ai-external-api/docs/vaults/:id/members/:userId/delete.ts> (a function with typed inputs; its response is checked against the schema)

Take away a member's role in a vault. The vault, its documents, and its extracted data are untouched. Only this person's access goes away.

Removing the last owner returns `400`, so a vault cannot be left ownerless. A user who holds no role in the vault returns `404`, so a mistyped id is visible instead of reading as success.

Callers can remove themselves by passing their own `user_id`, which needs vault membership rather than the `owner` role. Removing anyone else requires the `owner` role in the vault and the organization-level permission to manage vaults.

Requires a user-scoped API key (`u:gcai_...`). A vault is shared with named people, so an organization-scoped key has no identity to resolve vault access with.

## Path parameters

- `id` string, uuid, required: The vault ID
- `userId` integer, required: GC AI user ID of the member, as `user_id` from `GET /vaults/{id}/members`.

## Response `200`

Member removed

- RemoveVaultMemberResponse
  - `removed` boolean, required: Always `true` on success

## Other responses

- `400`: A vault needs at least one owner. Promote another member first.
- `401`: Missing or malformed API key
- `403`: Contract Intelligence is not enabled for this account. Contact support to request access., or the caller is not a vault owner
- `404`: Vault not found, access denied, or user is not a member of this vault
- `409`: The vault is archived. Restore it with `POST /vaults/{id}/restore` before changing it.
- `422`: Vault access is per-user and requires a user-scoped API key (u:gcai_...).
- `429`: Rate limit exceeded. See [Rate Limits](https://docs.gc.ai/api-reference/concepts/rate-limits) for the tiers, limits, and how to back off.
- `500`: Internal server error
- `503`: Service temporarily unavailable

---

[API](https://skmtc.dev/gc-ai/apis/gc-ai-external-api.md) - [All operations](https://skmtc.dev/gc-ai/apis/gc-ai-external-api/llms.txt) - [OpenAPI document](https://skmtc.dev/gc-ai/apis/gc-ai-external-api/revisions/2bbdfddf7107?raw)
