Sections

Account sign-in and API keys

Used by the website. These routes don't accept an API key.

POST/auth/mcp-key

Generate a new MCP API key for the authenticated user

Website sign-in only

The raw key is returned exactly once -- it is never stored, only its SHA-256 hash is persisted. Store it safely; there is no recovery if lost (generate a new key instead).

Request body (JSON)
FieldTypeDescription
labelstring | null
Response: McpKeyResponse
FieldTypeDescription
key *string
labelstring | null
curl
curl -X POST 'https://api.papervantage.com/auth/mcp-key' \
  -H "Authorization: Bearer $COGNITO_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"label":"<label>"}'

GET/auth/mcp-keys

List Mcp Keys

Website sign-in only
Response: McpKeySummary[]
FieldTypeDescription
created_at *string
id *integer
labelstring | null
curl
curl 'https://api.papervantage.com/auth/mcp-keys' \
  -H "Authorization: Bearer $COGNITO_ACCESS_TOKEN"

DELETE/auth/mcp-keys/{key_id}

Revoke one of the caller's keys. Someone else's key id is a 404, the same as one that doesn't exist

Website sign-in only
Parameters
NameInTypeDescription
key_id *pathinteger
curl
curl -X DELETE 'https://api.papervantage.com/auth/mcp-keys/1' \
  -H "Authorization: Bearer $COGNITO_ACCESS_TOKEN"

GET/auth/me

Get Me

Website sign-in only
Response: UserResponse
FieldTypeDescription
email *string
has_live_subscriptionboolean
id *integer
interests_textstring | null
mcp_period_resets_atstring | null
mcp_period_startstring | null
mcp_request_countinteger
mcp_request_limitinteger | null
name *string
subscription_statusstring | null
curl
curl 'https://api.papervantage.com/auth/me' \
  -H "Authorization: Bearer $COGNITO_ACCESS_TOKEN"

GET/auth/me/stats

Get Me Stats

Website sign-in only
Response: UserStatsResponse
FieldTypeDescription
current_streak *integer
longest_streak *integer
member_since *string
papers_liked *integer
papers_read *integer
recent_papers *RecentPaper[]
paper_id *integer
read_at *string
title *string
curl
curl 'https://api.papervantage.com/auth/me/stats' \
  -H "Authorization: Bearer $COGNITO_ACCESS_TOKEN"

Next: Billing