Free API key. No credit card. Works with Python, JavaScript, or plain curl. Your agent gets a cryptographic passport that any system can verify.
Use the sandbox key below to follow along right now. For production, sign up to get your own key with full quota.
Register your AI agent. This creates a cryptographic identity with a trust score and unique Sigil ID that persists across sessions.
import requests # Your agent details agent = { "agent_name": "my-first-agent", # internal ID "display_name": "MyFirstAgent", # what the world sees ← NEW "issuer_org": "YourCompany", # who built it ← NEW "agent_type": "customer-support", "framework": "openai", "version": "1.0.0", "owner": "raheem@yourcompany.com", } # Issue passport r = requests.post( "https://verisigil-api-production.up.railway.app/v1/passport/issue", json=agent, headers={"x-api-key": "verisigil-secret-2026"} ) passport = r.json() print(f"✅ Passport issued!") print(f" Sigil ID: {passport['agent_id']}") print(f" Trust Score: {passport['trust_score']}") print(f" Status: {passport['status']}")
const agent = { agent_name: "my-first-agent", display_name: "MyFirstAgent", // what the world sees ← NEW issuer_org: "YourCompany", // who built it ← NEW agent_type: "customer-support", framework: "openai", version: "1.0.0", owner: "raheem@yourcompany.com", }; const r = await fetch( "https://verisigil-api-production.up.railway.app/v1/passport/issue", { method: "POST", headers: { "Content-Type": "application/json", "x-api-key": "verisigil-secret-2026", }, body: JSON.stringify(agent), } ); const passport = await r.json(); console.log("✅ Passport issued!", passport.agent_id);
curl -X POST \ https://verisigil-api-production.up.railway.app/v1/passport/issue \ -H "Content-Type: application/json" \ -H "x-api-key: verisigil-secret-2026" \ -d '{ "agent_name": "my-first-agent", "display_name": "MyFirstAgent", "issuer_org": "YourCompany", "agent_type": "customer-support", "framework": "openai", "version": "1.0.0", "owner": "raheem@yourcompany.com" }'
{
"agent_id": "vsa_8f3a2c1d9e5b",
"agent_name": "my-first-agent",
"display_name": "MyFirstAgent",
"issuer_org": "YourCompany",
"verification_tier": 0,
"tier_label": "Self-Declared",
"trust_score": 0.97,
"status": "ACTIVE",
"eu_risk_class": "limited",
"created_at": "2026-05-05T10:23:41Z"
}
agent_id. You'll use it to verify and look up your agent in step 2 and 3.
display_name is what the public sees on Trust Cards and the Trust Network graph — e.g. "FinanceGuard-7". issuer_org is who built the agent. Both are optional but strongly recommended.Verification checks the passport, runs Shadow Detection™ to look for impersonation, and returns a signed trust attestation. Any system can call this before allowing an agent to act.
# Use the agent_id from Step 1 agent_id = "vsa_8f3a2c1d9e5b" # replace with yours r = requests.post( f"https://verisigil-api-production.up.railway.app/v1/verify/{agent_id}", headers={"x-api-key": "verisigil-secret-2026"} ) result = r.json() print(f"Trust Score: {result['trust_score']}") print(f"Shadow Clone: {result['shadow_detected']}") print(f"EU AI Act: {result['eu_risk_class']}") print(f"Verified: {result['verified']}") if result["verified"]: print("✅ Agent is trusted — allow it to act") else: print("🚫 Agent blocked — do not allow")
const agentId = "vsa_8f3a2c1d9e5b"; // replace with yours const r = await fetch( `https://verisigil-api-production.up.railway.app/v1/verify/${agentId}`, { method: "POST", headers: { "x-api-key": "verisigil-secret-2026" }, } ); const result = await r.json(); if (result.verified) { console.log("✅ Trusted — allow agent to act"); } else { console.log("🚫 Blocked", result.reason); }
curl -X POST \
https://verisigil-api-production.up.railway.app/v1/verify/vsa_8f3a2c1d9e5b \
-H "x-api-key: verisigil-secret-2026"
{
"agent_id": "vsa_8f3a2c1d9e5b",
"verified": true,
"trust_score": 0.97,
"shadow_detected": false,
"eu_risk_class": "limited",
"verifier_id": "ver_verisigil_admin",
"timestamp": "2026-05-05T10:23:55Z"
}
Paste any agent ID below (or use the sandbox ID) and hit Verify. This calls the real live API.
No setup needed. Runs against the production API.
You've verified your first agent. Here's where to go from here.
vsa_8f3a2c1d9e5b)