Prompts and scripts over one endpoint
Get your uncensored text API key and start sending requests to the stableaudio text pipeline in minutes. Use the OpenAI-compatible endpoint for prompt engineering, captioning, or post-processing with predictable prepaid billing.
Base URL & Authentication
Use the base URL https://api.stableaudio.top/v1 with any standard OpenAI-compatible client. Pass your API key in the Authorization header as Bearer YOUR_API_KEY. You can generate a key instantly on the Get API key page using Google or email + password. Each account supports one active key; issuing a new one replaces the previous key. The endpoint supports POST /v1/chat/completions and GET /v1/models only. No embeddings, image, audio, or video generation is available here. This is a text-only layer for your audio pipeline.
Send Your First Request
Send a standard chat completion request to generate text. The model ID is uncensored. It is an open-weight model tuned for fewer content refusals on lawful adult topics. You can adjust parameters like temperature and top_p. The model has a 100,000-token context window. You can request up to 32,000 tokens per response. Pricing is transparent: $0.15 per 1M input tokens and $0.50 per 1M output tokens. Errors and refusals do not consume credit.
curl https://api.stableaudio.top/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Write a blunt product review of a cheap VPN."}]
}'
Python SDK Integration
Use the official OpenAI Python SDK to integrate the API into your Python scripts. Set the base_url and api_key in your client configuration. This allows you to leverage existing codebases that already use OpenAI’s interface. The client handles JSON serialization and response parsing automatically. You can stream responses or process them in batch mode. This approach works for prompt generation, script writing, or extracting structured data from text inputs for your audio workflow.
from openai import OpenAI
client = OpenAI(base_url="https://api.stableaudio.top/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 SDK Integration
Integrate the API into your Node.js applications using the OpenAI Node SDK. Configure the client with the correct base URL and API key. This ensures compatibility with standard OpenAI patterns. You can make synchronous or asynchronous requests. Use this for real-time text processing in web hooks or background jobs. The SDK handles retry logic and response parsing. This is ideal for building voice-over scripts or captioning pipelines that require reliable, uncensored text output without subscription fees.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.stableaudio.top/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 Responses (SSE)
Enable streaming by setting stream: true in your request. The API returns Server-Sent Events (SSE). Token usage information is included in the final chunk. This reduces perceived latency for long text generation. Use this for live captioning or interactive prompt refinement. The model ID remains uncensored. Streaming does not change the pricing model. You still pay only for the actual tokens generated. Errors during streaming are handled gracefully without consuming extra credit.
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)
Token Limits & Quotas
The model supports a 100,000-token context window. Max output is 32,000 tokens per request, or 2,048 if max_tokens is unset. You are limited to 300 requests per minute per key. Concurrency is capped at 8 simultaneous requests per key. Request bodies must not exceed 8 MB. If you exceed the rate limit, you receive a 429 error. If your key is invalid, you receive a 401 error. If you lack sufficient prepaid credit, you receive a 402 error. Errors and refusals are free. Credit never expires. Top up by card (Visa, Mastercard, Apple Pay, Google Pay) or crypto (USDT on TRC20, USDC on Base) from $20 to $500.
Capabilities and limits
Use this table to decide whether the API fits your project before you buy credit.
| Spec | Value |
|---|---|
| Compatibility | OpenAI-compatible: any OpenAI SDK or client works — change the base URL and the key |
| Model | uncensored |
| Endpoints | POST /v1/chat/completions · GET /v1/models |
| Authentication | Authorization: Bearer YOUR_KEY |
| Base URL | https://api.stableaudio.top/v1 |
| Other parameters | temperature, top_p, stop, seed and the two penalties are passed through |
| JSON mode | response_format: {"type": "json_object"} |
| Completion length | prompt + completion fit within 100,000 tokens; max_tokens optional, no separate output cap |
| Streaming | Supported (stream: true), usage included at the end |
| Function calling | Supported: tools + tool_choice, tool_calls in the reply (streamed too), tool results as role: tool messages |
| Max context | 100,000 tokens (prompt + completion together) |
| Requests per minute | 300/min per key |
| Headers | X-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency |
| Request size | up to 8 MB per request |
| Parallel requests | 8 requests at the same time per key |
| Billing | prepaid credit, charged by real token usage; errors and refusals are free |
| Price | input $0.15 / 1M tokens, output $0.50 / 1M tokens |
| Volume bonus | +5% from $50, +10% from $100, +15% from $200 |
| Free trial | $0.50 for 7 days, no card · Trial key: 2 parallel requests, 60 req/min; full limits (8 and 300) after first top-up |
| Payment | crypto: USDT on TRON or USDC on Base, $20–$500, any whole sum |
| Subscription | no monthly fee; paid credit does not expire |
| Content policy | uncensored for adults; the only hard rule: no sexual content involving minors |
| Key management | one active key per account; a new key replaces the old one |
| Account | Google or e-mail and password |
Error reference
The type field is stable, the message is for humans. Errors cost nothing.
| Code | Type | Meaning |
|---|---|---|
400 | bad_request | malformed request or too long for the context window |
401 | missing_key · invalid_key · key_revoked | no key, wrong key, or a key replaced by a newer one |
402 | no_credit | out of credit; add credit and retry |
403 | content_blocked | refused by the content policy |
404 | not_found | unknown endpoint |
413 | request_too_large | body over 8 MB |
429 | rate_limited · concurrency | over 300/min or 8 parallel — back off and retry |
503 | upstream_busy | temporary overload, retry shortly |
Questions and answers
What does 'uncensored' mean for this API?
The model does not refuse lawful adult, fictional, security-research, or controversial topics. It is tuned to answer without content refusals. The only hard limit is that sexual content involving minors is always blocked.
How is billing handled and when are errors free?
You pay only for real token usage. Errors and refusals do not consume your prepaid credit. Credit is topped up by card (Visa, Mastercard, Apple Pay, Google Pay) or crypto (USDT on TRC20, USDC on Base) and never expires. You can top up from $20 to $500.
Can I use this for image or audio generation?
No. This is a text-only chat-completions API. It powers the text layer for your audio pipeline, such as prompt writing or captioning. It does not generate images, audio, or video itself.
Your key is one form away
Create an account, copy the key, change the base URL. That is the whole setup.