Asyncdot publishes its company profile, pricing, and writing as structured data that an agent can read directly. Everything on this page is public, free, and needs no authentication or API key.
Everything the site publishes, as JSON. Pricing, company profile, and every article. Public and read-only: no API key, no signup, no rate limit beyond ordinary CDN protection. Described by an OpenAPI 3.1 document, so an agent can read the whole surface in one fetch.
https://asyncdot.com/apiapplication/problem+json)
GET /api GET /api/company GET /api/services GET /api/pricing GET /api/articles GET /api/articles/{slug} GET /api/search curl -s https://asyncdot.com/api/pricing
curl -s "https://asyncdot.com/api/search?q=convex&limit=5"
curl -s https://asyncdot.com/openapi.json
Every non-2xx response is a Problem Details document. It carries a stable
code, a human-readable detail, and a
resolution naming what to do next, so an agent can correct itself
without parsing prose.
not_found (404)
invalid_request (400)
method_not_allowed (405)
{
"type": "https://asyncdot.com/developers/#errors-not_found",
"title": "Not Found",
"status": 404,
"detail": "No published article has the slug \"no-such-article\".",
"code": "not_found",
"resolution": "Call GET /api/articles to list every article and its slug.",
"instance": "/api/articles/no-such-article"
} A Model Context Protocol server over Streamable HTTP transport. Point Claude, ChatGPT, Cursor, or any MCP client at it and the model can read our pricing and writing without scraping HTML. Read-only. No auth.
https://asyncdot.com/mcp{
"mcpServers": {
"asyncdot": {
"type": "http",
"url": "https://asyncdot.com/mcp"
}
}
} curl -s https://asyncdot.com/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' get_company_profile get_pricing list_articles get_article search_articles
Ask any page for markdown and you get the prose without navigation,
styles, or scripts. Send Accept: text/markdown, or append
.md to the path. Responses carry Vary: Accept,
so caches keep the two representations apart. This follows the
acceptmarkdown.com
convention.
curl -s -H "Accept: text/markdown" https://asyncdot.com/about/
curl -s https://asyncdot.com/about.md Asyncdot Engineering publishes the frameworks it builds client work on. Full list at github.com/asyncdotengineering.
Tell us what you need. We'll reply within 4 hours.