| Field | Value |
|---|---|
| Base URL | https://macdecloud.com/v1 |
| Auth | Authorization: Bearer dcld-sk-... |
| Protocol | OpenAI Chat Completions compatible |
| Billing | MA deducted by token usage |
curl https://macdecloud.com/v1/chat/completions \
-H "Authorization: Bearer dcld-sk-..." \
-d '{"model":"deepseek/deepseek-chat","messages":[{"role":"user","content":"Hello"}]}'curl https://macdecloud.com/v1/chat/completions \
-H "Authorization: Bearer dcld-sk-..." \
-d '{"model":"deepseek/deepseek-chat","stream":true,"messages":[{"role":"user","content":"Hello"}]}'Streaming responses are standard SSE; the final chunk carries usage.
from openai import OpenAI
client = OpenAI(
base_url="https://macdecloud.com/v1",
api_key="dcld-sk-...",
)
# streaming
stream = client.chat.completions.create(
model="deepseek/deepseek-v4-pro",
messages=[{"role": "user", "content": "Hello"}],
stream=True,
)
for chunk in stream:
delta = chunk.choices[0].delta.content
if delta:
print(delta, end="", flush=True)import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://macdecloud.com/v1",
apiKey: "dcld-sk-...",
});
const stream = await client.chat.completions.create({
model: "moonshotai/kimi-k3",
messages: [{ role: "user", content: "Hello" }],
stream: true,
});
for await (const chunk of stream) {
const delta = chunk.choices[0]?.delta?.content;
if (delta) process.stdout.write(delta);
}GET /v1/models returns available models and MA pricing; browse them on the model plaza.
| Status | Code | Description |
|---|---|---|
| 401 | — | Invalid API key |
| 402 | insufficient_balance | Insufficient balance — please deposit |
| 403 | — | Forbidden or banned |
| 404 | model_not_found | Model doesn't exist or isn't enabled |
| 429 | rate_limit_exceeded | Rate limited — see Retry-After |
| 5xx | — | Upstream or gateway error |