Udvikler API

Én universel API til alle filworkflows

Converter App giver udviklere en højtydende grænseflade til filbehandling. Erstat separate værktøjer med ét API til skalerbar dokumentkonvertering, mediebehandling, transskription og OCR.

Converter App API oversigt

Converter App API giver udviklere en gnidningsfri, universel grænseflade til alle behov for filbehandling. I stedet for at integrere en fragmenteret samling af separate værktøjer kan jeres applikation kalde én enkelt højtydende tjeneste. I kan integrere hele vores konverteringspakke direkte i backend-workflows for at håndtere alt fra standard filændringer til krævende medieopgaver.

Den offentlige basis URL er https://api.converter.app/. Stierne i dette dokument bruger denne eksternt tilgængelige API rod.

Universel dækning

Få adgang til et komplet bibliotek af konverteringsværktøjer via én strømlinet integration.

To behandlingsmetoder

Vælg synkrone anmodninger for øjeblikkelige svar eller asynkrone job til store filer og langvarige opgaver.

Tilpasset dine behov

Kontakt os, så kan vi tilbyde en plan, der er skræddersyet til jeres behov, til en uovertruffen pris.

Dokumenter Billeder Lyd Video Tekst Arkiver

Opdag understøttede konverteringer (ingen nøgle nødvendig)

Brug det offentlige pairs-endpoint som den enkleste tilslutningstest. Det kræver ikke en API nøgle og returnerer den fulde liste over understøttede konverteringspar, der er tilgængelige på platformen.

HENT /public/pairs

Dette endpoint er åbent, så udviklere kan inspicere det universelle konverteringskatalog, før de anmoder om eller konfigurerer en API nøgle.

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

Eksempelsvar

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

Godkendelse & adgangskontrol

Udviklere autentificerer ved at sende deres API nøgle i HTTP headeren X API Key. Det offentlige /public/pairs-endpoint er det eneste endpoint på denne side, som ikke kræver en nøgle.

KontrolSådan fungerer detUdviklerpåvirkning
X-API-KeySend nøglen som en HTTP anmodningsheader.Påkrævet for /pairs, /convert/sync, /convert, /progress/{jobid} og /download/{jobid}.
BrugskvoterHver nøgle har en numerisk konverteringskvote. Kvoten falder, når der oprettes konverteringsopgaver.En kvote på -1 giver ubegrænsede konverteringer. Andre værdier angiver de resterende tilladte konverteringer.
Tilladte parNøgler kan begrænses til bestemte konverteringstyper som mp42mp3 eller få adgang til all understøttede par./pairs returnerer kun de par, som din nøgle er autoriseret til at bruge, og konverteringsanmodninger uden for denne liste afvises.
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

Brug synkron konvertering, når du vil have et øjeblikkeligt resultat i det samme HTTP svar. Anmodningen forbliver åben, mens API'et starter konverteringsjobbet og venter på fuldførelse, i op til 30 minutter.

FormularfeltTypeBeskrivelse
target_formatstrengDen ønskede outputfilendelse, såsom pdf, docx, mp3 eller jpg.
filesfile[]En eller flere uploadede kildefiler. API'et bestemmer kildeformatet ud fra det uploadede filnavn.
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 streamer den konverterede fil direkte. Hvis konverteringen producerer flere filer, returnerer API'et et .zip-arkiv.

3. Asynkron konvertering

POST /convert

Brug asynkron konvertering til store filer, batchbehandling, langvarige lyd- eller videounder, eller produktionsapplikationer, der ikke bør holde uploadanmodninger åbne, mens arbejdet kører.

FormularfeltTypeBeskrivelse
target_formatstrengDet ønskede outputformat. Kilde- og målformatet udgør konverteringsparret, for eksempel mp42mp3.
filesfil[]En eller flere filer, der skal konverteres.

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

Succesrespons

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

4. Statussporing

HENT /progress/{jobid}

Kald dette endpoint med jævne mellemrum efter oprettelse af et asynkront job. Det returnerer jobstatus, en numerisk progressværdi fra 0.0 til 1.0 samt fejloplysninger, hvis konverteringen mislykkedes.

HeaderBeskrivelse
X-API-KeyDin udvikler API nøgle.
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
}

Mulige statusser er processing, completed og failed. Fremdrift er et tal mellem 0.0 og 1.0.

5. Filhentning

HENT /download/{jobid}

Når et asynkront job når completed, kan du hente den konverterede output med den samme API nøgle, der blev brugt til at oprette jobbet.

ResultattypeAdfærd
Én outputfilAPI’et streamer den konverterede fil direkte.
resultfile-manifestHvis jobbet leverer et resultatmanifest, returnerer API'en den fil, der er angivet i det manifest.
Flere outputfilerAPI pakkerne pakker filer i et .zip-arkiv med det samme.
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)

Oversigt over udviklerens arbejdsproces

API'en understøtter to integrationsmønstre, så udviklere kan vælge den rette adfærd til hvert brugstilfælde.

FlowAnmodningsmønsterBedst til
Hurtigt synkroniseringsforløbPOST /convert/sync returnerer den konverterede fil i samme svar.Små filer, kommandolinjescripts, prototyper og enkle server-side-automatiseringer.
Robust asynkron flowPOST /convert, derefter forespørg GET /progress/{jobid}, og kald derefter GET /download/{jobid}.Store video- eller lydfiler, batchkonvertering, backend-systemer til webapplikationer og produktionssystemer, der er velegnede til genforsøg.

Eksempel på asynkron workflow

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

Fejlmeddelelser

Fejl returneres som JSON med et detail-felt ved brug af standard HTTP statuskoder.

StatusAlmindelig årsag
400Manglende filer, manglende target_format, ikke-understøttet format for job-id eller ugyldigt input i anmodningen.
401Mangler eller ugyldig X API Key.
403API nøglen har ikke tilladelse til at bruge det anmodede konverteringspar.
404Det anmodede job eller den genererede resultatfil er ikke tilgængelig.
409Konverteringen er stadig under behandling, når der anmodes om en download.
429API nøglen har ingen resterende kvote.
500Konverteringen kunne ikke forberedes eller fuldføres på grund af en server-side behandlingsfejl.
{
  "detail": "This API key is not authorized for mp42mp3 conversions."
}