Cursor API Documentation and Quickstart
This uncensored LLM runs on an OpenAI compatible API, letting you swap in your own cursor API key or generate a new one for direct integration.
Authentication and Base URL Setup
Start by pointing your client to the base URL https://api.cursorapi.cc/v1 and passing your key in the authorization header. The system uses standard Bearer token authentication, so any OpenAI SDK works out of the box once you update the endpoint.
Sending Requests to /v1/chat/completions
Send your first prompt to the POST /v1/chat/completions endpoint with the model ID set to uncensored. This model answers without refusals for lawful adult content, giving you full control over the output. You pay only for real token usage, with errors being free, ensuring you never waste credit on silent failures.
cURL
curl https://api.cursorapi.cc/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Summarize the key differences between the two models."}]
}'Python
from openai import OpenAI
client = OpenAI(base_url="https://api.cursorapi.cc/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)Node.js
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.cursorapi.cc/v1", apiKey: process.env.API_KEY });
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);Streaming
stream = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Tell the story in second person."}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)