Documentation Index
Fetch the complete documentation index at: https://docs.apimart.ai/llms.txt
Use this file to discover all available pages before exploring further.
ドキュメントPlaygroundはファイルアップロードに対応していません:下記のcURL、Python、またはJavaScriptのコード例を使用してテストしてください。
重要な変更: パフォーマンスとコスト管理の向上のため、生成APIでのbase64画像データの直接送信はサポートを終了しました。本APIで画像をアップロードし、URLを取得してから生成APIを呼び出してください。
なぜ先に画像をアップロードする必要がありますか?
- パフォーマンス最適化 - base64エンコードはデータを33%膨張させます。先にアップロードすることでリクエストボディのサイズを大幅に削減できます
- 画像の再利用 - 一度アップロードすれば、URLを何度でも使用でき、重複転送が不要です
使用フロー
curl --request POST \
--url https://api.apimart.ai/v1/uploads/images \
--header 'Authorization: Bearer <token>' \
--form 'file=@/path/to/your/image.jpg'
{
"url": "https://upload.apimart.ai/f/image/9990000123456-a1b2c3d4-photo.jpg",
"filename": "photo.jpg",
"content_type": "image/jpeg",
"bytes": 235680,
"created_at": 1743436800
}
Authorizations
すべてのAPIはBearer Token認証が必要ですAPI Keyの取得:API Key管理ページにアクセスしてAPI Keyを取得してくださいリクエストヘッダーに追加:Authorization: Bearer YOUR_API_KEY
Body
画像ファイル対応形式:JPEG (.jpg, .jpeg)、PNG (.png)、WebP (.webp)、GIF (.gif)最大ファイルサイズ:20MB
Response
画像の公開アクセスURL、生成APIで直接使用可能(72時間有効)
検出されたMIMEタイプ、例:image/jpeg
完全な例:画像生成ワークフロー
import requests
import time
API_KEY = "your-Apimart-key"
BASE_URL = "https://api.apimart.ai"
# ステップ1:参照画像をアップロード
def upload_image(file_path):
with open(file_path, 'rb') as f:
response = requests.post(
f"{BASE_URL}/v1/uploads/images",
headers={"Authorization": f"Bearer {API_KEY}"},
files={"file": f}
)
return response.json()['url']
# ステップ2:生成タスクを作成
def create_generation(image_url, prompt):
response = requests.post(
f"{BASE_URL}/v1/images/generations",
headers={
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
},
json={
"model": "gemini-3-pro-image-preview",
"prompt": prompt,
"image_urls": [{"url": image_url}],
"size": "16:9"
}
)
return response.json()['id']
# ステップ3:タスクステータスをポーリング
def wait_for_result(task_id):
while True:
response = requests.get(
f"{BASE_URL}/v1/images/generations/{task_id}",
headers={"Authorization": f"Bearer {API_KEY}"}
)
result = response.json()
if result['status'] == 'completed':
return result['url']
elif result['status'] == 'failed':
raise Exception(f"生成失敗: {result.get('fail_reason')}")
time.sleep(2)
# ワークフローを実行
image_url = upload_image("reference.jpg")
print(f"画像アップロード完了: {image_url}")
task_id = create_generation(image_url, "この写真をジブリアニメ風に変換")
print(f"タスク作成完了: {task_id}")
result_url = wait_for_result(task_id)
print(f"生成完了: {result_url}")