API कुंजियाँ
कुंजियाँ पढ़ें, बनाएँ, बदलें, रोटेट करें और रद्द करें, और पढ़ें कि उन्होंने क्या किया।
इस पेज की 11 कॉल में से कोई भी आपकी अपनी कुंजी से आपके वर्कस्पेस पर चलाता है।
कुंजियाँ पढ़ना
GET /keys हर वह कुंजी सूचीबद्ध करता है जिसे कॉल करने वाला देख सकता है, सबसे नई पहले और एक बार में एक पेज, उसकी स्थिति, स्कोप, भूमिका, भेजने के दायरे, पिछले इस्तेमाल और यह कि किसने उसे बनाया और आख़िरी बार बदला, सबके साथ। GET /keys/{id} एक पढ़ता है। कोई भी रीड कभी सीक्रेट नहीं लौटाता: दो कुंजियों में फ़र्क करने के लिए maskedKey काफ़ी है। दोनों को keys:read चाहिए।
{ "object": "api_key", "id": "4c1b257a66287fd113bd89d0", "name": "Billing sender", "maskedKey": "oe_live_4c1b…kX7a", "status": "active", "scopes": ["emails:send"], "roleId": null, "domainAllowlist": ["billing.acme.com"], "expiresAt": "2026-12-22T09:00:00.000Z", "lastUsedAt": "2026-09-23T08:14:02.000Z", "createdBy": { "kind": "apiKey", "name": "API key Provisioner", "label": "API key Provisioner" }}कुंजियाँ बनाना और बदलना
POST /keysएक कुंजी बनाता है और उसका सीक्रेटtokenमें एक बार लौटाता है। न दिए जाने पर स्कोपemails:sendहोता है और भूमिका, भेजने का दायरा और समाप्ति कॉल करने वाले की अपनी होती हैं।PATCH /keys/{id}कुंजी का नाम बदलता है, उसके स्कोप या भेजने का दायरा बदल देता है, औरenabledसे उसे बंद और चालू करता है। बंद करना उलटा जा सकने वाला विकल्प है: कुंजी सब कुछ रखती है और फिर से चालू होने तकinactive_api_keyके साथ ठुकराई जाती है।POST /keys/{id}/rotateकुंजी को नया सीक्रेट देता है और उसे एक बार लौटाता है। पुराना सीक्रेट उसी पल काम करना बंद कर देता है जब कॉल लौटती है।POST /keys/{id}/revokeकुंजी को हमेशा के लिए सेवा से हटा देता है, वैकल्पिकreasonके साथ। इसके बादDELETE /keys/{id}उसे सूची से हटाता है और उसका इतिहास रखता है।- इनमें से हर एक को
keys:manageचाहिए। कॉल करने वाली कुंजी को ख़ुद रोटेट करनाkeys:writeसे भी होता है, ठीकPOST /keys/self/rotateकी तरह।
कभी कॉल करने वाले से ज़्यादा व्यापक नहीं
हर बदलाव उस कुंजी के मुक़ाबले जाँचा जाता है जो उसे करती है। जो कुंजी किसी भी अक्ष पर कॉल करने वाले से बाहर चली जाए, उसे 403 beyond_caller_authority के साथ ठुकराया जाता है, और param उस अक्ष का नाम देता है:
- स्कोप: सिर्फ़ वे जो कॉल करने वाले के पास उसकी अपनी भूमिका द्वारा सीमित किए जाने के बाद हैं।
- भूमिका: किसी भूमिका से सीमित कॉल करने वाला सिर्फ़ उसी भूमिका से सीमित कुंजियाँ बना और संभाल सकता है।
- समाप्ति: जिस कॉल करने वाले की समाप्ति है वह सिर्फ़ ऐसी कुंजियाँ बना और संभाल सकता है जो उससे बाद में समाप्त न हों।
- मोड: टेस्ट कुंजी सिर्फ़ टेस्ट कुंजियों तक पहुँचती है।
- भेजने का दायरा: सिर्फ़ कॉल करने वाले के अपने दायरे के भीतर के डोमेन और पते, और एक पता रखना कभी उसके पूरे डोमेन को कवर नहीं करता।
कुछ डोमेन या पतों तक सीमित कुंजी सिर्फ़ वे कुंजियाँ देखती है जिनका भेजने का दायरा उसके अपने दायरे के भीतर है, इसलिए कोई भी दूसरी कुंजी 404 है। OAuth से इन कॉल तक सिर्फ़ वर्कस्पेस का मालिक पहुँचता है, और किसी सदस्य का टोकन owner_only के साथ ठुकराया जाता है।
keys:manage देने से पहले
कंसोल कुंजी बनाने या रोटेट करने से पहले आपसे दोबारा सत्यापन करवाता है। कुंजी से की गई कॉल से यह नहीं माँगा जा सकता, इसलिए keys:manage ऐसा क्रेडेंशियल है जो क्रेडेंशियल बनाता है: इसे रखने वाली लीक हुई कुंजी अपनी पहुँच तक अपनी कुंजियाँ बना सकती है, जो उसके रद्द होने के बाद भी काम करती रहती हैं।
keys:manageसिर्फ़ उस ऑटोमेशन को दें जिसका काम कुंजियाँ जारी करना है, कभी ईमेल भेजने वाली कुंजी को नहीं।- उस कुंजी को सीमित करें: एक भूमिका, एक भेजने का दायरा और एक समाप्ति। वह जो कुछ बनाती है उसे तीनों विरासत में मिलते हैं और वह उनसे कभी आगे नहीं जा सकता।
GET /keys/activityपर नज़र रखें। वह जो भी कुंजी बनाती, बदलती या रद्द करती है वह नाम सहित उसी के खाते में दर्ज होती है, इसलिए लीक उन कुंजियों के रूप में दिखता है जिनकी आपको उम्मीद नहीं थी।keys:readअनुरोध लॉग को, IP पतों और यूज़र एजेंट समेत, उजागर करता है। इसे ऑडिट एक्सेस की तरह मानें।
अनुरोध लॉग और गतिविधि
GET /keys/requests और GET /keys/{id}/requests किसी कुंजी की हर प्रमाणित कॉल पढ़ते हैं, सबसे नई पहले: मेथड, पाथ, स्थिति, एरर कोड, अवधि, IP और यूज़र एजेंट, कभी बॉडी या क्वेरी स्ट्रिंग नहीं। keyIds, failedOnly, since और until वे फ़िल्टर हैं जो कंसोल देता है। GET /keys/activity और GET /keys/{id}/activity पढ़ते हैं कि कुंजियों के साथ क्या हुआ, और actor बताता है कि यह किसने किया, @username या API key <name> के रूप में। कुछ भी हटाया नहीं जाता, और हटाई गई कुंजी अपना इतिहास रखती है।