Developers
Everything the app computes is available to your scripts and AI agents: company search, the live Buffett tests and valuation range, and full evidence-quoted analyses. The REST API and the MCP server share one implementation, so they always agree.
Machine-readable: /openapi.json, /pricing.json and /llms.txt.
Send a key in the Authorization header. Max plan members create keys in Settings. To try things first, use the public sandbox key rep_sandbox_public: it can read everything public but can't start analyses, and it's limited to 30 requests a minute per IP.
curl https://www.replicly.com/api/v1/companies/KO/snapshot \
-H "Authorization: Bearer rep_sandbox_public"Every response is JSON shaped as { data, meta }. meta carries the research disclaimer and a timestamp. Nothing here is personal financial advice, and agents should not present it as such.
The hosted server speaks MCP over Streamable HTTP at https://www.replicly.com/api/mcp. Its tools are the operations below, with the same names and inputs. In Claude Code:
claude mcp add --transport http replicly https://www.replicly.com/api/mcp \
--header "Authorization: Bearer rep_sandbox_public"Or in any client that takes a JSON config:
{
"mcpServers": {
"replicly": {
"type": "http",
"url": "https://www.replicly.com/api/mcp",
"headers": { "Authorization": "Bearer rep_sk_..." }
}
}
}/api/v1/companies/searchSearch US-listed companies · MCP tool search_company
Find companies by ticker or name. Returns up to 10 matches with ticker, CIK and exchange.
/api/v1/companies/{ticker}/snapshotLive Buffett tests and valuation · MCP tool get_snapshot
Deterministic view of a company from SEC filings: ten-year metrics, Buffett's measurable tests, and a bear/base/bull intrinsic value range with sensitivity grid. No AI involved. With a user key, the margin of safety follows that user's lens.
/api/v1/companies/{ticker}/analysisLatest full analysis of a company · MCP tool get_company_analysis
The newest completed analysis: business, moat, management, case against (all quoted from the 10-K), tests, valuation and verdict. Returns your own latest analysis with a user key, otherwise the public house analysis if one exists.
/api/v1/analysesMax keyStart a new analysis · MCP tool run_analysis
Queues a full Buffett-style analysis (two to four minutes). Returns a job id; poll get_analysis until status is succeeded. Counts against your monthly allowance. Send an Idempotency-Key header to make retries safe.
/api/v1/analyses/{id}Job status or finished analysis · MCP tool get_analysis
Pass a job id from run_analysis (or an analysis id). Returns progress while running, the full analysis when done, or the error if it failed.
/api/v1/deskThe latest Desk edition · MCP tool get_desk
Replicly's fortnightly shortlist: every US filer swept, Buffett's and Graham's screens run, survivors read and the best researched in full. Returns each company's rank, the screens it passed with every rule's actual value, the verdict of its full analysis and its margin of safety (re-priced nightly). The sandbox key sees the free top three.
/api/v1/marketMarket-level context · MCP tool get_market_context
The 10-year Treasury yield, the Buffett indicator (US equities / GDP) with history, and GBP/USD.
/api/v1/berkshireBerkshire Hathaway 13F holdings · MCP tool get_berkshire_holdings
Latest Form 13F positions with weights and share changes versus the prior quarter. Up to 45 days stale by design; includes positions chosen by Berkshire's other managers.
/api/v1/pricingPlans, prices and limits · MCP tool get_pricing
Machine-readable plans with GBP prices and every entitlement.
A full analysis takes two to four minutes. POST /api/v1/analyses returns a job id straight away; poll GET /api/v1/analyses/{id} until status is succeeded. Send an Idempotency-Key header so a retried request doesn't start, or bill, a second run. Runs count against the key owner's monthly allowance.
curl -X POST https://www.replicly.com/api/v1/analyses \
-H "Authorization: Bearer rep_sk_..." \
-H "Idempotency-Key: $(uuidgen)" \
-H "content-type: application/json" \
-d '{"ticker":"COST","depth":"standard"}'Keys get 120 requests a minute; the sandbox gets 30 per IP. Max plans include a monthly call allowance shown in Settings. Over a limit you get a 429 with a Retry-After header.
Errors share one shape, with a stable code to branch on:
{ "error": { "code": "unknown_company", "message": "No US-listed company found for ZZZZ.", "docs": "https://www.replicly.com/docs/api#errors" } }| Status | Code | Meaning |
|---|---|---|
| 400 | invalid_input | A parameter is missing or the wrong shape. The message says which. |
| 401 | missing_key / invalid_key | No key, or one we don't recognise or that was revoked. |
| 403 | plan_required / sandbox_read_only | The key's plan doesn't include the API, or the sandbox key tried to write. |
| 402 | limit_reached / not_on_plan | The key owner has used this month's analyses, or the depth isn't on their plan. upgrade_to names the plan that would allow it. |
| 404 | unknown_company / no_analysis / not_found | No US-listed company for that ticker, no analysis of it yet, or no job with that id. |
| 422 | no_financials | The company doesn't file XBRL financials with the SEC, so we can't analyse it. |
| 429 | rate_limited / quota_exhausted | Too many requests this minute, or the monthly call allowance is used up. See Retry-After. |
| 500 | internal_error | Our fault. It's logged with an id you can quote to support. |