REST API

Query agents, scores, and lineage data programmatically from the Clawdbase API.

The Clawdbase REST API gives you direct programmatic access to every agent and skill in the directory - including trust scores, lineage trees, and GitHub metadata.

All endpoints are public and read-only. No API key is required for standard queries.

Base URL

https://clawdbase.ai/api

Agents

List agents

GET /api/agents

Returns a paginated list of agents. Accepts optional query parameters for filtering.

const res = await fetch(
  'https://clawdbase.ai/api/agents?verified=true&tier=high&limit=20'
)
const { data, total } = await res.json()
import httpx

r = httpx.get(
  'https://clawdbase.ai/api/agents',
  params={'verified': 'true', 'tier': 'high', 'limit': 20}
)
agents = r.json()['data']
curl "https://clawdbase.ai/api/agents?verified=true&tier=high&limit=20"

Query parameters

ParameterTypeDescription
qstringFull-text search across name, description, creator
verifiedbooleantrue to return only MySanctum-verified entries
tier"high" | "medium" | "low"Filter by trust score tier
categorystringAgent category slug (e.g. coding, research)
sort"score_desc" | "score_asc" | "name"Sort order (default: score_desc)
limitnumberPage size, 1–100 (default: 20)
offsetnumberPagination offset (default: 0)

Response

{
  data: Agent[]
  total: number
  offset: number
  limit: number
}

Get an agent

GET /api/agents/:id

Returns the full detail record for a single agent by its AGT-XXXXXXXX ID.

const res = await fetch('https://clawdbase.ai/api/agents/AGT-a1b2c3d4')
const agent = await res.json()

console.log(agent.trustScore)    // 88
console.log(agent.confidence)    // 91
console.log(agent.verified)      // true
import httpx

agent = httpx.get('https://clawdbase.ai/api/agents/AGT-a1b2c3d4').json()
print(agent['trustScore'], agent['confidence'])
curl "https://clawdbase.ai/api/agents/AGT-a1b2c3d4"

Response shape

interface Agent {
  id: string           // "AGT-a1b2c3d4"
  type: 'agent' | 'skill'
  name: string
  description: string
  category: string
  tags: string[]
  creator: {
    handle: string
    displayName: string
    verified: boolean
    trustScore: number    // 0–100, null if unverified
    confidence: number    // 0–100, null if unverified
  }
  github: {
    url: string
    stars: number
    forks: number
    openIssues: number
    lastCommit: string   // ISO 8601
  } | null
  verified: boolean
  listedAt: string       // ISO 8601
  updatedAt: string
}

Get lineage

GET /api/agents/:id/lineage

Returns the full ancestor and descendant tree for an agent.

const res = await fetch('https://clawdbase.ai/api/agents/AGT-a1b2c3d4/lineage')
const { ancestors, descendants, depth } = await res.json()
import httpx

lineage = httpx.get(
  'https://clawdbase.ai/api/agents/AGT-a1b2c3d4/lineage'
).json()
curl "https://clawdbase.ai/api/agents/AGT-a1b2c3d4/lineage"

Response shape

interface LineageResponse {
  root: Agent
  ancestors: LineageNode[]
  descendants: LineageNode[]
  depth: number
}

interface LineageNode {
  agent: Agent
  parentId: string | null
  trustEquityFlow: number  // 0–100, equity inherited from parent
}

Identity & Scores

Get a creator's trust profile

GET /api/identity/:handle

Returns the trust score and verified account summary for a creator by their MySanctum handle.

const res = await fetch('https://clawdbase.ai/api/identity/openai')
const { trustScore, confidence, verifiedAccounts } = await res.json()
import httpx

profile = httpx.get('https://clawdbase.ai/api/identity/openai').json()
curl "https://clawdbase.ai/api/identity/openai"

Response shape

interface IdentityProfile {
  handle: string
  displayName: string
  trustScore: number
  confidence: number
  tier: 'high' | 'medium' | 'low'
  verifiedAccounts: {
    github?: boolean
    linkedin?: boolean
    npm?: boolean
    pypi?: boolean
  }
  agentCount: number
  trustEquity: number
}

Register an agent (authenticated)

POST /api/agents/register

Registers a new agent under your MySanctum identity. Requires a bearer token from your MySanctum account.

const res = await fetch('https://clawdbase.ai/api/agents/register', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${MYSANCTUM_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    githubUrl: 'https://github.com/your-username/your-agent',
    name: 'My Research Agent',
    description: 'Synthesizes multi-source research into structured reports.',
    category: 'research',
    tags: ['research', 'synthesis', 'python', 'langchain'],
    parentId: 'AGT-a1b2c3d4',  // optional: set lineage parent
  }),
})

const { id, listingUrl } = await res.json()
console.log(`Listed at: ${listingUrl}`)  // https://clawdbase.ai/your-username/your-agent
import httpx

r = httpx.post(
  'https://clawdbase.ai/api/agents/register',
  headers={'Authorization': f'Bearer {MYSANCTUM_API_KEY}'},
  json={
    'githubUrl': 'https://github.com/your-username/your-agent',
    'name': 'My Research Agent',
    'description': 'Synthesizes multi-source research into structured reports.',
    'category': 'research',
    'tags': ['research', 'synthesis', 'python', 'langchain'],
  }
)
print(r.json()['id'])  # AGT-c9d0e1f2
curl -X POST "https://clawdbase.ai/api/agents/register" \
  -H "Authorization: Bearer $MYSANCTUM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "githubUrl": "https://github.com/your-username/your-agent",
    "name": "My Research Agent",
    "category": "research"
  }'

Request body

FieldRequiredDescription
githubUrlPublic GitHub repository URL
nameDisplay name in the directory
descriptionShort description (max 280 chars)
categoryOne of: coding, research, productivity, data, automation, creative, infrastructure, communication, other
tags-Array of strings, max 8
parentId-AGT-XXXXXXXX ID of the parent agent for lineage

Error responses

All errors follow a standard shape:

{
  error: string        // machine-readable code
  message: string      // human-readable description
  status: number       // HTTP status code
}

Common codes:

StatusCodeMeaning
400invalid_requestMissing or malformed parameter
401unauthorizedMissing or invalid bearer token
404not_foundAgent or identity not found
409already_registeredAgent is already registered
429rate_limitedToo many requests - wait before retrying

Rate limits

Unauthenticated read endpoints: 120 requests / minute.
Authenticated write endpoints: 30 requests / minute per token.

Responses include standard X-RateLimit-* headers.

Get your API token from your MySanctum dashboard. Navigate to Settings → API Keys → Generate new key.