İçeriğe geç
API Referansı
API Referansı

Bir koruma bariyeri oluşturun

Yeniden kullanılabilir bir model, sağlayıcı ve bütçe politikası oluşturun.

Yeniden kullanılabilir bir model, sağlayıcı ve bütçe politikası oluşturun.

Uç Nokta

POST /api/v1/guardrails
Temel URL
https://runapi.ai
API sürümü
v1
Kimlik doğrulama
Authorization: Bearer YOUR_MANAGEMENT_API_KEY
Yetkilendirme
Hesap yöneticisi Yönetim API anahtarı gerektirir.
02

İstek

JSON gövdesi

Değerleri yalnızca listelenen istek konumunda gönderin.

JSON gövdesi12 alan
alert_threshold_percentinteger
İsteğe bağlı

Bütçe uyarı eşiği yüzdesi.

Varsayılan: 80 Aralık: 1 - 100
allowed_modelsarray | null
İsteğe bağlı

Model izin listesi.

allowed_providersarray | null
İsteğe bağlı

Sağlayıcı adı izin verilenler listesi.

blocked_modelsarray | null
İsteğe bağlı

İzin listesinden öncelikli olan model engel listesi.

blocked_providersarray | null
İsteğe bağlı

Sağlayıcı adı engellenenler listesi.

credit_limit_behaviorstring
İsteğe bağlı

Bütçe uygulama modu. Etiket atamaları block gerektirir.

İzin verilen değerler: block, alert_only Varsayılan: block
credit_limit_centsinteger | null
İsteğe bağlı

USD cent cinsinden toplam harcama limiti.

credit_limit_reset_intervalstring | null
İsteğe bağlı

Toplam harcama sınırı sıfırlama dönemi. Tutar ayarlanmışsa Null ömür boyu anlamına gelir.

İzin verilen değerler: daily, weekly, monthly
descriptionstring
İsteğe bağlı

İsteğe bağlı serbest biçimli açıklama.

enabledboolean
İsteğe bağlı

Koruyucunun uygulanıp uygulanmadığı.

Varsayılan: true
model_budgetsarray | null
İsteğe bağlı

Model başına bütçe kuralları.

namestring
Zorunlu

Hesap içinde benzersiz olan guardrail adı.

03

Başarılı yanıt

HTTP 201

POST /api/v1/guardrails

JSON
{
  "alert_threshold_percent": 80,
  "allowed_models": [
    "gpt-5.4"
  ],
  "allowed_providers": [],
  "assignment_count": 1,
  "blocked_models": [],
  "blocked_providers": [],
  "created_at": "2026-07-27T10:00:00.000Z",
  "credit_limit_behavior": "block",
  "credit_limit_cents": 50000,
  "credit_limit_reset_interval": "monthly",
  "description": "Production policy",
  "enabled": true,
  "id": "guardrail_123",
  "model_budgets": [
    {
      "credit_limit_cents": 10000,
      "credit_limit_reset_interval": "monthly",
      "match_mode": "include",
      "models": [
        "gpt-5.4"
      ]
    }
  ],
  "name": "Production budget"
}
04

Hata yanıtı (401)

HTTP 401
Yanıt şeması
JSON
{
  "properties": {
    "error": {
      "description": "İnsan tarafından okunabilir hata mesajı.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Yanıt örneği

JSON
{
  "error": "Authentication required"
}
05

Hata yanıtı (403)

HTTP 403
Yanıt şeması
JSON
{
  "properties": {
    "error": {
      "description": "İnsan tarafından okunabilir hata mesajı.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Yanıt örneği

JSON
{
  "error": "Management API key required"
}
06

Hata yanıtı (403)

HTTP 403
Yanıt şeması
JSON
{
  "properties": {
    "error": {
      "description": "İnsan tarafından okunabilir hata mesajı.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Yanıt örneği

JSON
{
  "error": "Account admin required"
}
07

Hata yanıtı (400)

HTTP 400
Yanıt şeması
JSON
{
  "oneOf": [
    {
      "properties": {
        "error": {
          "description": "İnsan tarafından okunabilir hata mesajı.",
          "type": "string"
        }
      },
      "required": [
        "error"
      ],
      "type": "object",
      "unevaluatedProperties": false
    },
    {
      "properties": {
        "error": {
          "description": "İnsan tarafından okunabilir doğrulama özeti.",
          "type": "string"
        },
        "errors": {
          "additionalProperties": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "description": "Herkese açık istek alanına göre anahtarlanan doğrulama mesajları; her alan için insan tarafından okunabilir dizelerden oluşan bir dizi içerir.",
          "type": "object"
        }
      },
      "required": [
        "error",
        "errors"
      ],
      "type": "object",
      "unevaluatedProperties": false
    }
  ]
}

Yanıt örneği

JSON
{
  "error": "page must be an integer"
}
08

Hata yanıtı (422)

HTTP 422
Yanıt şeması
JSON
{
  "properties": {
    "error": {
      "description": "İnsan tarafından okunabilir doğrulama özeti.",
      "type": "string"
    },
    "errors": {
      "additionalProperties": {
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "description": "Herkese açık istek alanına göre anahtarlanan doğrulama mesajları; her alan için insan tarafından okunabilir dizelerden oluşan bir dizi içerir.",
      "type": "object"
    }
  },
  "required": [
    "error",
    "errors"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Yanıt örneği

JSON
{
  "error": "Validation failed",
  "errors": {
    "base": [
      "Validation failed"
    ]
  }
}
09

cURL örneği

CURL
curl -X POST https://runapi.ai/api/v1/guardrails \
  -H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"name":"Production budget","description":"Production policy","enabled":true,"credit_limit_cents":50000,"credit_limit_reset_interval":"monthly","credit_limit_behavior":"block","alert_threshold_percent":80,"allowed_models":["gpt-5.4"],"model_budgets":[{"match_mode":"include","models":["gpt-5.4"],"credit_limit_cents":10000,"credit_limit_reset_interval":"monthly"}]}'