EN ▾
Get API Key

Da Moxing API Quick Start Guide

Da Moxing API provides a stable, uncensored LLM API with no content filter limits, designed for developers who need creative freedom. Through the OpenAI-compatible interface, you can get uncensored AI generation capabilities in just a few lines of code.

Prerequisites: Install SDK

To quickly start using the Da Moxing API, you need to install the official compatible SDK. Since our interface is fully compatible with the OpenAI protocol, you can use your familiar libraries. For Python developers, we recommend the openai library; for Node.js developers, use the openai npm package. Ensure these dependencies are installed in your environment for subsequent API calls.

Configure Base URL

Before sending requests, you must configure the base_url to our server address. This ensures your requests are correctly routed to the uncensored model. Set the base_url to https://api.apidamoxing.com/v1. This is the foundation for all API calls; ensure your SDK version supports custom base_url configuration.

Generate API Key

Visit the Get API Key page and register an account with your email and password. After registration, the API Key will be displayed on the screen immediately. Please save this key securely as it will be used for authentication in all API requests. Each account can have only one primary key, but you can generate new keys at any time; the old key will become invalid immediately.

Send First Request

Send your first request using cURL to verify that the API is working. The request will be sent to the uncensored model, returning unfiltered text content. Make sure to replace YOUR_API_KEY with your actual key. This request demonstrates basic text generation capabilities suitable for various creative scenarios.

curl https://api.apidamoxing.com/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."}]
  }'

Support Streaming (SSE)

For applications requiring real-time responses, enabling streaming (SSE) is an ideal choice. By setting stream: true, you can receive content generated by the model in chunks, reducing latency and improving user experience. Streaming is suitable for chatbots, real-time translation, and other scenarios, ensuring data arrives instantly.

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)

Tool and Function Calling Example

Our API supports function calling, allowing the model to interact with external functions. By defining the tools parameter, you can have the model call specific functions based on context. This is very useful when building intelligent assistants or automating workflows. Ensure tool definitions comply with the OpenAI function calling specification for optimal compatibility.

from openai import OpenAI

client = OpenAI(base_url="https://api.apidamoxing.com/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)
import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://api.apidamoxing.com/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);

API facts in one table

Before you integrate, here is exactly what you get with a key.

SpecValue
API formatOpenAI-compatible: any OpenAI SDK or client works — change the base URL and the key
AuthenticationBearer token in the Authorization header
Base URLhttps://api.apidamoxing.com/v1
MethodsPOST /v1/chat/completions · GET /v1/models
Modeluncensored
Max outputprompt + completion fit within 100,000 tokens; max_tokens optional, no separate output cap
Structured outputresponse_format: {"type": "json_object"}
Other parameterstemperature, top_p, stop, seed and the two penalties are passed through
Tools / tool callsYes — tools, tool_choice; replies carry tool_calls, also when streaming; send results back as role: tool
Context window100,000 tokens (prompt + completion together)
SSE streamingSupported (stream: true), usage included at the end
Requests per minute300/min per key
Max bodyup to 8 MB per request
Response headersX-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency
Parallel requestsup to 8 in parallel per key
Volume bonus+5% from $50, +10% from $100
Price$0.25 per 1M input tokens · $1.00 per 1M output tokens
How you paypay as you go from prepaid credit; nothing is charged for failed or refused requests
Credit expirypaid credit never expires, no subscription
PaymentUSDT (TRC20) or USDC (Base), any whole amount from $10 to $500
Free trial$0.50 of credit valid 7 days, no card needed · Trial key: 2 parallel requests, 60 req/min; full limits (8 and 300) after first top-up
Accountsign in with Google or with e-mail + password
Keysone active key per account; a new key replaces the old one
Content policyuncensored for adults; the only hard rule: no sexual content involving minors

When a request fails

Every error is JSON with a type you can switch on. You are never charged for an error.

StatusTypeReason
400bad_requestinvalid JSON, empty messages, bad parameter, or prompt + max_tokens over the window — fix and resend
401missing_key · invalid_key · key_revokedcheck the Authorization header or use your current key
402no_creditout of credit; add credit and retry
403content_blockedsexual content involving minors — refused, not billed
404not_foundunknown endpoint
413request_too_largerequest body larger than 8 MB
429rate_limited · concurrencyover 300/min or 8 parallel — back off and retry
503upstream_busymodel busy — retry in a few seconds

Frequently Asked Questions

What is the API context window size?

The context window is 100,000 tokens (including prompt and completion). This allows you to process longer text inputs while maintaining full context memory.

How to regenerate an API key after it expires?

You can generate a new API key at any time in your account settings. Once the new key is generated, the old one becomes invalid immediately, ensuring security. Each time you generate a new key, the old one can no longer be used for requests.

What is the API rate limit?

Each API key allows 300 requests per minute. If you exceed the limit, you will receive a 429 error. Adjust your request frequency according to your app needs to avoid triggering the rate limit.

Just fill out the form to get the key

Create an account, copy the key, modify the Base URL. Configuration is that simple.

Get API Key