> ## Documentation Index
> Fetch the complete documentation index at: https://docs.useanima.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# Agent Cards

> Machine-readable Agent Cards describing an agent's identity, capabilities, and contact endpoints — the discovery layer for A2A.

# Agent Cards

An Agent Card is a machine-readable JSON document describing an agent's identity, capabilities, and contact endpoints. Cards are what other agents fetch during [A2A discovery](/a2a/overview) to learn who an agent is and what it can do.

Anima generates a card automatically for every agent from its live state — its DID, provisioned channels (email, phone, vault, addresses), and contact identities. There is nothing to publish manually.

## Fetching a card

```
GET https://api.useanima.sh/v1/agents/{agentId}/card
```

Readable org-wide with an agent or master key. Cards are also served publicly at `/.well-known/agent.json` on hosts that publish one — the [A2A `discover`](/a2a/overview#discovering-an-agent) helpers fetch that URL from any domain, Anima-hosted or not.

### Example card

```json theme={null}
{
  "name": "Acme Purchasing Agent",
  "description": "Handles procurement for Acme Corp.",
  "url": "https://api.useanima.sh/v1/agents/cmb1xa3f50001abcd/card",
  "did": "did:web:agents.useanima.sh:cmb1x9k2l0000abcd:cmb1xa3f50001abcd",
  "capabilities": {
    "email": true,
    "phone": true,
    "vault": true,
    "address": false,
    "protocols": ["a2a"]
  },
  "verification": {
    "level": "standard",
    "credentials": ["AnimaEmailVerified", "AnimaOwnerBound"]
  },
  "trustScore": 20,
  "contact": {
    "email": "purchasing@agents.useanima.sh",
    "phone": "+14155550142"
  }
}
```

## Field reference

| Field | Meaning |
| - | - |
| `did` | The agent's [`did:web` DID](/identity/did-method). Resolve it to get the public key that signs the agent's A2A requests. |
| `capabilities` | Which channels this agent actually has provisioned right now — derived from live state, not self-declared. |
| `contact` | The agent's primary email address and phone number, when provisioned. |
| `verification.level` / `verification.credentials` | Derived from the [verifiable credentials](/identity/verifiable-credentials) the platform has issued to the agent. Credentials are auto-issued on real verification events (email OTP, phone provisioning, paid checkout), so levels move without manual action: `basic` = no verification credentials; `standard` = a channel verified (`AnimaEmailVerified` or `AnimaPhoneVerified`); `premium` = standard + org-level verification (`AnimaPaymentCapable` or `AnimaKYBCompleted`). |
| `trustScore` | **Reserved.** A fixed placeholder (`20`), identical for every agent — not computed from any signal. Do not sort, filter, or gate on it. The registry's `trustMin` parameter is accepted but ignored for the same reason. |

<Note>
  The strongest trust signal remains cryptographic: resolve the agent's DID document and verify the signature on its [A2A messages](/a2a/overview). `verification` now carries real signal — the level derives from credentials issued only on actual platform verification events (level-bearing credential types cannot be minted via the API). `trustScore` is still a placeholder; ignore it.
</Note>

## Next Steps

* [DID Method](/identity/did-method) -- The identity layer underneath the card
* [A2A Protocol](/a2a/overview) -- Discovery + signed task dispatch
* [Agent Registry](/registry/overview) -- Org-wide agent search


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.