Qora API · Docs
← Back to Qora API

Qora API Client Integration Guide — Connect Cursor, Chatbox, Cherry Studio & More

This guide lives at https://qoraapi.com/docs. One OpenAI-compatible API key, step-by-step setup for every client. Last reviewed: October 27, 2026.

Docs  /  Client Integration Guide

Connect Qora API to the tools you already use

One OpenAI-compatible API key. Step-by-step setup for Cursor, Chatbox, Cherry Studio, NextChat, n8n and 12 more clients — no code changes to your tools, just three values.

17 clients coveredOpenAI-compatible350+ modelsUpdated Oct 27, 2026

This guide lives at https://qoraapi.com/docs. It shows you how to connect Qora API to the tools you already use — code SDKs, AI editors, chat clients, and workflow tools — with one OpenAI-compatible API key. If you are new here, start with Before You Start; if you already have a key, jump straight to your client below.

Before You Start: Get Your Qora API Key

Every client in this guide connects the same way. You need one thing first: a Qora API key.

  1. Go to https://qoraapi.com/ and sign up for an account.
  2. Sign in, open the Console, and create a new API key.
  3. Copy the key immediately and store it somewhere safe. Treat it like a password — never paste it into a public chat, a public repository, or a screenshot you share.
  4. Top up your balance before you make your first call. Qora is pay-as-you-go in USD, with a minimum top-up of $50.
  5. If you are new and want the $5 trial credit, it is available on request only: contact us at [email protected] and we will add $5 to your account. It is not added automatically, and there is no "no card required" automatic trial.

If you have not topped up yet, your first request may fail with a billing error even if your key is correct. Check your balance in the Console first.

The Three Values Every Client Needs

Qora is OpenAI-compatible. That means almost any client that supports a custom OpenAI endpoint can connect to Qora by changing three values. Every section below repeats them so you can copy them in place.

FieldValue to paste
API base URL / Base URLhttps://qoraapi.com/v1
API keyYour Qora API key from the Console
ModelA model name copied exactly from the Model Square at https://qoraapi.com/pricing

Notes:

Verified Models and Prices

These are the only model names and prices verified against Qora's Model Square on October 27, 2026. Prices are per 1 million tokens, input / output.

ModelInput / 1M tokensOutput / 1M tokens
Claude Sonnet 4.5$0.90$4.50
claude-3-5-sonnet$0.90$4.50
claude-3-5-haiku-20241022$0.15$0.75
chatgpt-4o-latest$1.50$4.50
GPT-5$0.45$3.60

For every other model, copy the exact model name and its current price from the Model Square at https://qoraapi.com/pricing before you use it. Model lists and prices change, and the Model Square is the source of truth. This guide does not quote prices for any model not listed above, and it does not claim any uptime or latency figures.


A. Code and SDKs

A1. cURL

Verified: this is the standard OpenAI-compatible chat completions request, with only the base URL and key changed to Qora's. Use it to test that your key works before you set up any client.

curl https://qoraapi.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $QORA_API_KEY" \
  -d '{
    "model": "claude-sonnet-4-5-20250929",
    "messages": [
      {"role": "user", "content": "Hello, who are you?"}
    ]
  }'

Steps:

  1. Replace $QORA_API_KEY with your key, or export it first: export QORA_API_KEY="sk-...".
  2. The model name in this example is the exact ID from the Model Square (verified October 27, 2026). You can replace it with any other model name copied exactly from the Model Square.
  3. Run the command. A successful response returns a JSON object with choices[0].message.content.

If you get 401, your key is wrong, expired, or not sent. If you get 429, you hit a rate limit — see Troubleshooting.

A2. Python (OpenAI SDK)

Verified: the OpenAI Python SDK supports a custom base_url, which is the standard way to point it at any OpenAI-compatible gateway.

  1. Install the SDK:
pip install openai
  1. Run this code:
from openai import OpenAI

client = OpenAI(
    api_key="YOUR_QORA_API_KEY",
    base_url="https://qoraapi.com/v1",
)

response = client.chat.completions.create(
    model="claude-sonnet-4-5-20250929",  # copy the exact name from the Model Square
    messages=[
        {"role": "user", "content": "Hello, who are you?"},
    ],
)

print(response.choices[0].message.content)

Steps and notes:

A3. Node.js / TypeScript (OpenAI SDK)

Verified: the OpenAI Node.js SDK supports a custom baseURL, which is the standard way to point it at any OpenAI-compatible gateway.

  1. Install the SDK:
npm install openai
  1. Run this code:
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.QORA_API_KEY,
  baseURL: "https://qoraapi.com/v1",
});

const response = await client.chat.completions.create({
  model: "claude-sonnet-4-5-20250929", // copy the exact name from the Model Square
  messages: [{ role: "user", content: "Hello, who are you?" }],
});

console.log(response.choices[0].message.content);

Steps and notes:

A4. LangChain

Verified: LangChain's OpenAI chat model class accepts a custom base_url / openai_api_base, which is the standard way to point it at an OpenAI-compatible gateway. Exact parameter names vary by LangChain version — check your installed version if a parameter is rejected.

Python:

from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    model="claude-sonnet-4-5-20250929",  # copy the exact name from the Model Square
    api_key="YOUR_QORA_API_KEY",
    base_url="https://qoraapi.com/v1",
    temperature=0.7,
)

print(llm.invoke("Hello, who are you?").content)

JavaScript / TypeScript:

import { ChatOpenAI } from "@langchain/openai";

const llm = new ChatOpenAI({
  model: "claude-sonnet-4-5-20250929", // copy the exact name from the Model Square
  apiKey: process.env.QORA_API_KEY,
  configuration: {
    baseURL: "https://qoraapi.com/v1",
  },
});

console.log((await llm.invoke("Hello, who are you?")).content);

Steps and notes:

A5. LlamaIndex

Verified: LlamaIndex's OpenAI LLM class accepts a custom api_base, which is the standard way to point it at an OpenAI-compatible gateway. Exact parameter names vary by LlamaIndex version — check your installed version if a parameter is rejected.

from llama_index.llms.openai import OpenAI

llm = OpenAI(
    model="claude-sonnet-4-5-20250929",  # copy the exact name from the Model Square
    api_key="YOUR_QORA_API_KEY",
    api_base="https://qoraapi.com/v1",
)

print(llm.complete("Hello, who are you?"))

Steps and notes:


B. AI Editors and Coding Assistants

B1. Cursor

Verified from general knowledge of Cursor's standard OpenAI-compatible setup. Exact menu labels vary by Cursor version — check in-app if a label differs.

  1. Open Cursor and go to Settings (the gear icon, or Ctrl/Cmd + ,).
  2. Open the Models section.
  3. Find the option to add a custom model / custom API key, and enable "OpenAI API Key" or "Add custom model" (menu labels vary by version).
  4. Enter these values:
  5. API key: your Qora API key.
  6. Base URL: https://qoraapi.com/v1.
  7. Model: a model name copied exactly from the Model Square, for example a GPT or Claude model you want to code with.
  8. Save, then select that model from the model picker in the chat panel.
  9. Ask it to write or explain code. If the model does not appear, restart Cursor and check the model name again.

For a step-by-step walkthrough focused on GPT-5, see the blog article "How to Use GPT-5 in Cursor with a Custom API Endpoint (Step by Step)" on the Qora blog. The same setup works for other models — only the model name changes.

Troubleshooting: if Cursor says the key is invalid, first test the same key with the cURL example. If cURL works and Cursor does not, the base URL or model name in Cursor is usually wrong.

B2. Windsurf

Verified from general knowledge of Windsurf's standard custom-provider setup. Exact menu labels vary by Windsurf version — check in-app if a label differs.

  1. Open Windsurf and go to Settings.
  2. Open the Models or AI / Provider section.
  3. Choose to add a custom provider, or select "OpenAI-compatible" / "Custom API" as the provider type (menu labels vary by version).
  4. Enter these values:
  5. API key: your Qora API key.
  6. Base URL: https://qoraapi.com/v1.
  7. Model: a model name copied exactly from the Model Square.
  8. Save and select the new model in the Cascade / chat panel.
  9. Test it with a small coding task before you use it for a large refactor.

B3. VS Code + Continue

Verified from general knowledge of Continue's standard config.yaml setup for OpenAI-compatible providers. Exact menu labels vary by Continue version — check in-app if a label differs.

Continue is a free, open-source VS Code extension. It reads its model list from a config.yaml file.

  1. Install the Continue extension in VS Code.
  2. Open the Continue settings and open config.yaml (in newer versions this is under the gear icon in the Continue panel, then "Open config.yaml").
  3. Add a model block like this:
name: Local Agent
version: 1.0.0
schema: v1
models:
  - name: Qora Claude Sonnet
    provider: openai
    model: claude-sonnet-4-5-20250929
    apiKey: YOUR_QORA_API_KEY
    apiBase: https://qoraapi.com/v1
    roles: [chat, edit, apply]
  1. Replace apiKey with your Qora API key, and model with the exact name from the Model Square.
  2. Save the file, then pick "Qora Claude Sonnet" from the model picker in the Continue panel.
  3. Use chat, edit, and apply modes as normal. The roles line above lets the same model do all three.

Notes:

B4. Cline (VS Code)

Verified from general knowledge of Cline's standard provider setup. Exact menu labels vary by Cline version — check in-app if a label differs.

  1. Install the Cline extension in VS Code.
  2. Open the Cline panel and open Settings (gear icon).
  3. Set the API Provider to "OpenAI Compatible" (menu labels vary by version).
  4. Enter these values:
  5. API key: your Qora API key.
  6. Base URL: https://qoraapi.com/v1.
  7. Model ID: a model name copied exactly from the Model Square.
  8. Save and start a new task. Cline will use the model for planning, file edits, and terminal commands.
  9. For coding tasks, a Claude Sonnet model is a good starting point; for cheaper, simpler tasks, try a Haiku-class model from the Model Square.

Troubleshooting: if Cline reports an "invalid model" error, the model ID is almost always the problem — copy it character-for-character from the Model Square.


C. Chat Clients

All of the clients in this section support a custom OpenAI-compatible endpoint. The pattern is always the same: create a new provider / API configuration, paste the base URL, paste your key, and add a model name from the Model Square. Where a client's exact menu labels are version-dependent, this guide says so instead of inventing a menu path.

C1. Chatbox

Verified from general knowledge of Chatbox's standard OpenAI-compatible provider setup. Exact menu labels vary by Chatbox version — check in-app if a label differs.

  1. Open Chatbox and go to Settings.
  2. Open the Model Provider section and add a new provider, or edit the OpenAI provider.
  3. Choose the provider type "OpenAI" / "OpenAI-compatible" (menu labels vary by version).
  4. Enter these values:
  5. API host / Base URL: https://qoraapi.com/v1.
  6. API key: your Qora API key.
  7. Model: a model name copied exactly from the Model Square. Chatbox may let you add models by name — add one at a time.
  8. Save and start a new chat with that model.

C2. Cherry Studio

Verified from general knowledge of Cherry Studio's standard provider setup. Exact menu labels vary by Cherry Studio version — check in-app if a label differs.

  1. Open Cherry Studio and go to Settings.
  2. Open the Model Provider / API section.
  3. Add a new provider, or add an "OpenAI" provider and change it to a custom endpoint.
  4. Enter these values:
  5. API key: your Qora API key.
  6. Base URL / API host: https://qoraapi.com/v1.
  7. Model: a model name copied exactly from the Model Square. Cherry Studio usually has a "Manage models" / "Add model" option where you type the model name.
  8. Save, then pick the model in a new chat. Cherry Studio also supports web search, file attachments, and knowledge bases on top of the model — those features work the same way once the model is connected.

C3. NextChat

Verified from general knowledge of NextChat's standard custom-interface setup. Exact menu labels vary by NextChat version — check in-app if a label differs.

  1. Open NextChat and go to Settings.
  2. Find the custom interface / custom API section (in many versions it is under Settings, as a custom model provider option).
  3. Enter these values:
  4. Interface / Base URL: https://qoraapi.com/v1.
  5. API key: your Qora API key.
  6. Model: a model name copied exactly from the Model Square.
  7. Save and start a new chat. NextChat is a lightweight client, so this is a good first test that your key works end to end.

C4. LobeChat

Verified from general knowledge of LobeChat's standard OpenAI-compatible provider setup. Exact menu labels vary by LobeChat version — check in-app if a label differs.

  1. Open LobeChat and go to Settings.
  2. Open the AI Provider / Language Model section.
  3. Add a custom provider, or select the OpenAI provider and change its endpoint to a custom one.
  4. Enter these values:
  5. API key: your Qora API key.
  6. Base URL: https://qoraapi.com/v1.
  7. Model: a model name copied exactly from the Model Square. LobeChat may ask you to add the model ID manually.
  8. Save and start a new chat with that model. LobeChat's assistants, plugins, and file features work on top of the connected model.

C5. Open WebUI

Verified from general knowledge of Open WebUI's standard OpenAI-compatible connection setup. Exact menu labels vary by Open WebUI version — check in-app if a label differs.

  1. Open Open WebUI and go to Admin Settings (you need to be an admin user).
  2. Open the Connections section.
  3. Find the OpenAI API connection and set its URL to https://qoraapi.com/v1 (menu labels vary by version — in some versions this is under Admin Settings, then Connections, then the OpenAI connection).
  4. Enter your Qora API key in the API key field for that connection.
  5. Save. Open WebUI will fetch the available models — if the model list is empty, check the base URL and key first.
  6. Pick a model from the Model Square in a new chat. You may need to enable the model in the Models section before it appears in the chat picker.

Notes:

C6. LibreChat

Verified from general knowledge of LibreChat's standard custom-endpoint setup. Exact menu labels vary by LibreChat version — check in-app if a label differs.

LibreChat connects to custom OpenAI-compatible endpoints through its librechat.yaml configuration file.

  1. Open your librechat.yaml file.
  2. Add a custom endpoint like this:
endpoints:
  custom:
    - name: "Qora"
      apiKey: "YOUR_QORA_API_KEY"
      baseURL: "https://qoraapi.com/v1"
      models:
        default: ["claude-sonnet-4-5-20250929"]
        fetch: false
      titleConvo: true
      titleModel: "claude-sonnet-4-5-20250929"
      modelDisplayLabel: "Qora Claude Sonnet"
  1. Replace apiKey with your Qora API key, and the model names with exact names from the Model Square.
  2. Restart LibreChat so it reads the new configuration.
  3. Select the Qora endpoint in the model picker and start a chat.

Notes:


D. Workflow and Other Tools

D1. n8n

Verified from general knowledge of n8n's standard OpenAI node with a custom base URL. Exact menu labels vary by n8n version — check in-app if a label differs.

  1. In n8n, add an OpenAI node (for example, the "OpenAI" / "Message a model" node) to your workflow.
  2. Create a new OpenAI credential for the node.
  3. In the credential, set the base URL to https://qoraapi.com/v1 (menu labels vary by version — in some versions this is a "Base URL" field in the credential; in others it is in the node's options).
  4. Enter your Qora API key as the credential's API key.
  5. In the node, set the model to a name copied exactly from the Model Square.
  6. Test the node with a single execution before you turn the workflow on.

Notes:

D2. Dify

Verified from general knowledge of Dify's standard custom model provider setup. Exact menu labels vary by Dify version — check in-app if a label differs. This section describes the generic setup; check your Dify version in-app if a label differs.

  1. In Dify, go to Settings, then Model Providers.
  2. Add a custom model provider, or select the OpenAI provider and configure a custom endpoint (menu labels vary by version).
  3. Enter these values:
  4. API key: your Qora API key.
  5. Base URL / API base: https://qoraapi.com/v1.
  6. Model: a model name copied exactly from the Model Square.
  7. Save the provider and check that Dify shows it as connected.
  8. Create or open an app in Dify, select the Qora model as the app's model, and test it in the preview before you publish the app.

Notes:


Troubleshooting: 401, 429 and Other Errors

401 Unauthorized

429 Too Many Requests / Rate Limit Exceeded

404 Model Not Found

400 Bad Request

Empty or Missing Model List

The Client Says the Key Is Invalid but cURL Works


FAQ

Do I need a different key for each client?

No. One Qora API key works in every client in this guide. You can use the same key in Cursor, Chatbox, and your Python code at the same time.

Can I use GPT, Claude, Gemini, and Grok with the same key?

Yes. That is the point of Qora: one key, 350+ models, all through the same OpenAI-compatible endpoint. You only change the model name.

Why does my first call fail?

The three most common causes are: no balance (minimum top-up $50), a wrong API key, and a wrong model name. Check all three in that order.

How do I get the $5 trial credit?

Contact us at [email protected] and we will add $5 to your account. It is on request only — it is not added automatically when you register.

What is the minimum top-up?

$50, in USD. Qora is pay-as-you-go, and unused balance is refundable on request — open a support ticket and we will process your refund.

Where do I check my balance and usage?

In the Qora Console at https://qoraapi.com/. If a number in a client does not match the Console, trust the Console.

Which model should I start with?

For coding, start with a Claude Sonnet model from the Model Square. For cheap, simple tasks, start with a Haiku-class model. For general chat, any GPT or Claude model on the Model Square works. Copy the exact name from the Model Square in every case.


What This Guide Could Not Verify

Read this section before you publish or deploy this guide. These are the limits of what was checked.

Ready to try it?

Go back to the main site, create your API key, and connect your first client.

← Back to Qora API — qoraapi.com