Przegląd API Converter App
API Converter App zapewnia programistom bezproblemowy, uniwersalny interfejs do wszystkich potrzeb związanych z przetwarzaniem plików. Zamiast integrować rozproszony zestaw osobnych narzędzi, Państwa aplikacja może wywoływać jedną, wysokowydajną usługę. Mogą Państwo zintegrować cały pakiet konwerterów bezpośrednio z procesami backendowymi, aby obsługiwać wszystko — od standardowej zmiany plików po wymagające zadania związane z multimediami.
Publiczny podstawowy adres URL to https://api.converter.app/. Ścieżki w tym dokumencie używają tego publicznie udostępnianego katalogu głównego API.
Uniwersytecka obsługa
Uzyskaj dostęp do kompletnej biblioteki narzędzi konwersji dzięki jednej, usprawnionej integracji.
Dwa tryby przetwarzania
Wybierz żądania synchroniczne, aby uzyskać natychmiastowe odpowiedzi, lub zadania asynchroniczne w przypadku dużych plików i długotrwałych operacji.
Dostosowane do Twoich potrzeb
Skontaktuj się z nami, a przygotujemy plan dopasowany do Twoich potrzeb w bezkonkurencyjnej cenie.
Dokumenty
Obrazy
Audio
Wideo
Tekst
Archiwa
Odkryj obsługiwane konwersje (nie jest wymagany klucz)
Użyj publicznego endpointu pairs jako najprostszego testu połączenia. Nie wymaga on klucza API i zwraca pełną listę obsługiwanych par konwersji dostępnych na platformie.
POBIERZ
/public/pairs
Ten punkt końcowy jest publiczny, więc programiści mogą sprawdzić uniwersalny katalog konwersji przed złożeniem prośby o klucz API lub jego skonfigurowaniem.
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'])
Przykładowa odpowiedź
{
"supported_pairs": [
{ "from": "mp3", "to": "text" },
{ "from": "mp4", "to": "mp3" },
{ "from": "mov", "to": "mp4" },
{ "from": "wav", "to": "mp3" },
{ "from": "mkv", "to": "mp4" }
]
}
Uwierzytelnianie i kontrola dostępu
Programiści uwierzytelniają się, przekazując swój klucz API w nagłówku HTTP X API Key. Publiczny punkt końcowy /public/pairs jest jedynym punktem końcowym na tej stronie, który nie wymaga klucza.
| Panel sterowania | Jak to działa | Wpływ dla deweloperów |
X-API-Key | Wyślij klucz jako nagłówek żądania HTTP. | Wymagane dla /pairs, /convert/sync, /convert, /progress/{jobid} oraz /download/{jobid}. |
| Limity użycia | Każdy klucz ma numeryczny limit konwersji. Limit zmniejsza się, gdy są tworzone zadania konwersji. | Limit -1 przyznaje nieograniczoną liczbę konwersji. Inne wartości oznaczają liczbę pozostałych dozwolonych konwersji. |
| Dozwolone pary | Klucze mogą być ograniczone do określonych typów konwersji, takich jak mp42mp3, lub otrzymać dostęp do all obsługiwanych par. | /pairs zwraca tylko te pary, do których użycia Państwa klucz ma uprawnienia, a żądania konwersji spoza tej listy są odrzucane. |
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. Konwersja synchroniczna
POST
/convert/sync
Użyj konwersji synchronicznej, gdy chcesz uzyskać natychmiastowy wynik w tej samej odpowiedzi HTTP. Żądanie pozostaje otwarte, podczas gdy API uruchamia zadanie konwersji i czeka na jego დასრულzenie, maksymalnie przez 30 minut.
| Pole formularza | Typ | Opis |
target_format | ciąg znaków | Żądane rozszerzenie wyjściowe, takie jak pdf, docx, mp3 lub jpg. |
files | plik[] | Jeden lub więcej przesłanych plików źródłowych. API określa format źródłowy na podstawie nazwy przesłanego pliku. |
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)
Odpowiedź strumieniuje bezpośrednio przekonwertowany plik. Jeśli konwersja tworzy wiele plików, interfejs API zwraca archiwum .zip.
3. Asynchroniczna konwersja
POST
/convert
Używaj asynchronicznej konwersji w przypadku dużych plików, przetwarzania wsadowego, długotrwałych zadań audio lub wideo oraz aplikacji produkcyjnych, które nie powinny utrzymywać otwartych żądań przesyłania podczas wykonywania pracy.
| Pole formularza | Typ
| Opis |
target_format | ciąg znaków | Pożądany format wyjściowy. Źródło i cel tworzą parę konwersji, na przykład mp42mp3. |
files | plik[] | Jeden lub więcej plików do konwersji. |
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'])
Odpowiedź pomyślna
{
"status": "success",
"jobid": "b3f6b2e8f5c34c4ab01c93c4d1b2f9e8",
"pair": "mp42mp3",
"remaining_quota": 42
}
4. Śledzenie statusu
POBIERZ
/progress/{jobid}
Odpytuj ten punkt końcowy po utworzeniu zadania asynchronicznego. Zwraca on status zadania, numeryczną wartość postępu od 0.0 do 1.0 oraz szczegóły błędu, jeśli konwersja się nie powiodła.
| Nagłówek | Opis |
X-API-Key | Twój klucz API dewelopera. |
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
}
Możliwe statusy to processing, completed i failed. Postęp jest liczbą z zakresu od 0.0 do 1.0.
5. Pobieranie pliku
POBIERZ
/download/{jobid}
Gdy zadanie asynchroniczne osiągnie stan completed, pobierz przekonwertowany plik wyjściowy, używając tego samego klucza API, który został użyty do utworzenia zadania.
| Typ wyniku | Zachowanie |
| Pojedynczy plik wyjściowy | Interfejs API przesyła przekonwertowany plik bezpośrednio. |
resultfile manifest
| Jeśli zadanie udostępnia manifest wyników, interfejs API zwraca plik określony w tym manifeście. |
| Wiele plików wyjściowych | Pakiety API spakowują wygenerowane pliki w archiwum .zip w locie. |
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)
Podsumowanie przepływu pracy dewelopera
Interfejs API obsługuje dwa wzorce integracji, dzięki czemu programiści mogą wybrać odpowiednie zachowanie dla każdego przypadku użycia.
| Przepływ | Wzorzec żądania | Najlepsze do |
| Szybki przepływ synchronizacji | POST /convert/sync zwraca przekonwertowany plik w tej samej odpowiedzi. | Małe pliki, skrypty wiersza poleceń, prototypy i proste automatyzacje po stronie serwera. |
| Solidny asynchroniczny przepływ | POST /convert, następnie odpytuj GET /progress/{jobid}, a potem wywołaj GET /download/{jobid}. | Duże pliki wideo lub audio, konwersja wsadowa, zaplecza aplikacji internetowych oraz systemy produkcyjne przyjazne ponawianiu prób. |
Przykład asynchronicznego przepływu
# 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)
Odpowiedzi błędów
Błędy są zwracane jako JSON z polem detail, z użyciem standardowych kodów statusu HTTP.
| Status
| Najczęstsza przyczyna |
400 | Brakujące pliki, brak target_format, nieobsługiwany format identyfikatora zadania lub nieprawidłowe dane wejściowe żądania. |
401 | Brakujący lub nieprawidłowy X API Key. |
403 | Klucz API nie ma अनुमति na użycie żądanej pary konwersji. |
404 | Żądane zadanie lub wygenerowany plik wynikowy jest niedostępny. |
409 | Konwersja nadal jest przetwarzana, gdy zostaje wysłane żądanie pobrania. |
429 | Klucz API nie ma już dostępnego limitu. |
500 | Konwersja nie mogła zostać przygotowana ani ukończona z powodu błędu przetwarzania po stronie serwera. |
{
"detail": "This API key is not authorized for mp42mp3 conversions."
}