💳Manage or cancel your subscription

Billing is handled by Stripe. Payment method, invoices and cancellation are all in the billing portal.

🔑Where are my API credentials?

Your username and password were emailed to you right after you signed up. To find that email:

  1. Search your mailbox for OpenF1.
  2. Check your spam, junk and promotions folders. This is where it ends up most of the time.
  3. Make sure you are looking in the mailbox of the address you used at checkout.

Still nothing? Contact us with the email address you paid with and we will re-send some new credentials.

🚀How do I use the API with my credentials?

Authenticated access works in three steps:

  1. Exchange your username and password for an access token at https://api.openf1.org/token.
  2. Send that token with every request, as an Authorization: Bearer <token> header.
  3. Tokens expire after 1 hour, so request a new one when it does.
💡 The guide has copy-paste examples in cURL, Python and JavaScript. Pasting it into ChatGPT or Claude alongside your own code is a fast way to get a working integration.

🛠️I can't get a token

Before contacting us or opening an issue, please run this command, replacing YOUR_USERNAME and YOUR_PASSWORD. It tells us (and you) whether the problem is your credentials or your code.

curl -X POST "https://api.openf1.org/token" \
    -H "Content-Type: application/x-www-form-urlencoded" \
    -d "username=YOUR_USERNAME&password=YOUR_PASSWORD"

If it returns an access_token

Your credentials are fine and the problem is on the client side. The usual culprits: sending JSON instead of application/x-www-form-urlencoded, using GET instead of POST, reusing a token older than an hour, or forgetting the Bearer prefix in the Authorization header.

If it returns an error

⚠️ Still failing? Contact us and include the exact command you ran and the full response. Never post your password in a public GitHub issue. Replace it with YOUR_PASSWORD.

📊Rate limits

As an authenticated user, you get:

Resource Limit
REST API (per second) 6 req/s
REST API (per minute) 60 req/min
MQTT / WebSocket connections 10 concurrent

That is double the free-tier REST limits. If you hit them, cache responses and back off before retrying rather than looping on errors. For live data, prefer MQTT or WebSocket over polling.

❤️Do I need to credit OpenF1?

No, credits are not required in your project. They are always appreciated though, and a link back to openf1.org helps other people find the API. :)

💬Still need help?

Technical questions and bug reports are best asked in public, so others with the same problem can find the answer. Anything about billing or credentials should come to us directly.