Endpoints
Six static endpoints, plus an OpenAPI spec. Cached 5 minutes at the edge.
Build Index API
Every entry on Build Index is available as JSON. Build a custom dashboard. Feed an agent. Score a stack. The index is meant to be consumed, not just browsed.
Six static endpoints, plus an OpenAPI spec. Cached 5 minutes at the edge.
/api/index.json The full index. Every entry across every directory in one payload.
/api/{directory}.json One directory's full listing. Directories: agents, skills, mcp-servers, open-source, apps, showcase.
/api/{directory}/{slug}.json Single entry with full detail, resolved forward + reverse relations, and a permalink to the OG image.
/api/openapi.json OpenAPI 3.1 spec. Use it to generate a typed client or wire up to an agent.
# Fetch the full index
curl -s https://enterprisedna.co/directories/api/index.json | jq '.meta.totalEntries'
# Pull one directory
curl -s https://enterprisedna.co/directories/api/agents.json | jq '.entries[].slug'
# Pull a single entry with all relations resolved
curl -s https://enterprisedna.co/directories/api/agents/aider.json | jq '.'
# Discover the schema
curl -s https://enterprisedna.co/directories/api/openapi.json | jq '.paths | keys'
The shape returned by /api/index.json.
{
"directory": "agents",
"slug": "claude-code",
"name": "Claude Code",
"vendor": "Anthropic",
"tagline": "…",
"category": "ai-coding-agents",
"pricingTier": "paid",
"deployEffort": "one-click",
"bestFor": "…",
"tags": ["cli", "claude"],
"featured": true,
"addedAt": "2026-05-17",
"officialLink": "https://…",
"detailUrl": "https://enterprisedna.co/directories/agents/claude-code",
"apiUrl": "https://enterprisedna.co/directories/api/agents/claude-code.json"
}
What /api/{directory}/{slug}.json returns. Adds description, useCases, pros, cons, ogImage, and resolved relations.
{
"directory": "...",
"slug": "...",
"relations": {
"forward": [
{ "key": "uses", "label": "Uses", "entries": [...] }
],
"reverse": [
{ "key": "used_by", "label": "Used by", "entries": [...] }
]
},
"ogImage": "https://enterprisedna.co/directories/og/...png"
} // Node 20+, ES modules
const res = await fetch('https://enterprisedna.co/directories/api/index.json');
const { meta, entries } = await res.json();
// Filter to agents that use a specific MCP server
const agentsUsingSupabaseMcp = entries.filter(
e => e.directory === 'agents' && e.relations.uses?.includes('mcp-supabase')
);
// Or fetch one entry fully
const claude = await fetch(
'https://enterprisedna.co/directories/api/agents/claude-code.json'
).then(r => r.json()); Cache-Control: public, max-age=300. Honour it./api/index.json, refresh hourly. Updates ship daily.