Saltar al contenido 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.

El Playground de la documentación no admite la subida de archivos: Por favor, utilice los ejemplos de código cURL, Python o JavaScript que aparecen a continuación para probar.
Cambio importante: Para un mejor rendimiento y control de costos, ya no admitimos el envío de datos de imagen en base64 directamente en las APIs de generación. Por favor, utilice esta API para subir las imágenes, obtenga la URL y luego llame a la API de generación.

¿Por qué subir las imágenes primero?

  1. Optimización de rendimiento - La codificación base64 aumenta los datos en un 33%; subir primero reduce considerablemente el tamaño del cuerpo de la solicitud
  2. Reutilización de imágenes - Suba una vez y reutilice la URL múltiples veces sin transferencias redundantes

Flujo de trabajo

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
}

Autorizaciones

Authorization
string
requerido
Todas las APIs requieren autenticación mediante Bearer TokenObtener API Key:Visite la página de gestión de API Keys para obtener su API KeyAñádala a los encabezados de la solicitud:
Authorization: Bearer YOUR_API_KEY

Body

file
file
requerido
Archivo de imagenFormatos admitidos: JPEG (.jpg, .jpeg), PNG (.png), WebP (.webp), GIF (.gif)Tamaño máximo del archivo: 20MB

Respuesta

url
string
URL de acceso público a la imagen; puede utilizarse directamente en las APIs de generación (válida durante 72 horas)
filename
string
Nombre original del archivo
content_type
string
Tipo MIME detectado, por ejemplo image/jpeg
bytes
integer
Tamaño del archivo en bytes
created_at
integer
Hora de subida como timestamp Unix (segundos)

Ejemplo completo: flujo de imagen a imagen

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