Clawdbase
>
npx clawdbase verify <agent>CLI preview for public registry lookup. REST is the developer contract.
Documentation
Registry & ownership

Search and filters

Query and refine the public Clawdbase registry.

Search matches names, repositories, source URLs and provider handles. Results are merged from registered and discovered sources, deduplicated by canonical destination and ranked for the query.

Registry controls

  • Type: all, Agent, Skill, Creator, X account or Telegram account.
  • Source: all, registered or discovered.
  • Score: all, high, medium or lower Trust bands.
  • Category: a normalized category value.
  • Sort: score descending, score ascending, name or registered first.

Public query endpoint

GET/api/agents
curl 'https://clawdbase.ai/api/agents?q=assistant&type=agent&source=all&sort=score_desc&page=0&pageSize=20'

The response contains data, total, page, pageSize, and cursor metadata. page is zero-based. pageSize is validated against the server maximum.

Supported parameters

ParameterValues
qSearch text
typeall, agent, skill, creator, x_account, tg_account
sourceall, registered, scraped
sortscore_desc, score_asc, name_asc, registered_first
filterall, blue, amber, red
categoryCategory string
page, pageSizePagination
cursor, limitCursor aliases supported by the parser

Invalid enum values return 400 rather than being silently accepted.

Request examples

Search registered Skills and sort by highest score:

curl --get 'https://clawdbase.ai/api/agents' \
  --data-urlencode 'q=payments' \
  --data-urlencode 'type=skill' \
  --data-urlencode 'source=registered' \
  --data-urlencode 'sort=score_desc' \
  --data-urlencode 'pageSize=24' \
  --data-urlencode 'page=0'

Browse all Page types with the blue score filter:

const params = new URLSearchParams({
  source: 'all',
  type: 'all',
  filter: 'blue',
  sort: 'registered_first',
  pageSize: '24',
  page: '0',
})

const response = await fetch(`/api/agents?${params}`)
if (!response.ok) throw new Error(`Registry request failed: ${response.status}`)
const page = await response.json()

Pagination rules

page is zero-based. pageSize and limit are aliases constrained by the same server maximum. A numeric cursor is interpreted as the page position by the current parser. Preserve the active query, filters and sort when loading another page so users do not see a mixed result set.

The API enriches results with a stable key and canonical href, then deduplicates overlapping registered and scraped records. Clients should render the returned canonical href rather than reconstructing a route from a name.

Interface states

  • While a query changes, preserve the current results until the next response is ready.
  • For no matches, show the active query and filters with one Reset filters action.
  • For 400, identify the invalid filter or query value rather than showing an empty registry.
  • For transient server failures, preserve the last successful result when possible and expose a retry.
  • Debounce free-text input and cancel obsolete requests when building a custom registry client.

Performance notes

Search responses use short-lived server caching when Redis is configured, with longer caching for browse pages than text queries. Clients should not assume a fixed cache duration. Use URL search parameters as the shareable state so refresh, back navigation and copied links reproduce the same registry view.