Skip to content

إنشاء مفتاح API

POST /v1/api-keys

إنشاء مفتاح API جديد للمصادقة مع DocMap API. يمكن لكل مستخدم أن يمتلك حتى 10 مفاتيح API نشطة (غير ملغاة).

جرّبه

اختبر هذا الـ endpoint بشكل تفاعلي في Swagger UI.

المصادقة مطلوبة

أدرج مفتاح API في ترويسة Authorization.

الطلب

الترويسات

الترويسةالقيمةمطلوب
AuthorizationBearer <token>نعم
Content-Typeapplication/jsonنعم

الجسم

الحقلالنوعمطلوبالوصف
namestringنعمتسمية وصفية للمفتاح (1--100 حرف).
expiresInstringنعمفترة انتهاء الصلاحية: "30d" أو "60d" أو "90d" أو "1y" أو "never".

أمثلة الكود

bash
curl -X POST https://api.docmap.io/v1/api-keys \
  -H "Authorization: Bearer dm_live_abc123def456ghi789jkl012mno345" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Production Server",
    "expiresIn": "90d"
  }'
typescript
const apiKey = process.env.DOCMAP_API_KEY

const response = await fetch('https://api.docmap.io/v1/api-keys', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${apiKey}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    name: 'Production Server',
    expiresIn: '90d',
  }),
})

const { data } = await response.json()

// IMPORTANT: Store the key immediately — it cannot be retrieved later
console.log('API Key:', data.key)
console.log('Key ID:', data.apiKey.id)
python
import requests

api_key = "dm_live_abc123def456ghi789jkl012mno345"

response = requests.post(
    "https://api.docmap.io/v1/api-keys",
    headers={
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
    },
    json={
        "name": "Production Server",
        "expiresIn": "90d",
    },
)

data = response.json()["data"]

# IMPORTANT: Store the key immediately — it cannot be retrieved later
print(f"API Key: {data['key']}")
print(f"Key ID: {data['apiKey']['id']}")

الاستجابة

الحالة: 201 Created

جسم الاستجابة مغلف في كائن data.

WARNING

قيمة المفتاح الخام تُرجع فقط في هذه الاستجابة. خزّنه بشكل آمن فوراً -- لا يمكن استرجاعه لاحقاً.

الحقول

الحقلالنوعالوصف
keystringمفتاح API الخام (مثال: dm_live_abc123def456ghi789jkl012mno345). يُعرض مرة واحدة فقط.
apiKeyobjectكائن البيانات الوصفية للمفتاح (انظر أدناه).

كائن apiKey:

الحقلالنوعالوصف
idstringمعرّف فريد لمفتاح API.
userIdstringمعرّف المستخدم الذي يملك المفتاح.
namestringتسمية وصفية للمفتاح.
prefixstringالأحرف الأولى من المفتاح للتعريف (مثال: dm_live_abc1).
expiresAtstring | nullطابع زمني ISO 8601 لانتهاء الصلاحية، أو null إذا كان المفتاح لا ينتهي أبداً.
lastUsedAtstring | nullطابع زمني ISO 8601 لآخر مرة استُخدم فيها المفتاح. null إذا لم يُستخدم أبداً.
createdAtstringطابع زمني ISO 8601 لوقت إنشاء المفتاح.
revokedbooleanما إذا كان المفتاح قد تم إلغاؤه. دائماً false لمفتاح مُنشأ حديثاً.

مثال

json
{
  "data": {
    "key": "dm_live_r4nd0mK3yV4lu3x9w8v7u6t5s4q3p2n1m0l9k8j7",
    "apiKey": {
      "id": "ak_1a2b3c4d5e6f7g8h",
      "userId": "uid_a1b2c3d4e5f6",
      "name": "Production Server",
      "prefix": "dm_live_r4nd",
      "expiresAt": "2025-02-18T10:00:00.000Z",
      "lastUsedAt": null,
      "createdAt": "2024-11-20T10:00:00.000Z",
      "revoked": false
    }
  }
}

الأخطاء

الحالةالرمزالوصف
400MAX_KEYS_REACHEDلقد وصلت إلى الحد الأقصى وهو 10 مفاتيح API نشطة. ألغِ مفتاحاً موجوداً قبل إنشاء مفتاح جديد.
401UNAUTHORIZEDمفتاح API / رمز مفقود أو غير صالح أو منتهي الصلاحية.

وثائق DocMap API