Utvecklar API

Ett universellt API för alla filflöden

Converter App ger utvecklare ett högpresterande gränssnitt för filbearbetning. Ersätt separata verktyg med ett enda API för skalbar dokumentkonvertering, mediebearbetning, transkribering och OCR.

Converter App API översikt

Converter App API ger utvecklare ett smidigt och universellt gränssnitt för alla behov inom filbearbetning. I stället för att integrera en splittrad samling separata verktyg kan er applikation anropa en enda högpresterande tjänst. Ni kan integrera hela vår konverteringssvit direkt i backend-arbetsflöden för att hantera allt från vanliga filändringar till krävande mediejobb.

Den offentliga bas URL:en är https://api.converter.app/. Sökvägarna i det här dokumentet använder denna externt tillgängliga API root.

Universell täckning

Få tillgång till ett komplett bibliotek med konverteringsverktyg via en enda smidig integration.

Två bearbetningslägen

Välj synkrona förfrågningar för omedelbara svar eller asynkrona jobb för stora filer och långvariga uppgifter.

Anpassad efter dina behov

Kontakta oss så kan vi erbjuda en plan som är anpassad efter dina behov till ett oslagbart pris.

Dokument Bilder Ljud Video Text Arkiv

Upptäck stödda konverteringar (ingen nyckel behövs)

Använd den offentliga pairs-slutpunkten som det enklaste anslutningstestet. Den kräver ingen API nyckel och returnerar hela listan över stödda konverteringspar som finns tillgängliga på plattformen.

HÄMTA /public/pairs

Denna endpoint är öppen så att utvecklare kan granska den universella konverteringskatalogen innan de begär eller konfigurerar en API nyckel.

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

Exempelsvar

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

Autentisering & åtkomstkontroll

Utvecklare autentiserar sig genom att skicka sin API nyckel i HTTP huvudet X API Key. Den publika slutpunkten /public/pairs är den enda slutpunkten på den här sidan som inte kräver någon nyckel.

KontrollSå fungerar detUtvecklarpåverkan
X-API-KeySkicka nyckeln som en HTTP begäranderubrik.Krävs för /pairs, /convert/sync, /convert, /progress/{jobid} och /download/{jobid}.
AnvändningskvoterVarje nyckel har en numerisk konverteringskvot. Kvoten minskar när konverteringsuppgifter skapas.En kvot på -1 ger obegränsat antal konverteringar. Andra värden anger återstående tillåtna konverteringar.
Tillåtna formatparNycklar kan begränsas till specifika konverteringstyper som mp42mp3 eller ges åtkomst till all stödda formatpar./pairs returnerar endast de formatpar som er nyckel är behörig att använda, och konverteringsförfrågningar utanför den listan avvisas.
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. Synkron konvertering

POST /convert/sync

Använd synkron konvertering när du vill ha ett omedelbart resultat i samma HTTP svar. Begäran förblir öppen medan API:t startar konverteringsjobbet och väntar på att det slutförs, upp till 30 minuter.

FormulärfältTypBeskrivning
target_formatsträngDen begärda utdataändelsen, till exempel pdf, docx, mp3 eller jpg.
filesfil[]En eller flera uppladdade källfiler. API:t bestämmer källformatet utifrån det uppladdade filnamnet.
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)

Svaret strömmar direkt den konverterade filen. Om konverteringen ger flera filer returnerar API:et ett .zip-arkiv.

3. Asynkron konvertering

POST /convert

Använd asynkron konvertering för stora filer, batchbearbetning, långvariga ljud- eller videouppgifter eller produktionsapplikationer som inte bör hålla uppladdningsbegäranden öppna medan arbetet pågår.

FormulärfältTypBeskrivning
target_formatsträngDet önskade utdataformatet. Källan och målet utgör konverteringsparet, till exempel mp42mp3.
filesfile[]En eller flera filer att konvertera.

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

Lyckat svar

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

4. Statusspårning

HÄMTA /progress/{jobid}

Anropa denna slutpunkt efter att du har skapat ett asynkront jobb. Den returnerar jobbets status, ett numeriskt förloppsvärde från 0.0 till 1.0 samt felinformation om konverteringen misslyckades.

HeaderBeskrivning
X-API-KeyDin utvecklar API nyckel.
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
}

Möjliga statusar är processing, completed och failed. Förloppet är ett tal mellan 0.0 och 1.0.

5. Filhämtning

HÄMTA /download/{jobid}

När ett asynkront jobb når completed, hämta den konverterade utdata med samma API nyckel som användes för att skapa jobbet.

ResultattypBeteende
En enda utdatafilAPI:n strömmar den konverterade filen direkt.
resultfile-manifestOm jobbet tillhandahåller ett resultatmanifest returnerar API:t filen som anges av manifestet.
Flera utdatafilerAPI:n paketerar genererade filer i ett .zip-arkiv i realtid.
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)

Sammanfattning av utvecklarens arbetsflöde

API:et stöder två integrationsmönster så att utvecklare kan välja rätt beteende för varje användningsfall.

FlödeBegärandemönsterBäst för
Snabb synkroniseringsflödePOST /convert/sync returnerar den konverterade filen i samma svar.Små filer, kommandoradsskript, prototyper och enkla serverbaserade automatiseringar.
Robust asynkron arbetsflödePOST /convert, sedan fråga GET /progress/{jobid}, och därefter anropa GET /download/{jobid}.Stora video- eller ljudfiler, masskonvertering, backend för webbapplikationer och produktionssystem som är vänliga för återförsök.

Exempel på asynkron flöde

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

Felsvar

Fel returneras som JSON med fältet detail, med standardiserade HTTP statuskoder.

StatusVanliga orsaker
400Saknade filer, saknat target_format, format för jobb ID som inte stöds eller ogiltig indata för begäran.
401Saknad eller ogiltig X API Key.
403API nyckeln får inte användas för den begärda konverteringskombinationen.
404Det begärda jobbet eller den genererade resultatfilen är inte tillgänglig.
409Konverteringen bearbetas fortfarande när en nedladdning begärs.
429API nyckeln har ingen återstående kvot.
500Konverteringen kunde inte förberedas eller slutföras på grund av ett bearbetningsfel på serversidan.
{
  "detail": "This API key is not authorized for mp42mp3 conversions."
}