> For the complete documentation index, see [llms.txt](https://docs.roboflow.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboflow.com/reference/hi/authentication/authentication/find-your-roboflow-api-key.md).

# अपनी Roboflow API Key खोजें

Roboflow API और Roboflow Inference के साथ authenticate करने के लिए अपनी API Key खोजें

**आप अपनी API कुंजी यहाँ पा सकते हैं** [**app.roboflow.com/settings/api**](https://app.roboflow.com/settings/api)

***

API कुंजी के दो प्रकार होते हैं:

* **निजी API कुंजियाँ**: का उपयोग Roboflow API और [Roboflow Inference](https://docs.roboflow.com/deployment/self-hosted/self-hosted)
* **सार्वजनिक / प्रकाशन योग्य API कुंजी**: द्वारा उपयोग किया जाता है `inference.js` , हमारा JavaScript inference SDK

API कुंजियाँ एक Workspace तक सीमित होती हैं, जिसका अर्थ है कि आपको उस Workspace के निजी प्रोजेक्ट्स तक पहुँचने के लिए उसी Workspace से संबद्ध API कुंजी का उपयोग करना होगा।

<figure><img src="https://4110124481-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgmbAGf4KNeNPXGuUuKYv%2Fuploads%2Fgit-blob-ee9c711746c549f84e164db9d4d68158b4a01050%2Fimage-a4b3fa.png?alt=media" alt=""><figcaption></figcaption></figure>

नई कुंजी जारी करने के लिए "Generate New Key" पर क्लिक करें, या पहले से बनाई गई किसी कुंजी को कॉपी करें।

{% hint style="success" %}
अपनी निजी API कुंजी को गोपनीय रखना सुनिश्चित करें। इसे पासवर्ड की तरह संभालें; यह धारक को आपके workspace के डेटा और मॉडलों तक पहुँच देता है।
{% endhint %}

यदि आप कभी गलती से अपनी कुंजी किसी ऐसे व्यक्ति को उजागर कर देते हैं जिसे आपके workspace तक पहुँचने की अनुमति नहीं है, तो "Roll API Key" पर क्लिक करें, जो पिछली API कुंजी को निष्क्रिय कर देगा और एक नई कुंजी बनाएगा। नई कुंजी पुरानी कुंजी की सेटिंग्स बनाए रखती है, जिसमें यह भी शामिल है कि वह निष्क्रिय है या नहीं। यदि कुंजी किसी [समर्पित परिनियोजन](https://docs.roboflow.com/deployment/roboflow-cloud/dedicated-deployments)को चलाती है, तो Roboflow परिनियोजन को नई कुंजी पर स्थानांतरित कर देता है ताकि वह चलता रहे।

### एकाधिक API कुंजियाँ

Enterprise योजनाओं वाले Workspaces कई API कुंजियाँ बना सकते हैं, जिससे वे अपने पूरे प्रोडक्शन वर्कफ़्लो को बाधित किए बिना वातावरणों को अलग कर सकते हैं और विशिष्ट परिनियोजनों या कर्मियों की पहुँच तुरंत रद्द कर सकते हैं।

<figure><img src="https://4110124481-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgmbAGf4KNeNPXGuUuKYv%2Fuploads%2Fgit-blob-8c37745c31bc18690dce2ca774620af56c18de4b%2Fimage%20(1)-288cf9.png?alt=media" alt=""><figcaption><p>Enterprise Workspaces के लिए एकाधिक API कुंजी विकल्प</p></figcaption></figure>

हम यह भी प्रदान करते हैं [Scoped API Keys](/reference/hi/authentication/authentication/scoped-api-keys.md) अपने Enterprise ग्राहकों के लिए एक ऐड-ऑन के रूप में।

### डिफ़ॉल्ट API कुंजी

जब किसी workspace में कई कुंजियाँ होती हैं, तब भी ऐप कोड स्निपेट्स और सामान्य workspace कार्रवाइयों (जैसे: मॉडल मूल्यांकन परिणाम देखना) के लिए उनमें से किसी एक का उपयोग करता है। इसे चुनने के लिए, कुंजी बनाते समय "Set as default API key for this workspace" चुनें, या किसी मौजूदा कुंजी को संपादित करें। तब वह कुंजी कुंजी सूची में "Default" बैज दिखाती है। डिफ़ॉल्ट चुनने के लिए Advanced API Keys सुविधा आवश्यक है।

डिफ़ॉल्ट कुंजी को उन कार्रवाइयों के लिए आवश्यक अनुमतियाँ बनाए रखनी होंगी: `workspace:read`, `project:read`, `version:read`, `image:read`, और `model:infer`. Roboflow उन्हें आपके लिए जोड़ता है और तब तक लॉक रखता है जब तक कुंजी डिफ़ॉल्ट बनी रहती है। यदि आप चेकबॉक्स साफ़ कर देते हैं, तो वे अनुमतियाँ कुंजी पर बनी रहती हैं, लेकिन आप फिर उन्हें हटा सकते हैं। फ़ोल्डर-सीमित कुंजी डिफ़ॉल्ट नहीं हो सकती।

यदि कोई भी कुंजी डिफ़ॉल्ट के रूप में सेट नहीं है, तो ऐप उन अनुमतियों वाली सबसे पुरानी सक्षम workspace कुंजी पर वापस जाता है, और उस कुंजी पर इसके बजाय "In Use" बैज दिखता है। किसी कुंजी को निष्क्रिय या रद्द करने से पहले बैज जाँच लें, ताकि आप जान सकें कि आपके workspace की कार्रवाइयाँ और बिल किए गए उपयोग किसके तहत चल रहे हैं।

यदि किसी भी कुंजी के पास वे अनुमतियाँ नहीं हैं, तो कुंजी सूची एक चेतावनी दिखाती है। जब तक आप पूर्ण-पहुँच कुंजी नहीं बनाते, या किसी मौजूदा कुंजी को डिफ़ॉल्ट के रूप में सेट नहीं करते, तब तक ऐप द्वारा आपके लिए चलायी जाने वाली कार्रवाइयाँ विफल हो जाती हैं। इसमें मॉडल चलाना, Workflows चलाना और उनका पूर्वावलोकन करना, Auto Label, मॉडल मूल्यांकन, और डेटासेट निर्यात शामिल हैं।

## Roboflow Inference के साथ अपनी कुंजी का उपयोग करें

आपकी API कुंजी आपको Roboflow पर प्रशिक्षित मॉडलों, Roboflow Universe पर सार्वजनिक मॉडलों, और होस्टेड inference APIs तक पहुँच देती है। उपयोग करते समय इसे देने के कई तरीके हैं [Roboflow Inference](https://docs.roboflow.com/deployment/self-hosted/self-hosted).

### पर्यावरण चर

अनुशंसित तरीका यह है कि आप इसे इस रूप में सेट करें `ROBOFLOW_API_KEY` अपने वातावरण में। अधिकांश टर्मिनलों में:

```bash
export ROBOFLOW_API_KEY=YOUR_API_KEY
```

फिर उस टर्मिनल सत्र में चलाया गया कोई भी कमांड कुंजी तक पहुँच सकता है। देखें [पर्यावरण चर](/reference/hi/environment-variables.md) अन्य चर के लिए जिन्हें CLI और SDK पढ़ते हैं।

### Python

Python से Inference का उपयोग करते समय, कुंजी को कीवर्ड तर्क के रूप में दिया जा सकता है:

```python
from inference import get_model

model = get_model(model_id="...", api_key="YOUR_API_KEY")
```

{% hint style="success" %}
यदि कुंजी आपके वातावरण में सेट है, तो आपको इसे तर्क के रूप में देने की आवश्यकता नहीं है: `model = get_model(model_id="...")`.
{% endhint %}

### HTTP अनुरोध

जब सीधे सर्वर को कॉल करते हैं, तो कुंजी को एक `Authorization: Bearer` हेडर के रूप में भेजें। यह हेडर कुंजी को URLs, access logs, और browser history से बाहर रखता है, और हर रूट पर उसी तरह काम करता है:

```python
import requests

my_api_key = "YOUR_API_KEY"
headers = {"Authorization": f"Bearer {my_api_key}"}

url = "http://localhost:9001/soccer-players-5fuqs/1"
response = requests.post(url, headers=headers)

url = "http://localhost:9001/infer/object_detection"
payload = {"model_id": "soccer-players-5fuqs/1"}
response = requests.post(url, json=payload, headers=headers)
```

Self-hosted servers Inference रिलीज़ 1.5.0 से आगे यह हेडर पढ़ते हैं। होस्टेड APIs भी इसे स्वीकार करती हैं।

कुंजी को URL पैरामीटर के रूप में पास करना (`?api_key=...`) या के रूप में एक `api_key` अनुरोध payload में फ़ील्ड रखना पुराना चैनल है। यह अभी भी सर्वर के हर संस्करण पर काम करता है, लेकिन नए कोड के लिए अनुशंसित नहीं है:

```python
url = f"http://localhost:9001/soccer-players-5fuqs/1?api_key={my_api_key}"
response = requests.post(url)
```

जब कई चैनल एक कुंजी ले जाते हैं, तो query parameter, header पर प्राथमिकता लेता है, और header, body field पर।

Python SDK का उपयोग करते समय, headers स्वयं बनाने के बजाय client पर transport एक बार सेट करें: देखें [API key transport](/reference/hi/inference/inference-sdk/configuration.md#api-key-transport).

### Docker

यदि आप Inference Server को स्थानीय रूप से Docker container में चलाते हैं, तो कुंजी को `docker run` कमांड में प्रदान करें:

```bash
docker run -it --rm --network=host -e ROBOFLOW_API_KEY=YOUR_API_KEY roboflow/roboflow-inference-server-cpu:latest
```

उस सर्वर को भेजे गए अनुरोध तब `api_key` को अनुरोध payload से छोड़ सकते हैं।

{% hint style="warning" %}
Self-hosted server को डिफ़ॉल्ट रूप से API कुंजी की आवश्यकता नहीं होती। container में एक सेट करने से यह सीमित नहीं होता कि सर्वर को कौन कॉल कर सकता है: देखें [स्व-होस्टेड सर्वर को सुरक्षित करना](https://docs.roboflow.com/deployment/self-hosted/inference-server/configuration/security) प्रमाणीकरण लागू करने के लिए।
{% endhint %}
