---
title: "Redeem magic-link token"
method: POST
path: "/portal/{slug}/redeem"
tags: ["Portal"]
---

# Redeem magic-link token

`POST /portal/{slug}/redeem`

## Request

- Base URL: `https://api.briefgate.dev`
- URL: `https://api.briefgate.dev/portal/{slug}/redeem`
- Auth: none required

Exchange a one-time magic-link token (sent to the client via email) for a portal session cookie. All subsequent portal requests use the cookie, not a Bearer token.

## Path parameters

- `slug` string, required

## Request body

- RedeemToken
  - `token` string, required

## Response `200`

Token redeemed — portal session cookie set

- object
  - `intake_id` string
  - `project_name` string

## Other responses

- `400`: Invalid request — malformed body or query parameters
- `401`: Token invalid or expired
- `410`: Token already used

---

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