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:

POST /api/links
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.

201 Created
{
  "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 error field and a documented status code; rate limiting answers 429 with a retry_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