---
title: "Live actor entitlements"
method: GET
path: "/api/v2/limits"
tags: ["v2 Account"]
---

# Live actor entitlements

`GET /api/v2/limits`

## Request

- Base URL: `https://pdf2md.dev`
- URL: `https://pdf2md.dev/api/v2/limits`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `p2m_session`

## Response `200`

Limits

- V2Limits: Live actor entitlements (resolved from the subscription, §7.3)
  - `tier` 'anonymous' | 'free' | 'lifetime' | 'builder' | 'pro' | 'business' | 'enterprise': EP-069: `lifetime` is the one-time unlock, ranked BETWEEN free and builder — it raises the interactive limits and carries 600 pages/month, but grants no API keys, hosted MCP, webhooks or batch, so a subscription is genuinely more and its holder may still buy one.
  - `max_active_slots` integer
  - `max_concurrent_conversions` integer
  - `max_file_size_bytes` integer
  - `processing_soft_budget_sec` integer: The tier's visible "time limit": the engine runs up to it and returns a partial result + the tier disclaimer (truncated=true), rather than a rejection. Invariant: < processing_timeout_sec. Shown on pricing and in the disclaimer.
  - `processing_timeout_sec` integer: The worker's internal hard-backstop (= soft + ~5 min); not a marketing limit.
  - `ready_ttl_sec` integer
  - `priority_base` integer: §7.7, step-20 scale (anonymous=100)
  - `pool_eligibility` 'free_only' | 'free_and_paid'
  - `monthly_pages_soft_limit` integer, nullable: EP-069: the monthly page allowance. SOFT on subscription tiers (past it the actor drops to the free pool for the rest of the cycle, never refused). HARD on anonymous (150), free (400) and lifetime (600) — those are refused with 409 quota_exceeded. Resolved for THIS actor: an API-key caller does not get the lifetime unlock (EP-070-T6).
  - `monthly_pages_used` integer: EP-070-T7: pages converted this UTC calendar month. Present here as well as on /api/v2/limits because the extension cannot reach that path (it needs an API key or a session cookie, and a cross-site extension fetch has neither).
  - `webhooks_enabled` boolean
  - `slots_in_use` integer: slots occupied right now
  - `rate_limits` object: per-class: api_requests_per_min, job_creates_per_min, upload_bytes_per_hour, download_requests_per_min, mcp_tool_calls_per_min

## Other responses

- `401`: Missing/invalid API key or session

---

[API](https://skmtc.dev/pdf2md/apis/pdf-to-markdown-api-facade.md) · [All operations](https://skmtc.dev/pdf2md/apis/pdf-to-markdown-api-facade/llms.txt) · [OpenAPI document](https://skmtc.dev/pdf2md/apis/pdf-to-markdown-api-facade/revisions/4636782fb8b6?raw)
