Enterprise DNA
Build Index / API

Build Index API

Eat the index.

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.

JSON OpenAPI 3.1 CORS open No auth 89 entries today

Endpoints

Six static endpoints, plus an OpenAPI spec. Cached 5 minutes at the edge.

GET /api/index.json

The full index. Every entry across every directory in one payload.

GET /api/{directory}.json

One directory's full listing. Directories: agents, skills, mcp-servers, open-source, apps, showcase.

GET /api/{directory}/{slug}.json

Single entry with full detail, resolved forward + reverse relations, and a permalink to the OG image.

GET /api/openapi.json

OpenAPI 3.1 spec. Use it to generate a typed client or wire up to an agent.

Per-directory shortcuts

Quick curl

# 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'

Shape, at a glance

Entry summary

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"
}

Single entry

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"
}

Pulling everything programmatically

// 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());

Fair use

  • The API is free and unauthenticated. Be polite. Cache locally.
  • Each endpoint sends Cache-Control: public, max-age=300. Honour it.
  • Attribution: a link back to enterprisedna.co/directories is appreciated.
  • Want to mirror? Use /api/index.json, refresh hourly. Updates ship daily.