---
title: "Get User Profile"
method: GET
path: "/api/users/{user_id}/profile"
---

# Get User Profile

`GET /api/users/{user_id}/profile`

## Request

- Base URL: `https://api.adplug.app` (the document declares no server; this is the origin it was published from)
- URL: `https://api.adplug.app/api/users/{user_id}/profile`
- Auth: HTTP bearer

Get user profile data.

Enriches the raw profile row with `mcp_client_connected_at`: a
{client_key: iso_timestamp} map of when each AI client first hit /mcp,
derived from the earliest `usage_logs.client` row per client_key. Clients
that connected before the `client` column existed will be missing from
this map — the frontend falls back to the global
`mcp_first_authenticated_at` for the user's first-ever client.

Also adds `payment_issue` while the user's subscription, or the team
owner's that gives them their plan, is past due (app/paddle/payment_issue.py).

## Path parameters

- `user_id` string, required

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

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