API डॉक्यूमेंटेशन
YourImageShare API से आप प्रोग्राम के ज़रिए फ़ाइलें अपलोड कर सकते हैं, उनकी सूची देख सकते हैं और उन्हें डिलीट कर सकते हैं। यह एक छोटा-सा JSON/REST API है - किसी SDK की ज़रूरत नहीं, बस एक HTTP क्लाइंट और API key चाहिए। आधिकारिक JavaScript, Python और MCP लाइब्रेरी भी उपलब्ध हैं।
सभी क्लाइंट लाइब्रेरी और नीचे दिए गए टूल ओपन सोर्स हैं। हमारी आधिकारिक GitHub रिपॉज़िटरी पर कोड देखें, समस्याएं बताएं या योगदान दें: github.com/yourimageshare/yourimageshare।
बेस URL: https://yourimageshare.com/api · फ़ॉर्मैट: इनपुट और आउटपुट JSON में, सिर्फ़ अपलोड को छोड़कर, जो multipart/form-data में होते हैं · ऑथ: हर रिक्वेस्ट पर एक API key। · मशीन-रीडेबल स्पेक: /openapi.json (OpenAPI 3.1), उन एजेंट और कोडजेन टूल के लिए जो इस पेज को पार्स नहीं करना चाहते।
API key कैसे पाएं
साइन इन करें, मेरा अकाउंट में जाएं और API टैब खोलें। आपकी key वहीं दिखती है, साथ में एक Regenerate बटन भी है। key दोबारा बनाने पर पुरानी key तुरंत बंद हो जाती है, इसलिए बटन दबाने से पहले जहाँ-जहाँ वह इस्तेमाल हो रही है, उसे अपडेट करने की तैयारी रखें।
उसी टैब में एक दूसरी, अलग सिर्फ़-अपलोड key भी है - इसे कब इस्तेमाल करें, यह नीचे दिए टिप और फ़ोरम प्लगइन में देखें।
ऑथेंटिकेशन
अपनी key हेडर में भेजें - यही बेहतर तरीका है, क्योंकि क्वेरी स्ट्रिंग अक्सर एक्सेस लॉग, प्रॉक्सी लॉग और Referer हेडर में पहुँच जाती हैं:
X-API-Key: YOUR_API_KEY ?key= क्वेरी पैरामीटर भी काम करता है। यह पुराने इंटीग्रेशन और एक बार चलाए जाने वाले curl कमांड के लिए रखा गया है। अगर दोनों मौजूद हों, तो हेडर को प्राथमिकता मिलती है।
?key=YOUR_API_KEY टिप: अपनी key को पासवर्ड की तरह संभालें - जिसके पास भी यह है, वह आपके अकाउंट पर अपलोड, लिस्ट, बदलाव और डिलीट कर सकता है। हर सफल रिक्वेस्ट लॉग होती है और आपके अकाउंट पेज के API टैब में दिन और रिक्वेस्ट के प्रकार के हिसाब से चार्ट में दिखती है। अगर key ऐसी जगह रखनी पड़े जहाँ दूसरे लोग देख सकें - जैसे फ़ोरम प्लगइन या सार्वजनिक कॉन्फ़िग फ़ाइल - तो उसी टैब की सिर्फ़-अपलोड key इस्तेमाल करें: वह सिर्फ़ अपलोड कर सकती है - अपलोड की सूची देखना, खोजना, बदलना और डिलीट करना, सब पर वह 401 के साथ रिजेक्ट हो जाती है।
एंडपॉइंट
अपलोड, लिस्ट और डिलीट में ऑथेंटिकेशन और रेट लिमिट एक जैसे हैं; बड़ी फ़ाइलें पहले टुकड़ों में भेजी जा सकती हैं।
POST /api - फ़ाइल अपलोड करें
ऑथेंटिकेट किए गए अकाउंट के लिए एक फ़ाइल अपलोड करता है।
| फ़ील्ड | टाइप | ज़रूरी | विवरण |
|---|---|---|---|
uploads | file | इन तीनों में से कोई एक | अपलोड की जाने वाली फ़ाइल, 100MB तक (हमारे नेटवर्क से एक रिक्वेस्ट की सीमा)। एक रिक्वेस्ट में एक फ़ाइल - यह एंडपॉइंट एक साथ कई फ़ाइलें अपलोड नहीं करता। |
url | string | किसी इमेज या वीडियो का सार्वजनिक http(s) लिंक। इसे हम खुद डाउनलोड करते हैं, इसलिए 200MB तक की फ़ाइलें चलती हैं। | |
upload_id | string | वह फ़ाइल जो पहले POST /api/chunk पर टुकड़ों में भेजी गई हो, 200MB तक। | |
filename | string | नहीं | upload_id के साथ: फ़ाइल का असली नाम। |
expires_in | integer | नहीं | इतने सेकंड बाद यह अपलोड अपने-आप डिलीट हो जाएगा (60 से 31,536,000, यानी 1 मिनट से 1 साल)। सामान्य, स्थायी अपलोड के लिए इसे छोड़ दें। |
allow_duplicate | boolean | नहीं | अगर आपके अकाउंट ने यही फ़ाइल पहले अपलोड की हो, तब भी नई कॉपी सेव करें (नीचे duplicate देखें)। |
keep_original | boolean | नहीं | इमेज को ठीक वैसी ही रखें जैसी अपलोड की गई। इसके बिना, 1 MB से बड़ी JPG/PNG फ़ाइलें WebP में ऑप्टिमाइज़ हो जाती हैं। GPS जैसा मेटाडेटा दोनों हालत में हटा दिया जाता है। |
visibility | string | नहीं | unlisted (डिफ़ॉल्ट): फ़ाइल और उसका पेज लिंक वाले हर व्यक्ति के लिए काम करते हैं, पर कहीं सूचीबद्ध नहीं होते। private: सिर्फ़ फ़ाइल - पेज का लिंक आपके अलावा सबको सीधे फ़ाइल पर भेज देता है (कोई कमेंट, रिएक्शन या विज्ञापन नहीं)। public: साइट पर सूचीबद्ध और इंडेक्स होने लायक। |
title | string | नहीं | 90 अक्षरों तक, अपलोड के पेज पर दिखता है। |
description | string | नहीं | 500 अक्षरों तक। |
स्वीकार किए जाने वाले टाइप: JPG, PNG, GIF, WEBP, AVIF, BMP, TIFF, HEIC या HEIF इमेज; MP4, WEBM, AVI, MOV, MKV, MPEG, WMV, FLV या 3GP वीडियो (पूरी सूची समय के साथ बढ़ सकती है)। HEIC/HEIF और TIFF WebP के रूप में सेव होते हैं, MP4/WebM के अलावा बाकी वीडियो MP4 में बदले जाते हैं, और बड़ी JPEG/PNG इमेज अपलोड के कुछ देर बाद WebP में बदल दी जाती हैं, जब इससे उनका साइज़ साफ़ तौर पर घटता है। अधिकतम साइज़: 200MB; बहुत बड़ी या न पढ़ी जा सकने वाली फ़ाइलें 422 के साथ रिजेक्ट हो जाती हैं।
रिस्पॉन्स - 200 OK:
{
"type": "success",
"msg": "success",
"data": {
"id": "aB3xY9qRz1",
"type": "image",
"path": "https://i.yourimageshare.com/aB3xY9qRz1.png",
"src": "https://yourimageshare.com/ib/aB3xY9qRz1.png",
"direct": "https://yourimageshare.com/ib/aB3xY9qRz1",
"thumb": "https://i.yourimageshare.com/thumb-aB3xY9qRz1.webp",
"width": 1920,
"height": 1080,
"size": 482113,
"locked": false,
"visibility": "unlisted",
"title": null,
"description": null,
"expires_at": null,
"duplicate": false,
"delete_url": "https://yourimageshare.com/delete#iV3x...k9"
}
} | फ़ील्ड | विवरण |
|---|---|
id | फ़ाइल की यूनीक पहचान। |
type | image या video। |
path | अपलोड के समय फ़ाइल का स्टोरेज URL। फ़ाइल बदले जाने (WebP/MP4) पर यह थोड़ी देर बाद बदल सकता है, इसलिए path नहीं, src सेव करें। |
src | फ़ाइल का स्थायी डायरेक्ट URL - हमेशा मौजूदा फ़ाइल खोलता है, <img>/<video> के src और सेव करने के लिए सही है। |
direct | YourImageShare पर फ़ाइल का पेज (टाइटल, विवरण, कमेंट, शेयर विकल्प)। |
thumb | 280px चौड़ा WebP थंबनेल (वीडियो के लिए उसका पहला फ़्रेम), या null। |
width, height | पिक्सल में डिस्प्ले साइज़ (सीधा; वीडियो का फ़्रेम साइज़), या पता न होने पर null। |
size | सेव की गई फ़ाइल का साइज़ बाइट में। |
locked | अपलोड पासवर्ड से सुरक्षित हो तो true। |
visibility | private, unlisted या public (ऊपर रिक्वेस्ट फ़ील्ड देखें)। |
title, description | जैसा सेट किया गया हो, या null। टेक्स्ट वेबसाइट जैसी ही मॉडरेशन से गुज़रता है। |
delete_url | सिर्फ़ नए अपलोड के लिए: एक निजी लिंक जो API key के बिना इस अपलोड को डिलीट कर देता है। यह सिर्फ़ एक बार दिखता है (केवल हैश सेव होता है) - ज़रूरत हो तो इसे संभालकर रखें। |
expires_at | वह ISO 8601 टाइमस्टैम्प जब यह अपलोड अपने-आप डिलीट होगा, या अगर एक्सपायर नहीं होता तो null। |
duplicate | true अगर आपका अकाउंट यही फ़ाइल पहले अपलोड कर चुका है: तब वही अपलोड लौटाया जाता है और कुछ नया सेव नहीं होता। एक्सपायर होने वाले अपलोड पर या allow_duplicate=1 के साथ यह लागू नहीं होता। |
एक्सपायर होने वाले अपलोड: expires_at बीतने के बाद फ़ाइल स्टोरेज से डिलीट हो जाती है और अपलोड का पेज करीब 5 मिनट के भीतर 410 Gone देने लगता है। इसे बाद में वापस या आगे नहीं बढ़ाया जा सकता - जल्दी हटाना हो तो DELETE एंडपॉइंट से पहले ही डिलीट करें, या ज़्यादा समय चाहिए तो नए expires_in के साथ दोबारा अपलोड करें।
POST /api/chunk - बड़ी फ़ाइलें
एक रिक्वेस्ट में ज़्यादा से ज़्यादा 100MB जा सकता है। बड़ी फ़ाइलों के लिए ( 200MB तक), या धीमे कनेक्शन पर हर रिक्वेस्ट छोटी रखने के लिए, फ़ाइल को 5MB तक के टुकड़ों में भेजें, फिर POST /api से पूरा करें:
- एक अपलोड id चुनें: 32 रैंडम हेक्स अक्षर।
- हर टुकड़े के लिए,
POST /api/chunk(multipart/form-data) करें, साथ मेंupload_id,index(0 से शुरू),total(टुकड़ों की संख्या) औरchunkमें बाइट्स। जवाब होगा{"type": "success", "chunk_size": 5242880}। uploadsकी जगहupload_idऔरfilenameके साथPOST /apiकरें, साथ में कोई भी दूसरा अपलोड फ़ील्ड। जवाब सामान्य अपलोड रिस्पॉन्स जैसा होगा।
जो अपलोड पूरा नहीं हुआ, उसके टुकड़े 2 घंटे बाद डिलीट हो जाते हैं। सिर्फ़ आख़िरी POST /api अपलोड रेट लिमिट में गिना जाता है।
GET /api/{id} और PATCH /api/{id} - एक अपलोड
GET आपका एक अपलोड लौटाता है, उन्हीं फ़ील्ड के साथ जो नीचे की सूची में हैं। PATCH उसकी visibility, title या description बदलता है (फ़ॉर्म फ़ील्ड या JSON; खाली टाइटल या विवरण उसे हटा देता है) और अपडेट किया हुआ अपलोड लौटाता है। दोनों के लिए पूरी API key चाहिए; आपके अकाउंट में ऐसा अपलोड न हो तो 404।
curl -X PATCH https://yourimageshare.com/api/aB3xY9qRz1 \
-H "X-API-Key: YOUR_API_KEY" -d visibility=public -d title="Sunset" POST /api/{id}/replace - फ़ाइल बदलें
आपके किसी अपलोड के पीछे की फ़ाइल बदल देता है, और उसका id, पेज और हर लिंक वैसे ही रहता है। कोई भी मान्य टाइप चलता है, अलग टाइप भी (इमेज की जगह वीडियो हो सकता है)। नई फ़ाइल uploads के रूप में भेजें (या POST /api/chunk से टुकड़ों में भेजी गई फ़ाइल का upload_id); keep_original अपलोड की तरह ही काम करता है। नई फ़ाइल पर वही जाँच और बदलाव लागू होते हैं जो नए अपलोड पर होते हैं, और पिछला वर्शन हटा दिया जाता है। पूरी API key चाहिए; आपके अकाउंट में ऐसा अपलोड न हो तो 404, पासवर्ड से सुरक्षित या व्यू-लिमिट वाला हो तो 409।
curl -X POST https://yourimageshare.com/api/aB3xY9qRz1/replace \
-H "X-API-Key: YOUR_API_KEY" -F uploads=@new-version.png GET /api - अपने अपलोड की सूची
ऑथेंटिकेट किए गए अकाउंट के अपलोड की पेज-वार सूची लौटाता है (किसी भी स्रोत से - API, वेबसाइट या एडिटर), सबसे नए पहले, हर पेज पर 50।
| पैरामीटर | कहाँ | ज़रूरी | विवरण |
|---|---|---|---|
page | query | नहीं | पेज नंबर, डिफ़ॉल्ट 1। |
रिस्पॉन्स - 200 OK:
{
"type": "success",
"data": [
{
"id": "aB3xY9qRz1",
"type": "image",
"title": null,
"path": "https://i.yourimageshare.com/aB3xY9qRz1.webp",
"src": "https://yourimageshare.com/ib/aB3xY9qRz1.webp",
"direct": "https://yourimageshare.com/ib/aB3xY9qRz1",
"thumb": "https://i.yourimageshare.com/thumb-aB3xY9qRz1.webp",
"width": 1920,
"height": 1080,
"size": 482113,
"locked": false,
"visibility": "unlisted",
"description": null,
"expires_at": null,
"created_at": "2026-07-23T15:43:28+01:00"
}
],
"meta": { "current_page": 1, "last_page": 1, "total": 1 }
} यहाँ फ़ील्ड का मतलब वही है जो ऊपर अपलोड रिस्पॉन्स में है (पासवर्ड से सुरक्षित अपलोड के लिए path और thumb थोड़े समय तक चलने वाले साइन किए हुए लिंक होते हैं)। किसी एक अपलोड को उसके id से खोजने के लिए GET /api/{id} इस्तेमाल करें।
DELETE /api/{id} - अपलोड डिलीट करें
ऑथेंटिकेट किए गए अकाउंट का एक अपलोड हमेशा के लिए डिलीट कर देता है। API से इसे वापस नहीं लाया जा सकता। {id} वही मान है जो अपलोड या लिस्ट एंडपॉइंट id के रूप में लौटाते हैं।
रिस्पॉन्स - 200 OK:
{ "type": "success", "msg": "Deleted." } अगर आपके अकाउंट में उस id का कोई अपलोड नहीं है (या तो वह कभी आपका था ही नहीं, या पहले ही डिलीट हो चुका है) तो 404।
POST /api/compare - पहले/बाद स्लाइडर
आपके अपने दो इमेज अपलोड का पहले/बाद वाला तुलना पेज बनाता है: /c/{id} पर स्लाइडर वाला पेज, जिसे किसी भी वेबसाइट पर एम्बेड भी किया जा सकता है। सिर्फ़-अपलोड key भी चलती है। before और after (अपलोड id, ज़रूरी) भेजें, और चाहें तो title, label_before और label_after (डिफ़ॉल्ट "Before" और "After")।
रिस्पॉन्स - 201 Created:
{
"type": "success",
"id": "P7uAYy04VA",
"url": "https://yourimageshare.com/c/P7uAYy04VA",
"embed_url": "https://yourimageshare.com/embed/c/P7uAYy04VA",
"embed": { "script": "<blockquote class=\"YISEmbed\" ...", "iframe": "<iframe ..." }
} अगर कोई id आपके इमेज अपलोड में से नहीं है तो 422 (वीडियो और पासवर्ड से सुरक्षित इमेज इस्तेमाल नहीं हो सकतीं)।
रेट लिमिट
हर API key के अपने अलग प्रति-मिनट और प्रति-दिन कोटा हैं। साथ में, एक ही IP से कई key बारी-बारी इस्तेमाल करने से रोकने के लिए प्रति-IP दैनिक सीमा भी है। अपलोड, लिस्ट और डिलीट की सीमाएं साझा हैं।
| अवधि | डिफ़ॉल्ट सीमा | दायरा |
|---|---|---|
| प्रति मिनट | 20 रिक्वेस्ट | प्रति API key |
| प्रति दिन | 500 रिक्वेस्ट | प्रति पूरी API key |
| प्रति दिन | 2,000 रिक्वेस्ट | प्रति सिर्फ़-अपलोड key (पूरी मीडिया लाइब्रेरी ऑफ़लोड करने वाले प्लगइन के लिए) |
| प्रति दिन | 2,000 रिक्वेस्ट | प्रति IP एड्रेस |
| प्रति मिनट | 300 टुकड़े | प्रति API key, सिर्फ़ POST /api/chunk |
ये सीमाएं बदल सकती हैं। हर रिस्पॉन्स में मानक रेट-लिमिट हेडर होते हैं:
X-RateLimit-Limit: 20
X-RateLimit-Remaining: 14 सीमा पार होने पर 429 लौटता है, साथ में Retry-After हेडर बताता है कि कितने सेकंड रुकना है।
एरर
हर एरर रिस्पॉन्स का ढांचा एक जैसा होता है, चाहे एंडपॉइंट या कारण कुछ भी हो:
{ "type": "error", "errors": "A human-readable description of what went wrong." } | स्टेटस | मतलब |
|---|---|
| 401 | API key नहीं दी गई या गलत है। |
| 403 | अकाउंट या आपका मौजूदा IP अपलोड करने से बैन है। |
| 404 | इस अकाउंट में उस id का कोई अपलोड नहीं मिला (देखना, बदलना, डिलीट करना)। |
| 413 | रिक्वेस्ट 100MB से बड़ी है। इसकी जगह फ़ाइल टुकड़ों में भेजें (POST /api/chunk) या url में उसका लिंक दें (200MB तक)। |
| 422 | वैलिडेशन फ़ेल - कोई फ़ाइल या लिंक नहीं दिया, फ़ाइल टाइप समर्थित नहीं, इमेज डेटा पढ़ा नहीं जा सका, डाइमेंशन 30000x30000px की सीमा से ज़्यादा, फ़ाइल 200MB से बड़ी, upload_id अधूरा या एक्सपायर, या url डाउनलोड नहीं हो सका (संदेश में कारण बताया जाता है)। |
| 429 | रेट लिमिट पार हो गई - ऊपर रेट लिमिट देखें। |
| 500 | सर्वर साइड पर कुछ अनपेक्षित फ़ेल हुआ। दोबारा कोशिश करना सुरक्षित है। |
क्लाइंट लाइब्रेरी
आधिकारिक SDK, जो ऊपर के एंडपॉइंट को टाइप्ड नतीजों के साथ लपेटते हैं और कच्चे HTTP की जगह API एरर पर खुद एरर उठाते हैं।
JavaScript / TypeScript
कोई डिपेंडेंसी नहीं, Node.js और ब्राउज़र दोनों में चलता है। JSR पर भी @yourimageshare/yourimageshare नाम से उपलब्ध है - npx jsr add @yourimageshare/yourimageshare - वही सोर्स, सीधे TypeScript के रूप में प्रकाशित।
npm install yourimageshare Python
एक डिपेंडेंसी (requests), Python 3.8+।
pip install yourimageshare PHP
कोई Composer डिपेंडेंसी नहीं (PHP का अपना curl एक्सटेंशन इस्तेमाल होता है), PHP 7.4+। सोर्स GitHub पर।
composer require yourimageshare/yourimageshare-php Go
कोई डिपेंडेंसी नहीं (सिर्फ़ स्टैंडर्ड लाइब्रेरी), Go 1.18+। पूरे रेफ़रेंस डॉक्स के लिए pkg.go.dev देखें।
go get github.com/yourimageshare/yourimageshare/go Rust
दो डिपेंडेंसी (ब्लॉकिंग HTTP के लिए ureq - कोई async रनटाइम नहीं खिंचता - और serde), Rust 1.70+। सोर्स GitHub पर।
cargo add yourimageshare Ruby
कोई gem डिपेंडेंसी नहीं (stdlib Net::HTTP + json), Ruby 2.7+। सोर्स GitHub पर।
gem install yourimageshare .NET
एक डिपेंडेंसी (Microsoft का अपना System.Text.Json), netstandard2.0 को टारगेट करता है, इसलिए .NET Framework और आधुनिक .NET दोनों में चलता है। सोर्स GitHub पर। इस लाइव API के ख़िलाफ़ बनाया और जाँचा गया; NuGet पर जल्द प्रकाशित होगा।
dotnet add package YourImageShare Dart / Flutter
एक डिपेंडेंसी (http, Dart टीम का अपना पैकेज), Dart 2.17+। सोर्स GitHub पर। इस लाइव API के ख़िलाफ़ बनाया और जाँचा गया; pub.dev पर जल्द प्रकाशित होगा।
dart pub add yourimageshare Elixir
एक डिपेंडेंसी (Req), Elixir 1.14+। यह {:ok, result}| {:error, reason} टैग्ड ट्यूपल लौटाता है - बाकी सभी SDK में इस API की एरर हैंडलिंग का सीधा समकक्ष - साथ में bang वेरिएंट भी जो एरर उठाते हैं। सोर्स GitHub पर, डॉक्स HexDocs पर।
{:yourimageshare, "~> 1.1"} MCP सर्वर
AI कोडिंग एजेंट (Claude Code, Cursor और दूसरे MCP-संगत टूल) के लिए - बग रिपोर्ट, PR विवरण या सपोर्ट थ्रेड में स्क्रीनशॉट base64 ब्लॉब या मैन्युअल अपलोड की जगह असली URL के रूप में डालें। Claude Desktop और किसी भी दूसरे MCP क्लाइंट के साथ भी यह इसी तरह काम करता है।
होस्टेड, कुछ इंस्टॉल करने की ज़रूरत नहीं: इसे रिमोट MCP सर्वर के रूप में जोड़ें (Claude में: Settings › Connectors › Add custom connector; ChatGPT, Cursor, VS Code और सर्वर URL लेने वाले दूसरे क्लाइंट में भी), URL में अपनी API key के साथ:
https://yourimageshare.com/mcp?key=YOUR_API_KEY जो क्लाइंट हेडर सेट करने देते हैं, वे इसकी जगह https://yourimageshare.com/mcp के साथ Authorization: Bearer YOUR_API_KEY इस्तेमाल कर सकते हैं। आपकी key वाला URL पासवर्ड की तरह है: उसे निजी रखें, और लीक होने पर मेरा अकाउंट में नई key बनाएं। होस्टेड सर्वर पर upload_image सार्वजनिक लिंक (200MB तक) या इनलाइन base64 कंटेंट (15MB तक) लेता है। key के बिना भी https://yourimageshare.com/mcp वेबसाइट की तरह गुमनाम रूप से अपलोड करता है: सिर्फ़ unlisted या private, कम सीमाएं, और अपलोड उसी delete_url से डिलीट होता है जो वह लौटाता है। बाकी टूल के लिए key चाहिए।
लोकल: इसे सीधे npx से चलाएं, इंस्टॉल का कोई चरण नहीं (यह आपकी डिस्क से फ़ाइलें भी पढ़ सकता है):
npx yourimageshare-mcp टूल: upload_image (लोकल फ़ाइल, इनलाइन कंटेंट या लिंक, 200MB तक, वैकल्पिक visibility, टाइटल और ऑटो-डिलीट के साथ), list_uploads, get_upload, update_upload और delete_upload।
यह आधिकारिक MCP Registry में (io.github.yourimageshare/yourimageshare नाम से) और Smithery व Glama पर भी सूचीबद्ध है, अगर आपका MCP क्लाइंट इनमें से किसी से इंस्टॉल करता है।
MCP में नए हैं? पूरी सेटअप गाइड के लिए MCP के ज़रिए Claude और ChatGPT को इस API से कैसे जोड़ें देखें।
ये सभी दस MIT लाइसेंस के तहत हैं। आपकी भाषा के लिए कोई आधिकारिक लाइब्रेरी नहीं है? नीचे के कोड के उदाहरण API को सीधे कॉल करना दिखाते हैं।
कोड के उदाहरण
curl
# Upload a file
curl "https://yourimageshare.com/api" \
-H "X-API-Key: YOUR_API_KEY" \
-F "uploads=@/path/to/photo.jpg"
# Upload from a link (files up to 200MB; one direct upload request stops at 100MB -
# bigger files go in pieces, see Large Files above)
curl "https://yourimageshare.com/api" \
-H "X-API-Key: YOUR_API_KEY" \
-F "url=https://example.com/video.mp4"
# Upload a file that auto-deletes after 1 hour
curl "https://yourimageshare.com/api" \
-H "X-API-Key: YOUR_API_KEY" \
-F "uploads=@/path/to/photo.jpg" \
-F "expires_in=3600"
# List uploads
curl "https://yourimageshare.com/api" -H "X-API-Key: YOUR_API_KEY"
# Upload a file without a page of its own (file only) and give it a title
curl "https://yourimageshare.com/api" \
-H "X-API-Key: YOUR_API_KEY" \
-F "uploads=@/path/to/photo.jpg" \
-F "visibility=private" \
-F "title=Sunset"
# Look up one upload, then make it public
curl "https://yourimageshare.com/api/aB3xY9qRz1" -H "X-API-Key: YOUR_API_KEY"
curl -X PATCH "https://yourimageshare.com/api/aB3xY9qRz1" \
-H "X-API-Key: YOUR_API_KEY" -d "visibility=public"
# Delete an upload
curl -X DELETE "https://yourimageshare.com/api/aB3xY9qRz1" -H "X-API-Key: YOUR_API_KEY" JavaScript (fetch)
const API_KEY = 'YOUR_API_KEY';
const BASE = 'https://yourimageshare.com/api';
async function uploadFile(file) {
const form = new FormData();
form.append('uploads', file);
const res = await fetch(BASE, {
method: 'POST',
headers: { 'X-API-Key': API_KEY },
body: form,
});
const json = await res.json();
if (json.type !== 'success') throw new Error(json.errors);
return json.data;
}
async function listUploads(page = 1) {
const res = await fetch(`${BASE}?page=${page}`, {
headers: { 'X-API-Key': API_KEY },
});
return res.json();
}
async function deleteUpload(id) {
const res = await fetch(`${BASE}/${id}`, {
method: 'DELETE',
headers: { 'X-API-Key': API_KEY },
});
return res.json();
} Python (requests)
import requests
API_KEY = "YOUR_API_KEY"
BASE = "https://yourimageshare.com/api"
HEADERS = {"X-API-Key": API_KEY}
# Upload a file
with open("/path/to/photo.jpg", "rb") as f:
res = requests.post(BASE, headers=HEADERS, files={"uploads": f})
res.raise_for_status()
upload = res.json()["data"]
# List uploads
res = requests.get(BASE, headers=HEADERS, params={"page": 1})
uploads = res.json()
# Delete an upload
res = requests.delete(f"{BASE}/{upload['id']}", headers=HEADERS) PHP (curl)
<?php
$apiKey = 'YOUR_API_KEY';
$base = 'https://yourimageshare.com/api';
// Upload a file
$curl = curl_init($base);
curl_setopt_array($curl, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ["X-API-Key: $apiKey"],
CURLOPT_POSTFIELDS => ['uploads' => new CURLFile('/path/to/photo.jpg')],
CURLOPT_RETURNTRANSFER => true,
]);
$upload = json_decode(curl_exec($curl), true)['data'];
curl_close($curl);
// List uploads
$curl = curl_init("$base?page=1");
curl_setopt($curl, CURLOPT_HTTPHEADER, ["X-API-Key: $apiKey"]);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$uploads = json_decode(curl_exec($curl), true);
curl_close($curl); Go (net/http)
ऊपर दिया आधिकारिक Go SDK यह सब आपके लिए संभाल लेता है - यह कच्चा वर्शन उनके लिए है जो डिपेंडेंसी नहीं जोड़ना चाहते।
package main
import (
"bytes"
"encoding/json"
"io"
"mime/multipart"
"net/http"
"os"
)
const apiKey = "YOUR_API_KEY"
const base = "https://yourimageshare.com/api"
func uploadFile(path string) (map[string]any, error) {
file, err := os.Open(path)
if err != nil {
return nil, err
}
defer file.Close()
body := &bytes.Buffer{}
writer := multipart.NewWriter(body)
part, _ := writer.CreateFormFile("uploads", path)
io.Copy(part, file)
writer.Close()
req, _ := http.NewRequest("POST", base, body)
req.Header.Set("Content-Type", writer.FormDataContentType())
req.Header.Set("X-API-Key", apiKey)
res, err := http.DefaultClient.Do(req)
if err != nil {
return nil, err
}
defer res.Body.Close()
var result map[string]any
json.NewDecoder(res.Body).Decode(&result)
return result, nil
} स्क्रीनशॉट टूल
एक ब्राउज़र एक्सटेंशन, साथ में तैयार कॉन्फ़िग और स्क्रिप्ट, जो स्क्रीनशॉट सीधे YourImageShare पर भेज देते हैं, मैन्युअल अपलोड की ज़रूरत नहीं। हर एक ऊपर बताए गए उसी /api एंडपॉइंट से अपलोड करता है।
ब्राउज़र एक्सटेंशन (Chrome और Firefox)
Chrome और Firefox के लिए YourImageShare Capture एक्सटेंशन स्क्रिप्ट और कॉन्फ़िग फ़ाइलों की ज़रूरत ही खत्म कर देता है। यह दिखने वाला हिस्सा, ड्रैग करके चुना गया क्षेत्र या पूरा स्क्रॉल होने वाला पेज कैप्चर करता है, तीर, टेक्स्ट, ब्लर/रिडैक्ट और दूसरे एनोटेशन के लिए बिल्ट-इन एडिटर खोलता है, फिर नतीजा डाउनलोड करता है, क्लिपबोर्ड पर कॉपी करता है, या एक क्लिक में सीधे YourImageShare पर पब्लिश कर देता है। पब्लिश करने के लिए ऊपर बताया वही /api एंडपॉइंट इस्तेमाल होता है - एक्सटेंशन की Settings में अपनी API key एक बार जोड़ें, फिर हर पब्लिश तुरंत शेयर करने लायक लिंक देता है। यह डेस्कटॉप Chrome (और दूसरे Chromium ब्राउज़र), डेस्कटॉप Firefox और Android के लिए Firefox में चलता है।
Firefox के लिए YourImageShare Capture पाएं Chrome के लिए YourImageShare Capture पाएं
ShareX
नीचे से कस्टम अपलोडर डाउनलोड करें, फिर ShareX में Destinations > Custom uploader settings > Import > from file पर जाएं, डाउनलोड की गई .sxcu खोलें, और Headers फ़ील्ड में YOUR_API_KEY की जगह अपनी असली key डालें। इसे अपनी इमेज/फ़ाइल डेस्टिनेशन बना लें, और कैप्चर अपने-आप अपलोड होंगे।
YourImageShare.sxcu डाउनलोड करें
डिलीट करना: ShareX में हर अपलोड का "Delete" लिंक हमारा डिलीट पेज आपके ब्राउज़र में खोलता है (अपलोड का एक बार वाला delete_url), इसलिए आप ShareX की हिस्ट्री से ही कोई कैप्चर हटा सकते हैं। आप मेरा अकाउंट से भी अपलोड डिलीट कर सकते हैं। कॉन्फ़िग अक्टूबर 2026 से पहले डाउनलोड किया था? यह सुविधा पाने के लिए उसे दोबारा डाउनलोड करें।
Flameshot (Linux)
एक छोटी शेल स्क्रिप्ट जो flameshot gui चलाती है, कैप्चर अपलोड करती है और लिंक आपके क्लिपबोर्ड पर कॉपी कर देती है। इसे Flameshot के डिफ़ॉल्ट शॉर्टकट की जगह अपने डेस्कटॉप एनवायरमेंट में किसी कीबोर्ड शॉर्टकट से जोड़ें।
yis-flameshot-upload.sh डाउनलोड करें
# One-time setup
chmod +x yis-flameshot-upload.sh
export YIS_API_KEY="YOUR_API_KEY" # or add to ~/.config/yourimageshare/api_key
# Then bind this to a hotkey instead of calling flameshot directly:
/path/to/yis-flameshot-upload.sh Greenshot (Windows)
Greenshot के बिल्ट-इन External command डेस्टिनेशन के लिए एक PowerShell स्क्रिप्ट। यह Windows के साथ आने वाले Windows PowerShell 5.1 के साथ चलती है, अलग से कुछ इंस्टॉल करने की ज़रूरत नहीं।
yis-greenshot-upload.ps1 डाउनलोड करें
# One-time setup
setx YIS_API_KEY "YOUR_API_KEY"
# In Greenshot: Preferences > Destinations > External command > Settings
# Command: powershell.exe
# Arguments: -ExecutionPolicy Bypass -File "C:\path\to\yis-greenshot-upload.ps1" "%1" फ़ोरम प्लगइन
अपने फ़ोरम के पोस्ट एडिटर के पास एक असली "Upload Image" बटन जोड़ें। हर प्लगइन ऊपर बताए गए उसी /api एंडपॉइंट से अपलोड करता है और आपके कर्सर की जगह BBCode डाल देता है - अलग टैब नहीं, मैन्युअल कॉपी-पेस्ट नहीं।
नीचे अपनी API key नहीं, सिर्फ़-अपलोड key इस्तेमाल करें। हर प्लगइन key को हर विज़िटर के पेज सोर्स में दिखाता है, और सिर्फ़-अपलोड key (मेरा अकाउंट > API टैब) सिर्फ़ अपलोड कर सकती है - कोई उसे पेज से कॉपी भी कर ले तो वह आपके अपलोड की सूची नहीं देख सकता और न डिलीट कर सकता है।
फ़ोरम अपलोड डिफ़ॉल्ट रूप से private होते हैं: इमेज पोस्ट में काम करती है, पर YourImageShare उसका अपना कोई पेज नहीं बनाता (कोई कमेंट, रिएक्शन या विज्ञापन नहीं)। अगर लिंक वाले किसी भी व्यक्ति के लिए पेज भी चाहिए, तो हर प्लगइन में unlisted पर बदलने की सेटिंग है।
phpBB
असली phpBB 3.2/3.3 एक्सटेंशन। इसे ext/ में अनज़िप करें, Customise > Manage extensions में एनेबल करें, फिर एक्सटेंशन की टेम्पलेट इवेंट फ़ाइल में YOUR_UPLOAD_ONLY_KEY की जगह अपनी असली सिर्फ़-अपलोड key डालें।
SMF (Simple Machines Forum)
असली SMF पैकेज - Admin > Package Manager से इंस्टॉल करें, फिर Sources/yis_forumupload.php में YOUR_UPLOAD_ONLY_KEY की जगह अपनी असली सिर्फ़-अपलोड key डालें।
MyBB
असली MyBB 1.8 प्लगइन। इसे inc/plugins/ में कॉपी करें, Configuration > Plugins में एक्टिवेट करें, फिर प्लगइन फ़ाइल में YOUR_UPLOAD_ONLY_KEY की जगह अपनी असली सिर्फ़-अपलोड key डालें।
FluxBB, PunBB और ZetaBoards
इनमें औपचारिक प्लगइन सिस्टम नहीं है, इसलिए यह एक छोटा स्निपेट है जो सीधे आपके टेम्पलेट (FluxBB/PunBB) या Admin CP (ZetaBoards) में पेस्ट करना होता है - हर एक के लिए पूरे कॉपी-पेस्ट निर्देश:
WordPress प्लगइन
अपनी Media Library को लोकल डिस्क की जगह YourImageShare पर ऑफ़लोड करें। नए इमेज/वीडियो अपलोड अपने-आप ऊपर बताए उसी /api एंडपॉइंट से जाते हैं, अपलोड की पुष्टि होते ही लोकल फ़ाइल (और बनाए गए हर थंबनेल साइज़) डिलीट हो जाती है, और हर WordPress अटैचमेंट URL - ब्लॉक एडिटर, फ़ीचर्ड इमेज, गैलरी, REST API - YourImageShare पर रखी फ़ाइल की ओर जाता है। कोई शॉर्टकोड नहीं, वर्कफ़्लो में कोई बदलाव नहीं।
- सिर्फ़ नए अपलोड ही नहीं, मौजूदा Media Library को भी बैकग्राउंड में (या
wp yis offload --allसे) एक साथ ऑफ़लोड करें - पोस्ट में लगाई जा चुकी इमेज और वीडियो, लोकल फ़ाइलें हटने के बाद भी काम करते रहते हैं
- थंबनेल और srcset हमारे 280px थंबनेल का इस्तेमाल करते हैं, इसलिए छोटे इमेज स्लॉट में पूरे साइज़ की फ़ाइलें लोड नहीं होतीं
- 200MB तक की फ़ाइलें, टुकड़ों में भेजी जाती हैं ताकि बड़े वीडियो शेयर्ड होस्ट पर बोझ न बनें
- किसी भी ऑफ़लोड की गई फ़ाइल को कभी भी वापस लोकल स्टोरेज में ला सकते हैं
- Media Library का एक कॉलम दिखाता है कि क्या ऑफ़लोड हुआ और क्या अभी लोकल है
- ऑफ़लोड की गई फ़ाइलें private रूप में सेव होती हैं: वे आपकी साइट पर जहाँ भी इस्तेमाल हों वहाँ लोड होती हैं, पर YourImageShare पर उनका कोई अपना पेज नहीं बनता
आपकी सिर्फ़-अपलोड key इस्तेमाल होती है, API key नहीं। वैकल्पिक पूरी API key सिर्फ़ तब चाहिए जब आप चाहें कि WordPress में डिलीट करने पर ऑफ़लोड की गई फ़ाइलें YourImageShare से भी डिलीट हों।
WordPress.org पर पाएं ZIP डाउनलोड करें
WordPress में: Plugins > Add New, YourImageShare Media Offload खोजें, फिर Install और Activate करें।
iPhone और iPad शॉर्टकट
किसी भी ऐप की शेयर शीट से अपलोड करें - Photos, Files, Safari, कोई स्क्रीनशॉट - और लिंक अपने क्लिपबोर्ड पर पाएं। कोई ऐप इंस्टॉल नहीं करना, अकाउंट की भी ज़रूरत नहीं।
Shortcuts ऐप में इसे खुद बनाने के लिए (करीब दो मिनट):
- नया शॉर्टकट बनाएं, नाम रखें "Upload to YourImageShare"। उसकी डिटेल्स में Show in Share Sheet चालू करें और इमेज व मीडिया स्वीकार करें।
- Get Contents of URL जोड़ें: URL
https://yourimageshare.com/api/widget, मेथडPOST, रिक्वेस्ट बॉडी Form, दो फ़ील्ड के साथ:uploads(File) = Shortcut Input, औरclient(Text) =ios-shortcut। dataके लिए Get Dictionary Value जोड़ें, फिरsrcके लिए एक और - वही डायरेक्ट लिंक है।- Copy to Clipboard और Show Notification ("Link copied") जोड़ें।
key के बिना अपलोड गुमनाम और unlisted होते हैं, दैनिक सीमा के साथ। अपने अकाउंट में अपलोड करने के लिए अपनी सिर्फ़-अपलोड key (मेरा अकाउंट > API) के साथ X-API-Key हेडर जोड़ें। अगर आप डिलीट लिंक रखना चाहें, तो रिस्पॉन्स में delete_url भी होता है।
PicGo और PicList
PicGo और PicList Markdown एडिटर - Typora, VS Code, Obsidian, Joplin - के लिए पेस्ट या ड्रैग की गई इमेज अपलोड करते हैं और लिंक आपके टेक्स्ट में डाल देते हैं। हमारा प्लगइन YourImageShare को उनके इमेज होस्ट में से एक बना देता है।
- PicGo या PicList में: Plugins में
yourimageshareखोजें, इंस्टॉल करें, फिर अपलोडर के रूप में YourImageShare चुनें। कमांड लाइन:picgo install yourimageshare - या प्लगइन डाउनलोड करें और उसे लोकल प्लगइन के रूप में इम्पोर्ट करें (पहले अनज़िप करें)
- सेटिंग: सिर्फ़-अपलोड key (वैकल्पिक - खाली = गुमनाम, unlisted अपलोड), visibility, और यह कि डायरेक्ट इमेज लिंक (Markdown के लिए) लौटाए या पेज लिंक
- यह जो लिंक देता है, वह बाद में बड़ी इमेज के WebP में ऑप्टिमाइज़ होने पर भी काम करता रहता है
Telegram बॉट
Telegram छोड़े बिना किसी फ़ोटो, वीडियो या GIF का लिंक पाएं। उसे @YourImageShare_bot को भेजें और लिंक तुरंत वापस आ जाता है - अकाउंट या API key की ज़रूरत नहीं। बॉट ऊपर बताए उसी /api एंडपॉइंट से अपलोड करता है।
- फ़ोटो, वीडियो, GIF या कोई इमेज या वीडियो फ़ाइल भेजें; 10 तक का एल्बम एक ही जवाब में वापस आता है
- ग्रुप में किसी फ़ोटो या वीडियो को
/linkसे रिप्लाई करें और बॉट उसका लिंक सबके लिए पोस्ट कर देता है /autodeleteआपके अगले अपलोड को 1 घंटे, 1 दिन, 1 हफ़्ते या 30 दिन बाद अपने-आप डिलीट करा देता है- हर नतीजे में एक Delete बटन होता है, जो सिर्फ़ फ़ाइल अपलोड करने वाले के लिए काम करता है
- लिंक unlisted होते हैं: फ़ाइल सिर्फ़ वही देख सकते हैं जिनके पास लिंक है
- जब साइट आपकी Telegram भाषा में उपलब्ध हो, तो बॉट उसी भाषा में जवाब देता है
पूरी क्वालिटी रखें: सामान्य तरीके से भेजी गई फ़ोटो को Telegram कंप्रेस कर देता है। उन्हें फ़ाइल के रूप में भेजें (📎 → File) और ओरिजिनल अपलोड होगा। Telegram बॉट को 20 MB तक की फ़ाइलें ही लेने देता है, इसलिए बड़ी फ़ाइलें वेबसाइट पर अपलोड करें।
Discord बॉट
Discord की किसी भी इमेज, GIF या वीडियो को स्थायी लिंक में बदलें। Discord के अपने अटैचमेंट लिंक कुछ समय बाद काम करना बंद कर देते हैं; YourImageShare के लिंक नहीं करते। अकाउंट या API key की ज़रूरत नहीं। बॉट ऊपर बताए उसी /api एंडपॉइंट से अपलोड करता है।
- फ़ाइल के साथ
/upload: 1, 7 या 30 दिन बाद वैकल्पिक ऑटो-डिलीट, और only_me ताकि लिंक सिर्फ़ आपको दिखे - किसी मैसेज पर राइट-क्लिक करें → Apps → Rehost on YourImageShare, और उसमें से 6 तक इमेज या वीडियो एक ही जवाब में रीहोस्ट करें
- इसे सर्वर में जोड़ें, या अपने अकाउंट में जोड़ें ताकि किसी भी चैट या DM में इस्तेमाल हो सके
- हर नतीजे में एक Delete बटन होता है, जो सिर्फ़ फ़ाइल अपलोड करने वाले के लिए काम करता है
- लिंक unlisted होते हैं: फ़ाइल सिर्फ़ वही देख सकते हैं जिनके पास लिंक है
Playwright और Cypress के लिए GitHub Action
जब पुल रिक्वेस्ट में end-to-end टेस्ट फ़ेल हों, तो आर्टिफ़ैक्ट zip डाउनलोड किए बिना कारण देखें। यह action फ़ेलियर स्क्रीनशॉट और विज़ुअल डिफ़ अपलोड करता है और उन्हें पुल रिक्वेस्ट के एक कमेंट में इमेज के रूप में दिखाता है, जो हर रन पर अपडेट होता है।
- Playwright और Cypress दोनों के साथ काम करता है, और खुद पता लगा लेता है कि प्रोजेक्ट कौन-सा इस्तेमाल करता है
- फ़ेल हुई विज़ुअल तुलना Expected, Actual और Diff के रूप में दिखती है, साथ में पहले/बाद स्लाइडर का लिंक (Playwright के
toHaveScreenshotके लिए; Cypress के लिए cypress-image-diff-js और cypress-visual-regression प्लगइन) - टेस्ट ठीक होने पर कमेंट बदलकर "all tests passed" हो जाता है; वही रिपोर्ट जॉब समरी में भी जाती है
- स्क्रीनशॉट private होते हैं (सिर्फ़ इमेज फ़ाइलें, कोई पेज नहीं) और डिफ़ॉल्ट रूप से 30 दिन बाद डिलीट हो जाते हैं
- इसके लिए रिपॉज़िटरी सीक्रेट
YOURIMAGESHARE_API_KEYके रूप में आपकी सिर्फ़-अपलोड key चाहिए; यह आपका बिल्ड कभी फ़ेल नहीं करता
- uses: yourimageshare/playwright-pr-screenshots@v1
if: always()
with:
api-key: ${{ secrets.YOURIMAGESHARE_API_KEY }} कम्युनिटी प्रोजेक्ट
YourImageShare के कुछ बेहतरीन इंटीग्रेशन इसे इस्तेमाल करने वाले लोगों ने ही बनाए हैं। ये प्रोजेक्ट कम्युनिटी के सदस्यों ने ऊपर बताए सार्वजनिक API से बनाए हैं। इनका रखरखाव इनके लेखक करते हैं, इसलिए सवाल या बग रिपोर्ट के लिए प्रोजेक्ट के पेज से लेखक से संपर्क करें।
- FlatBB के लिए YourImageShare Uploads - FlatBB फ़ोरम के लिए एक प्लगइन, लेखक madromas (MadWay Inc.)।
- FlatBB पोस्ट कम्पोज़र में अपलोड बटन जोड़ता है: एक या ज़्यादा इमेज या वीडियो चुनें और Markdown कर्सर की जगह डाल दिया जाता है
- हर अपलोड को क्लिक करने लायक थंबनेल, पूरे साइज़ की इमेज या सादे लिंक के रूप में डालता है (वीडियो लिंक के रूप में)
- अपलोड सिर्फ़-अपलोड API key के साथ आपके फ़ोरम के सर्वर से होते हैं, इसलिए key कभी विज़िटर के ब्राउज़र तक नहीं पहुँचती
- फ़ाइलें आपके फ़ोरम की डिस्क पर नहीं, YourImageShare पर होस्ट होती हैं, और डिफ़ॉल्ट visibility आप चुनते हैं (private, unlisted या public)
- FlatBB के अपने अपलोडर के साथ चलता है, फ़ाइल साइज़ की अलग सीमा के साथ
धन्यवाद
YourImageShare के साथ कुछ बनाने और अपना काम दूसरों से साझा करने वाले हर व्यक्ति का दिल से धन्यवाद। कम्युनिटी प्रोजेक्ट YourImageShare को उन जगहों तक ले जाते हैं जहाँ हम अकेले कभी नहीं पहुँच पाते। API से कुछ बनाया है? हमें बताएं और हमें उसे यहाँ जोड़ने में खुशी होगी।
ब्लॉग से
डेवलपर्स के लिए गाइड और वॉकथ्रू
- ShareX, Flameshot या Greenshot से स्क्रीनशॉट तुरंत अपलोड करें
- अपने phpBB, SMF या MyBB फ़ोरम में असली इमेज अपलोड बटन जोड़ें
- MCP कैसे इस्तेमाल करें: Claude, ChatGPT और AI एजेंट को YourImageShare से जोड़ें
- YourImageShare Capture: Chrome और Firefox के लिए स्क्रीनशॉट एक्सटेंशन
- अपनी WordPress Media Library को मुफ़्त इमेज होस्टिंग पर ऑफ़लोड करें
- YourImageShare Telegram बॉट: किसी भी फ़ोटो या वीडियो का लिंक पाएं
आज़माने के लिए तैयार हैं?
अपनी API key पाएं →