Developers
The same research, programmatically
Read the same rights-checked research through a REST API or read-only MCP tools. Both use one access service, so rights and plan checks match the web reader every time.
REST: authentication and a first request
API and MCP access belong to the Developer and Enterprise plans only. A Pro reader plan does not include them. Keys belong to an organization, are scoped, metered, and can be revoked at any time. See plans.
Create a key in API keys (organization admins). The key is displayed once and stored only as a hash. Send it as a bearer token, never in a URL:
curl -H "Authorization: Bearer $THULO_API_KEY" \
"https://insights.thulo.app/v1/research?limit=5&instrument=NVDA"Base URL: https://insights.thulo.app/v1. Timestamps are UTC ISO 8601. Errors use application/problem+json with a trace_id. Lists are cursor-paginated: pass the next_cursor you receive as cursor (default 20, maximum 100).
curl -H "Authorization: Bearer $THULO_API_KEY" \
"https://insights.thulo.app/v1/research/by-slug/<slug>"const res = await fetch("https://insights.thulo.app/v1/research?limit=5&instrument=NVDA", {
headers: { Authorization: `Bearer ${process.env.THULO_API_KEY}` },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
const { items, next_cursor } = await res.json();
for (const r of items) console.log(r.as_of, r.instrument.ticker, r.title);import os, requests
r = requests.get(
"https://insights.thulo.app/v1/research",
params={"limit": 5, "instrument": "NVDA"},
headers={"Authorization": f"Bearer {os.environ['THULO_API_KEY']}"},
timeout=20,
)
r.raise_for_status()
page = r.json()
for item in page["items"]:
print(item["as_of"], item["instrument"]["ticker"], item["title"])Each item carries content_sha256 and, for entitled readers, the full body. Hash the body you received to check it against the fingerprint, the same check the web page runs. See how to verify a report. A 404 for a publication means it is unavailable to you: it may not exist, may be withdrawn, or may be outside your rights. The API deliberately does not say which. body is null when your plan or rights do not include the full text.
MCP tools
Read-only tools for AI assistants over MCP (HTTPS, OAuth 2.1). They apply the same plan entitlement, publication rights and rate limits as the REST API.
Server URL: https://insights.thulo.app/mcp
| Tool | What it does |
|---|---|
search_research | Search licensed publications by ticker, market, date and keywords |
get_research | Read entitled publication revision |
list_coverage | List enabled instruments/regions for entitled customer |
get_citations | Read licensed public citation metadata; never return raw evidence |
Webhooks
Developer-plan organizations can receive signed notifications for new, corrected and retracted publications. Endpoints must be public HTTPS addresses; private network targets are refused. Deliveries are retried a limited number of times and then dead-lettered. Signature details will be documented with the webhook service.