إنشاء مفتاح API
أنشئ مفتاح API قياسياً. احفظ المفتاح النصي الواضح الذي تُعيده هذه العملية لأنه يُعرض مرة واحدة فقط.
أنشئ مفتاح API قياسياً. احفظ المفتاح النصي الواضح الذي تُعيده هذه العملية لأنه يُعرض مرة واحدة فقط.
نقطة النهاية
- عنوان URL الأساسي
https://runapi.ai- إصدار API
v1- المصادقة
Authorization: Bearer YOUR_MANAGEMENT_API_KEY
الطلب
أرسل القيم فقط في موقع الطلب المُدرج.
جسم JSON8 حقل
allowed_modelsarray | nullقائمة بيضاء اختيارية لمعرّفات النماذج.
credit_limit_centsinteger | nullحد إنفاق اختياري بالسنت الأمريكي.
credit_limit_reset_intervalstring | nullدورية إعادة تعيين اختيارية لحد إنفاق المفتاح.
القيم المسموح بها:daily, weekly, monthly
credit_limit_windowsobjectحدود الإنفاق المتجددة مفتاحها 1h أو 1d أو 7d؛ تحتوي كل قيمة على عدد صحيح موجب limit_cents.
enabledbooleanما إذا كانت الطلبات التي تستخدم هذا المفتاح مقبولة.
القيمة الافتراضية:true
guardrail_idstringمعرّف بادئة اختياري للحاجز الأمني يُرفق عند الإنشاء.
namestringاسم مألوف لمفتاح API.
tagsarrayسلاسل key:value كاملة (المفتاح 1–32 محرفاً، والقيمة 1–64، دون مسافات بيضاء؛ 20 وسماً كحد أقصى). وسم واحد من usage:developer أو usage:service؛ الافتراضي عند الإنشاء usage:service. بيئة واحدة اختيارية من env:production أو env:staging أو env:dev.
استجابة النجاح
POST /api/v1/keys
{
"allowed_models": [
"gpt-5.4"
],
"created_at": "2026-07-27T10:00:00.000Z",
"credit_limit_cents": 1000,
"credit_limit_reset_interval": "daily",
"credit_limit_windows": {
"1d": {
"limit_cents": 500
},
"1h": {
"limit_cents": 100
},
"7d": {
"limit_cents": 2000
}
},
"enabled": true,
"guardrail_id": "guardrail_123",
"id": "token_123",
"key": "runapi_plaintext_example",
"last_used_at": null,
"masked_token": "runapi_abc...wxyz",
"name": "Production",
"tags": [
"usage:service",
"env:production",
"dept:ml"
]
}
استجابة الخطأ (401)
مخطط الاستجابة
{
"properties": {
"error": {
"description": "رسالة خطأ قابلة للقراءة البشرية.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
مثال على الاستجابة
{
"error": "Authentication required"
}
استجابة الخطأ (403)
مخطط الاستجابة
{
"properties": {
"error": {
"description": "رسالة خطأ قابلة للقراءة البشرية.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
مثال على الاستجابة
{
"error": "Management API key required"
}
استجابة الخطأ (403)
مخطط الاستجابة
{
"properties": {
"error": {
"description": "رسالة خطأ قابلة للقراءة البشرية.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
مثال على الاستجابة
{
"error": "Account admin required"
}
استجابة الخطأ (400)
مخطط الاستجابة
{
"oneOf": [
{
"properties": {
"error": {
"description": "رسالة خطأ قابلة للقراءة البشرية.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
},
{
"properties": {
"error": {
"description": "ملخص التحقق القابل للقراءة البشرية.",
"type": "string"
},
"errors": {
"additionalProperties": {
"items": {
"type": "string"
},
"type": "array"
},
"description": "رسائل التحقق مفتاحها حقل الطلب العام، مع مصفوفة من السلاسل القابلة للقراءة البشرية لكل حقل.",
"type": "object"
}
},
"required": [
"error",
"errors"
],
"type": "object",
"unevaluatedProperties": false
}
]
}
مثال على الاستجابة
{
"error": "page must be an integer"
}
استجابة الخطأ (422)
مخطط الاستجابة
{
"properties": {
"error": {
"description": "ملخص التحقق القابل للقراءة البشرية.",
"type": "string"
},
"errors": {
"additionalProperties": {
"items": {
"type": "string"
},
"type": "array"
},
"description": "رسائل التحقق مفتاحها حقل الطلب العام، مع مصفوفة من السلاسل القابلة للقراءة البشرية لكل حقل.",
"type": "object"
}
},
"required": [
"error",
"errors"
],
"type": "object",
"unevaluatedProperties": false
}
مثال على الاستجابة
{
"error": "Validation failed",
"errors": {
"base": [
"Validation failed"
]
}
}
مثال cURL
curl -X POST https://runapi.ai/api/v1/keys \
-H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"name":"Production","tags":["env:production","dept:ml"],"credit_limit_cents":1000,"credit_limit_reset_interval":"daily","credit_limit_windows":{"1h":{"limit_cents":100},"1d":{"limit_cents":500},"7d":{"limit_cents":2000}},"allowed_models":["gpt-5.4"],"guardrail_id":"guardrail_123"}'