# CCXT Router > A public HTTP API, with no key, that finds the best way to convert one crypto asset into another across live order books from ~60 exchanges. It walks each book to the requested size, adjusts for each venue's taker fee, and returns the cheapest route: one venue, a split across several, or a bridge through USDT, USDC, BTC or ETH. It quotes only; it never places orders or holds funds. Base URL: https://docs.ccxt.com/router/api. One call: `GET /route?from=USDT&to=BTC&amountIn=10000` (exactly one of amountIn or amountOut; no side parameter, the direction is derived). Read `fillRatio` before `effectiveRate`. Limit: 5 requests per second per IP; a 429 carries `retry-after`. ## Docs - [Agent skill](https://docs.ccxt.com/router/.well-known/agent-skills/ccxt-router/SKILL.md): how an agent should call the API and read a route, in one page. Install it with `npx skills add https://docs.ccxt.com/router` - [API reference](https://docs.ccxt.com/router/docs/api): parameters, response fields, refusal codes, rate limits - [OpenAPI 3.1 spec](https://docs.ccxt.com/router/openapi.yaml): the full contract - [How routing decides](https://docs.ccxt.com/router/docs): fees, price impact, splitting, bridges, partial fills - [From ccxt](https://docs.ccxt.com/router/docs/ccxt): the OrderRouter class in ccxt, `fetchRoute` then `execute`, in every ccxt language