Zum Hauptinhalt springen
POST
/
v1
/
uploads
/
images
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
}

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.

Der Doku-Playground unterstützt keinen Datei-Upload: Verwenden Sie zum Testen die untenstehenden Codebeispiele für cURL, Python oder JavaScript.
Wichtige Änderung: Aus Gründen der Performance- und Kostenkontrolle unterstützen wir die direkte Übergabe von Base64-Bilddaten in den Generierungs-APIs nicht mehr. Bitte verwenden Sie diese API, um Bilder hochzuladen, die URL abzurufen und dann die Generierungs-API aufzurufen.

Warum Bilder zuerst hochladen?

  1. Performance-Optimierung – Base64-Kodierung vergrößert die Daten um 33 %; vorheriges Hochladen reduziert die Größe des Request-Bodys erheblich
  2. Bilder wiederverwenden – Einmal hochladen, die URL beliebig oft wiederverwenden, ohne dass redundante Übertragungen nötig sind

Workflow

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
}

Autorisierungen

Authorization
string
erforderlich
Alle APIs erfordern eine Authentifizierung per Bearer TokenAPI-Key abrufen:Besuchen Sie die API-Key-Verwaltungsseite, um Ihren API-Key zu erhaltenFügen Sie ihn den Request-Headern hinzu:
Authorization: Bearer YOUR_API_KEY

Body

file
file
erforderlich
BilddateiUnterstützte Formate: JPEG (.jpg, .jpeg), PNG (.png), WebP (.webp), GIF (.gif)Maximale Dateigröße: 20 MB

Antwort

url
string
Öffentliche Zugriffs-URL des Bildes; kann direkt in Generierungs-APIs verwendet werden (72 Stunden gültig)
filename
string
Ursprünglicher Dateiname
content_type
string
Erkannter MIME-Typ, z. B. image/jpeg
bytes
integer
Dateigröße in Bytes
created_at
integer
Upload-Zeitpunkt als Unix-Zeitstempel (Sekunden)

Vollständiges Beispiel: Bild-zu-Bild-Workflow

Python
import requests
import time

API_KEY = "your-Apimart-key"
BASE_URL = "https://api.apimart.ai"

# Step 1: Upload reference image
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']

# Step 2: Create generation task
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']

# Step 3: Poll task status
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"Generation failed: {result.get('fail_reason')}")

        time.sleep(2)

# Execute workflow
image_url = upload_image("reference.jpg")
print(f"Image uploaded: {image_url}")

task_id = create_generation(image_url, "Transform this photo into Ghibli anime style")
print(f"Task created: {task_id}")

result_url = wait_for_result(task_id)
print(f"Generation complete: {result_url}")