---
title: "Reset the join link"
method: POST
path: "/organizations/{organization_id}/join-link/reset"
tags: ["Organization Join Links"]
---

# Reset the join link

`POST /organizations/{organization_id}/join-link/reset`

## Request

- Base URL: `https://api.purplegrain.com/api/v1`
- URL: `https://api.purplegrain.com/api/v1/organizations/{organization_id}/join-link/reset`
- Auth: HTTP bearer

Revokes the old join URL immediately and issues a new code. The new link
keeps the same role and expiry, the clock restarts, and the join count
goes back to zero. People who already joined keep their access. Only an
**owner** may call this. API keys are refused. Read the new link with
`getOrganizationJoinLink`.

## Path parameters

- `organization_id` string, required

## Response `201`

The new join link.

- OrganizationJoinLinkShowResponseAttributes
  - `data` OrganizationJoinLinkModelAttributes: A business's join link in attributes-adapter shape (`application/json`); fields at the top level.
    - `id` string
    - `type` string
    - `code` string
    - `url` string
    - `role` 'member' | 'viewer'
    - `expiry` '24h' | '7d' | '30d' | 'never'
    - `expires_at` string, date-time, nullable
    - `enabled` boolean
    - `status` 'active' | 'expired' | 'off'
    - `uses_count` integer
    - `created_at` string, date-time
    - `updated_at` string, date-time

## Other responses

- `401`: Unauthenticated
- `403`: Forbidden — caller is not an owner of the organization.
- `404`: The organization does not exist.

---

[API](https://skmtc.dev/purplegrain/apis/purple-grain-api.md) · [All operations](https://skmtc.dev/purplegrain/apis/purple-grain-api/llms.txt) · [OpenAPI document](https://skmtc.dev/purplegrain/apis/purple-grain-api/revisions/06540345bbbc?raw)
