Errors & limits

Errors use RFC 9457 problem details (application/problem+json). Branch on code; it's stable. Quote requestId when contacting support.

json
{
  "type": "https://interviewleague.com/developers/errors#interviewer-limit-reached",
  "title": "Interviewer limit reached",
  "status": 403,
  "code": "INTERVIEWER_LIMIT_REACHED",
  "detail": "Free includes AI prep for two interviewers. Upgrade to Pro to prep the rest of the panel.",
  "limit": 2,
  "used": 2,
  "upgradeUrl": "https://interviewleague.com/settings",
  "requestId": "6f1c…"
}

Error codes

CodeHTTPMeaning
UNAUTHENTICATED401Missing or invalid token.
TOKEN_EXPIRED401Create a new token in Settings.
TOKEN_REVOKED401Token was revoked (or the account identity changed).
INSUFFICIENT_SCOPE403Token lacks requiredScope (only for older restricted tokens).
VALIDATION_FAILED422See errors[] for field-level messages. Also used for bad files (413/415).
NOT_FOUND404Resource doesn't exist or isn't yours.
OPPORTUNITY_LIMIT_REACHED403Free plan personalizes one opportunity. Includes limit, used, upgradeUrl.
INTERVIEWER_LIMIT_REACHED403Per-opportunity interviewer cap (Free 2, Pro 10).
ACTIVE_OPPORTUNITY_LIMIT_REACHED403Pro allows 10 active opportunities. Archive one first.
OPPORTUNITY_EXISTS409This posting URL is already saved. Includes existingOpportunityId and webUrl.
OPPORTUNITY_INACTIVE409Activate the opportunity before generating.
SUBSCRIPTION_REQUIRED403Feature requires Pro.
MISSING_PREREQUISITES409Add a job description and resume before generating.
IDEMPOTENCY_KEY_REUSED409Same Idempotency-Key with a different request body.
REQUEST_IN_PROGRESS409Same key still processing. Honor Retry-After.
GENERATION_LIMIT_REACHED429Daily generation cap (30/day). Includes resetsAt.
RATE_LIMITED429Too many requests or concurrent generations. Honor Retry-After.

Plan limits

FreePro
Personalized opportunities1Up to 10 active at a time
Personalized interviewers per opportunity210
Intelligence sectionsSummary, role in decision, focus areas, questionsAll, including positioning, experiences to highlight, red flags, questions to ask
Storing opportunities & interviewersUnlimitedUnlimited

Limits are enforced identically for the API and the web app. A plan change applies to existing tokens on the next request.

Rate limits

  • 60 requests per minute per token, and 120 per minute per account across all tokens.
  • Up to 2 generations running at once and 30 generations per day per account. Failed generations don't count.
  • Over a limit, you get 429 with a Retry-After header.

Field limits

  • Job description and resume: 50,000 characters each. Research notes: 20,000. Up to 25 source URLs.
  • Interviewer notes: 5,000 characters. Interviewer profile text: 20,000.
  • PDF uploads: 5MB, must be real PDFs.