{"course":{"slug":"choosing-your-tools","title":"Choosing and Using the Tools","url":"https://addaly.com/learn/choosing-your-tools","level":"beginner","track":"work"},"lesson":{"slug":"routers-and-aggregators","title":"Routers: one key, many models","url":"https://addaly.com/learn/choosing-your-tools/routers-and-aggregators","position":24,"of":76,"minutes":8,"answer":"A router gives one key and one bill across hundreds of models, at the cost of a margin, an extra party in the data path.","keyIdea":"A router gives one key and one bill across hundreds of models, at the cost of a margin, an extra party in the data path, and (for open models) a back-end host chosen per request that may differ in quantisation and context length."},"body":{"format":"markdown","text":"## What a router is\n\nA router sits between you and a dozen model providers. You get one account, one key, one bill, and access to hundreds of models (closed and open, from many companies) through a single request format. OpenRouter is the best known; there are several others, and some cloud platforms offer the same idea inside their own ecosystems.\n\nFor anyone comparing tools this is convenient. Testing your twelve prompts across six models normally means six sign-ups, six payment methods and six sets of documentation. Through a router it is one account and a change of model name.\n\n## What it buys you\n\n**Trying anything immediately.** A new model appears and you can send it a prompt within a minute, with no new account.\n\n**Access where you could not get it.** Some providers are hard to sign up for from some countries, or need a card type you do not have. A router often works where a direct account does not.\n\n**Automatic fallback.** Most routers will retry a failed request on another provider serving the same model. When one company has an outage, your work continues.\n\n**One bill in one currency**, with per-key spending limits you can hand to different projects or people.\n\n**Prices you can compare.** Router listings show cost per million tokens across models side by side, which is the most useful pricing view available anywhere, and it is free to look at.\n\n## What it costs you\n\n**A margin.** Routers make money somehow: usually a percentage on credit purchases or a small markup. It is modest, and it is real.\n\n**Another party in the data path.** Your prompts pass through the router's servers before reaching the provider. That is one more privacy policy to read and one more organisation to trust, which for confidential material may be decisive.\n\n**Variable back-ends for open models.** This is the subtle one and it catches people. When you request an open model like `llama-3.1-70b`, the router picks among several companies hosting it. Those hosts differ in quantisation, context length, speed and price: one may serve a 4-bit version with a 16k window while another serves 8-bit with 128k. Same model name, measurably different behaviour, chosen for you per request.\n\nGood routers let you pin the host, or filter by quantisation and context length, and the setting is usually off by default. If you are evaluating an open model through a router and getting inconsistent results, this is very likely why.\n\n**Feature lag.** Vendor-specific capabilities (caching, thinking budgets, particular tool formats) arrive late or not at all.\n\n## Reading a router listing properly\n\nThe listing looks simple and hides three things worth checking before you trust a comparison:\n\n1. **Input and output prices are different numbers**, often by a factor of three to five. A model that looks cheap can be expensive for long answers.\n2. **The context length shown may be the host's, not the model's.** A model advertised at 128k may be served at 32k by the cheapest provider.\n3. **Free entries usually mean training on your inputs, heavier rate limits, or both.** Read the note next to the word \"free\".\n\n## Rate limits and credits\n\nRouters usually work on prepaid credit rather than a monthly invoice, which is quietly useful: you cannot overspend past what you have loaded, and running out is an error rather than a bill. For anyone nervous about the open-ended nature of API pricing, this is a real advantage over going direct.\n\nThe trade is that rate limits through a router are often tighter than the provider's own, because the router is sharing its own allocation across all its users. For a burst of a few hundred requests this never matters. For a sustained job it can, and it is worth a small test before you plan around it.\n\n## When to use one, and when not\n\n**Use a router** for evaluation, for occasional access to many models, when direct sign-up is blocked from where you are, and for small projects where one bill is simpler than five.\n\n**Go direct** when you have settled on one provider and are using it at volume, when you need vendor-specific features, and when the material is sensitive enough that fewer parties in the path matters more than convenience.\n\nA reasonable arrangement for most people: a router for experimenting, a direct account with whichever provider wins, and a local model for anything that must not leave the building. The router earns its margin during the deciding and stops being necessary once you have decided."},"check":{"question":"Two runs of the same open model through a router give noticeably different quality and different context limits. What is the most likely cause?","options":[{"text":"The open model is updated frequently by its maker, so the two runs used different weights.","correct":false,"tempting":"Assumes rolling updates to released open weights, which are published as fixed versioned files rather than changed underneath users."},{"text":"The router applied its fallback logic and substituted a different model when the first was busy.","correct":false,"tempting":"Confuses fallback between models with routing between hosts of the same model; a model substitution would normally be reported in the response."},{"text":"The router used different hosting companies, whose deployments differ in quantisation and window.","correct":true},{"text":"Sampling variation between runs, since the router does not let you set temperature and defaults to a high value.","correct":false,"tempting":"Attributes to sampling a difference in the stated context limit, which no temperature setting can change."}]},"prev":{"slug":"free-front-ends","title":"Building your own chat app for nothing","url":"https://addaly.com/learn/choosing-your-tools/free-front-ends"},"next":{"slug":"coding-routes","title":"Where a coding assistant lives","url":"https://addaly.com/learn/choosing-your-tools/coding-routes"},"authorship":"Founder and series editor: Dr Mustafa Mun. Written by AI models to a written standard. Exam keys checked blind by a second model: 3,665 of 3,666 agreed. Academic review invited.","review":{"status":"Draft, open for academic review"},"cite":"Addaly (2026) 'Routers: one key, many models', in Choosing and Using the Tools. Edited by M. Mun. Addaly. Available at: https://addaly.com/learn/choosing-your-tools/routers-and-aggregators (Accessed: 13 October 2026).","licence":{"name":"CC BY-NC-SA 4.0","url":"https://creativecommons.org/licenses/by-nc-sa/4.0/"},"reader":{"schema":1,"title":"Routers: one key, many models","courseTitle":"Choosing and Using the Tools","module":{"index":3,"slug":"the-routes-in","title":"The routes in"},"answer":null,"keyIdea":"A router gives one key and one bill across hundreds of models, at the cost of a margin, an extra party in the data path, and (for open models) a back-end host chosen per request that may differ in quantisation and context length.","hero":{"kind":"plate","image":null,"alt":null,"caption":null},"blocks":[{"t":"h2","id":"what-a-router-is","runs":[{"text":"What a router is"}]},{"t":"p","runs":[{"text":"A router sits between you and a dozen model providers. You get one account, one key, one bill, and access to hundreds of models (closed and open, from many companies) through a single request format. OpenRouter is the best known; there are several others, and some cloud platforms offer the same idea inside their own ecosystems."}]},{"t":"p","runs":[{"text":"For anyone comparing tools this is convenient. Testing your twelve prompts across six models normally means six sign-ups, six payment methods and six sets of documentation. Through a router it is one account and a change of model name."}]},{"t":"h2","id":"what-it-buys-you","runs":[{"text":"What it buys you"}]},{"t":"p","runs":[{"text":"Trying anything immediately.","b":true},{"text":" A new model appears and you can send it a prompt within a minute, with no new account."}]},{"t":"p","runs":[{"text":"Access where you could not get it.","b":true},{"text":" Some providers are hard to sign up for from some countries, or need a card type you do not have. A router often works where a direct account does not."}]},{"t":"p","runs":[{"text":"Automatic fallback.","b":true},{"text":" Most routers will retry a failed request on another provider serving the same model. When one company has an outage, your work continues."}]},{"t":"p","runs":[{"text":"One bill in one currency","b":true},{"text":", with per-key spending limits you can hand to different projects or people."}]},{"t":"p","runs":[{"text":"Prices you can compare.","b":true},{"text":" Router listings show cost per million tokens across models side by side, which is the most useful pricing view available anywhere, and it is free to look at."}]},{"t":"h2","id":"what-it-costs-you","runs":[{"text":"What it costs you"}]},{"t":"p","runs":[{"text":"A margin.","b":true},{"text":" Routers make money somehow: usually a percentage on credit purchases or a small markup. It is modest, and it is real."}]},{"t":"p","runs":[{"text":"Another party in the data path.","b":true},{"text":" Your prompts pass through the router’s servers before reaching the provider. That is one more privacy policy to read and one more organisation to trust, which for confidential material may be decisive."}]},{"t":"p","runs":[{"text":"Variable back-ends for open models.","b":true},{"text":" This is the subtle one and it catches people. When you request an open model like "},{"text":"llama-3.1-70b","code":true},{"text":", the router picks among several companies hosting it. Those hosts differ in quantisation, context length, speed and price: one may serve a 4-bit version with a 16k window while another serves 8-bit with 128k. Same model name, measurably different behaviour, chosen for you per request."}]},{"t":"p","runs":[{"text":"Good routers let you pin the host, or filter by quantisation and context length, and the setting is usually off by default. If you are evaluating an open model through a router and getting inconsistent results, this is very likely why."}]},{"t":"p","runs":[{"text":"Feature lag.","b":true},{"text":" Vendor-specific capabilities (caching, thinking budgets, particular tool formats) arrive late or not at all."}]},{"t":"h2","id":"reading-a-router-listing-properly","runs":[{"text":"Reading a router listing properly"}]},{"t":"p","runs":[{"text":"The listing looks simple and hides three things worth checking before you trust a comparison:"}]},{"t":"ol","start":1,"items":[[{"text":"Input and output prices are different numbers","b":true},{"text":", often by a factor of three to five. A model that looks cheap can be expensive for long answers."}],[{"text":"The context length shown may be the host’s, not the model’s.","b":true},{"text":" A model advertised at 128k may be served at 32k by the cheapest provider."}],[{"text":"Free entries usually mean training on your inputs, heavier rate limits, or both.","b":true},{"text":" Read the note next to the word “free”."}]]},{"t":"h2","id":"rate-limits-and-credits","runs":[{"text":"Rate limits and credits"}]},{"t":"p","runs":[{"text":"Routers usually work on prepaid credit rather than a monthly invoice, which is quietly useful: you cannot overspend past what you have loaded, and running out is an error rather than a bill. For anyone nervous about the open-ended nature of API pricing, this is a real advantage over going direct."}]},{"t":"p","runs":[{"text":"The trade is that rate limits through a router are often tighter than the provider’s own, because the router is sharing its own allocation across all its users. For a burst of a few hundred requests this never matters. For a sustained job it can, and it is worth a small test before you plan around it."}]},{"t":"h2","id":"when-to-use-one-and-when-not","runs":[{"text":"When to use one, and when not"}]},{"t":"p","runs":[{"text":"Use a router","b":true},{"text":" for evaluation, for occasional access to many models, when direct sign-up is blocked from where you are, and for small projects where one bill is simpler than five."}]},{"t":"p","runs":[{"text":"Go direct","b":true},{"text":" when you have settled on one provider and are using it at volume, when you need vendor-specific features, and when the material is sensitive enough that fewer parties in the path matters more than convenience."}]},{"t":"p","runs":[{"text":"A reasonable arrangement for most people: a router for experimenting, a direct account with whichever provider wins, and a local model for anything that must not leave the building. The router earns its margin during the deciding and stops being necessary once you have decided."}]}],"check":{"question":[{"text":"Two runs of the same open model through a router give noticeably different quality and different context limits. What is the most likely cause?"}],"options":[{"text":[{"text":"The open model is updated frequently by its maker, so the two runs used different weights."}],"correct":false,"tempting":[{"text":"Assumes rolling updates to released open weights, which are published as fixed versioned files rather than changed underneath users."}]},{"text":[{"text":"The router applied its fallback logic and substituted a different model when the first was busy."}],"correct":false,"tempting":[{"text":"Confuses fallback between models with routing between hosts of the same model; a model substitution would normally be reported in the response."}]},{"text":[{"text":"The router used different hosting companies, whose deployments differ in quantisation and window."}],"correct":true,"tempting":null},{"text":[{"text":"Sampling variation between runs, since the router does not let you set temperature and defaults to a high value."}],"correct":false,"tempting":[{"text":"Attributes to sampling a difference in the stated context limit, which no temperature setting can change."}]}],"order":[3,1,0,2],"why":null},"prev":{"slug":"free-front-ends","title":"Building your own chat app for nothing","minutes":8},"next":{"slug":"coding-routes","title":"Where a coding assistant lives","minutes":9}}}