Passer au contenu principal
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.

Le Playground de la documentation ne prend pas en charge le téléversement de fichiers : utilisez les exemples de code cURL, Python ou JavaScript ci-dessous pour effectuer vos tests.
Changement important : Pour améliorer les performances et maîtriser les coûts, nous ne prenons plus en charge la transmission de données d’image en base64 directement dans les API de génération. Veuillez utiliser cette API pour téléverser des images, récupérer leur URL, puis appeler l’API de génération.

Pourquoi téléverser les images d’abord ?

  1. Optimisation des performances — l’encodage base64 augmente la taille des données de 33 % ; téléverser d’abord réduit considérablement la taille du corps de la requête
  2. Réutilisation des images — téléversez une fois, réutilisez l’URL plusieurs fois sans transfert redondant

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
}

Autorisations

Authorization
string
requis
Toutes les API requièrent une authentification par Bearer TokenObtenir la clé API :Rendez-vous sur la page de gestion des clés API pour obtenir votre clé APIAjoutez-la aux en-têtes de la requête :
Authorization: Bearer YOUR_API_KEY

Corps

file
file
requis
Fichier imageFormats pris en charge : JPEG (.jpg, .jpeg), PNG (.png), WebP (.webp), GIF (.gif)Taille maximale du fichier : 20 Mo

Réponse

url
string
URL d’accès publique de l’image, utilisable directement dans les API de génération (valide 72 heures)
filename
string
Nom de fichier d’origine
content_type
string
Type MIME détecté, par exemple image/jpeg
bytes
integer
Taille du fichier en octets
created_at
integer
Date du téléversement sous forme d’horodatage Unix (en secondes)

Exemple complet : workflow image-to-image

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}")