---
title: "Admin Impersonate"
method: POST
path: "/api/v1/admin/clients/{client_id}/impersonate"
tags: ["admin"]
---

# Admin Impersonate

`POST /api/v1/admin/clients/{client_id}/impersonate`

## Request

- Base URL: `https://api.nudgelink.co` (the document declares no server; this is the origin it was published from)
- URL: `https://api.nudgelink.co/api/v1/admin/clients/{client_id}/impersonate`
- Auth: HTTP bearer

Issue a 15-minute access-token for ``client_id`` so an admin can see
what the client sees. Refuses to impersonate other admins.

The token's ``sub`` is the impersonated client's id (so endpoints
operate on the client's data), but it carries an ``act`` claim with
the admin's id and an ``imp`` flag so audit rows downstream can show
"admin X acting as client Y did Z".

## Path parameters

- `client_id` string, uuid, required

## Request body

- ImpersonateRequest
  - `reason` string, required

## Response `200`

Successful Response

- ImpersonateResponse
  - `access_token` string, required
  - `token_type` string
  - `expires_in` integer, required
  - `impersonated_client_id` string, uuid, required
  - `impersonated_email` string, required

## Other responses

- `422`: Validation Error

---

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