Create an account and get your API key
Sign up at wingmanprotocol.com/signup — it takes under 30 seconds. Your API key is shown immediately on the dashboard. Copy it; you will use it in every request as the X-Revenue-Key header.
Send a chat completion
The /v1/chat/completions endpoint is OpenAI-compatible. Available models: mistral, deepseek-coder, qwen2.5, claude-sonnet.
curl -X POST https://api.wingmanprotocol.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-Revenue-Key: YOUR_API_KEY" \
-d '{"model": "mistral", "messages": [{"role": "user", "content": "Hello"}]}'Order content
Place a content order by specifying an order_type and a topic. Supported types: blog_short, blog_long, social_pack, newsletter, seo_quick, seo_deep, ad_copy, email_sequence, product_descriptions.
curl -X POST https://api.wingmanprotocol.com/orders/content \
-H "Content-Type: application/json" \
-H "X-Revenue-Key: YOUR_API_KEY" \
-d '{"order_type": "blog_short", "topic": "AI in healthcare"}'Submit a dev task
Send a plain-language development task. Set complexity to simple, moderate, or complex. Optionally include a repo_url.
curl -X POST https://api.wingmanprotocol.com/dev/tasks \
-H "Content-Type: application/json" \
-H "X-Revenue-Key: YOUR_API_KEY" \
-d '{"complexity": "simple", "description": "Add rate limiting to Express API"}'Check your usage
Retrieve current billing-period stats — requests made, tokens consumed, and remaining quota.
curl https://api.wingmanprotocol.com/v1/usage \ -H "X-Revenue-Key: YOUR_API_KEY"
SDK Examples
No official SDK yet — use any HTTP client. Examples below show chat completions in Python and JavaScript.
Python
import requests
API_KEY = "YOUR_API_KEY"
BASE_URL = "https://api.wingmanprotocol.com"
def chat(model: str, content: str) -> dict:
resp = requests.post(
f"{BASE_URL}/v1/chat/completions",
headers={
"Content-Type": "application/json",
"X-Revenue-Key": API_KEY,
},
json={
"model": model,
"messages": [{"role": "user", "content": content}],
},
timeout=30,
)
resp.raise_for_status()
return resp.json()
result = chat("mistral", "Explain async/await in one paragraph.")
print(result["data"])JavaScript / TypeScript
const BASE_URL = "https://api.wingmanprotocol.com";
const API_KEY = process.env.WINGMAN_API_KEY;
async function chat(model, content) {
const res = await fetch(`${BASE_URL}/v1/chat/completions`, {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-Revenue-Key": API_KEY,
},
body: JSON.stringify({
model,
messages: [{ role: "user", content }],
}),
});
if (!res.ok) {
const err = await res.json();
throw new Error(err.detail ?? "Request failed");
}
return res.json();
}
const result = await chat("mistral", "Explain async/await in one paragraph.");
console.log(result.data);Need the full reference?
Every endpoint, parameter, and response format documented.