वापस स्वागत है

अपने दस्तावेज़ों और हस्ताक्षरों तक पहुंचने के लिए लॉग इन करें

या ईमेल से जारी रखें
पासवर्ड भूल गए?
API v1 · स्थिर

WHAT A PDF! डेवलपर API

अपने एप्लिकेशन से बड़े पैमाने पर PDF प्रोसेस करें। साफ़ REST इंटरफ़ेस के साथ Bearer-token प्रमाणीकरण और प्रति-योजना दर सीमाओं के साथ संपीड़न, मर्ज, विभाजन और OCR करें।

क्विकस्टार्ट

आपकी पहली API कॉल तक तीन चरण।

  1. यहाँ से एक API कुंजी बनाएँ खाता › API कुंजियाँ
  2. Authorization: Bearer हेडर के साथ v1 एंडपॉइंट्स में से किसी एक पर multipart/form-data POST भेजें।
  3. JSON प्रतिक्रिया का निरीक्षण करें — सफल कॉल 15 मिनट के लिए मान्य एक हस्ताक्षरित डाउनलोड URL लौटाते हैं।

बेस URL

https://whatapdf.com/api/v1

प्रमाणीकरण

हर अनुरोध में Bearer टोकन के रूप में आपकी API कुंजी के साथ एक Authorization हेडर शामिल होना चाहिए।

Authorization: Bearer pdn_live_a1b2c3d4e5f6...
अपनी लाइव कुंजियाँ गुप्त रखें। उन्हें पासवर्ड की तरह मानें। उन्हें कभी भी सोर्स कंट्रोल में commit न करें या क्लाइंट-साइड कोड में उजागर न करें।

कुंजी प्रारूप

  • pdn_live_<32 hex> — उत्पादन कुंजी। आपकी योजना की दर सीमा में गिनी जाती है।
  • pdn_test_<32 hex> — परीक्षण कुंजी। समान दर सीमा; लॉग में परिवेशों को अलग करने के लिए उपयोगी।

दर सीमाएँ

दर सीमाएँ प्रति उपयोगकर्ता, प्रति रोलिंग 1-घंटे विंडो के आधार पर गणना की जाती हैं। हर प्रतिक्रिया में X-RateLimit-* हेडर शामिल होते हैं ताकि आप अपने पुनः प्रयासों की योजना बना सकें।

योजनाअनुरोध / घंटा
Free10
Premium1,000
Business5,000
Enterpriseअसीमित

प्रतिक्रिया हेडर

  • X-RateLimit-Limit — आपकी योजना की प्रति-घंटा सीमा।
  • X-RateLimit-Remaining — वर्तमान विंडो में शेष कॉल।
  • X-RateLimit-Reset — Unix टाइमस्टैम्प जब विंडो रीसेट होती है।
  • Retry-After — प्रतीक्षा करने के सेकंड, केवल 429 प्रतिक्रियाओं पर भेजे जाते हैं।

त्रुटियाँ

सभी त्रुटियाँ एक स्थिर कोड और मानव-पठनीय संदेश के साथ JSON के रूप में लौटाई जाती हैं।

{
  "error": {
    "code": "rate_limited",
    "message": "Rate limit exceeded for your plan (free: 10/hour)."
  },
  "meta": { "request_id": "8f9a2b3c1d4e5f6a" }
}

त्रुटि कोड

CodeHTTPअर्थ
unauthorized401गायब, गलत प्रारूप में, या निरस्त API कुंजी।
rate_limited429आपकी योजना के लिए प्रति-घंटा दर सीमा पार हो गई।
invalid_input400अनुरोध बॉडी या पैरामीटर सत्यापन में विफल रहे।
payload_too_large413फ़ाइल या संयुक्त पेलोड आपकी योजना की आकार सीमा से अधिक है।
internal_error500अप्रत्याशित सर्वर त्रुटि। बैकऑफ़ के साथ पुनः प्रयास करना सुरक्षित।

POST /compress

जब उपलब्ध हो तब Ghostscript का उपयोग करके PDF संपीड़ित करें, FPDI फ़ॉलबैक के साथ। एक हस्ताक्षरित डाउनलोड URL लौटाता है।

POSThttps://whatapdf.com/api/v1/compress

पैरामीटर (multipart/form-data)

नामप्रकारविवरण
file *fileसंपीड़ित करने के लिए PDF फ़ाइल।
levelstringसंपीड़न प्रीसेट। low, medium, high

कोड उदाहरण

curl -X POST https://whatapdf.com/api/v1/compress \
  -H "Authorization: Bearer pdn_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -F "[email protected]" \
  -F "level=medium"
const form = new FormData();
form.append('file', fileInput.files[0]);
form.append('level', 'medium');

const res = await fetch('https://whatapdf.com/api/v1/compress', {
  method: 'POST',
  headers: { 'Authorization': 'Bearer pdn_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' },
  body: form,
});
const json = await res.json();
console.log(json.data.download.url);
import requests

with open('input.pdf', 'rb') as f:
    r = requests.post(
        'https://whatapdf.com/api/v1/compress',
        headers={'Authorization': 'Bearer pdn_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'},
        files={'file': f},
        data={'level': 'medium'},
    )
print(r.json())
<?php
$ch = curl_init('https://whatapdf.com/api/v1/compress');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer pdn_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'],
    CURLOPT_POSTFIELDS     => [
        'file'  => new CURLFile('input.pdf', 'application/pdf'),
        'level' => 'medium',
    ],
]);
$res = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($res);

उदाहरण प्रतिक्रिया

{
  "data": {
    "filename": "report_compressed.pdf",
    "original_size": 5242880,
    "compressed_size": 2621440,
    "savings_percent": 50.0,
    "method": "ghostscript",
    "download": {
      "url": "/api/get-pdf.php?file=...&exp=...&sig=...",
      "expires_in": 900
    }
  },
  "meta": { "request_id": "8f9a2b3c1d4e5f6a" }
}

POST /merge

अपलोड क्रम में 2–20 PDF को एकल दस्तावेज़ में मर्ज करें।

POSThttps://whatapdf.com/api/v1/merge

पैरामीटर

नामप्रकारविवरण
files[] *file[]दो या अधिक PDF फ़ाइलें (multipart सरणी)।

कोड उदाहरण

curl -X POST https://whatapdf.com/api/v1/merge \
  -H "Authorization: Bearer pdn_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -F "files[][email protected]" \
  -F "files[][email protected]" \
  -F "files[][email protected]"
const form = new FormData();
for (const f of fileInput.files) form.append('files[]', f);

const res = await fetch('https://whatapdf.com/api/v1/merge', {
  method: 'POST',
  headers: { 'Authorization': 'Bearer pdn_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' },
  body: form,
});
console.log(await res.json());
import requests

files = [
    ('files[]', open('a.pdf', 'rb')),
    ('files[]', open('b.pdf', 'rb')),
    ('files[]', open('c.pdf', 'rb')),
]
r = requests.post(
    'https://whatapdf.com/api/v1/merge',
    headers={'Authorization': 'Bearer pdn_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'},
    files=files,
)
print(r.json())
<?php
$ch = curl_init('https://whatapdf.com/api/v1/merge');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer pdn_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'],
    CURLOPT_POSTFIELDS     => [
        'files[0]' => new CURLFile('a.pdf', 'application/pdf'),
        'files[1]' => new CURLFile('b.pdf', 'application/pdf'),
        'files[2]' => new CURLFile('c.pdf', 'application/pdf'),
    ],
]);
echo curl_exec($ch);
curl_close($ch);

POST /split

पृष्ठ श्रेणियों के अनुसार एक PDF को एक या अधिक भागों में विभाजित करें। प्रत्येक भाग अपने स्वयं के हस्ताक्षरित डाउनलोड URL के साथ लौटाया जाता है।

POSThttps://whatapdf.com/api/v1/split

पैरामीटर

नामप्रकारविवरण
file *fileस्रोत PDF।
ranges *stringअल्पविराम से अलग पृष्ठ श्रेणियाँ। एक श्रेणी = एक आउटपुट भाग। e.g. 1-3,5,7-9

कोड उदाहरण

curl -X POST https://whatapdf.com/api/v1/split \
  -H "Authorization: Bearer pdn_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -F "[email protected]" \
  -F "ranges=1-3,5,7-9"
const form = new FormData();
form.append('file', fileInput.files[0]);
form.append('ranges', '1-3,5,7-9');

const res = await fetch('https://whatapdf.com/api/v1/split', {
  method: 'POST',
  headers: { 'Authorization': 'Bearer pdn_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' },
  body: form,
});
console.log(await res.json());
import requests

with open('input.pdf', 'rb') as f:
    r = requests.post(
        'https://whatapdf.com/api/v1/split',
        headers={'Authorization': 'Bearer pdn_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'},
        files={'file': f},
        data={'ranges': '1-3,5,7-9'},
    )
for part in r.json()['data']['parts']:
    print(part['pages'], part['download']['url'])
<?php
$ch = curl_init('https://whatapdf.com/api/v1/split');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer pdn_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'],
    CURLOPT_POSTFIELDS     => [
        'file'   => new CURLFile('input.pdf', 'application/pdf'),
        'ranges' => '1-3,5,7-9',
    ],
]);
print_r(json_decode(curl_exec($ch), true));
curl_close($ch);

POST /ocr

Tesseract OCR का उपयोग करके एक छवि से टेक्स्ट निकालें। 20+ भाषाओं का समर्थन करता है।

POSThttps://whatapdf.com/api/v1/ocr

पैरामीटर

नामप्रकारविवरण
image *fileOCR करने के लिए छवि (PNG, JPEG, TIFF, WebP, या BMP)।
languagestringTesseract भाषा कोड। डिफ़ॉल्ट eng

कोड उदाहरण

curl -X POST https://whatapdf.com/api/v1/ocr \
  -H "Authorization: Bearer pdn_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -F "[email protected]" \
  -F "language=eng"
const form = new FormData();
form.append('image', imageInput.files[0]);
form.append('language', 'eng');

const res = await fetch('https://whatapdf.com/api/v1/ocr', {
  method: 'POST',
  headers: { 'Authorization': 'Bearer pdn_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' },
  body: form,
});
const { data } = await res.json();
console.log(data.text);
import requests

with open('scan.png', 'rb') as f:
    r = requests.post(
        'https://whatapdf.com/api/v1/ocr',
        headers={'Authorization': 'Bearer pdn_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'},
        files={'image': f},
        data={'language': 'eng'},
    )
print(r.json()['data']['text'])
<?php
$ch = curl_init('https://whatapdf.com/api/v1/ocr');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer pdn_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'],
    CURLOPT_POSTFIELDS     => [
        'image'    => new CURLFile('scan.png', 'image/png'),
        'language' => 'eng',
    ],
]);
$res = json_decode(curl_exec($ch), true);
echo $res['data']['text'];
curl_close($ch);
Gmail के लिए WHAT A PDF! - Chrome एक्सटेंशन

Gmail के PDF अटैचमेंट सीधे WHAT A PDF! में खोलें। अपने PDF को तुरंत संपादित करें, हस्ताक्षर करें और कनवर्ट करें!

मुफ्त एक्सटेंशन इंस्टॉल करें

Wait — don't miss out!

Subscribe for free PDF tips, new tools, and feature updates delivered to your inbox.

No spam ever. Unsubscribe anytime.