{
  "name": "enso Developer Portal",
  "description": "Public REST API, Content write API, Signal stream API, MCP server and a full map of every page on enso.bot.",
  "url": "https://www.enso.bot/developers",
  "base_url": "https://www.enso.bot",
  "openapi": "https://www.enso.bot/openapi.json",
  "mcp": "https://www.enso.bot/mcp",
  "auth_modes": [
    "public",
    "x-api-key",
    "oauth-2.1"
  ],
  "apis": [
    {
      "id": "content-api",
      "name": "Content API",
      "description": "Publish on-brand landing pages at /p/{slug}. Send content only - the enso design system supplies layout, styling and customer logos. Every write passes a brand quality gate.",
      "auth": "api-key",
      "docs": [
        "https://www.enso.bot/content-api.md"
      ],
      "endpoints": [
        {
          "method": "POST",
          "path": "/api/public/content/pages/generate",
          "url": "https://www.enso.bot/api/public/content/pages/generate",
          "summary": "Send a brief, enso writes the copy and hero visual and saves a draft",
          "auth": "api-key",
          "query_params": []
        },
        {
          "method": "POST",
          "path": "/api/public/content/pages",
          "url": "https://www.enso.bot/api/public/content/pages",
          "summary": "Create or replace a page from finished blocks",
          "auth": "api-key",
          "query_params": []
        },
        {
          "method": "GET",
          "path": "/api/public/content/pages",
          "url": "https://www.enso.bot/api/public/content/pages",
          "summary": "List pages",
          "auth": "api-key",
          "query_params": []
        },
        {
          "method": "GET",
          "path": "/api/public/content/pages/{slug}",
          "url": "https://www.enso.bot/api/public/content/pages/{slug}",
          "summary": "Read one page",
          "auth": "api-key",
          "query_params": []
        },
        {
          "method": "PATCH",
          "path": "/api/public/content/pages/{slug}",
          "url": "https://www.enso.bot/api/public/content/pages/{slug}",
          "summary": "Partial edit",
          "auth": "api-key",
          "query_params": []
        },
        {
          "method": "DELETE",
          "path": "/api/public/content/pages/{slug}",
          "url": "https://www.enso.bot/api/public/content/pages/{slug}",
          "summary": "Unpublish (soft delete)",
          "auth": "api-key",
          "query_params": []
        }
      ]
    },
    {
      "id": "signal-api",
      "name": "Signal API",
      "description": "Every touch a person or account has with enso.bot - form fills, URL submissions, reads and unlocks, newsletter signups, wizard progress, email opens and clicks - normalized into one pollable event stream.",
      "auth": "api-key",
      "docs": [
        "https://www.enso.bot/signals-api.md",
        "https://www.enso.bot/signals-agent.md"
      ],
      "endpoints": [
        {
          "method": "GET",
          "path": "/api/public/v1/signals",
          "url": "https://www.enso.bot/api/public/v1/signals",
          "summary": "Newest-first event stream across every source",
          "auth": "api-key",
          "query_params": [
            "since",
            "until",
            "days",
            "type",
            "domain",
            "email",
            "q",
            "limit"
          ]
        },
        {
          "method": "GET",
          "path": "/api/public/v1/signals/accounts",
          "url": "https://www.enso.bot/api/public/v1/signals/accounts",
          "summary": "Events rolled up per company domain",
          "auth": "api-key",
          "query_params": [
            "since",
            "days",
            "stage",
            "limit"
          ]
        },
        {
          "method": "GET",
          "path": "/api/public/v1/signals/accounts/{domain}",
          "url": "https://www.enso.bot/api/public/v1/signals/accounts/{domain}",
          "summary": "One account: summary, people, full timeline",
          "auth": "api-key",
          "query_params": []
        },
        {
          "method": "GET",
          "path": "/api/public/v1/signals/people/{email}",
          "url": "https://www.enso.bot/api/public/v1/signals/people/{email}",
          "summary": "One person: summary and full timeline",
          "auth": "api-key",
          "query_params": []
        }
      ]
    },
    {
      "id": "content-read",
      "name": "Public read API",
      "description": "Open, read-only JSON about enso: the company, the blog, the research ledger and open roles. No key, no rate-limit signup, CORS enabled.",
      "auth": "public",
      "docs": [
        "https://www.enso.bot/openapi.json"
      ],
      "endpoints": [
        {
          "method": "GET",
          "path": "/api/public/v1/company",
          "url": "https://www.enso.bot/api/public/v1/company",
          "summary": "Company overview: agents, engagement model, founders, canonical URLs",
          "auth": "public",
          "query_params": []
        },
        {
          "method": "GET",
          "path": "/api/public/v1/blog",
          "url": "https://www.enso.bot/api/public/v1/blog",
          "summary": "Index of blog posts with slugs, titles, authors and URLs",
          "auth": "public",
          "query_params": []
        },
        {
          "method": "GET",
          "path": "/api/public/v1/research",
          "url": "https://www.enso.bot/api/public/v1/research",
          "summary": "Index of Agentic Lab research experiments",
          "auth": "public",
          "query_params": []
        },
        {
          "method": "GET",
          "path": "/api/public/v1/research/{slug}",
          "url": "https://www.enso.bot/api/public/v1/research/{slug}",
          "summary": "Full write-up for one experiment",
          "auth": "public",
          "query_params": []
        },
        {
          "method": "GET",
          "path": "/api/public/v1/careers",
          "url": "https://www.enso.bot/api/public/v1/careers",
          "summary": "Open roles with slug, title, tagline, location",
          "auth": "public",
          "query_params": []
        },
        {
          "method": "GET",
          "path": "/api/public/v1/careers/{slug}",
          "url": "https://www.enso.bot/api/public/v1/careers/{slug}",
          "summary": "Full description for one role",
          "auth": "public",
          "query_params": []
        }
      ]
    },
    {
      "id": "mcp",
      "name": "MCP server",
      "description": "Model Context Protocol server over streamable HTTP, protected by OAuth 2.1 with Dynamic Client Registration. Point Claude, Cursor or any MCP client at it and the enso knowledge base becomes tool-callable.",
      "auth": "oauth",
      "docs": [
        "https://www.enso.bot/mcp-setup"
      ],
      "endpoints": [
        {
          "method": "ANY",
          "path": "/mcp",
          "url": "https://www.enso.bot/mcp",
          "summary": "MCP endpoint. Tools: get_company_info, list_experiments, get_experiment, list_blog_posts, list_careers, get_career",
          "auth": "oauth",
          "query_params": []
        },
        {
          "method": "GET",
          "path": "/.well-known/oauth-authorization-server",
          "url": "https://www.enso.bot/.well-known/oauth-authorization-server",
          "summary": "RFC 8414 authorization server metadata",
          "auth": "public",
          "query_params": []
        },
        {
          "method": "GET",
          "path": "/.well-known/oauth-protected-resource",
          "url": "https://www.enso.bot/.well-known/oauth-protected-resource",
          "summary": "RFC 9728 protected resource metadata for /mcp",
          "auth": "public",
          "query_params": []
        }
      ]
    }
  ],
  "agent_files": [
    {
      "name": "llms.txt",
      "url": "https://www.enso.bot/llms.txt",
      "description": "Compact site overview, routing rules and navigation hints for AI crawlers."
    },
    {
      "name": "llms-full.txt",
      "url": "https://www.enso.bot/llms-full.txt",
      "description": "Extended enso documentation in markdown for LLM consumption."
    },
    {
      "name": "AGENTS.md",
      "url": "https://www.enso.bot/AGENTS.md",
      "description": "Conventions and rules for AI coding agents working in the enso codebase."
    },
    {
      "name": "OpenAPI 3.1 spec",
      "url": "https://www.enso.bot/openapi.json",
      "description": "Machine-readable spec for every public endpoint. Also at /api/openapi.json."
    },
    {
      "name": "Content API reference",
      "url": "https://www.enso.bot/content-api.md",
      "description": "Block schema, layout rules, brand quality gate and publishing checklist."
    },
    {
      "name": "Signal API reference",
      "url": "https://www.enso.bot/signals-api.md",
      "description": "Event types, filters, account and person lookups, polling notes."
    },
    {
      "name": "Signal agent manual",
      "url": "https://www.enso.bot/signals-agent.md",
      "description": "Polling loop, intent ranking, allowed actions and enso voice rules for drafted outreach."
    },
    {
      "name": "Sitemap",
      "url": "https://www.enso.bot/sitemap.xml",
      "description": "Canonical URL index. Image sitemap at /sitemap-images.xml."
    },
    {
      "name": "robots.txt",
      "url": "https://www.enso.bot/robots.txt",
      "description": "Crawl rules and sitemap declarations."
    },
    {
      "name": "developers.json",
      "url": "https://www.enso.bot/developers.json",
      "description": "This entire portal as one machine-readable JSON manifest: APIs, endpoints, auth, agent files and the full site map."
    }
  ],
  "site_map": [
    {
      "section": "Start here",
      "note": "The core story and how an engagement runs.",
      "pages": [
        {
          "path": "/",
          "url": "https://www.enso.bot/",
          "label": "Home",
          "description": "The agentic growth lab: what enso deploys and where."
        },
        {
          "path": "/about",
          "url": "https://www.enso.bot/about",
          "label": "About",
          "description": "Methodology, thesis and the marketing-as-cybersecurity philosophy."
        },
        {
          "path": "/how-it-works",
          "url": "https://www.enso.bot/how-it-works",
          "label": "How it works",
          "description": "Pick a growth hack, set budget and goal, get an operator, book onboarding."
        },
        {
          "path": "/compare",
          "url": "https://www.enso.bot/compare",
          "label": "Compare",
          "description": "Head-to-head capability tables against traditional growth tooling."
        },
        {
          "path": "/book-a-call",
          "url": "https://www.enso.bot/book-a-call",
          "label": "Book a call",
          "description": "Scope a pilot with the team. Work email required."
        },
        {
          "path": "/contact",
          "url": "https://www.enso.bot/contact",
          "label": "Contact",
          "description": "Reach the team without booking a call."
        }
      ]
    },
    {
      "section": "Agents",
      "note": "One page per always-on agent surface.",
      "pages": [
        {
          "path": "/agentic-seo",
          "url": "https://www.enso.bot/agentic-seo",
          "label": "Agentic SEO / GEO",
          "description": "Wins AI Overviews, GEO answers and classic search."
        },
        {
          "path": "/agentic-sdr",
          "url": "https://www.enso.bot/agentic-sdr",
          "label": "Agentic SDR",
          "description": "Books meetings with in-market accounts on autopilot."
        },
        {
          "path": "/agentic-community",
          "url": "https://www.enso.bot/agentic-community",
          "label": "Agentic Community",
          "description": "Surfaces buying-signal threads in Slack, Discord, Reddit and Circle."
        },
        {
          "path": "/agentic-newsletter",
          "url": "https://www.enso.bot/agentic-newsletter",
          "label": "Agentic Newsletter",
          "description": "Ships a weekly newsletter the team never has to write."
        },
        {
          "path": "/agentic-social",
          "url": "https://www.enso.bot/agentic-social",
          "label": "Agentic Social",
          "description": "Posts daily across X, LinkedIn, Threads, Bluesky and Instagram."
        }
      ]
    },
    {
      "section": "Research and writing",
      "note": "Everything the lab publishes.",
      "pages": [
        {
          "path": "/research",
          "url": "https://www.enso.bot/research",
          "label": "Research ledger",
          "description": "Live experiments. Detail pages at /research/{slug}."
        },
        {
          "path": "/agentic-labs",
          "url": "https://www.enso.bot/agentic-labs",
          "label": "Agentic Labs",
          "description": "Experiment write-ups and downloadable artifacts."
        },
        {
          "path": "/blog",
          "url": "https://www.enso.bot/blog",
          "label": "Blog",
          "description": "Long-form growth hack write-ups at /blog/{slug}."
        },
        {
          "path": "/resources",
          "url": "https://www.enso.bot/resources",
          "label": "Resources",
          "description": "Weekly SEO and GEO articles at /resources/{slug}."
        },
        {
          "path": "/authors",
          "url": "https://www.enso.bot/authors",
          "label": "Authors",
          "description": "Bylines and bios at /authors/{slug}."
        },
        {
          "path": "/podcast",
          "url": "https://www.enso.bot/podcast",
          "label": "Podcast",
          "description": "The Autonomous Business, hosted by Mickey Haslavsky."
        },
        {
          "path": "/live",
          "url": "https://www.enso.bot/live",
          "label": "Live feed",
          "description": "Real-time stream of agent actions, synthetic identifiers."
        }
      ]
    },
    {
      "section": "Tools and programs",
      "note": "Interactive surfaces anyone can run.",
      "pages": [
        {
          "path": "/growth-plan",
          "url": "https://www.enso.bot/growth-plan",
          "label": "Growth plan",
          "description": "Generates an llms.txt, a funnel review and budget/ramp modeling."
        },
        {
          "path": "/icp-map",
          "url": "https://www.enso.bot/icp-map",
          "label": "ICP map",
          "description": "Wizard over the world's largest ICP database."
        },
        {
          "path": "/bounty",
          "url": "https://www.enso.bot/bounty",
          "label": "Growth Hack Bounty",
          "description": "Submission form, tiered payouts and rules."
        },
        {
          "path": "/chat-on-slack",
          "url": "https://www.enso.bot/chat-on-slack",
          "label": "Chat on Slack",
          "description": "Spins up a dedicated Slack channel with the team."
        },
        {
          "path": "/wikipedia-citations",
          "url": "https://www.enso.bot/wikipedia-citations",
          "label": "Wikipedia citations",
          "description": "Landing page for the citation placement hack."
        },
        {
          "path": "/skylight",
          "url": "https://www.enso.bot/skylight",
          "label": "The Skylight",
          "description": "Hidden page. One free month for whoever finds it."
        }
      ]
    },
    {
      "section": "Company",
      "note": "Team, hiring and legal.",
      "pages": [
        {
          "path": "/careers",
          "url": "https://www.enso.bot/careers",
          "label": "Careers",
          "description": "Open roles in Tel Aviv. Detail pages at /careers/{slug}."
        },
        {
          "path": "/in-memory-of-zaki",
          "url": "https://www.enso.bot/in-memory-of-zaki",
          "label": "In memory of Zaki",
          "description": "Memorial page for Zaki Djemal."
        },
        {
          "path": "/privacy",
          "url": "https://www.enso.bot/privacy",
          "label": "Privacy policy",
          "description": "What we collect and how it is used."
        },
        {
          "path": "/terms",
          "url": "https://www.enso.bot/terms",
          "label": "Terms of service",
          "description": "Terms governing use of enso.bot."
        }
      ]
    },
    {
      "section": "Machine surfaces",
      "note": "Endpoints and files built for agents, not people.",
      "pages": [
        {
          "path": "/developers",
          "url": "https://www.enso.bot/developers",
          "label": "Developer portal",
          "description": "This page: the index of everything below."
        },
        {
          "path": "/openapi.json",
          "url": "https://www.enso.bot/openapi.json",
          "label": "OpenAPI spec",
          "description": "OpenAPI 3.1 description of the public API."
        },
        {
          "path": "/mcp",
          "url": "https://www.enso.bot/mcp",
          "label": "MCP server",
          "description": "OAuth-protected Model Context Protocol endpoint."
        },
        {
          "path": "/api/public/v1/company",
          "url": "https://www.enso.bot/api/public/v1/company",
          "label": "Public REST API",
          "description": "Read-only JSON at /api/public/v1/*."
        },
        {
          "path": "/llms.txt",
          "url": "https://www.enso.bot/llms.txt",
          "label": "llms.txt",
          "description": "Agent navigation instructions."
        },
        {
          "path": "/sitemap.xml",
          "url": "https://www.enso.bot/sitemap.xml",
          "label": "Sitemap",
          "description": "Canonical URL index."
        }
      ]
    }
  ],
  "request_access": "https://www.enso.bot/contact"
}