Полное руководство по использованию MaxMedia Photo API
Все запросы к API должны содержать заголовок Authorization с вашим API ключом:
Authorization: Bearer YOUR_API_KEY
https://maxmedia.uz/api/v1
/process
{
"images": [
"https://example.com/image1.jpg",
"https://example.com/image2.jpg"
],
"prompt_id": 1,
"output_format": "png",
"image_size": "auto"
}
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| images | array | ✅ Да | Массив URL изображений (макс. 100) |
| prompt_id | integer | ⚡ Условно | ID шаблона промпта |
| custom_prompt | string | ⚡ Условно | Свой промпт (если нет prompt_id) |
| output_format | string | ❌ Нет | png или jpeg (по умолч. png) |
| image_size | string | ❌ Нет | 1:1, 16:9, auto и т.д. |
{
"success": true,
"task_id": "a1b2c3d4e5f6...",
"message": "Task created successfully",
"total_images": 2
}
/status/{task_id}
{
"task_id": "a1b2c3d4e5f6...",
"status": "processing",
"total_images": 2,
"processed_images": 1,
"failed_images": 0,
"created_at": "2025-12-11T10:00:00Z",
"completed_at": null
}
В очереди
Обработка
Готово
Ошибка
/result/{task_id}
{
"task_id": "a1b2c3d4e5f6...",
"status": "completed",
"total_images": 2,
"processed_images": 2,
"failed_images": 0,
"images": [
{
"original_url": "https://example.com/image1.jpg",
"result_url": "https://maxmedia.uz/static/uploads/task123/abc.png",
"status": "completed",
"error": null
},
{
"original_url": "https://example.com/image2.jpg",
"result_url": "https://maxmedia.uz/static/uploads/task123/def.png",
"status": "completed",
"error": null
}
],
"expires_at": "2025-12-14T10:00:00Z"
}
⚠️ Важно: Результаты хранятся 3 дня, после чего автоматически удаляются. Скачайте изображения до даты expires_at.
Структура: Категория → Подкатегория → Промпт
Например: Мальчик → Свитер → Улучшение качества
/catalog/categories
[
{"id": 1, "name": "Мальчик", "name_en": "boy"},
{"id": 2, "name": "Девочка", "name_en": "girl"}
]
/catalog/categories/{category_id}/subcategories
// GET /catalog/categories/1/subcategories
[
{"id": 1, "category_id": 1, "name": "Свитер"},
{"id": 2, "category_id": 1, "name": "Футболка"},
{"id": 3, "category_id": 1, "name": "Куртка"}
]
/catalog/subcategories/{subcategory_id}/prompts
// GET /catalog/subcategories/1/prompts
[
{
"id": 1,
"title": "Улучшение качества",
"prompt": "Enhance this product photo...",
"preview_image": "/static/uploads/previews/abc.png",
"output_format": "png",
"image_size": "auto",
"is_default": true
},
{
"id": 2,
"title": "Удаление фона",
"prompt": "Remove background...",
...
}
]
После выбора промпта, используйте его id при отправке фото:
POST /process
{
"images": ["https://example.com/photo.jpg"],
"prompt_id": 1 // ← ID выбранного промпта
}
import requests
import time
API_URL = "https://maxmedia.uz/api/v1"
API_KEY = "your_api_key_here"
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
# 1. Отправка изображений
response = requests.post(
f"{API_URL}/process",
headers=headers,
json={
"images": [
"https://example.com/photo1.jpg",
"https://example.com/photo2.jpg"
],
"prompt_id": 1
}
)
task_id = response.json()["task_id"]
print(f"Task created: {task_id}")
# 2. Ожидание результата
while True:
status = requests.get(
f"{API_URL}/status/{task_id}",
headers=headers
).json()
print(f"Status: {status['status']}, Progress: {status['processed_images']}/{status['total_images']}")
if status["status"] in ["completed", "failed", "partial"]:
break
time.sleep(5)
# 3. Получение результата
result = requests.get(
f"{API_URL}/result/{task_id}",
headers=headers
).json()
for img in result["images"]:
print(f"Original: {img['original_url']}")
print(f"Result: {img['result_url']}")
print("---")
| Код | Описание |
|---|---|
| 401 | Неверный API ключ |
| 404 | Задача не найдена |
| 429 | Превышен лимит запросов |
| 500 | Внутренняя ошибка сервера |