Aller au contenu
Référence API
Référence API

Créer un guardrail

Créez un modèle, un fournisseur et une politique budgétaire réutilisables.

Créez un modèle, un fournisseur et une politique budgétaire réutilisables.

Point de terminaison

POST /api/v1/guardrails
URL de base
https://runapi.ai
Version de l'API
v1
Authentification
Authorization: Bearer YOUR_MANAGEMENT_API_KEY
Autorisation
Nécessite une clé API de gestion d'administrateur de compte.
02

Requête

Corps JSON

Envoyez les valeurs uniquement à l'emplacement de requête indiqué.

Corps JSON10 champs
allowed_modelsarray | null
Optionnel

Liste blanche de modèles.

allowed_providersarray | null
Optionnel

Liste d'autorisation des noms de fournisseurs.

blocked_modelsarray | null
Optionnel

Liste noire de modèles, qui prend la priorité sur la liste blanche.

blocked_providersarray | null
Optionnel

Liste de blocage des noms de fournisseurs.

credit_limit_centsinteger | null
Optionnel

Plafond de dépenses total en cents USD.

credit_limit_reset_intervalstring | null
Optionnel

Cadence de réinitialisation du plafond de dépenses total.

Valeurs autorisées: daily, weekly, monthly
descriptionstring
Optionnel

Description libre optionnelle.

enabledboolean
Optionnel

Indique si le garde-fou est appliqué.

Par défaut: true
model_budgetsarray | null
Optionnel

Règles de budget par modèle.

namestring
Requis

Nom du guardrail unique au sein du compte.

03

Réponse de succès

HTTP 201

POST /api/v1/guardrails

JSON
{
  "allowed_models": [
    "gpt-5.4"
  ],
  "allowed_providers": [],
  "assignment_count": 1,
  "blocked_models": [],
  "blocked_providers": [],
  "created_at": "2026-07-27T10:00:00.000Z",
  "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

Réponse d'erreur (401)

HTTP 401
Schéma de réponse
JSON
{
  "properties": {
    "error": {
      "description": "Message d'erreur lisible par l'humain.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Exemple de réponse

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

Réponse d'erreur (403)

HTTP 403
Schéma de réponse
JSON
{
  "properties": {
    "error": {
      "description": "Message d'erreur lisible par l'humain.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Exemple de réponse

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

Réponse d'erreur (403)

HTTP 403
Schéma de réponse
JSON
{
  "properties": {
    "error": {
      "description": "Message d'erreur lisible par l'humain.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Exemple de réponse

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

Réponse d'erreur (400)

HTTP 400
Schéma de réponse
JSON
{
  "oneOf": [
    {
      "properties": {
        "error": {
          "description": "Message d'erreur lisible par l'humain.",
          "type": "string"
        }
      },
      "required": [
        "error"
      ],
      "type": "object",
      "unevaluatedProperties": false
    },
    {
      "properties": {
        "error": {
          "description": "Résumé de validation lisible par l'humain.",
          "type": "string"
        },
        "errors": {
          "additionalProperties": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "description": "Messages de validation indexés par champ de requête public, avec un tableau de chaînes lisibles par l'humain pour chaque champ.",
          "type": "object"
        }
      },
      "required": [
        "error",
        "errors"
      ],
      "type": "object",
      "unevaluatedProperties": false
    }
  ]
}

Exemple de réponse

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

Réponse d'erreur (422)

HTTP 422
Schéma de réponse
JSON
{
  "properties": {
    "error": {
      "description": "Résumé de validation lisible par l'humain.",
      "type": "string"
    },
    "errors": {
      "additionalProperties": {
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "description": "Messages de validation indexés par champ de requête public, avec un tableau de chaînes lisibles par l'humain pour chaque champ.",
      "type": "object"
    }
  },
  "required": [
    "error",
    "errors"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Exemple de réponse

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

Exemple cURL

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","allowed_models":["gpt-5.4"],"model_budgets":[{"match_mode":"include","models":["gpt-5.4"],"credit_limit_cents":10000,"credit_limit_reset_interval":"monthly"}]}'