डेवलपर API

हर फ़ाइल वर्कफ़्लो के लिए एक सार्वभौमिक API

Converter App डेवलपर्स को एक उच्च-प्रदर्शन फ़ाइल प्रोसेसिंग इंटरफ़ेस प्रदान करता है। अलग-अलग टूल्स की जगह एक ही API का उपयोग करें, जिससे स्केलेबल दस्तावेज़ कन्वर्ज़न, मीडिया प्रोसेसिंग, ट्रांसक्रिप्शन और OCR संभव हो।

Converter App API अवलोकन

Converter App API डेवलपर्स को सभी फ़ाइल प्रोसेसिंग ज़रूरतों के लिए एक सहज, सार्वभौमिक इंटरफ़ेस प्रदान करता है। अलग-अलग टूल्स के बिखरे हुए संग्रह को इंटीग्रेट करने के बजाय, आपका एप्लिकेशन एक ही, उच्च-प्रदर्शन सेवा को कॉल कर सकता है। आप हमारे पूरे कन्वर्टर सुइट को सीधे बैकएंड वर्कफ़्लो में इंटीग्रेट कर सकते हैं, ताकि मानक फ़ाइल बदलावों से लेकर भारी मीडिया कार्यों तक, सब कुछ संभाला जा सके।

सार्वजनिक बेस URL https://api.converter.app/ है। इस दस्तावेज़ में दिए गए पथ इस बाहरी रूप से सर्व किए गए API रूट का उपयोग करते हैं।

सार्वभौमिक कवरेज

एक ही सुव्यवस्थित इंटीग्रेशन के माध्यम से कन्वर्ज़न टूल्स की पूरी लाइब्रेरी तक पहुँचें।

दो प्रोसेसिंग मोड

तुरंत प्रतिक्रियाओं के लिए समकालिक अनुरोध चुनें या बड़ी फ़ाइलों और लंबे समय तक चलने वाले कार्यों के लिए असमकालिक जॉब्स चुनें।

आपकी ज़रूरतों के अनुसार तैयार किया गया

हमसे संपर्क करें और हम आपकी ज़रूरतों के अनुसार तैयार की गई योजना एक बेजोड़ दर पर पेश कर सकते हैं।

दस्तावेज़ इमेजेज़ ऑडियो वीडियो पाठ आर्काइव्स

समर्थित कन्वर्ज़न खोजें (कोई key आवश्यक नहीं)

सार्वजनिक pairs endpoint का उपयोग सबसे सरल कनेक्टिविटी परीक्षण के रूप में करें। इसके लिए API key की आवश्यकता नहीं होती और यह प्लेटफ़ॉर्म पर उपलब्ध समर्थित कन्वर्ज़न pairs की पूरी सूची लौटाता है।

प्राप्त करें /public/pairs

यह endpoint खुला है, इसलिए डेवलपर API key का अनुरोध करने या उसे कॉन्फ़िगर करने से पहले universal conversion catalog की जाँच कर सकते हैं।

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" }
  ]
}

प्रमाणीकरण & पहुँच नियंत्रण

डेवलपर HTTP हेडर X API Key में अपनी API key भेजकर प्रमाणीकरण करते हैं। सार्वजनिक /public/pairs एंडपॉइंट इस पेज पर एकमात्र एंडपॉइंट है जिसे key की आवश्यकता नहीं होती।

नियंत्रणयह कैसे काम करता हैडेवलपर प्रभाव
X-API-Keyकुंजी को HTTP अनुरोध हेडर के रूप में भेजें।/pairs, /convert/sync, /convert, /progress/{jobid} और /download/{jobid} के लिए आवश्यक।
उपयोग कोटाप्रत्येक कुंजी की एक संख्यात्मक कन्वर्ज़न कोटा होती है। कन्वर्ज़न कार्य बनाए जाने पर कोटा कम हो जाता है।-1 का कोटा असीमित कन्वर्ज़न की अनुमति देता है। अन्य मान शेष अनुमत कन्वर्ज़न को दर्शाते हैं।
अनुमत जोड़ियाँKeys को mp42mp3 जैसे विशिष्ट कन्वर्ज़न प्रकारों तक सीमित किया जा सकता है, या सभी समर्थित जोड़ों के लिए all तक पहुँच दी जा सकती है।/pairs केवल वही जोड़े लौटाता है जिनका उपयोग करने के लिए आपकी key अधिकृत है, और उस सूची के बाहर के conversion अनुरोध अस्वीकार कर दिए जाते हैं.
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. समकालिक कन्वर्ज़न

पोस्ट /convert/sync

जब आप उसी HTTP प्रतिक्रिया में तुरंत परिणाम चाहते हैं, तो सिंक्रोनस कन्वर्ज़न का उपयोग करें। अनुरोध तब तक खुला रहता है जब तक API कन्वर्ज़न जॉब शुरू करता है और उसके पूरा होने का इंतज़ार करता है, अधिकतम 30 मिनट तक।

फ़ॉर्म फ़ील्डप्रकारविवरण
target_formatस्ट्रिंगअनुरोधित आउटपुट एक्सटेंशन, जैसे pdf, docx, mp3, या jpg
filesfile[]एक या अधिक अपलोड की गई स्रोत फ़ाइलें। 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
filesfile[]कन्वर्ट करने के लिए एक या अधिक फ़ाइलें।

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}

एक असिंक्रोनस जॉब बनाने के बाद इस 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}

जब कोई asynchronous job completed तक पहुँच जाए, तब job बनाने के लिए इस्तेमाल की गई उसी API key से converted output प्राप्त करें।

परिणाम प्रकारव्यवहार
एकल आउटपुट फ़ाइलAPI परिवर्तित फ़ाइल को सीधे स्ट्रीम करता है।
resultfile मेनिफेस्टयदि कार्य एक परिणाम मैनिफ़ेस्ट प्रदान करता है, तो API उस मैनिफ़ेस्ट में निर्दिष्ट फ़ाइल लौटाता है।
एकाधिक आउटपुट फ़ाइलें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, फिर GET /progress/{jobid} को पोल करें, फिर GET /download/{jobid} को कॉल करें।बड़ी वीडियो या ऑडियो फ़ाइलें, बैच कन्वर्ज़न, वेब एप्लिकेशन बैकएंड, और रीट्राई-फ्रेंडली प्रोडक्शन सिस्टम।

असिंक्रोनस फ़्लो उदाहरण

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

त्रुटि प्रतिक्रियाएँ

त्रुटियाँ एक detail फ़ील्ड के साथ JSON के रूप में, मानक HTTP स्थिति कोडों का उपयोग करते हुए, लौटाई जाती हैं।

स्थितिसामान्य कारण
400गुम फ़ाइलें, target_format गुम, असमर्थित job ID प्रारूप, या अमान्य अनुरोध इनपुट।
401X API Key अनुपस्थित है या अमान्य है।
403API कुंजी को अनुरोधित कन्वर्ज़न पेयर का उपयोग करने की अनुमति नहीं है।
404अनुरोधित जॉब या जनरेट की गई परिणाम फ़ाइल उपलब्ध नहीं है।
409डाउनलोड का अनुरोध किए जाने पर कन्वर्ज़न अभी भी प्रोसेस हो रहा होता है।
429API कुंजी की कोटा सीमा समाप्त हो गई है।
500सर्वर-साइड प्रोसेसिंग त्रुटि के कारण रूपांतरण तैयार या पूरा नहीं किया जा सका।
{
  "detail": "This API key is not authorized for mp42mp3 conversions."
}