---
title: "Return authenticated user info, tenant, and consent status."
method: GET
path: "/v1/auth/me"
tags: ["auth"]
---

# Return authenticated user info, tenant, and consent status.

`GET /v1/auth/me`

## Request

- Base URL: `https://api.andish.ru` (the document declares no server; this is the origin it was published from)
- URL: `https://api.andish.ru/v1/auth/me`
- Auth: none declared

Decode JWT from Authorization: Bearer header and return user + tenant.

JWT errors are mapped to ADR-014 error codes (token_expired, invalid_token).

## Response `200`

Successful Response

- MeResponse: Response for GET /v1/auth/me (HTTP 200). Returns authenticated user info + tenant + consent status. Requires valid JWT in Authorization: Bearer header.
  - `user_id` string, uuid, required
  - `email` string, required: User email (CITEXT, returned as-is).
  - `email_verified` boolean, required: True if email was verified via confirmation link. MVP: always False (email verification deferred to W2).
  - `created_at` string, date-time, required
  - `last_login_at` string, date-time, nullable
  - `tenant` TenantInfo, required: Partial tenant info embedded in MeResponse and ProfileResponse.
    - `id` string, uuid, required
    - `slug` string, required
    - `name` string, required
    - `plan` string, required
    - `tier` string: Billing tier.
    - `trial_ends_at` string, date-time, nullable: Deprecated (ADR-083): the free tier has no end date, so this is null for every tenant that was not on an old trial. Kept in the schema until the next API version (ADR-012).
    - `trial_days_remaining` integer, required: Days remaining in the trial period; 0 if expired or not on trial.
  - `consents` ConsentStatus, required: Consent audit-trail snapshot embedded in MeResponse.
    - `version` integer, required: ToS document version (1 = current Terms of Service).
    - `signed_at` string, date-time, required: Timestamp when consents were accepted.
    - `agreed_terms_v1` boolean, required
    - `agreed_no_pdn` boolean, required
    - `agreed_processing_metadata` boolean, required
    - `agreed_crossborder_llm` boolean, required

## Other responses

- `401`: Missing, expired, or invalid JWT

---

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