Rate Limits And Credits

Understand tier-aware limits, Retry-After behavior, credit costs, and automation guidance


Rate Limits And Credits

ReformCode uses tier-aware rate limits to keep CODE, REFORM, public search, and developer automations reliable. Limits apply to browser sessions and API-key traffic.

Current Limits

TierSearch/hrAnalysis/hrTransform/hrBurst/min
Free100302020
Pro300906060
Team1000300200200

Search is public but still rate-limited by IP or API key fingerprint. Authenticated analysis and transform requests are tier-adjusted and distributed through Redis when REDIS_URL is configured.

Response Headers

Every versioned API response includes versioning headers, and rate-limited surfaces include:

X-RateLimit-Identifier: search
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 99
X-RateLimit-Reset: 2026-05-18T16:00:00.000Z
Retry-After: 42

Treat Retry-After as authoritative after a 429 response.

Credit Behavior

Rate limits protect platform capacity. Credits meter AI cost.

OperationTypical Credits
Search0
Code analysis stream1
Transform snippet2
Framework transform5
Repo analysis2-5
Reform Wizard session5-10

When an AI stream fails after credits are deducted, the route attempts a refund through the credit transaction system.

Automation Guidance

  • Use one API key per integration, environment, or CI pipeline.
  • Prefer small batches with retry/backoff over large synchronized bursts.
  • Cache public search and score data when running recurring jobs.
  • Keep one key for local IDE use and separate keys for production automation.
  • Upgrade to Team when multiple users or bots need shared higher throughput.

Handling 429s

async function reformcodeFetch(input: RequestInfo, init?: RequestInit) {
  const response = await fetch(input, init)

  if (response.status === 429) {
    const retryAfter = Number(response.headers.get('Retry-After') ?? '60')
    throw new Error(`ReformCode rate limit hit. Retry after ${retryAfter}s.`)
  }

  return response
}

For long-running CI jobs, retry at most a few times and surface the rate-limit reset time in the job summary.