Documentation Index
Fetch the complete documentation index at: https://docs.sinancode.com/llms.txt
Use this file to discover all available pages before exploring further.
Step 1: Get Your API Key
Visit the API Keys Management Page to create your API key.
- Log in to your SinanCode account
- Navigate to Dashboard → API Keys
- Click “Create New Key”
- Save the generated API Key (keep it secure, it’s only shown once)
Step 2: Make an API Request
All API requests require authentication in the HTTP Header:
Authorization: Bearer YOUR_API_KEY
Basic Request Example
Here’s a complete example of generating an image using Imagen4:
curl -X POST https://api.sinancode.com/v1/generate/k/imagen4 \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "a beautiful sunset over the mountains",
"aspect_ratio": "16:9",
"num_images": 1
}'
Response Example:
{
"task_id": "01234567-89ab-cdef-0123-456789abcdef"
}
Step 3: Check Task Status
Since AI model generation takes time, most APIs work asynchronously. Use the returned task_id to check the task status:
curl -X GET https://api.sinancode.com/v1/tasks/01234567-89ab-cdef-0123-456789abcdef \
-H "Authorization: Bearer YOUR_API_KEY"
Response Example:
{
"id": "01234567-89ab-cdef-0123-456789abcdef",
"status": "completed",
"result": [
"https://storage.example.com/generated-image.jpg"
]
}
Task Status Descriptions
pending - Task is queued
processing - Generation in progress
completed - Generation completed
failed - Generation failed
Popular Models Quick Reference
Image Generation Models
Imagen 4
- Endpoint:
POST /generate/k/imagen4
- Features: Google’s latest image generation model with excellent quality
- Parameters:
prompt, aspect_ratio, num_images, seed
Midjourney
- Endpoint:
POST /generate/k/midjourney-txt2img
- Features: Strong artistic style, ideal for creative design
- Parameters:
prompt, aspectRatio, version, stylization
Flux Kontext
- Endpoint:
POST /generate/k/flux-kontext
- Features: Supports Chinese prompts with automatic translation
- Parameters:
prompt, aspect_ratio, model, enable_translation
Video Generation Models
Sora 2
- Endpoint:
POST /generate/k/sora2-text-to-video
- Features: OpenAI’s video generation model
- Parameters:
prompt, aspect_ratio, n_frames
Veo 3
- Endpoint:
POST /generate/k/veo3-text-to-video
- Features: Google’s video generation model with image-to-video support
- Parameters:
prompt, aspectRatio, model
Complete Code Examples
Python Example
import requests
import time
API_KEY = "your_api_key_here"
BASE_URL = "https://api.sinancode.com/v1"
# Create task
response = requests.post(
f"{BASE_URL}/generate/k/imagen4",
headers={
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
},
json={
"prompt": "a futuristic cityscape at sunset",
"aspect_ratio": "16:9",
"num_images": 1
}
)
task_id = response.json()["task_id"]
print(f"Task created successfully, ID: {task_id}")
# Poll task status
while True:
status_response = requests.get(
f"{BASE_URL}/tasks/{task_id}",
headers={"Authorization": f"Bearer {API_KEY}"}
)
task = status_response.json()
status = task["status"]
print(f"Task status: {status}")
if status == "completed":
print(f"Generation completed! Image URL: {task['result'][0]}")
break
elif status == "failed":
print(f"Generation failed: {task.get('error_msg', 'Unknown error')}")
break
time.sleep(2) # Wait 2 seconds before retrying
JavaScript/TypeScript Example
const API_KEY = "your_api_key_here";
const BASE_URL = "https://api.sinancode.com/v1";
async function generateImage() {
// Create task
const createResponse = await fetch(`${BASE_URL}/generate/k/imagen4`, {
method: "POST",
headers: {
"Authorization": `Bearer ${API_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
prompt: "a serene mountain landscape",
aspect_ratio: "16:9",
num_images: 1
})
});
const { task_id } = await createResponse.json();
console.log(`Task created successfully, ID: ${task_id}`);
// Poll task status
while (true) {
const statusResponse = await fetch(`${BASE_URL}/tasks/${task_id}`, {
headers: { "Authorization": `Bearer ${API_KEY}` }
});
const task = await statusResponse.json();
console.log(`Task status: ${task.status}`);
if (task.status === "completed") {
console.log(`Generation completed! Image URL: ${task.result[0]}`);
break;
} else if (task.status === "failed") {
console.log(`Generation failed: ${task.error_msg}`);
break;
}
await new Promise(resolve => setTimeout(resolve, 2000)); // Wait 2 seconds
}
}
generateImage();
Next Steps
Frequently Asked Questions
How do I choose the right model?
- For Quality: Imagen 4 Ultra, Midjourney v7
- For Speed: Imagen 4 Fast, Nano Banana
- For Chinese Prompts: Flux Kontext, Tongyi Wanxiang
- For Video Generation: Sora 2 Pro, Veo 3
What are the rate limits?
Each API Key has rate limits depending on your subscription plan. When limits are exceeded, you’ll receive a 429 Too Many Requests error.
Need help? Visit sinancode.com to contact our technical support team.