Skip to main content
Conduit is macro and global-markets data infrastructure built to be read and called by LLM agents, not only by humans. It serves official and public-domain macro indicators, rates and yields, FX reference rates, the economic calendar, SEC fundamentals, and derived analytics as predictable JSON, with per-observation provenance and rights metadata. Every endpoint is read-only and GET. Every response shares one envelope. Every error carries a stable, machine-readable code. That consistency is what makes an agent reliable against the API: it never has to guess the shape of a response or parse free-form error prose.

Why Conduit is agent-native

One predictable envelope

Every response is { data, meta, requestId }. Lists carry meta.pagination. An agent learns the shape once and reuses it across every endpoint.

Stable error codes

Errors return a machine-readable code (bad_request, unauthorized, forbidden, not_found, rate_limited, internal_error) plus a requestId. Unknown query params fail closed with bad_request rather than being silently ignored, so a typo surfaces instead of returning wrong data.

Discoverable by design

GET /llms.txt and GET /llms-full.txt describe the entire API as plain text an agent can read with no key. GET /openapi.json is the OpenAPI 3.1 source of truth.

Auditable provenance

Observations carry source attribution, source URL, freshness, a raw payload reference, and rights metadata. GET /v1/provenance/observations/{observationId} returns the full chain from official release to API response, so an agent can cite where a number came from.

The three ways an agent consumes Conduit

Native MCP server

The Conduit Model Context Protocol server exposes the API as read-only tools (screen_macro, get_latest_observations, cross_country, rates_analytics, observation_provenance, and more). Add it to Claude Code, Claude Desktop, or Cursor and your agent can query macro data conversationally with no glue code. This is the lowest-friction path for a chat-driven agent.

Self-describing text indexes

Point an agent at /llms.txt for a compact, sectioned index of every endpoint, or /llms-full.txt for the full reference with parameters. Both need no API key and stay in lock-step with the OpenAPI spec. An agent can fetch one, learn the surface, then call endpoints directly with HTTP.

Typed SDK

The @conduit/client TypeScript SDK wraps the same envelope and errors. It constructs with your apiKey, throws a typed ConduitError on non-2xx, auto-paginates cursor pages via an async iterator, and ships a buildScreenerFilter helper for the screener DSL. Use it when your agent runs inside a TypeScript or JavaScript runtime.

Base URL and auth

All paths are relative to https://data.quantoraresearch.com. Send your key as x-api-key: <key> or Authorization: Bearer <key>. The following endpoints need no key: GET /health, GET /ready, GET /openapi.json, GET /llms.txt, GET /llms-full.txt. Everything under /v1 requires a key.
API keys are issued on request today. There is no self-serve signup form yet. Contact Conduit to request a key. Keys are SHA-256 hashed server-side and never returned.

Conventions an agent should know

  • Envelope. Lists return { "data": [...], "meta": { "request_id", "requestId", "api_version", "pagination" }, "requestId" }. Items return { "data": { ... }, "meta": { ... }, "requestId" }.
  • Pagination. Cursor-based: limit (1 to 500, default 100) and an opaque cursor. Follow meta.pagination.next_cursor while has_more is true.
  • Time model. period / period_start / period_end filter the period a value describes (for example May 2026 CPI). start_date / end_date filter knowledge-time (observed_at, when the value became known). as_of returns the latest vintage known on or before a timestamp; revisions are retained, never overwritten.
  • Rights-aware. /v1/public/* returns only redistribution-safe official and public-domain data. Licensed vendor data is internal-only and never appears on the public surface.
  • Read-only. Every endpoint is GET.
as_of currently approximates the ingestion timestamp, not a full provider-vintage reconstruction. Full vintage reconstruction is future work. Treat as_of as “known to Conduit on or before this time” rather than “published by the provider on or before this time”.

Latest readings in one call

curl "https://data.quantoraresearch.com/v1/public/observations/latest?country=USA" \
  -H "x-api-key: $CONDUIT_API_KEY"
To see the live breadth of what is covered (catalog totals, public indicator categories, covered countries), call GET /v1/public/coverage rather than relying on a number hard-coded in docs.

Next steps

MCP server

Add Conduit’s read-only tools to Claude Code, Claude Desktop, or Cursor.

llms.txt

The keyless, self-describing indexes an agent reads to discover the API.