Enrol Your Agent in Continuous Monitoring
Get your API key, embed two lines of code, and start generating continuous evidence for your insurer.
NAIL SDK Documentation
Integrate AI agent liability cover into your platform. Run adversarial diagnostics, manage policies, process claims, and embed live safety badges.
Quick Start
Base URL: https://neuravant.ai
Auth: Bearer token via POST /api/auth/login
Format: All requests/responses are JSON
Authentication
Register an account and login to get a JWT token. Include it in all subsequent requests.
# Register a new account curl -X POST https://neuravant.ai/api/auth/register \ -H "Content-Type: application/json" \ -d '{"email": "dev@example.com", "password": "secure123", "full_name": "Dev User", "organisation": "Acme AI"}'
Base URL & Headers
# All authenticated requests Authorization: Bearer <your-jwt-token> Content-Type: application/json # Or use API key X-API-Key: <your-api-key>
Submit Diagnostic
curl -X POST https://neuravant.ai/api/diagnostic/submit \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "agent_name": "CustomerBot", "agent_url": "https://api.example.com/chat", "organisation": "Acme AI", "autonomy_level": "semi_autonomous" }' # Response { "job_id": "abc-123-def", "status": "queued", "agent_name": "CustomerBot" }
Parameters
| Field | Type | Required | Description |
|---|---|---|---|
agent_name |
string | Yes | Display name for the agent |
agent_url |
string | No | Agent API endpoint (for live testing) |
organisation |
string | No | Company name |
autonomy_level |
string | No | human_in_loop | semi_autonomous | fully_autonomous |
List Diagnostic Jobs
curl -H "Authorization: Bearer $TOKEN" \
https://neuravant.ai/api/diagnostic/jobs
List Policies
curl -H "Authorization: Bearer $TOKEN" \ https://neuravant.ai/api/policy/list # Response { "total": 2, "policies": [ { "policy_id": "pol-abc123", "agent_name": "CustomerBot", "tier": "professional", "nail_rating": "AA", "coverage_limit": 2000000, "monthly_premium": 416.67, "status": "active" } ] }
Submit Claim
curl -X POST https://neuravant.ai/api/claims/submit \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "policy_id": "pol-abc123", "agent_name": "CustomerBot", "incident_type": "hallucination_liability", "incident_date": "2026-03-01", "description": "Agent provided incorrect medical advice", "claimed_amount": 50000 }'
List Claims
curl -H "Authorization: Bearer $TOKEN" \
https://neuravant.ai/api/claims
Create Checkout Session
curl -X POST https://neuravant.ai/api/payment/checkout \ -H "Content-Type: application/json" \ -d '{ "tier": "professional", "customer_email": "dev@example.com", "agent_name": "CustomerBot" }' # Response { "checkout_url": "https://checkout.stripe.com/...", "session_id": "cs_live_..." }
List Skills
curl https://neuravant.ai/api/skills
# Filter by type
curl https://neuravant.ai/api/skills?skill_type=compliance
Run Compliance Scan
curl -X POST https://neuravant.ai/api/skills/compliance/scan \ -H "Content-Type: application/json" \ -d '{ "test_results": [...], "composite_scores": {"hallucination": 0.85, "prompt_injection": 0.92} }'
Embeddable Badge
# Embed in HTML <img src="https://neuravant.ai/api/continuous/badge/CustomerBot.svg" alt="NAIL Badge"> # Embed in Markdown (GitHub README) 
Register for Monitoring
curl -X POST https://neuravant.ai/api/continuous/register \ -H "Content-Type: application/json" \ -d '{"agent_name": "CustomerBot", "organisation": "Acme AI"}'
Fleet Monitoring SDK
For customers running multiple agents, use NAILFleet to monitor the group as one insured AI workforce. The SDK correlates per-agent actions with tenant_id, fleet_id, session_id, and trace_id, allowing NAIL to detect cross-agent drift, role bleed, cost cascades, and fleet-level kill-switch events. Fleet registry, agent liveness, kill-switch state, and telemetry events are persisted through the production SQL database and can be replayed into downstream event pipelines.
from nail.sdk import NAILFleet
fleet = NAILFleet(
api_key="nail_sk_...",
tenant_id="acme-bank",
fleet_id="claims-prod",
environment="prod",
)
triage = fleet.agent("claims-triage-v3", role="triage", criticality="high")
email = fleet.agent("customer-email-v2", role="communications")
fleet.register()
fleet.heartbeat()
with fleet.session("claim-CLM-10291") as session:
decision = triage.check(
tool="classify_claim",
args={"claim_id": "CLM-10291"},
session=session,
)
if decision.allowed:
email.record_event("draft_customer_email", session=session)
fleet.flush()
Fleet Endpoints
| Endpoint | Purpose |
|---|---|
GET /api/fleets | Signed-in account view of persistent fleets linked to the user or organisation. |
POST /api/fleets/register | Register fleet metadata and expected agents. |
POST /api/fleets/{fleet_id}/heartbeat | Report fleet or per-agent liveness. |
POST /api/fleets/{fleet_id}/events | Batch telemetry/events from all agents. |
GET /api/fleets/{fleet_id}/status?tenant_id=... | Fleet rollup: health, risk, event count, blocks, kill switch. |
GET /api/fleets/{fleet_id}/agents?tenant_id=... | Per-agent health/risk/last-seen table. |
GET /api/fleets/{fleet_id}/events?tenant_id=... | Recent durable events for the control tower. |
GET /api/fleets/{fleet_id}/events/export?tenant_id=... | NDJSON export for lakehouse or event-pipeline replay. |
POST /api/fleets/{fleet_id}/kill-switch | Disable the whole fleet or selected agents. |
Production Persistence & Control Tower
DATABASE_URLcontrols Fleet persistence. Use Postgres in production; local dev falls back to SQLite.- Fleet registration creates a durable account mapping when the API key belongs to a portal user or carries a configured organisation label. On the next login,
GET /api/fleetsreturns those same fleets automatically. NAIL_FLEET_EVENT_SINK_URLoptionally forwards committed batches to Pub/Sub, EventBridge, BigQuery loaders, or OTEL bridges.NAIL_FLEET_EVENT_SINK_TOKENis sent as a bearer token when configured.- Open the Fleet Control Tower to view liveness, risk, recent events, NDJSON exports, and fleet/agent kill-switch controls.
Bordereaux Export
# JSON format (default) curl https://neuravant.ai/api/admin/bordereaux/premium # CSV download curl -o premium.csv https://neuravant.ai/api/admin/bordereaux/premium?format=csv # Filter by period curl "https://neuravant.ai/api/admin/bordereaux/premium?period_start=2026-01-01&period_end=2026-03-31"
Audit Trail
# All events curl https://neuravant.ai/api/admin/audit # Filter by category curl "https://neuravant.ai/api/admin/audit?category=policy" # Audit statistics curl https://neuravant.ai/api/admin/audit/stats
Rate Limits
| Endpoint | Limit | Window |
|---|---|---|
POST /api/diagnostic/submit |
10 requests | per minute |
POST /api/auth/* |
20 requests | per minute |
| All other endpoints | 60 requests | per minute |
Exceeding rate limits returns 429 Too Many Requests with a Retry-After header.
Error Codes
| Code | Meaning |
|---|---|
400 |
Bad Request — missing or invalid parameters |
401 |
Unauthorized — invalid or missing token |
404 |
Not Found — resource doesn't exist |
429 |
Rate Limited — too many requests |
500 |
Internal Error — contact support |
Need help?