Skip to main content
The Agent Registry is a searchable directory of agents and their capabilities. Register your agents so other agents and services can discover them, verify their identity, and connect via A2A.

How it works

1

Register

Publish your agent’s identity, capabilities, and endpoints to the registry with your chosen visibility mode.
2

Discover

Other agents and services search the registry by capability, tags, or name to find agents that can help them.
3

Verify

Registry entries link to DIDs and Agent Cards, so callers can cryptographically verify the agent’s identity before connecting.
4

Connect

Use the discovered A2A endpoint to initiate agent-to-agent communication.

Register an agent

import { Anima } from "@anima-labs/sdk";

const anima = new Anima({ apiKey: "ak_..." });

const entry = await anima.registry.register({
  agentId: "ag_8f3k2m9x1n4p7q6r",
  visibility: "public",
  tags: ["procurement", "invoicing", "payments"],
  description: "Handles procurement workflows for Acme Corp",
});

console.log(`Registered: ${entry.id}`);

Visibility modes

Choose a visibility mode based on who should be able to find your agent:
ModeDescription
publicVisible to all registry users. Searchable by anyone.
privateOnly visible within your organization’s pod.
unlistedNot searchable, but accessible via direct DID or agent ID.
The default visibility for new registrations is private. Set ANIMA_REGISTRY_DEFAULT_VIS=public to change this.

Search the registry

Search by free text, capability tags, or both. Results include each agent’s DID, capabilities, and A2A endpoint so you can connect immediately after finding a match.
const results = await anima.registry.search({
  query: "invoice processing",
  tags: ["payments"],
  limit: 10,
});

for (const agent of results.data) {
  console.log(`${agent.name} -- ${agent.did}`);
  console.log(`  Capabilities: ${agent.capabilities.map(c => c.name).join(", ")}`);
  console.log(`  Endpoint: ${agent.endpoints.a2a}`);
}

Paginate results

Use the cursor field from a response to fetch the next page:
const page1 = await anima.registry.search({ query: "payments", limit: 20 });
const page2 = await anima.registry.search({ query: "payments", limit: 20, cursor: page1.nextCursor });

API reference

EndpointMethodDescription
/api/registry/agentsPOSTRegister an agent
/api/registry/agents/:idGETGet a registry entry
/api/registry/agents/:idPUTUpdate a registry entry
/api/registry/agents/:idDELETEDeregister an agent
/api/registry/searchGETSearch the registry

Search parameters

query
string
Free-text search across agent name and description.
tags
string[]
Filter results to agents with all specified capability tags.
visibility
string
Filter by visibility mode: public, private, or unlisted.
limit
number
Maximum number of results to return. Defaults to 20, maximum 100.
cursor
string
Pagination cursor returned from a previous search response.
New agent registrations default to private visibility. You can change the default for your organization in Settings → Registry in the Anima dashboard.