Developers

Durate developer resources

Everything durate.com exposes to software: an OpenAPI-described HTTP API, an MCP server for AI agents, and machine-readable versions of the whole site. No keys, no sign-up — every interface on this page is public and read-only unless stated otherwise.

Machine-readable resources

  • /openapi.json

    OpenAPI 3.1 specification of every public HTTP endpoint on www.durate.com.

  • /.well-known/mcp.json

    Model Context Protocol server at POST /mcp (Streamable HTTP, no auth). The link is its server card, the discovery manifest.

  • /llms.txt

    llmstxt.org site index for AI agents: what Durate is, key facts, every page.

  • /llms-full.txt

    The full content of every durate.com page in one markdown document.

  • /sitemap.xml

    XML sitemap of every indexable page, with last-modified dates.

  • /api

    Machine-readable JSON list of the API endpoints.

The durate.com API

The website API is small and fully described in openapi.json: POST /api/contact to message the team, POST /api/discord-webhook for get-started signups, POST /api/mcp for the MCP server, and GET /api/page-markdown behind the markdown content negotiation. Every JSON response reports X-Api-Version: 1; the API is additive-only, and a breaking change would ship under new /api/v2/* paths.

Errors are structured JSON, {"error": {"code", "message", "hint"}}, never an HTML page, including 404s on unknown API paths.

MCP server

durate.com runs a read-only Model Context Protocol server at POST /mcp (Streamable HTTP transport, stateless, no authentication; also reachable at /api/mcp). It speaks protocol revisions 2025-11-25 through 2024-11-05 and exposes four resources: llms.txt, llms-full.txt, openapi.json, and sitemap.xml. The server card at /.well-known/mcp.json describes it without a handshake.

Markdown for agents

Any page in the sitemap can be fetched as markdown instead of HTML: send Accept: text/markdown, or append .md to the URL (for example durate.com/about.md). Unknown paths return a short markdown 404 that points back to the site index rather than an HTML shell, and robots.txt allows AI crawlers and assistants across the site.

Rate limits

API responses are limited to 60 requests per 60 seconds per client and self-report their budget with the IETF RateLimit header fields, in both the structured-field form and the widely deployed legacy trio:

RateLimit-Policy: "default";q=60;w=60
RateLimit: "default";r=59;t=42
RateLimit-Limit: 60
RateLimit-Remaining: 59
RateLimit-Reset: 42

Exceeding the limit returns 429 with a Retry-After header and a structured rate_limited error body. Agents should honor Retry-After rather than retrying immediately.

Frequently asked questions

Does Durate have a public API?

The durate.com website exposes a small public API (a contact endpoint, a get-started signup, and an MCP server), fully described in the OpenAPI 3.1 spec at durate.com/openapi.json. The Durate scheduling product itself does not offer a public API today: product integrations (EHRs like Epic and Oracle Cerner, payroll systems like ADP, calendars, databases) are set up as part of implementation. Email [email protected] to discuss an integration.

Does Durate have an MCP server?

Yes. durate.com runs a read-only Model Context Protocol server at POST durate.com/mcp (Streamable HTTP transport, JSON-RPC 2.0, no authentication, protocol revisions 2025-11-25 through 2024-11-05). It exposes llms.txt, llms-full.txt, openapi.json, and sitemap.xml as resources, and publishes a server card at durate.com/.well-known/mcp.json.

Can AI agents read durate.com?

Yes, by design. robots.txt allows AI crawlers and assistants, llms.txt indexes every page, and any page can be fetched as markdown by sending Accept: text/markdown or appending .md to its URL. API responses carry standard RateLimit headers (60 requests per 60 seconds per client) so agents can self-throttle.

Building something with Durate?

Product integrations (EHR, payroll, calendars) are set up during implementation. Tell us what you are connecting.