API dla deweloperów

Jedno uniwersalne API do każdego procesu pracy z plikami

Converter App zapewnia deweloperom wydajny interfejs do przetwarzania plików. Zastąp oddzielne narzędzia jednym API do skalowalnej konwersji dokumentów, przetwarzania multimediów, transkrypcji i OCR.

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 sterowaniaJak to działaWpływ dla deweloperów
X-API-KeyWyślij klucz jako nagłówek żądania HTTP.Wymagane dla /pairs, /convert/sync, /convert, /progress/{jobid} oraz /download/{jobid}.
Limity użyciaKaż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 paryKlucze 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 formularzaTypOpis
target_formatciąg znakówŻądane rozszerzenie wyjściowe, takie jak pdf, docx, mp3 lub jpg.
filesplik[]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 formularzaTyp Opis
target_formatciąg znakówPożądany format wyjściowy. Źródło i cel tworzą parę konwersji, na przykład mp42mp3.
filesplik[]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łówekOpis
X-API-KeyTwó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 wynikuZachowanie
Pojedynczy plik wyjściowyInterfejs 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ściowychPakiety 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ływWzorzec żądaniaNajlepsze do
Szybki przepływ synchronizacjiPOST /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ływPOST /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
400Brakujące pliki, brak target_format, nieobsługiwany format identyfikatora zadania lub nieprawidłowe dane wejściowe żądania.
401Brakujący lub nieprawidłowy X API Key.
403Klucz API nie ma अनुमति na użycie żądanej pary konwersji.
404Żądane zadanie lub wygenerowany plik wynikowy jest niedostępny.
409Konwersja nadal jest przetwarzana, gdy zostaje wysłane żądanie pobrania.
429Klucz API nie ma już dostępnego limitu.
500Konwersja 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."
}