EN ▾
stableaudio.top

Uncensored text API for your audio pipeline

Get API key

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.

SpecValue
CompatibilityOpenAI-compatible: any OpenAI SDK or client works — change the base URL and the key
Modeluncensored
EndpointsPOST /v1/chat/completions · GET /v1/models
AuthenticationAuthorization: Bearer YOUR_KEY
Base URLhttps://api.stableaudio.top/v1
Other parameterstemperature, top_p, stop, seed and the two penalties are passed through
JSON moderesponse_format: {"type": "json_object"}
Completion lengthprompt + completion fit within 100,000 tokens; max_tokens optional, no separate output cap
StreamingSupported (stream: true), usage included at the end
Function callingSupported: tools + tool_choice, tool_calls in the reply (streamed too), tool results as role: tool messages
Max context100,000 tokens (prompt + completion together)
Requests per minute300/min per key
HeadersX-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency
Request sizeup to 8 MB per request
Parallel requests8 requests at the same time per key
Billingprepaid credit, charged by real token usage; errors and refusals are free
Priceinput $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
Paymentcrypto: USDT on TRON or USDC on Base, $20–$500, any whole sum
Subscriptionno monthly fee; paid credit does not expire
Content policyuncensored for adults; the only hard rule: no sexual content involving minors
Key managementone active key per account; a new key replaces the old one
AccountGoogle or e-mail and password

Error reference

The type field is stable, the message is for humans. Errors cost nothing.

CodeTypeMeaning
400bad_requestmalformed request or too long for the context window
401missing_key · invalid_key · key_revokedno key, wrong key, or a key replaced by a newer one
402no_creditout of credit; add credit and retry
403content_blockedrefused by the content policy
404not_foundunknown endpoint
413request_too_largebody over 8 MB
429rate_limited · concurrencyover 300/min or 8 parallel — back off and retry
503upstream_busytemporary 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.

Get API key