---
title: "Preview a business join link"
method: GET
path: "/join/{join_code}"
tags: ["Public", "Join links"]
---

# Preview a business join link

`GET /join/{join_code}`

## Request

- Base URL: `https://api.purplegrain.com/api/v1`
- URL: `https://api.purplegrain.com/api/v1/join/{join_code}`
- Auth: none declared

Public (unauthenticated) preview of a business's shareable join link —
the unguessable code in the URL is the credential. Returns the business,
who shared the link and the role the visitor will land in. A code that is
unknown, switched off, reset or expired all return the **same** 404, so a
stranger cannot tell which. A client that keeps presenting codes that do
not resolve is answered with 404 for everything for the rest of the hour.

## Path parameters

- `join_code` string, required

## Response `200`

The join link preview.

- JoinLinkPreviewResponse: Public preview of a business join link (`GET /join/{join_code}`). Plain JSON (not JSON:API) — the same shape is returned for both Accept types. A link that cannot be used, for any reason, is a 404 and says nothing about why.
  - `join` object, required
    - `organization_name` string, required
    - `organization_avatar_url` string, nullable
    - `shared_by` string, required: Who shared the link — the owner who turned it on; falls back to the organization's owner or its name. Name only.
    - `role` 'member' | 'viewer', required: What the visitor will become.

## Other responses

- `404`: The link cannot be used (unknown, switched off, reset or expired).

---

[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/9cd2db898936?raw)
