Skip to content
Erudio Health
menu
Developers

Build on Erudio reports.

Discovery is free and needs no key: the catalog, every report's preview, any page as Markdown and the free MCP server. A licence key comes with a purchase and reads what was bought. There is no separate sandbox; everything below works against production, and nothing is charged until a person pays.

Quickstart

Four steps

  1. 01

    Find and preview a report

    catalog.json lists every report; each preview is Markdown or JSON.

  2. 02

    Connect the free MCP

    Search, preview and order from any MCP client.

  3. 03

    Order

    A quote and a payment link for your user.

  4. 04

    Read what you bought

    The licence key reads the report over MCP.

shell
# 1. Find a report
curl https://www.erudio.com/catalog.json

# Read its preview
curl https://www.erudio.com/reports/quintessential-2-nct06615479.md
curl -H "Accept: text/markdown" https://www.erudio.com/reports/quintessential-2-nct06615479
json
{
  "mcpServers": {
    "erudio": { "url": "https://mcp.erudio.com/free" }
  }
}
shell
# 3. Order: returns checkout_url for your user and status_url
curl -X POST https://www.erudio.com/api/orders \
  -H "Content-Type: application/json" \
  -d '{"report": "NCT06615479", "product": "edition",
       "buyer_email": "name@company.com",
       "idempotency_key": "<a random UUID per purchase>"}'
json
{
  "mcpServers": {
    "erudio": {
      "url": "https://mcp.erudio.com/mcp",
      "headers": { "Authorization": "Bearer erudio_..." }
    }
  }
}
Reference

APIs and machine-readable files

WhereTypeWhat
/llms.txttext/plainThe site index for agents
/catalog.jsonapplication/jsonEvery report: trial, NCT ID, drugs, counts, size, price and links
/trials/{nct_id}.jsonapplication/jsonAny trial by NCT ID, with whether a report exists or can be ordered
/reports/{slug}.md, .jsontext/markdown, application/jsonOne report's full public preview
Any pagetext/markdownSend Accept: text/markdown, or add .md to the URL (/index.md for the home page)
/openapi.jsonapplication/jsonThe order API: create_order, get_order, pay_order
/.well-known/api-catalogapplication/linkset+jsonEvery Erudio API with its description and docs (RFC 9727)
https://mcp.erudio.com/freeMCPsearch_reports, get_report_card, create_order, get_order, recover_key; no sign-in
https://mcp.erudio.com/mcpMCPAdds read_report, list_reports, get_report_changes and get_my_access; licence key or OAuth

Field-by-field formats are on For agents; every MCP tool is on Erudio MCP.

Authentication

Keys and scopes

Discovery needs no credentials. A licence key starts erudio_ and comes only with a purchase: once an order is paid, its status_url returns the key, and the buyer gets their account key by email. An agent key reads the reports bought with it; the account key reads every report bought with the buyer's email address.

Send the key as Authorization: Bearer erudio_... to the MCP server, and as licence_key (or the same header) with every later create_order, so new reports join it. Store it as a secret. Lost keys are emailed again from /keys or POST /api/keys/recover; the email links a replacement if a key leaked.

The MCP server also signs in with OAuth 2.1 and PKCE. Its protected-resource metadata (RFC 9728) is at https://mcp.erudio.com/.well-known/oauth-protected-resource/mcp. Request the least scope you need:

ScopeGrants
readRead every published report and search the HCP commentary corpus. Granted to Enterprise MCP organizations.
report:licensedRead only the reports bought with the caller's licence key or email address. Granted to report buyers.
Trying it out

Try it without buying

There is no sandbox, because nothing here needs one. Previews, search and quotes are free and real; the only step that costs money is a person paying the checkout link.

  • Read any report's preview: findings, counts, sources, trial aspects and limits, as Markdown or JSON.
  • Add https://mcp.erudio.com/free to your MCP client and call search_reports and get_report_card.
  • Call create_order to see the exact price, discounts and credit for a buyer. It returns a payment link and charges nothing until a person pays it.
  • Look up any trial at /trials/{nct_id}.json to see whether a report exists or can be ordered, and its price.
Errors

Error format and codes

Every API error is an RFC 9457 problem details object, sent as application/problem+json. code is stable; hint says what to do next. error repeats detail for older clients. A Markdown request for a page that does not exist gets a 404 in Markdown.

json
{
  "type": "https://www.erudio.com/developers#errors-report-not-found",
  "title": "Not Found",
  "status": 404,
  "detail": "No purchasable report matches that slug, report id or NCT id.",
  "code": "report_not_found",
  "hint": "Pick a report from catalog, or check whether a trial can be ordered at /trials/{nct_id}.json.",
  "error": "No purchasable report matches that slug, report id or NCT id.",
  "catalog": "https://www.erudio.com/catalog.json"
}
CodeMeaning
agent_payments_closedAgent payments are not open. Pay with the order's checkout_url by card.
card_checkout_openThe order's card checkout could not be closed; it may have just been paid. Check status_url before paying.
checkout_closedOnline checkout is not open. Ask for an invoice or purchase order at /contact.
confirmation_throttledConfirmation links already went to this address today. Check the inbox.
credit_claimedThe purchase credit this order relied on went to another order. Create a new order.
email_failedThe message could not be sent. Try again.
endpoint_not_foundNo API endpoint at this path. See /openapi.json for the order API.
identities_unavailableIdentity linkages come only with updates-12. Order updates-12-identities or drop them.
idempotency_conflictThis idempotency_key already belongs to a different order. Use a new key for a new purchase.
internal_errorSomething failed on our side. Retry, and check status_url first for anything involving payment.
invalid_emailSend the buyer's email as JSON: {"email": "..."}.
invalid_fieldsSome form fields are missing or invalid; fieldErrors names them.
invalid_jsonThe body is not valid JSON.
invalid_orderThe order body is missing report, product or buyer_email. The response carries an example.
invalid_page_pathThe page path for Markdown is not a site page.
invalid_product_or_emailproduct must be edition, updates-3, updates-6, updates-12 or updates-12-identities, and buyer_email a valid address.
invalid_requestA field is invalid; detail names it.
invalid_signatureThe webhook signature did not verify.
invalid_trial_idGive a trial slug or NCT ID, e.g. /trials/NCT01234567.json.
licence_key_inactiveThe licence key sent is not active. Order without it, or recover the account key.
method_not_allowedThe endpoint does not accept this method; Allow lists those it does.
not_configuredThis endpoint is not configured in this environment.
order_not_foundNo order matches this token. Use the status_url or pay_url create_order returned.
payment_in_progressAnother payment for this order is in progress. Check status_url before paying again.
rate_limitedToo many requests. Wait a minute and retry.
report_not_foundNo published report matches. Pick one from /catalog.json.
requests_unavailableReport requests are not available right now.
test_edition_onlyTest reports sell only as a single edition.
trial_not_availableThis trial cannot be requested; detail says why.
trial_not_registeredThe NCT ID is not in ClinicalTrials.gov.
unauthorizedMissing or wrong credentials.

Over a rate limit, wait and retry; the MCP server answers 429 with rate_limit_exceeded. Anything involving payment: check status_url before paying again.

Help

Talk to us

Questions, an invoice or an Enterprise MCP pilot: contact us or write to hello@erudio.com.