---
title: "Get the authenticated user's profile, tier, and upload quota"
method: GET
path: "/auth/me"
tags: ["Account"]
---

# Get the authenticated user's profile, tier, and upload quota

`GET /auth/me`

## Request

- Base URL: `https://api.memestack.ai`
- URL: `https://api.memestack.ai/auth/me`
- Auth: HTTP bearer

Returns the full profile for the calling user — tier name, daily upload limit, max batch file cap, uploads used today, and next-tier progression info. Used by the frontend upload page to size the file picker and show quota state.

## Response `200`

Authenticated user profile.

- object
  - `id` string, uuid
  - `pubkey` string, nullable: Lightning public key. Null for email-only accounts.
  - `email` string, email, nullable
  - `auth_method` 'lightning' | 'email'
  - `has_pubkey` boolean
  - `display_name` string, nullable
  - `role` 'user' | 'admin' | 'system' | 'creator'
  - `approved_image_count` integer
  - `created_at` string, date-time
  - `tier` 'Pleb' | 'Memer' | 'Stacker' | 'Memelord' | 'Admin': Computed upload tier based on account age and approved image count.
  - `daily_limit` integer, nullable: Maximum uploads per day for this tier. Null means unlimited (Admin).
  - `max_batch_files` integer: Tier-scaled maximum files per upload batch. Frontend uses this to size the upload-page picker cap.
  - `uploads_today` integer
  - `uploads_remaining` integer, nullable: Uploads remaining today. Null means unlimited (Admin).
  - `next_tier` object, nullable: Next tier progression info. Null when the caller is already at the top tier.
    - `name` string
    - `requirement` string
  - `status` 'active' | 'restricted' | 'frozen' | 'banned': Account moderation status.
  - `status_reason` string, nullable
  - `status_until` string, date-time, nullable
  - `active_strike_count` integer
  - `token` string: Present only when the sliding-session refresh re-minted the JWT on this request (presented token >24h old, revocation/status gates passed) AND the request authenticated via Authorization: Bearer. Cookie-authenticated sessions rotate via Set-Cookie alone and never receive this field. Bearer clients should replace their stored token with it.

## Other responses

- `401`: Authentication required.
- `404`: User record not found.

---

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