Langsung ke konten utama
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.

Playground dokumentasi tidak mendukung unggah file: Silakan gunakan contoh kode cURL, Python, atau JavaScript di bawah ini untuk menguji.
Perubahan Penting: Untuk performa dan kontrol biaya yang lebih baik, kami tidak lagi mendukung pengiriman data gambar base64 secara langsung di API pembuatan. Gunakan API ini untuk mengunggah gambar, mendapatkan URL, lalu memanggil API pembuatan.

Mengapa mengunggah gambar terlebih dahulu?

  1. Optimasi Performa - encoding base64 memperbesar data sebesar 33%; mengunggah terlebih dahulu secara signifikan mengurangi ukuran body permintaan
  2. Gunakan Ulang Gambar - Unggah sekali, gunakan URL berkali-kali tanpa transfer berulang

Alur Kerja

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
}

Otorisasi

Authorization
string
wajib
Semua API memerlukan autentikasi Bearer TokenDapatkan API Key:Kunjungi Halaman Manajemen API Key untuk mendapatkan API Key AndaTambahkan ke header request:
Authorization: Bearer YOUR_API_KEY

Body

file
file
wajib
File gambarFormat yang didukung: JPEG (.jpg, .jpeg), PNG (.png), WebP (.webp), GIF (.gif)Ukuran file maksimum: 20MB

Response

url
string
URL akses publik untuk gambar, dapat digunakan secara langsung di API pembuatan (berlaku selama 72 jam)
filename
string
Nama file asli
content_type
string
Tipe MIME yang terdeteksi, misal image/jpeg
bytes
integer
Ukuran file dalam byte
created_at
integer
Waktu unggah sebagai Unix timestamp (detik)

Contoh Lengkap: Alur Kerja Gambar-ke-Gambar

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