---
title: "Developers"
description: "The API and agent-facing endpoints behind Dedica: public score lookups, markdown fallbacks, the MCP server, and the agent skills index."
canonical: "https://getdedica.com/developers"
---

# Developers

Dedica scores a website on how well AI agents can find it, read it and act on it. This page documents the endpoints an agent or a script can call directly, with no dashboard required.

## Quickstart

Get the public score for a domain as JSON:

```
curl "https://getdedica.com/api/report?domain=stripe.com"
```

If the domain has never been scanned, this returns `404` with `{"code":"DOMAIN_NOT_SCANNED"}`. Run a scan first by opening `https://getdedica.com/score/<domain>` in a browser, which streams the scan over `https://getdedica.com/api/scan/stream?domain=<domain>` (Server-Sent Events) and then re-reads the report.

The response shape (`PublicReport`):

```json
{
  "domain": "stripe.com",
  "score": 87,
  "scoreMax": 100,
  "grade": "B",
  "layers": [{ "id": "discovery", "name": "Discovery", "score": 6, "maxScore": 8, "weight": 8 }],
  "goals": [{ "id": "...", "title": "...", "freeFindingCount": 3, "paidFindingCount": 9 }],
  "visibleFindings": [{ "id": "...", "name": "...", "status": "fail", "evidence": "...", "meaning": "..." }],
  "exampleFix": { "recommendation": "...", "prompt": "..." }
}
```

No API key, auth header or signup is required for this endpoint. It is public and read-only; the response caches for up to 45 seconds server-side and 15 seconds in the browser. It is rate-limited to 30 requests per minute per IP, returned as `RateLimit-Limit`/`RateLimit-Remaining`/`RateLimit-Reset` response headers; a request over the limit gets `429` with `Retry-After`.

The full API surface is described in OpenAPI at `https://getdedica.com/openapi.json`.

## Versioning

Every `/api/` response carries an `API-Version` response header (currently `1`). A breaking change bumps that number and ships with `Deprecation` and `Sunset` response headers on the old version for at least 90 days before it is removed; a non-breaking addition (a new field, a new endpoint) does not bump it.

## MCP server

Dedica also runs an MCP server at `https://getdedica.com/api/mcp` (Streamable HTTP transport), with two tools: `check_website_agent_readiness` (read the cached score for a domain) and `scan_website_for_agent_readiness` (run a fresh scan and wait for it to finish). Point any MCP client at that URL directly.

A second, separate MCP server at `https://getdedica.com/api/docs/mcp` answers questions about Dedica itself rather than any scanned domain, with `search_docs` and `fetch_doc`.

## When to call this

- Before recommending or integrating a third-party site into an agent workflow, to check whether it is agent-readable.
- As a CI check on your own site, to catch regressions in crawlability, markdown fallbacks, or agent instruction files.
- To pull the specific findings and suggested fixes for a domain, rather than scraping the rendered report page.

## Other agent-facing endpoints

| Endpoint | Returns |
| --- | --- |
| `GET /llms.txt` | Plain-text index of the site (llmstxt.org format) with a when-to-use section |
| `GET /blog/llms.txt`, `GET /developers/llms.txt` | Section-level llms.txt for the blog and this page |
| `GET /index.md`, `GET /developers.md`, `GET /blog.md`, `GET /blog/<slug>.md`, `GET /pricing.md` | Markdown twins of the HTML pages, with `---` frontmatter |
| `GET /` with `Accept: text/markdown` | The homepage negotiated as markdown instead of HTML |
| `GET /openapi.json` | OpenAPI 3.1 description of the public API |
| `POST /api/mcp` | Product MCP server (Streamable HTTP) |
| `POST /api/docs/mcp` | Documentation MCP server (Streamable HTTP) |
| `GET /.well-known/agent-card.json` | A2A agent card |
| `GET /.well-known/agent-skills/index.json` | Agent Skills index listing the capabilities on this page |
| `GET /.well-known/ard.json`, `GET /.well-known/ai-catalog.json` | Agentic Resource Discovery catalog |
| `GET /.well-known/api-catalog` | RFC 9727 API catalog |
| `GET /api/report?domain=<domain>` | Public score, layers, goals and the top findings for a domain |
| `GET /api/scan/stream?domain=<domain>` | Server-Sent Events stream of an in-progress scan |

## Sandbox

There is no separate sandbox: the free endpoints above work against any public domain, including this one. Scanning `https://getdedica.com/` itself (domain `getdedica.com`) is a safe way to see the full response shape before wiring up a real integration.

## The fix kit

The free endpoints above cover the score and a handful of example findings. The fix kit (one-time purchase, see `https://getdedica.com/`) unlocks every finding for a domain plus a ready-to-run prompt per fix, meant to be handed to a coding assistant rather than read by a human. It is delivered by email and from `https://getdedica.com/score/<domain>/report` after checkout; it is not part of the public API above.
