API Pengembang

Satu API universal untuk setiap alur kerja file

Converter App menyediakan antarmuka pemrosesan file berperforma tinggi bagi para pengembang. Gantikan alat-alat terpisah dengan satu API untuk konversi dokumen yang skalabel, pemrosesan media, transkripsi, dan OCR.

Gambaran Umum API Converter App

API Converter App menyediakan kepada pengembang antarmuka universal yang lancar untuk semua kebutuhan pemrosesan file. Alih-alih mengintegrasikan kumpulan alat terpisah yang terfragmentasi, aplikasi Anda dapat memanggil satu layanan berperforma tinggi. Anda dapat mengintegrasikan rangkaian konverter lengkap kami langsung ke alur kerja backend untuk menangani semuanya, mulai dari perubahan file standar hingga tugas media yang berat.

URL dasar publik adalah https://api.converter.app/. Path dalam dokumen ini menggunakan root API yang dilayani secara eksternal ini.

Cakupan Universal

Akses pustaka lengkap alat konversi melalui satu integrasi yang efisien.

Dua Mode Pemrosesan

Pilih permintaan sinkron untuk respons segera atau tugas asinkron untuk file besar dan tugas yang berjalan lama.

Disesuaikan dengan Kebutuhan Anda

Hubungi kami, dan kami dapat menawarkan paket yang disesuaikan dengan kebutuhan Anda dengan tarif yang sulit dikalahkan.

Dokumen Gambar Audio Video Teks Arsip

Temukan Konversi yang Didukung (Tanpa perlu kunci)

Gunakan endpoint pasangan publik sebagai uji konektivitas paling sederhana. Endpoint ini tidak memerlukan kunci API dan mengembalikan daftar lengkap pasangan konversi yang didukung yang tersedia di platform.

DAPATKAN /public/pairs

Endpoint ini terbuka sehingga pengembang dapat meninjau katalog konversi universal sebelum meminta atau mengonfigurasi kunci API.

curl "https://api.converter.app/public/pairs"

JavaScript

const response = await fetch('https://api.converter.app/public/pairs');
const pairs = await response.json();
console.log(pairs.supported_pairs);

Python

import requests

response = requests.get('https://api.converter.app/public/pairs')
response.raise_for_status()
pairs = response.json()
print(pairs['supported_pairs'])

Contoh Respons

{
  "supported_pairs": [
    { "from": "mp3", "to": "text" },
    { "from": "mp4", "to": "mp3" },
    { "from": "mov", "to": "mp4" },
    { "from": "wav", "to": "mp3" },
    { "from": "mkv", "to": "mp4" }
  ]
}

Autentikasi & Kontrol Akses

Developer melakukan autentikasi dengan menyertakan kunci API mereka di header HTTP X API Key. Endpoint publik /public/pairs adalah satu-satunya endpoint di halaman ini yang tidak memerlukan kunci.

KontrolCara KerjanyaDampak Pengembang
X-API-KeyKirimkan kunci sebagai header permintaan HTTP.Diperlukan untuk /pairs, /convert/sync, /convert, /progress/{jobid}, dan /download/{jobid}.
Kuota PenggunaanSetiap kunci memiliki kuota konversi numerik. Kuota berkurang saat tugas konversi dibuat.Kuota -1 memberikan konversi tanpa batas. Nilai lainnya menunjukkan sisa konversi yang masih diizinkan.
Pasangan yang DiizinkanKunci dapat dibatasi ke jenis konversi tertentu seperti mp42mp3, atau diberi akses ke all pasangan yang didukung./pairs hanya mengembalikan pasangan yang diizinkan untuk digunakan oleh kunci Anda, dan permintaan konversi di luar daftar tersebut akan ditolak.
curl "https://api.converter.app/pairs" \
  -H "X-API-Key: YOUR_API_KEY"

JavaScript

const response = await fetch('https://api.converter.app/pairs', {
  headers: {
    'X-API-Key': apiKey
  }
});

const pairs = await response.json();
console.log(pairs);

Python

import requests

headers = {'X-API-Key': 'YOUR_API_KEY'}
response = requests.get('https://api.converter.app/pairs', headers=headers)
response.raise_for_status()
print(response.json())

2. Konversi Sinkron

POST /convert/sync

Gunakan konversi sinkron saat Anda menginginkan hasil langsung dalam respons HTTP yang sama. Permintaan tetap terbuka sementara API memulai tugas konversi dan menunggu hingga selesai, sampai 30 menit.

Kolom FormulirJenisDeskripsi
target_formatstringEkstensi output yang diminta, seperti pdf, docx, mp3, atau jpg.
filesfile[]Satu atau beberapa file sumber yang diunggah. API menentukan format sumber dari nama file yang diunggah.
curl -X POST "https://api.converter.app/convert/sync" \
  -H "X-API-Key: YOUR_API_KEY" \
  -F "target_format=pdf" \
  -F "files=@/path/to/document.docx" \
  -o converted.pdf

JavaScript

const form = new FormData();
form.append('target_format', 'pdf');
form.append('files', fileInput.files[0]);

const response = await fetch('https://api.converter.app/convert/sync', {
  method: 'POST',
  headers: {
    'X-API-Key': apiKey
  },
  body: form
});

const convertedFile = await response.blob();

Python

import requests

headers = {'X-API-Key': 'YOUR_API_KEY'}
data = {'target_format': 'pdf'}

with open('/path/to/document.docx', 'rb') as document:
    files = {'files': document}
    response = requests.post(
        'https://api.converter.app/convert/sync',
        headers=headers,
        data=data,
        files=files
    )

response.raise_for_status()
with open('converted.pdf', 'wb') as output:
    output.write(response.content)

Respons langsung men-stream file yang telah dikonversi. Jika konversi menghasilkan beberapa file, API akan mengembalikan arsip .zip.

3. Konversi Asinkron

POST /convert

Gunakan konversi asinkron untuk file berukuran besar, pemrosesan batch, tugas audio atau video yang berjalan lama, atau aplikasi produksi yang tidak boleh membiarkan permintaan unggahan tetap terbuka selama proses berlangsung.

Kolom FormulirTipeDeskripsi
target_formatstringFormat output yang diinginkan. Sumber dan target membentuk pasangan konversi, misalnya mp42mp3.
filesfile[]Satu atau beberapa file untuk dikonversi.

cURL

curl -X POST "https://api.converter.app/convert" \
  -H "X-API-Key: YOUR_API_KEY" \
  -F "target_format=mp3" \
  -F "files=@/path/to/video.mp4"

JavaScript

const form = new FormData();
form.append('target_format', 'mp3');
form.append('files', fileInput.files[0]);

const response = await fetch('https://api.converter.app/convert', {
  method: 'POST',
  headers: {
    'X-API-Key': apiKey
  },
  body: form
});

const job = await response.json();
console.log(job.jobid, job.remaining_quota);

Python

import requests

headers = {'X-API-Key': 'YOUR_API_KEY'}
data = {'target_format': 'mp3'}

with open('/path/to/video.mp4', 'rb') as video:
    files = {'files': video}
    response = requests.post(
        'https://api.converter.app/convert',
        headers=headers,
        data=data,
        files=files
    )

response.raise_for_status()
job = response.json()
print(job['jobid'], job['remaining_quota'])

Respons Sukses

{
  "status": "success",
  "jobid": "b3f6b2e8f5c34c4ab01c93c4d1b2f9e8",
  "pair": "mp42mp3",
  "remaining_quota": 42
}

4. Pelacakan Status

DAPATKAN /progress/{jobid}

Panggil endpoint ini setelah membuat tugas asinkron. Endpoint ini mengembalikan status tugas, nilai progres numerik dari 0.0 hingga 1.0, dan detail error jika konversi gagal.

HeaderDeskripsi
X-API-KeyKunci API pengembang Anda.
curl "https://api.converter.app/progress/b3f6b2e8f5c34c4ab01c93c4d1b2f9e8" \
  -H "X-API-Key: YOUR_API_KEY"

JavaScript

const response = await fetch('https://api.converter.app/progress/b3f6b2e8f5c34c4ab01c93c4d1b2f9e8', {
  headers: {
    'X-API-Key': apiKey
  }
});

const progress = await response.json();
console.log(progress.status, progress.progress);

Python

import requests

headers = {'X-API-Key': 'YOUR_API_KEY'}
response = requests.get(
    'https://api.converter.app/progress/b3f6b2e8f5c34c4ab01c93c4d1b2f9e8',
    headers=headers
)
response.raise_for_status()
progress = response.json()
print(progress['status'], progress['progress'])
{
  "jobid": "b3f6b2e8f5c34c4ab01c93c4d1b2f9e8",
  "progress": 1.0,
  "status": "completed",
  "error": null
}

Status yang mungkin adalah processing, completed, dan failed. Kemajuan adalah angka antara 0.0 dan 1.0.

5. Pengambilan File

AMBIL /download/{jobid}

Setelah tugas asinkron mencapai completed, ambil output yang telah dikonversi dengan API key yang sama yang digunakan untuk membuat tugas tersebut.

Jenis HasilPerilaku
Satu file outputAPI mengalirkan file yang sudah dikonversi secara langsung.
resultfile manifesJika tugas menyediakan manifest hasil, API akan mengembalikan file yang ditentukan oleh manifest tersebut.
Beberapa file outputPaket API mengemas file yang dihasilkan ke dalam arsip .zip secara otomatis.
curl -L "https://api.converter.app/download/b3f6b2e8f5c34c4ab01c93c4d1b2f9e8" \
  -H "X-API-Key: YOUR_API_KEY" \
  -o converted-output.zip

JavaScript

const response = await fetch('https://api.converter.app/download/b3f6b2e8f5c34c4ab01c93c4d1b2f9e8', {
  headers: {
    'X-API-Key': apiKey
  }
});

const file = await response.blob();

Python

import requests

headers = {'X-API-Key': 'YOUR_API_KEY'}
response = requests.get(
    'https://api.converter.app/download/b3f6b2e8f5c34c4ab01c93c4d1b2f9e8',
    headers=headers
)
response.raise_for_status()

with open('converted-output.zip', 'wb') as output:
    output.write(response.content)

Ringkasan Alur Kerja Pengembang

API mendukung dua pola integrasi sehingga pengembang dapat memilih perilaku yang tepat untuk setiap kasus penggunaan.

AlurPola PermintaanTerbaik untuk
Alur Sinkronisasi CepatPOST /convert/sync mengembalikan file yang telah dikonversi dalam respons yang sama.File kecil, skrip baris perintah, prototipe, dan otomasi sisi server sederhana.
Alur Async yang AndalPOST /convert, lalu polling GET /progress/{jobid}, lalu panggil GET /download/{jobid}.File video atau audio berukuran besar, konversi batch, backend aplikasi web, dan sistem produksi yang ramah retry.

Contoh Alur Asinkron

# 1. Start the job
curl -X POST "https://api.converter.app/convert" \
  -H "X-API-Key: YOUR_API_KEY" \
  -F "target_format=mp3" \
  -F "files=@/path/to/video.mp4"

# 2. Poll until completed
curl "https://api.converter.app/progress/JOBID" \
  -H "X-API-Key: YOUR_API_KEY"

# 3. Download the finished output
curl -L "https://api.converter.app/download/JOBID" \
  -H "X-API-Key: YOUR_API_KEY" \
  -o result.mp3

JavaScript

const form = new FormData();
form.append('target_format', 'mp3');
form.append('files', fileInput.files[0]);

const createResponse = await fetch('https://api.converter.app/convert', {
  method: 'POST',
  headers: {
    'X-API-Key': apiKey
  },
  body: form
});
const job = await createResponse.json();

const progressResponse = await fetch(`https://api.converter.app/progress/${job.jobid}`, {
  headers: {
    'X-API-Key': apiKey
  }
});
const progress = await progressResponse.json();

if (progress.status === 'completed') {
  const downloadResponse = await fetch(`https://api.converter.app/download/${job.jobid}`, {
    headers: {
      'X-API-Key': apiKey
    }
  });
  const result = await downloadResponse.blob();
}

Python

import requests

headers = {'X-API-Key': 'YOUR_API_KEY'}
data = {'target_format': 'mp3'}

with open('/path/to/video.mp4', 'rb') as video:
    files = {'files': video}
    create_response = requests.post(
        'https://api.converter.app/convert',
        headers=headers,
        data=data,
        files=files
    )

create_response.raise_for_status()
job = create_response.json()

progress_response = requests.get(
    f"https://api.converter.app/progress/{job['jobid']}",
    headers=headers
)
progress_response.raise_for_status()
progress = progress_response.json()

if progress['status'] == 'completed':
    download_response = requests.get(
        f"https://api.converter.app/download/{job['jobid']}",
        headers=headers
    )
    download_response.raise_for_status()
    with open('result.mp3', 'wb') as output:
        output.write(download_response.content)

Respons Kesalahan

Error dikembalikan sebagai JSON dengan field detail, menggunakan kode status HTTP standar.

StatusPenyebab Umum
400File tidak ditemukan, target_format tidak ditemukan, format ID tugas tidak didukung, atau input permintaan tidak valid.
401X API Key tidak ditemukan atau tidak valid.
403Kunci API tidak diizinkan untuk menggunakan pasangan konversi yang diminta.
404Pekerjaan yang diminta atau file hasil yang dihasilkan tidak tersedia.
409Konversi masih diproses saat unduhan diminta.
429Kunci API tidak memiliki kuota tersisa.
500Konversi tidak dapat disiapkan atau diselesaikan karena kesalahan pemrosesan di sisi server.
{
  "detail": "This API key is not authorized for mp42mp3 conversions."
}