API προγραμματιστών

Ένα καθολικό API για κάθε ροή εργασίας αρχείων

Converter App παρέχει στους προγραμματιστές μια διεπαφή επεξεργασίας αρχείων υψηλής απόδοσης. Αντικαταστήστε τα ξεχωριστά εργαλεία με ένα ενιαίο API για κλιμακούμενη μετατροπή εγγράφων, επεξεργασία πολυμέσων, απομαγνητοφώνηση και OCR.

Επισκόπηση API: Converter App

Το API Converter App παρέχει στους προγραμματιστές μια απρόσκοπτη, καθολική διεπαφή για κάθε ανάγκη επεξεργασίας αρχείων. Αντί να ενσωματώνετε μια κατακερματισμένη συλλογή από ξεχωριστά εργαλεία, η εφαρμογή σας μπορεί να καλεί μία ενιαία υπηρεσία υψηλών επιδόσεων. Μπορείτε να ενσωματώσετε ολόκληρη τη σουίτα μετατροπής μας απευθείας στις ροές εργασίας backend, για να διαχειρίζεστε τα πάντα, από τυπικές αλλαγές αρχείων έως απαιτητικές εργασίες πολυμέσων.

Η δημόσια βασική διεύθυνση URL είναι https://api.converter.app/. Οι διαδρομές σε αυτό το έγγραφο χρησιμοποιούν αυτό το εξωτερικά παρεχόμενο ριζικό σημείο του API.

Καθολική κάλυψη

Αποκτήστε πρόσβαση σε μια πλήρη βιβλιοθήκη εργαλείων μετατροπής μέσω μίας απλοποιημένης ενοποίησης.

Δύο λειτουργίες επεξεργασίας

Επιλέξτε σύγχρονες αιτήσεις για άμεσες αποκρίσεις ή ασύγχρονες εργασίες για μεγάλα αρχεία και μακρόχρονες διεργασίες.

Προσαρμοσμένο στις ανάγκες σας

Επικοινωνήστε μαζί μας και μπορούμε να σας προσφέρουμε ένα σχέδιο προσαρμοσμένο στις ανάγκες σας σε ασυναγώνιστη τιμή.

Έγγραφα Εικόνες Ήχος Βίντεο Κείμενο Αρχεία συμπίεσης

Ανακαλύψτε τις υποστηριζόμενες μετατροπές (Δεν απαιτείται κλειδί)

Χρησιμοποιήστε το δημόσιο endpoint pairs ως την απλούστερη δοκιμή συνδεσιμότητας. Δεν απαιτεί κλειδί API και επιστρέφει την πλήρη λίστα των υποστηριζόμενων ζευγών μετατροπής που είναι διαθέσιμα στην πλατφόρμα.

ΛΗΨΗ /public/pairs

Αυτό το τελικό σημείο είναι ανοιχτό, ώστε οι προγραμματιστές να μπορούν να εξετάσουν τον καθολικό κατάλογο μετατροπών πριν ζητήσουν ή ρυθμίσουν ένα κλειδί 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'])

Παράδειγμα απάντησης

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

Authentication & Access Control

Οι προγραμματιστές πραγματοποιούν ταυτοποίηση περνώντας το κλειδί API τους στην κεφαλίδα HTTP X API Key. Το δημόσιο endpoint /public/pairs είναι το μόνο endpoint σε αυτήν τη σελίδα που δεν απαιτεί κλειδί.

ΈλεγχοςΠώς λειτουργείΕπίπτωση για προγραμματιστές
X-API-KeyΑποστείλετε το κλειδί ως κεφαλίδα αιτήματος HTTP.Απαιτείται για /pairs, /convert/sync, /convert, /progress/{jobid} και /download/{jobid}.
Όρια χρήσηςΚάθε κλειδί έχει ένα αριθμητικό όριο μετατροπών. Το όριο μειώνεται όταν δημιουργούνται εργασίες μετατροπής.Μια ποσόστωση -1 παρέχει απεριόριστες μετατροπές. Οι άλλες τιμές αντιπροσωπεύουν τις μετατροπές που απομένουν και επιτρέπονται.
Επιτρεπόμενα ζεύγηΤα κλειδιά μπορούν να περιοριστούν σε συγκεκριμένους τύπους μετατροπής, όπως το mp42mp3, ή να τους δοθεί πρόσβαση σε όλα τα υποστηριζόμενα ζεύγη μέσω του all./pairs επιστρέφει μόνο τα ζεύγη στα οποία το κλειδί σας έχει εξουσιοδότηση να χρησιμοποιεί, και τα αιτήματα μετατροπής εκτός αυτής της λίστας απορρίπτονται.
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. Σύγχρονη μετατροπή

POST /convert/sync

Χρησιμοποιήστε σύγχρονη μετατροπή όταν θέλετε άμεσο αποτέλεσμα στην ίδια απόκριση HTTP. Το αίτημα παραμένει ανοιχτό ενώ το API ξεκινά την εργασία μετατροπής και περιμένει την ολοκλήρωσή της, έως και 30 λεπτά.

Πεδίο φόρμαςΤύποςΠεριγραφή
target_formatstringΗ ζητούμενη επέκταση εξόδου, όπως pdf, docx, mp3 ή jpg.
filesαρχείο[]Ένα ή περισσότερα μεταφορτωμένα αρχεία προέλευσης. Το API καθορίζει τη μορφή προέλευσης από το όνομα του μεταφορτωμένου αρχείου.
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)

Η απάντηση μεταδίδει απευθείας το μετατρεπόμενο αρχείο. Εάν η μετατροπή παράγει πολλά αρχεία, το API επιστρέφει ένα αρχείο .zip.

3. Ασύγχρονη μετατροπή

ΔΗΜΟΣΙΕΥΣΗ /convert

Χρησιμοποιήστε ασύγχρονη μετατροπή για μεγάλα αρχεία, μαζική επεξεργασία, εργασίες ήχου ή βίντεο μεγάλης διάρκειας ή εφαρμογές παραγωγής που δεν πρέπει να διατηρούν ανοιχτά τα αιτήματα μεταφόρτωσης όσο εκτελείται η εργασία.

Πεδίο φόρμαςΤύποςΠεριγραφή
target_formatstringΗ επιθυμητή μορφή εξόδου. Η πηγή και ο προορισμός αποτελούν το ζεύγος μετατροπής, για παράδειγμα mp42mp3.
filesαρχείο[]Ένα ή περισσότερα αρχεία για μετατροπή.

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

Απόκριση επιτυχίας

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

4. Παρακολούθηση κατάστασης

ΛΗΨΗ /progress/{jobid}

Κάντε polling σε αυτό το endpoint μετά τη δημιουργία μιας ασύγχρονης εργασίας. Επιστρέφει την κατάσταση της εργασίας, μια αριθμητική τιμή προόδου από 0.0 έως 1.0 και λεπτομέρειες σφάλματος αν η μετατροπή απέτυχε.

ΚεφαλίδαΠεριγραφή
X-API-KeyΤο κλειδί API προγραμματιστή σας.
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
}

Οι δυνατές καταστάσεις είναι processing, completed και failed. Η πρόοδος είναι ένας αριθμός μεταξύ 0.0 και 1.0.

5. Ανάκτηση αρχείων

ΛΗΨΗ /download/{jobid}

Μόλις μια ασύγχρονη εργασία φτάσει στην κατάσταση completed, ανακτήστε το μετατρεπόμενο αποτέλεσμα με το ίδιο API key που χρησιμοποιήθηκε για τη δημιουργία της εργασίας.

Τύπος αποτελέσματοςΣυμπεριφορά
Ένα μόνο αρχείο εξόδουΤο API μεταδίδει το μετατρεπόμενο αρχείο απευθείας.
resultfile μανιφέστοΕάν η εργασία παρέχει ένα manifest αποτελεσμάτων, το API επιστρέφει το αρχείο που καθορίζεται από αυτό το manifest.
Πολλαπλά αρχεία εξόδουΤα πακέτα API συμπιέζουν τα δημιουργημένα αρχεία σε ένα αρχείο .zip άμεσα.
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)

Σύνοψη της ροής εργασίας προγραμματιστή

Το API υποστηρίζει δύο πρότυπα ενσωμάτωσης, ώστε οι προγραμματιστές να μπορούν να επιλέγουν τη σωστή συμπεριφορά για κάθε περίπτωση χρήσης.

ΡοήΠρότυπο αιτήματοςΙδανικό για
Γρήγορη ροή συγχρονισμούPOST /convert/sync επιστρέφει το μετατρεπόμενο αρχείο στην ίδια απάντηση.Μικρά αρχεία, σενάρια γραμμής εντολών, πρωτότυπα και απλές αυτοματοποιήσεις στην πλευρά του διακομιστή.
Ισχυρή ασύγχρονη ροήPOST /convert, στη συνέχεια κάντε polling στο GET /progress/{jobid}, και μετά καλέστε το GET /download/{jobid}.Μεγάλα αρχεία βίντεο ή ήχου, μαζική μετατροπή, backends διαδικτυακών εφαρμογών και συστήματα παραγωγής φιλικά προς τις επαναλήψεις.

Παράδειγμα ασύγχρονης ροής

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

Απαντήσεις σφαλμάτων

Τα σφάλματα επιστρέφονται ως JSON με ένα πεδίο detail, χρησιμοποιώντας τυπικούς κωδικούς κατάστασης HTTP.

ΚατάστασηΣυνήθης αιτία
400Λείπουν αρχεία, λείπει το target_format, μη υποστηριζόμενη μορφή αναγνωριστικού εργασίας ή μη έγκυρη είσοδος αιτήματος.
401Λείπει ή είναι μη έγκυρο το X API Key.
403Το κλειδί API δεν επιτρέπεται να χρησιμοποιεί το ζητούμενο ζεύγος μετατροπής.
404Το ζητούμενο έργο ή το παραγόμενο αρχείο αποτελέσματος δεν είναι διαθέσιμο.
409Η μετατροπή εξακολουθεί να βρίσκεται σε εξέλιξη όταν ζητηθεί λήψη.
429Το κλειδί API δεν έχει υπόλοιπο διαθέσιμο όριο.
500Η μετατροπή δεν μπόρεσε να προετοιμαστεί ή να ολοκληρωθεί λόγω σφάλματος επεξεργασίας στην πλευρά του διακομιστή.
{
  "detail": "This API key is not authorized for mp42mp3 conversions."
}