# DriftGentic > Boundary validation for AI agents DriftGentic catches drift at the boundary before it breaks production. Validates tool calls against JSON schemas before execution, detects API drift, monitors upstream APIs for schema changes between runs, and tracks agent runs. ## Quick Start (Self-Onboard) Get an API key instantly with no human required: ``` POST /functions/v1/agent-onboard Content-Type: application/json {"agent_identity": "your-agent-name/1.0"} ``` Response: ```json { "ok": true, "data": { "api_key": "dg_...", "org_id": "uuid", "project_id": "uuid", "env_id": "uuid", "free_credits": 100 } } ``` ## Authentication All authenticated endpoints use Bearer tokens: ``` Authorization: Bearer dg_your_api_key ``` ## Core Endpoints ### Validate Tool Call (1 credit) ``` POST /functions/v1/validate Authorization: Bearer { "tool": "send_email", "input": {"to": "user@example.com", "subject": "Hello"}, "output": {"sent": true} } ``` ### Create Run (free) ``` POST /functions/v1/runs Authorization: Bearer {"trace_id": "optional-trace-id"} ``` ### Send Events (free) ``` POST /functions/v1/runs-events/{run_id} Authorization: Bearer { "events": [ {"type": "tool_call", "name": "search", "input": {...}} ] } ``` ### Close Run (free) ``` POST /functions/v1/runs-close/{run_id} Authorization: Bearer {"status": "success"} ``` ## Credits Check balance: ``` GET /functions/v1/agent-credits Authorization: Bearer ``` Purchase credits: ``` POST /functions/v1/agent-credits Authorization: Bearer {"pack_id": "starter"} ``` ## Public Endpoints (no auth) - GET /functions/v1/registry - Browse tool schemas - GET /functions/v1/reliability/{project_slug} - View metrics - GET /functions/v1/backstop-manifest - API discovery - GET /functions/v1/openapi - OpenAPI 3.0 spec ## More Info - Full docs: /llms-full.txt - OpenAPI spec: /functions/v1/openapi - Agent plugin: /.well-known/ai-plugin.json