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.
| Control | Cum funcționează
| Impact pentru dezvoltatori |
X-API-Key | Trimiteți cheia ca antet al cererii HTTP. | Necesar pentru /pairs, /convert/sync, /convert, /progress/{jobid} și /download/{jobid}. |
| Cote de utilizare | Fiecare 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 permise | Cheile 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 formular | Tip
| Descriere |
target_format | șir de caractere | Extensia de ieșire solicitată, precum pdf, docx, mp3 sau jpg. |
files | fiș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 formular | Tip | Descriere |
target_format | șir de caractere | Formatul de ieșire dorit. Sursa și ținta formează perechea de conversie, de exemplu mp42mp3. |
files | fiș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.
| Antet | Descriere |
X-API-Key | Cheia 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 rezultatului | Comportament |
| Un singur fișier de ieșire | API ul transmite direct fișierul convertit. |
resultfile manifest | Dacă jobul furnizează un manifest al rezultatului, API ul returnează fișierul specificat în acel manifest. |
| Mai multe fișiere de ieșire | Pachetele 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.
| Flux | Model de cerere | Cel 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 robust | POST /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.
| Stare | Cauză comună |
400 | Fișiere lipsă, target_format lipsă, format ID job nesuportat sau date de cerere nevalide. |
401 | Lipsește sau este invalid X API Key. |
403 | Cheia API nu are permisiunea de a utiliza perechea de conversie solicitată. |
404 | Jobul solicitat sau fișierul rezultat generat nu este disponibil. |
409 | Conversia este încă în curs de procesare atunci când se solicită o descărcare. |
429 | Cheia API nu mai are cotă disponibilă. |
500 | Conversia 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."
}