Aller au contenu principal
SPÉCIFICATION OPENAPI • REST API V1

Référence API REST SecOps

Documentation exhaustive des endpoints HTTPS d'ingestion, d'évaluation synchrone, de quarantaine et d'export du registre d'audit.

Référence API REST SecOps

Référence API REST

L'ensemble des services de la passerelle Boundry est disponible au travers d'une API REST HTTPS haute performance. Les mutations sont protégées contre les rejeux et respectent les standards d'interopérabilité cloud.


Informations Générales​

  • Point d'Entrée Principal : https://api.boundry.cloud
  • Encodage & Format : application/json (UTF-8 strict)
  • Authentification : Jeton Bearer d'organisation ou en-tête X-Api-Key :
En-têtes d'Authentification
Authorization: Bearer sk_org_votre_cle_ici
X-Api-Key: sk_org_votre_cle_ici
Content-Type: application/json

1. Proxy LLM Compatible OpenAI (/v1/chat/completions)​

Permet de relayer vos requêtes de modèles au travers du pare-feu d'exécution sans modifier le code de vos applications. Compatible à 100% avec les SDKs officiels OpenAI et les frameworks d'agents.

Endpoint​

POST /v1/chat/completions

Paramètres de Requête (JSON Body)​

ChampTypeObligatoireDescription
modelstringOUIModèle ciblé (ex: gpt-4o, gpt-4-turbo, claude-3-5-sonnet).
messagesarray<object>OUIListe des messages contenant role (system, user, assistant, tool) et content.
temperaturenumberOptionnelTempérature d'échantillonnage (défaut: 1.0).
max_tokensintegerOptionnelNombre maximal de jetons générés.
streambooleanOptionnelMode streaming de jetons en temps réel (défaut: false).

Exemple de Requête​

cURL
curl -X POST "https://api.boundry.cloud/v1/chat/completions" \
-H "Authorization: Bearer sk_org_votre_cle_ici" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o",
"messages": [
{"role": "system", "content": "Assistant SecOps."},
{"role": "user", "content": "Analyse les journaux d’événements récents."}
]
}'

Réponse 200 OK (Format OpenAI Conforme)​

{
"id": "chatcmpl-boundry-7f91a02b3c4d5e",
"object": "chat.completion",
"created": 1729605600,
"model": "gpt-4o",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "[Boundry Shield Verified] Analysis of 2 message(s) completed successfully. Security compliance: Passed."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 28,
"completion_tokens": 18,
"total_tokens": 46
}
}

Réponse d'Interception 400 Bad Request (Tentative d'Attaque)​

Lorsqu'une tentative d'injection de prompt directe ou une adresse SSRF est détectée, la passerelle bloque la requête et retourne un format d'erreur conforme aux spécifications OpenAI :

{
"error": {
"message": "Blocked by Boundry AI Firewall: Prompt injection detected (bypass_ignore_instructions_en).",
"type": "boundry_security_violation",
"param": "messages",
"code": "prompt_injection_detected"
}
}

2. Ingestion & Évaluation d'Outil (/events)​

C'est le point de terminaison sollicité de manière synchrone ou asynchrone par les Sensor SDKs lors de l'exécution d'un outil d'agent.

Endpoint​

POST /events (alias: /ingest/event)

Corps de la Requête (JSON)​

ChampTypeObligatoireDescription
agent_idstringOUIIdentifiant logique de l'agent (ex: billing-bot-01).
tool_namestringOUINom de la fonction ou outil exécuté (ex: send_wire_transfer).
tool_inputstringOptionnelArguments transmis à l'outil sous forme textuelle ou JSON.
tool_outputstringOptionnelRetour de l'outil pour analyse anti-injection indirecte.
event_typestringOUIPhase du cycle : tool_start, tool_end, ou tool_error.
frameworkstringOptionnelFramework de l'agent : langchain, crewai, autogpt, generic.
run_idstringOptionnelIdentifiant de corrélation pour la traçabilité de session.

Exemple de Requête (tool_start)​

cURL
curl -X POST "https://api.boundry.cloud/events" \
-H "X-Api-Key: sk_org_votre_cle_ici" \
-H "Content-Type: application/json" \
-d '{
"agent_id": "finance-agent-01",
"tool_name": "database_query",
"tool_input": "SELECT * FROM transactions WHERE amount > 5000",
"event_type": "tool_start",
"framework": "langchain",
"run_id": "run_982b14e"
}'

Réponses Possibles​

Action Validée (200 OK)​

{
"status": "approved",
"redacted_input": "SELECT * FROM transactions WHERE amount > 5000"
}

Action Suspendue en Quarantaine (200 OK avec HITL)​

{
"status": "quarantine",
"quarantine_id": "quar_89ab31f4e"
}

Action Bloquée Définitivement​

{
"status": "blocked",
"reason": "SSRF Protection: Blocked 1 target(s). Cloud instance metadata service '169.254.169.254' is strictly blocked."
}

3. Gestion de la Quarantaine (Human-in-the-Loop)​

Consultation du Statut d'une Action (GET /api/quarantine/{id}/status)​

Les Sensors en attente interrogent cet endpoint pour savoir si l'opérateur a débloqué l'action :

GET /api/quarantine/{quarantine_id}/status

cURL
curl -X GET "https://api.boundry.cloud/api/quarantine/quar_89ab31f4e/status" \
-H "X-Api-Key: sk_org_votre_cle_ici"
{
"status": "approved",
"resolved_by": "secops-lead@entreprise.com",
"resolved_at": "2026-10-22T14:15:30Z"
}

4. Catalogue des Modèles Supportés (GET /v1/models)​

GET /v1/models

cURL
curl -X GET "https://api.boundry.cloud/v1/models" \
-H "Authorization: Bearer sk_org_votre_cle_ici"
{
"object": "list",
"data": [
{"id": "gpt-4o", "object": "model", "created": 1715367049, "owned_by": "boundry-gateway"},
{"id": "gpt-4-turbo", "object": "model", "created": 1712361441, "owned_by": "boundry-gateway"},
{"id": "claude-3-5-sonnet", "object": "model", "created": 1718841600, "owned_by": "boundry-gateway"},
{"id": "mistral-large", "object": "model", "created": 1708905600, "owned_by": "boundry-gateway"}
]
}

5. Synthèse des Codes HTTP​

Code HTTPDescription TechniqueAction Recommandée
200 OKRequête évaluée et autorisée avec succès.Poursuivre le traitement normal.
400 Bad RequestInjection de prompt, tentative SSRF ou payload invalide.Consulter le message d'erreur et corriger l'instruction.
401 UnauthorizedClé d'API absente, révoquée ou malformée.Vérifier la clé sk_org_... dans la console Boundry.
403 ForbiddenAction interdite par une règle stricte du pare-feu.Vérifier les permissions de l'outil et les plafonds configurés.
404 Not FoundIdentifiant de ressource (agent, quarantaine) inconnu.Contrôler l'identifiant transmis.
429 Too Many RequestsQuota de requêtes par minute ou par organisation dépassé.Répartir les requêtes ou augmenter les limites de débit.
500 Internal ErrorErreur serveur de passerelle.Consulter la page d'état de service.