Developers
Build on the routing brain.
Kilo is API-first in the checkable sense: the dashboard is a client of the same public REST API you get, with the same scopes and the same limits. If the dashboard can do it, your integration can - create links and QR designs, read analytics, manage routing rules, all over plain HTTP.
What you can build.
Link infrastructure inside your product - mint short links from your backend per signup, campaign, or customer, and let the edge answer every redirect in roughly 50 milliseconds.
QR pipelines for print - create a link and save its QR design in one flow, so every poster, menu, and package carries a code you can re-route after printing.
Reporting that matches the dashboard - pull totals, timeseries, countries, devices, and click quality into your own warehouse or client reports. Same endpoints, same numbers.
AI-assistant workflows - connect Claude, Cursor, or any MCP client to the hosted MCP server and drive the same API in plain conversation.
Mint a link in sixty seconds.
Create an API key in the dashboard under API keys - read for reporting, read + write to create things. The plaintext key is shown exactly once. With the key in hand, one call creates a link:
curl https://qr2r.com/api/links \
-H "Authorization: Bearer $KILO_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "default_target": "https://example.com/landing", "name": "Spring flyer" }'The 201 response carries your slug - the link is live at qr2r.com/<slug> from that moment, and its destination can be re-pointed later without changing anything you printed or shipped.
{
"slug": "aA3k9",
"name": "Spring flyer",
"default_target": "https://example.com/landing",
"disabled": false,
"created_at": 1719000000000
}From here, the API guide covers authentication, scopes, the error shape, and rate limits; links and analytics + rules walk every call with a curl example each.
The developer surface.
Five resources, one API. The interactive reference and the machine-readable spec are generated from the same schemas the Worker validates against, so none of them can drift.
What you can count on.
Redirects at the edge.
A link resolves on Cloudflare's edge in roughly 50 milliseconds. Analytics and everything heavier run off that path - never in front of your visitor.
Honest errors, stated limits.
Every error is JSON with one
errorfield and a documented status code; rate limiting answers429with aretry_after. The limits are stated in the guide, not discovered in production.A contract that holds.
The dashboard runs on these same endpoints, so a breaking change would break Kilo first - the strongest stability guarantee a platform can honestly offer.
Ship something on it.
Create an API key