API pentru dezvoltatori

Un singur API universal pentru fiecare flux de lucru cu fișiere

Converter App oferă dezvoltatorilor o interfață de procesare a fișierelor de înaltă performanță. Înlocuiți instrumentele separate cu un singur API pentru conversie de documente, procesare media, transcriere și OCR, la scară.

Prezentare generală API Converter App

API ul Converter App oferă dezvoltatorilor o interfață universală, fără fricțiuni, pentru toate nevoile de procesare a fișierelor. În loc să integrați o colecție fragmentată de instrumente separate, aplicația dvs. poate apela un singur serviciu de înaltă performanță. Puteți integra direct în fluxurile de lucru din backend întreaga noastră suită de conversie pentru a gestiona totul, de la conversii standard de fișiere până la sarcini media solicitante.

URL ul public de bază este https://api.converter.app/. Căile din acest document folosesc această rădăcină API servită extern.

Acoperire universală

Accesați o bibliotecă completă de instrumente de conversie printr-o singură integrare simplificată.

Două moduri de procesare

Alegeți cereri sincrone pentru răspunsuri imediate sau sarcini asincrone pentru fișiere mari și procese de durată.

Adaptat nevoilor dumneavoastră

Luați legătura cu noi și vă putem oferi un plan adaptat nevoilor dumneavoastră, la un tarif imbatabil.

Documente Imagini Audio Video Text Arhive

Descoperiți conversiile acceptate (Nu este necesară nicio cheie)

Folosiți endpointul public pairs ca cel mai simplu test de conectivitate. Nu necesită o cheie API și returnează lista completă a perechilor de conversie acceptate, disponibile pe platformă.

OBȚINEȚI /public/pairs

Acest endpoint este public, astfel încât dezvoltatorii pot inspecta catalogul universal de conversie înainte de a solicita sau configura o cheie 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'])

Răspuns de exemplu

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

Autentificare și controlul accesului

Dezvoltatorii se autentifică trimițând cheia lor API în antetul HTTP X API Key. Endpointul public /public/pairs este singurul endpoint de pe această pagină care nu necesită o cheie.

ControlCum funcționează Impact pentru dezvoltatori
X-API-KeyTrimiteți cheia ca antet al cererii HTTP.Necesar pentru /pairs, /convert/sync, /convert, /progress/{jobid} și /download/{jobid}.
Cote de utilizareFiecare cheie are o cotă numerică de conversie. Cota scade atunci când sunt create sarcini de conversie.O cotă de -1 acordă conversii nelimitate. Alte valori reprezintă numărul de conversii permise rămase.
Perechi permiseCheile pot fi restricționate la anumite tipuri de conversie, cum ar fi mp42mp3, sau pot primi acces la toate perechile all acceptate./pairs returnează doar perechile pe care cheia dvs. este autorizată să le folosească, iar cererile de conversie din afara acestei liste sunt respinse.
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. Conversie sincronă

POST /convert/sync

Folosiți conversia sincronă atunci când doriți un rezultat imediat în aceeași răspuns HTTP. Cererea rămâne deschisă în timp ce API ul pornește sarcina de conversie și așteaptă finalizarea acesteia, timp de până la 30 de minute.

Câmp de formularTip Descriere
target_formatșir de caractereExtensia de ieșire solicitată, precum pdf, docx, mp3 sau jpg.
filesfișier[]Unul sau mai multe fișiere sursă încărcate. API ul determină formatul sursă din numele fișierului încărcat.
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)

Răspunsul transmite direct în flux fișierul convertit. Dacă conversia produce mai multe fișiere, API ul returnează o arhivă .zip.

3. Conversie asincronă

POST /convert

Folosiți conversia asincronă pentru fișierele mari, procesarea în lot, sarcinile audio sau video de lungă durată ori aplicațiile de producție care nu ar trebui să mențină cererile de încărcare deschise în timp ce procesarea este în desfășurare.

Câmp de formularTipDescriere
target_formatșir de caractereFormatul de ieșire dorit. Sursa și ținta formează perechea de conversie, de exemplu mp42mp3.
filesfișier[]Unul sau mai multe fișiere de convertit.

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'])

Răspuns de succes

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

4. Urmărirea stării

OBȚINEȚI /progress/{jobid}

Interogați acest endpoint după crearea unei sarcini asincrone. Acesta returnează starea sarcinii, o valoare numerică a progresului de la 0.0 la 1.0 și detalii despre eroare dacă conversia a eșuat.

AntetDescriere
X-API-KeyCheia API pentru dezvoltatori.
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
}

Stările posibile sunt processing, completed și failed. Progresul este un număr între 0.0 și 1.0.

5. Recuperarea fișierelor

OBȚINEȚI /download/{jobid}

După ce un job asincron ajunge la completed, preluați fișierul convertit folosind aceeași cheie API utilizată pentru a crea jobul.

Tipul rezultatuluiComportament
Un singur fișier de ieșireAPI ul transmite direct fișierul convertit.
resultfile manifestDacă jobul furnizează un manifest al rezultatului, API ul returnează fișierul specificat în acel manifest.
Mai multe fișiere de ieșirePachetele API încarcă fișierele generate într-o arhivă .zip din mers.
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)

Rezumatul fluxului de lucru al dezvoltatorului

API ul acceptă două modele de integrare, astfel încât dezvoltatorii să poată alege comportamentul potrivit pentru fiecare caz de utilizare.

FluxModel de cerereCel mai potrivit pentru
Flux de sincronizare rapidăPOST /convert/sync returnează fișierul convertit în aceeași răspuns.Fișiere mici, scripturi din linia de comandă, prototipuri și automatizări simple pe server.
Flux asincron robustPOST /convert, apoi interogați periodic GET /progress/{jobid}, apoi apelați GET /download/{jobid}.Fișiere video sau audio de mari dimensiuni, conversie în lot, backend-uri pentru aplicații web și sisteme de producție compatibile cu reîncercarea.

Exemplu de flux asincron

# 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)

Răspunsuri de eroare

Erorile sunt returnate ca JSON, cu un câmp detail, folosind coduri de stare HTTP standard.

StareCauză comună
400Fișiere lipsă, target_format lipsă, format ID job nesuportat sau date de cerere nevalide.
401Lipsește sau este invalid X API Key.
403Cheia API nu are permisiunea de a utiliza perechea de conversie solicitată.
404Jobul solicitat sau fișierul rezultat generat nu este disponibil.
409Conversia este încă în curs de procesare atunci când se solicită o descărcare.
429Cheia API nu mai are cotă disponibilă.
500Conversia nu a putut fi pregătită sau finalizată din cauza unei erori de procesare pe server.
{
  "detail": "This API key is not authorized for mp42mp3 conversions."
}