Skip to content

Developers · API · MCP

Built on the same numbers.

The public API and MCP server serve exactly the website’s data — the same in-process engine, no separate backend, so the figures an agent reads can never drift from the figures a visitor sees.

API · MCP · LLMS.TXT · NO KEY REQUIRED

Base URL

https://cryptotraderapi-production.up.railway.app

Please cite Skontro (skontro.com) and include the data age. The website domain does not proxy the API — call the base URL above directly.

REST endpoints — no key, read-only

Eight stable GET endpoints. Every response carries a disclaimer string and per-venue data-age fields. Rate limits are per IP: 60/min per endpoint (20/min on the swap route, a real DEX round-trip), under a global 120/min ceiling.

GET /api/truecost

Params: asset (req), amount (req), side=buy|sell, quote=EUR, includeWithdrawal=true|false

Rate limit: 60/min · global 120/min per IP

Ranked all-in cost of one trade across every covered exchange, by net units received. Every response carries disclaimer and data-age fields.

curl "https://cryptotraderapi-production.up.railway.app/api/truecost?asset=BTC&amount=1000"

GET /api/truecost/venues

Params:

Rate limit: 60/min · global 120/min per IP

The covered exchanges with fee schedule, order-book coverage and last fee-verification date. Every response carries disclaimer and data-age fields.

curl "https://cryptotraderapi-production.up.railway.app/api/truecost/venues"

GET /api/truecost/withdrawal-fees

Params:

Rate limit: 60/min · global 120/min per IP

Curated BTC/ETH native-chain withdrawal fees per exchange, EUR-valued, each with its source. Every response carries disclaimer and data-age fields.

curl "https://cryptotraderapi-production.up.railway.app/api/truecost/withdrawal-fees"

GET /api/truecost/index

Params: month=YYYY-MM (optional)

Rate limit: 60/min · global 120/min per IP

The monthly True-Cost-Index; report is null with a placeholder shape until a month accrues. Every response carries disclaimer and data-age fields.

curl "https://cryptotraderapi-production.up.railway.app/api/truecost/index"

GET /api/truecost/swap

Params: from (req), to (req), amount (req), chain=ETHEREUM

Rate limit: 20/min · global 120/min per IP

One LiFi-aggregated DEX route per pair in the same cost shape; honest 503 when no route exists. Every response carries disclaimer and data-age fields.

curl "https://cryptotraderapi-production.up.railway.app/api/truecost/swap?from=ETH&to=USDC&amount=1"

GET /api/trust

Params:

Rate limit: 60/min · global 120/min per IP

Sourced Reliability Score per exchange (0–100, six weighted components, dated sources). Every response carries disclaimer and data-age fields.

Per exchange: GET /api/trust/:exchange and GET /api/trust/:exchange/history (404-safe for unknown slugs).

curl "https://cryptotraderapi-production.up.railway.app/api/trust"

GET /api/status

Params:

Rate limit: 60/min · global 120/min per IP

Per-venue feed freshness, accuracy suppressions and backend state — where our own data degradation is public. Every response carries disclaimer and data-age fields.

curl "https://cryptotraderapi-production.up.railway.app/api/status"

GET /health

Params:

Rate limit: 60/min · global 120/min per IP

Liveness probe: overall status plus db and redis reachability. Every response carries disclaimer and data-age fields.

curl "https://cryptotraderapi-production.up.railway.app/health"

MCP server — the same engine, for agents

A stateless Streamable HTTP MCP server exposes the five tools below over the same in-process engine. No key, no session, same data as the site. Endpoint:

https://cryptotraderapi-production.up.railway.app/api/mcp

truecost_compare

Returns measured all-in cost data (published fee + hidden spread from walking the live order book, optionally + withdrawal fee) for one trade across all covered exchanges (enumerate them via truecost_venues), ranked by net units received. Every row carries its data age in seconds. Data only — not investment advice.

truecost_venues

Returns the list of covered exchanges with data freshness and coverage flags. Data only.

exchange_reliability

Returns the sourced Reliability Score data per exchange (0–100, six weighted components, every negative datapoint dated and sourced). Describes recorded incidents and public facts — not a recommendation to use or avoid any venue.

withdrawal_fees

Returns curated BTC/ETH native-chain withdrawal fees per exchange, EUR-valued, each with its official source URL and verification date. Venues without a published fixed fee are absent — absent means unknown, never zero.

truecost_index

Returns the monthly True-Cost-Index data: average measured fee, hidden spread and all-in cost per €1,000 trade per exchange, from hourly order-book measurements. Data only.

claude.ai

Settings → Connectors → add a Custom Connector, and paste the endpoint URL above. No authentication.

Claude Code

One command, then the tools are available in your session:

claude mcp add --transport http skontro https://cryptotraderapi-production.up.railway.app/api/mcp

Any other client

Cursor, ChatGPT connectors, or any Streamable-HTTP MCP client: point it at the endpoint URL. It is stateless, so no session config is needed.

Honesty & fair use

Data age matters.These are live measurements. Read the age fields and pass them on — a five-minute-old number quoted as “now” is a wrong number.

Missing data is deliberately absent. A venue without a row is a venue we could not measure or verify honestly, never a zero. Do not fill the gap with a guess.

Ranking is never affiliate-influenced. Order is computed from market data alone, before any affiliate link is attached, and it is unit-tested. The methodology is the whole method — no black box.

No SLA — best effort. This is a free, public read tier. Breaking changes are announced at least 14 days ahead on this page and on /status. That is the entire versioning policy, deliberately, pre-1.0.

Artifacts

/openapi.json — OpenAPI 3.1 for the eight endpoints.

/llms.txt — site + API description for AI agents.

/embed — the live top-5 table for your page; attribution is hardwired as rel="sponsored".

/research — the monthly True-Cost-Index, human-readable.

Built in Vienna by OptiRisk Consulting e.U. — read-only, licence-free by design. We read the market; every order happens on the platform of your choice, by your hand.

Not investment advice. Skontro is not a CASP under MiCAR.