Get started

Rate limits

Each plan gets a number of calls a day, and the day-by-day history of a number of different games a day. Both reset at midnight New York time.

PlanDaily callsDaily game historiesNotes
No key5010Per IP address
Free20025Free API key
Plus1,00050
Pro2,000250
Studio5,0001,000Per seat

Compare plans to see what else each one has. If you need more for a product or a business, email us and tell us what you’re building.

What counts

The headers

Every response tells you where you stand:

HeaderDescription
X-RateLimit-LimitCalls you get a day.
X-RateLimit-RemainingCalls left today.
X-RateLimit-ResetWhen your calls reset, in Unix seconds.
Retry-AfterOn a 429, the seconds to wait before trying again.
X-Request-IdThis request’s ID. Send it to us if something went wrong.

Too many requests

There are three limits, and each answers 429:

  • Per minute: 30 requests a minute without a key, 120 with one, and 12 a minute to Get live players and for several games together. The code is rate_limited. Wait the seconds in Retry-After.
  • Per day: your plan’s calls a day. The code is daily_limit_reached. They reset at midnight New York time, or a bigger plan gives you more.
  • History: the different games’ history your plan allows a day. The code is history_limit_reached. See History.
retry.js
async function get(url) {
  for (let attempt = 0; attempt < 3; attempt++) {
    const res = await fetch(url, { headers: { Authorization: `Bearer ${process.env.ROTERMINAL_API_KEY}` } })
    if (res.status !== 429) return res.json()
    const wait = Number(res.headers.get('retry-after') ?? 60)
    if (wait > 120) throw new Error('Out of calls for today')
    await new Promise((r) => setTimeout(r, wait * 1000))
  }
}

History

List a game’s days returns a game’s history, which RoTerminal has kept since Sep 27, 2026. Each plan can ask for the history of a number of different games a day (the table above). Asking for the same game again that day doesn’t count twice, and every other endpoint works as usual once you reach it. Past it, the API answers 429 with the code history_limit_reached.

Fair use

  • One account for each person. Keys are for your own code; don’t share them.
  • Don’t resell or redistribute RoTerminal’s data in bulk, or use it to build a copy of RoTerminal.
  • When you show RoTerminal’s numbers publicly, link to the page on roterminal.co they come from. Every response has that link.

The full rules are in the Terms. Keys used against them can be limited or deleted.

Use fewer calls

  • Most numbers change every few minutes, and daily numbers once a day. Keep an answer for a few minutes before asking again.
  • To follow one game’s players closely, use Get live players. It’s made to be asked every 15 seconds and doesn’t count.
  • One Compare games call returns up to five games.
  • Build a dashboard follows several games live within these limits.