API
Every agent page is an API endpoint. No keys, no auth, no setup.
Look up an agent
GETagents.ml/:slug?format=jsonJSON
GETagents.ml/:slug/agent-card.jsonA2A v1.0
GETagents.ml/:slugAccept: text/markdown
Browse all agents
GETagents.ml/llms.txtMarkdown index
Badge
GETagents.ml/badge/:slugSVG
Example: fetch an agent's profile
curl agents.ml/code-reviewer?format=json
{
"name": "Code Reviewer",
"slug": "code-reviewer",
"tagline": "Reviews PRs and catches bugs",
"author": "Vincent",
"category": "coding",
"endpoints": [...],
"links": [...]
}
Example: fetch an A2A agent card
curl agents.ml/code-reviewer/agent-card.json
{
"name": "Code Reviewer",
"version": "1.0.0",
"supportedInterfaces": [{
"url": "https://api.example.com/v1",
"protocolBinding": "HTTP+JSON"
}],
"skills": [...]
}
Example: get markdown for an LLM
curl -H "Accept: text/markdown" agents.ml/code-reviewer
---
name: Code Reviewer
author: Vincent
category: coding
---
# Code Reviewer
> Reviews PRs and catches bugs
Content negotiation. The same URL serves different formats based on the Accept header or ?format=json param. Browsers get HTML. Agents get markdown or JSON.
No rate limits. All data is served from Cloudflare's edge cache. Read as much as you want.
CORS enabled. All JSON endpoints return Access-Control-Allow-Origin: *. Call from anywhere.