soul
The identity layer for AI agents and the internet. Verify that agents act on behalf of real humans. No hardware required. One API call.
AI agents are executing tasks on behalf of humans. But how does the receiving end know a real person authorized it? Soul ID is the answer. One API call confirms the agent is acting for a liveness-verified human. No orb, no palm scanner, no hardware. Just a phone camera.
Liveness verified
Every Soul ID is backed by a real human who passed face verification. Not a photo, not a deepfake.
Token authorized
Each user gets a secret agent token. Only agents with the token can prove they are authorized by that human.
Framework agnostic
Works with OpenAI, Anthropic, LangChain, AutoGPT, or any agent framework. Just a REST call.
Verify an agent's human
curl -X POST https://www.soulverified.com/api/v1/agent/verify \
-H "Content-Type: application/json" \
-d '{
"agent_token": "soul_a1b2c3d4e5f6...",
"agent_id": "agent_openai_abc123",
"action": "book_flight"
}'Response
{ "authorized": true, "human_verified": true, "identity": { "soul_id": "clx8k2m1n0001", "username": "alexrivera", "display_name": "Alex Rivera", "face_verified": true, "soul_score": 78, "created_at": "2026-03-01T10:22:00Z" }, "agent": { "agent_id": "agent_openai_abc123", "action": "book_flight", "authorized_at": "2026-05-10T18:30:00Z" }, "verification_url": "https://www.soulverified.com/id/alexrivera" }
Agent SDK
Give your AI agent a verified human identity. Works with any framework.
JavaScript / Node.js
const { SoulAgent } = require('@soul/agent-sdk');
// User gives their agent token to the agent
const agent = new SoulAgent({
agentToken: 'soul_a1b2c3d4e5f6...'
});
const proof = await agent.verify();
// { authorized: true, human_verified: true }
// Requests carry verified identity
const res = await agent.fetch(
'https://api.delta.com/book',
{ method: 'POST', body: JSON.stringify({
flight: 'JFK-LAX'
})}
);Python
from soul_agent import SoulAgent
# User gives their agent token to the agent
agent = SoulAgent(
agent_token="soul_a1b2c3d4e5f6..."
)
proof = agent.verify()
# { "authorized": True, "human_verified": True }
# Requests carry verified identity
res = agent.fetch(
"https://api.delta.com/book",
method="POST",
json={"flight": "JFK-LAX"}
)For services: verify incoming agents
const { SoulAgent } = require('@soul/agent-sdk');
app.use(SoulAgent.verifyMiddleware({
apiKey: process.env.SOUL_API_KEY
}));
app.post('/book', (req, res) => {
console.log(req.soulIdentity);
// { username: 'theofflineman',
// display_name: 'KD!',
// face_verified: true }
});Your Token
Your agent token is your secret key. Give it to your agent so it can prove it is acting on your behalf. Never share it publicly.
API Reference
/api/v1/agent/verifyVerify that an AI agent is authorized to act on behalf of a real, liveness-verified human.
Parameters
agent_tokenstringrequiredSecret token from the Soul ID owner. Proves the agent is authorized.agent_idstringoptionalYour agent's unique identifier for audit trailsactionstringoptionalThe action the agent is performing (e.g. "book_flight")Authentication
Send the user's agent_token to prove authorization. Username-only lookups return identity info but authorized: false.
/api/v1/identity/[username]Public identity lookup. Returns verified identity data for any Soul ID. No auth required. Designed for AI agents that encounter a Soul ID link.
Parameters
usernamestringrequiredSoul ID username (in URL path)We are partnering with a small group of platforms this quarter. Get API access, a direct line to the team, and input on the roadmap.
Ideal fit: you run a platform where identity matters and you want to let verified humans through while blocking bots.