API指南
将Apinfer AI模型集成到您的应用程序中
API指南
基础URL
https://apinfer.com/api/v1认证
在Authorization头部包含您的API密钥:
Authorization: Bearer YOUR_API_KEY生成图像(异步)
端点:POST /api/generate-images,然后轮询 GET /api/generations/{id}
- 入队生成
请求:
{
"prompt": "美丽的山间日落",
"negative_prompt": "模糊,低质量",
"aspect_ratio": "1:1",
"seed": 12345,
"model": "Qwen-Image"
}提示:图像编辑模型(例如 Qwen-Image-Edit-2509)需要传入 images(base64 数组)。
响应(202):
{
"success": true,
"data": { "job_id": "<id>", "status": "queued", "credit_cost": 1.75 },
"message": "Image generation enqueued using model Qwen-Image"
}- 轮询任务状态
请求:GET /api/generations/<job_id>
响应:
- 处理中:
{ "success": true, "data": { "status": "queued" } }- 成功:
{
"success": true,
"data": {
"status": "succeeded",
"type": "image",
"model": "Qwen-Image",
"result": { "images": ["<base64>"], "seed": 12345 },
"credit_cost": 1.75
}
}- 失败:
{ "success": true, "data": { "status": "failed", "error": "..." } }错误处理
401 未授权:
{
"success": false,
"error": "无效或过期的API密钥",
"message": "请检查您的API密钥并重试"
}402 积分不足:
{
"success": false,
"error": "积分不足",
"message": "您需要10积分来生成1024x1024图像。您有5积分。"
}代码示例
cURL
# 1) 入队
curl -X POST "https://apinfer.com/api/generate-images" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "美丽的山间日落",
"aspect_ratio": "1:1",
"model": "Qwen-Image"
}'
# 2) 轮询(用上一步返回的 job_id 替换 <job_id>)
curl -X GET "https://apinfer.com/api/generations/<job_id>" \
-H "Authorization: Bearer YOUR_API_KEY"Python
import requests
import time
enqueue = requests.post(
"https://apinfer.com/api/generate-images",
headers={"Authorization": "Bearer YOUR_API_KEY", "Content-Type": "application/json"},
json={
"prompt": "美丽的山间日落",
"aspect_ratio": "1:1",
"model": "Qwen-Image"
}
).json()
if not enqueue.get("success"):
raise Exception(enqueue.get("message") or enqueue.get("error"))
job_id = enqueue["data"]["job_id"]
for _ in range(60):
r = requests.get(
f"https://apinfer.com/api/generations/{job_id}",
headers={"Authorization": "Bearer YOUR_API_KEY"}
).json()
status = r.get("data", {}).get("status")
if status in ("queued", "processing"):
time.sleep(2)
continue
if status == "succeeded":
print("Generated images:", r["data"]["result"]["images"])
else:
print("错误:", r.get("message") or r.get("error"))
breakJavaScript
// 1) 入队
const response = await fetch('https://apinfer.com/api/generate-images', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
prompt: '美丽的山间日落',
aspect_ratio: '1:1',
model: 'Qwen-Image'
})
});
const enqueue = await response.json();
if (!enqueue.success) {
throw new Error(enqueue.message || enqueue.error);
}
const jobId = enqueue.data.job_id;
// 2) 轮询
async function poll() {
const r = await fetch('https://apinfer.com/api/generations/' + jobId, {
headers: { 'Authorization': 'Bearer YOUR_API_KEY' }
});
return r.json();
}
let status;
do {
const data = await poll();
status = data?.data?.status;
if (status === 'queued' || status === 'processing') {
await new Promise(r => setTimeout(r, 2000));
} else if (status === 'succeeded') {
console.log('Generated images:', data.data.result.images);
} else {
console.error('错误:', data?.message || data?.error);
}
} while (status === 'queued' || status === 'processing');API密钥管理
创建API密钥
- 前往您的仪表板
- 导航到API密钥
- 点击**"创建新API密钥"**
- 输入名称并点击**"生成密钥"**
- 复制并安全存储
安全
- 将API密钥存储在环境变量中
- 永远不要将密钥提交到版本控制
- 定期轮换密钥
- 在仪表板中监控使用情况
支持
- 邮箱: mail<Gen API@mail.apinfer.com>
- 响应时间: 24-48小时
Apinfer文档