दस्तावेज़ पर जाएँ
API

इनबॉक्स बनाएँ

पता जारी करता है और उसे पढ़ने वाला टोकन लौटाता है। हर फ़ील्ड वैकल्पिक है, body भी।

POSTapi.openemail.uk/temp-mail/inboxes

असली कॉल आपकी अपनी कुंजी से आपके वर्कस्पेस पर चलाता है।

POST /temp-mail/inboxes

पता जारी करता है और उसे पढ़ने वाला टोकन लौटाता है। हर फ़ील्ड वैकल्पिक है, body भी।

कोई क्रेडेंशियल नहीं

shell
export OE=https://api.openemail.uk

कोई Authorization header बिलकुल न भेजें। API पर यही इकलौता रिसोर्स है जो उसके बिना जवाब देता है। इसे स्कोप देने के बजाय कुंजी-जाँच से ऊपर पंजीकृत किया गया है, क्योंकि जो चीज़ पेश की जा रही है वह उस व्यक्ति के लिए पता है जिसके पास कोई नहीं, और पहले कुंजी माँगना इसे टूल के कपड़ों में एक lead फ़ॉर्म बना देता।

उदाहरण

खाली body वैध है और सामान्य मामला है: pool से चुने गए डोमेन पर एक जनरेट किया local-part, एक घंटे के लिए लीज़ पर।

curl
curl -X POST "$OE/temp-mail/inboxes" -H "Content-Type: application/json" \  -d '{ "localPart": "octopus-signup", "ttlMinutes": 120 }'
रिस्पॉन्स
{  "object": "temp_inbox",  "id": "tinb_9c2f41ab7d3e4c118a0f5d72",  "address": "[email protected]",  "domain": "freemailaddress.com",  "createdAt": "2026-09-01T10:00:00.000Z",  "expiresAt": "2026-09-01T12:00:00.000Z",  "extensionsLeft": 22,  "messageCount": 0,  "messageLimit": 50,  "lastMessageAt": null,  "token": "oe_inbox_kQ8v…"}

201, और पूरे API में यही इकलौता रिस्पॉन्स है जिस पर token होता है। पते के साथ कुछ और करने से पहले उसे सहेज लें।

जनरेट किया local-part ऐसी वर्णमाला के बारह अक्षरों का होता है जिसमें न स्वर हैं और न मिलते-जुलते दिखने वाले अक्षर, इसलिए उससे कोई शब्द नहीं बनता और वह स्क्रीन से पढ़कर बोले जाने पर भी बचा रहता है।

जो कुछ भी मना किया जा सकता है वह समायोजित करने के बजाय नाम लेकर मना किया जाता है: 422 unknown_domain, invalid_address, reserved_address, या 1 से 1440 के बाहर के ttlMinutes के लिए invalid_parameter; पहले से लिए जा चुके local-part के लिए 409 address_taken; बनाने की सीमा पर 429 too_many_inboxes; ऐसे इंस्टॉल पर 503 temp_mail_unavailable जिसमें कोई pooled डोमेन है ही नहीं।

पैरामीटर

Body

domainstring
`GET /temp-mail/domains` में से एक। इसे छोड़ दें तो pool पहला डोमेन भरने के बजाय यादृच्छिक रूप से चुनता है। इंटरनेट के हर फेंकने लायक साइनअप को पाने वाला एक डोमेन वैसी ही प्रतिष्ठा कमा लेता है, और वह प्रतिष्ठा उस पर मौजूद हर पता साझा करता है। जो डोमेन pool में नहीं है उसे चुपचाप बदलने के बजाय नाम लेकर मना किया जाता है (422 `unknown_domain`), क्योंकि आप तब तक वही पता कॉपी कर चुके होते जो आपने माँगा था।
localPartstring
@ से पहले का हिस्सा, अगर आप उसे चुनना चाहें: अक्षरों, अंकों, बिंदुओं, डैश और अंडरस्कोर के 3 से 32 अक्षर, जो अक्षर या अंक से शुरू और समाप्त हों। RFC 5321 की अनुमति से संकरा, क्योंकि यह स्ट्रिंग URL path, `To:` header और HTML के पेज में जाती है। `+` बाहर रखा गया है, क्योंकि आते समय sub-addressing समेट दी जाती है, इसलिए `alice+bob` ऐसा नाम होता जिस पर असल में आप तक पहुँचा ही नहीं जा सकता। पहले से लिए गए नाम 409 `address_taken` देते हैं, जो दो मामलों को कवर करता है: कोई दूसरा आगंतुक उसे रखता है (या पिछले हफ़्ते के भीतर रखता था, जब तक वह पता अब भी चलन से बाहर है), और डोमेन के मालिक ने उसे असली पते के रूप में बना रखा है — जिसे उसी कोड के तहत मना किया जाता है क्योंकि उस पर आई मेल उन तक पहुँचती है, आप तक कभी नहीं। `postmaster` और बाकी आरक्षित नाम 422 `reserved_address` देते हैं।
ttlMinutesnumber
लीज़ कितनी लंबी होनी चाहिए, मिनटों में, 1 से 1440 तक। डिफ़ॉल्ट 60। उस दायरे के बाहर कुछ भी चुपचाप समायोजित होने के बजाय फ़ील्ड का नाम लेते हुए 422 `invalid_parameter` देता है। आप तब तक किसी को वही समाप्ति दिखा चुके होते जो आपने माँगी थी। 24 घंटे बनने के समय से नापे जाते हैं, इसलिए आगे से लिया गया हर घंटा एक extension है जो बाद में खर्च नहीं हो सकता: `ttlMinutes: 120` 22 extensions के साथ लौटता है, और 1440 एक के भी बिना।

रिस्पॉन्स: temp_inbox, साथ में एक token

idstring
इनबॉक्स id, `tinb_` और चौबीस hex अक्षर। वह बाकी हर कॉल के path में जाती है, और वह कोई रहस्य नहीं है। टोकन है।
addressstring
सौंपने लायक पता। `that+anything@` पर भेजी गई मेल भी उस तक पहुँचती है, क्योंकि खोज से पहले sub-addressing समेट दी जाती है।
domainstring
वह pooled डोमेन जिस पर पता है, अलग निकालकर दिया गया ताकि क्लाइंट को उसे दिखाने के लिए पता parse न करना पड़े।
createdAtstring
ISO-8601। 24 घंटे की सीमा इसी से नापी जाती है, अंतिम extension से नहीं।
expiresAtstring
ISO-8601। इसके बाद टोकन तुरंत प्रमाणीकरण बंद कर देता है, और sweep अपने अगले run पर मेल हटा देता है।
extensionsLeftnumber
`extend` और कितनी बार असल में समय खरीदेगा, दोनों सीमाएँ गिनते हुए: लीज़ जो 23 extensions देती है, और `createdAt` से 24 घंटे जिनसे वह कभी आगे नहीं जा सकती — जो भी पहले आए। `ttlMinutes: 1440` से बना इनबॉक्स कुछ भी खर्च किए बिना 0 बताता है। शून्य का मतलब है कि कॉल 409 देगी, और क्लाइंट को इसी पर बटन धूसर करना चाहिए, दबाकर पता लगाने के बजाय।
messageCountnumber
इस इनबॉक्स ने कितने संदेश स्वीकार किए, न कि कितने दिख रहे हैं। एक हटाने पर यह घटता नहीं: सीमा आगमन गिनती है, इसलिए हटाने से भंडारण खाली होता है, जगह नहीं।
messageLimitnumber
सीमा, हर इनबॉक्स पर भेजी जाती है ताकि क्लाइंट हमारा स्थिरांक hardcode किए बिना "भरा हुआ" कह सके।
lastMessageAtstring | null
मेल आख़िरी बार कब आई, ISO-8601, या null अगर कोई नहीं आई। दो मिनट से इंतज़ार कर रहे व्यक्ति के लिए नए इनबॉक्स पर null शांत इनबॉक्स से बहुत अलग पढ़ा जाता है।
tokenstring
क्रेडेंशियल, इसी रिस्पॉन्स पर और किसी पर नहीं। `oe_inbox_` और 43 base64url अक्षर; row केवल keyed hash रखती है, इसलिए उसे दोबारा पढ़ा या वापस पाया नहीं जा सकता।

बाकी हर इनबॉक्स रिस्पॉन्स (retrieve, extend) यही ऑब्जेक्ट है, बिना token के।