What Cursor needs
Cursor accepts a custom OpenAI base URL and key in its settings panel, which is the only supported way to point it at a free tier.
- The values go into Cursor Settings > Models by hand. This project writes a setup guide and never touches Cursor’s settings file or its credential storage.
- Overriding the OpenAI base URL affects the built-in models too, so it is a global switch rather than a per-request one.
- A custom key applies only to supported chat models. Features such as Tab completion keep using Cursor’s own models regardless.
- The model has to be added by its exact provider id and then verified, or Cursor will keep sending requests to a name the provider does not serve.
The file this produces
Running npx free-llm-api setup cursor writes SETUP.md. It is a review guide rather than a config file, because the values are typed into a settings panel and this project does not write to another tool’s credential storage. Here it is filled in for GroqCloud:
# Cursor setup
This project does not modify Cursor settings or its credential storage.
1. Open **Cursor Settings > Models**.
2. Add your key from the `GROQ_API_KEY` environment variable to the OpenAI API key field manually.
3. Set **Override OpenAI Base URL** to `https://api.groq.com/openai/v1`.
4. Add or select the model `llama-3.3-70b-versatile`, then click **Verify**.
Changing the OpenAI Base URL can affect built-in models. Custom API keys apply only to supported chat models; features such as Tab Completion continue to use Cursor's built-in models.
Nothing in that file is a key. The value is read from GROQ_API_KEY at run time, which is the one habit that keeps a credential out of a repository by construction.
Which free tiers fit Cursor
22 providers here serve the OpenAI protocol and take no credit card, which makes them the ones worth trying first with Cursor. The full list, including the ones that do ask for a card, is in the catalog.
| Provider | Base URL | Published limits |
|---|---|---|
| Google Gemini API | https://generativelanguage.googleapis.com/v1beta/openai/ |
Set by project tier |
| GroqCloud | https://api.groq.com/openai/v1 |
30 requests per minute, 1000 requests per day |
| SambaNova Cloud | https://api.sambanova.ai/v1 |
20 requests per minute, 20 requests per day |
| Cohere | https://api.cohere.ai/compatibility/v1 |
20 requests per minute |
| Cloudflare Workers AI | https://api.cloudflare.com/client/v4/accounts/ACCOUNT_ID/ai/v1 |
Published in compute units |
| Hugging Face Inference Providers | https://router.huggingface.co/v1 |
Published as a credit balance |
| SiliconFlow | https://api.siliconflow.com/v1 |
1000 requests per minute |
| Fireworks AI | https://api.fireworks.ai/inference/v1 |
10 requests per minute |
What to expect on a free tier
Because the override is global, a free tier that rate-limits you takes the whole editor with it. Keep the built-in configuration one click away.
Before blaming the client, check the key itself: the browser checker separates a rejected credential from a rate limit from an endpoint that is simply down, and each of those has a different fix.
Sources
Provider figures shown here come from each provider’s own documentation, reviewed on 2026-07-25. The methodology covers what is recorded and what is deliberately left blank.