ProductsIntelligencePricingMethodologyContact
· MACHINE ACCESS

Read Cresthaven with a machine.

Cresthaven Analytics runs an MCP server and a REST API. Point an AI assistant at either one and it can tell you which regulators we monitor and read any brief in the public archive. Subscribers on Professional and above can reach their own archive the same way.

Connect an AI assistant

The MCP server is open. Nothing to install, no key, no account. In Claude Code:

claude mcp add --transport http cresthaven https://cresthavenanalytics.com/mcp

For any other assistant that supports remote MCP servers, addhttps://cresthavenanalytics.com/mcp as a streamable HTTP server. Once connected, ask it things like is the FCA covered? or what has the SEC published on digital assets? and it will answer from the registry and the archive rather than guessing.

What the assistant can do

Five tools are open to anyone:

  • list_agencies Every agency we monitor. Filter by sector, jurisdiction, or search term.
  • get_agency One agency, by code or slug.
  • search_public_archive Search the public brief archive.
  • get_brief One published brief in full.
  • get_coverage_summary Totals: agencies monitored, sectors covered, briefs published.

Two more need a key, and work on Professional and above:

  • search_my_archive Search the briefs delivered for the agencies on your plan.
  • get_my_coverage Your plan, your archive window, and the agencies you subscribe to.

All seven are listed to every caller. The two subscriber tools return an error explaining what is needed if they are called without a valid key.

What is open to everyone

No key, no account, no rate limit to work around. The registry covers 146 agencies across 7 sectors, and the public archive holds one published brief per agency, written to the same standard as the briefs subscribers receive.

The public archive is a fixed sample of already-published work, not a live feed. New developments go to subscribers on their cadence and do not appear here. Not every agency has a published brief — one appears once that agency has produced material clearing our quality gates.

REST API

Read-only JSON over HTTPS, GET only. The open endpoints allow any origin and are cached at the edge; the subscriber endpoints are private and uncached. Start at the discovery document, which lists everything below and the current coverage totals:

curl https://cresthavenanalytics.com/api/v1

Open endpoints — no key

EndpointReturnsParameters
/api/v1Discovery document. Lists every endpoint and the current coverage totals.
/api/v1/agenciesThe full agency registry.sector, jurisdiction, q, has_brief
/api/v1/agencies/{code}One agency. Accepts the agency code or its slug.
/api/v1/briefsThe public brief archive, newest first. No limit means the whole archive.sector, agency, q, limit
/api/v1/briefs/{slug}One brief in full.

There is no pagination. /api/v1/briefs acceptslimit as a whole number; leave it off and you get the whole archive. An unrecognised sector oragency returns an empty result, because nothing matching it is a true answer. A malformed has_brief orlimit returns 400 instead — a filter we cannot read would otherwise hand you the unfiltered set and no way to notice.has_brief accepts true, false, 1, 0, yes, or no.

Your own archive — Professional and above

Create a key in your portal under API access, then send it as a bearer token:

curl https://cresthavenanalytics.com/api/v1/me/briefs \
  -H "Authorization: Bearer YOUR_KEY"
EndpointReturnsParameters
/api/v1/meYour plan, your archive window, and your agencies.
/api/v1/me/briefsYour briefs, newest first. 20 per page.page, q, agency
/api/v1/me/exportYour whole archive as one file. Executive and Enterprise only.format=json|csv

A key reaches only what your plan covers — no parameter widens it. Keys are budgeted at roughly 600 requests an hour, and 20 an hour for archive exports; over that you get a429 with a Retry-After header. Machine access is part of Professional, Executive, and Enterprise. It is not part of Basic.

Fair use

The open surface is open because a regulator registry is more useful shared than fenced. Attribute Cresthaven Analytics when you republish what it returns, and do not use it to rebuild the archive as a competing product. Subscriber keys are issued per subscriber and must not be shared or resold — the full terms are insection 5 of the Terms.

Something broken, or need a higher limit? Support.

Changes

Anything that alters a response shape is listed here with the date it shipped. Whilev1 is settling we will correct a wrong shape rather than preserve it; once subscribers are building against it, a change of this kind gets a new version instead of a note.

17 August 2026

  • signals is now an array of{ label, text } on the subscriber endpoints and the MCP subscriber tools, matching the public archive. It was a single string of HTML, so the same field name meant two different types depending on which endpoint you asked.
  • /api/v1/me returns the coverage object directly. It was wrapped in a coverage key, which no other single-object endpoint here uses and which the MCP tool never used.
  • has_brief and limitreturn 400 when the value cannot be read. Previously an unreadable has_brief counted as true and an unreadablelimit was ignored, so a request that looked filtered came back unfiltered with a 200.