Built to be driven by code
REST endpoints for links, analytics, QR codes, barcodes, and conversion tracking; signed webhooks on every scan; and an MCP server so an AI assistant can manage links without the dashboard. API access is included on Enterprise at $19.99 a month.
Authentication
Send your key as a Bearer token. Keys are stored as SHA-256 hashes and scoped to one workspace. The API allows 100 requests per minute per workspace.
curl https://reroutehq.com/api/v1/analytics \
-H "Authorization: Bearer $RR_API_KEY"
{
"totalScans": 18422,
"topLinks": [
{ "shortId": "menu", "scans": 6120 },
{ "shortId": "q3-flyer", "scans": 4380 }
],
"countries": [
{ "country": "US", "count": 11204 },
{ "country": "CA", "count": 3311 }
]
}Endpoints
/api/v1/linksList links with search, tag filter, sort, and pagination (up to 100 per page).
/api/v1/linksCreate a link. Optional custom short ID, tags, iOS and Android URLs, expiry, or scan limit.
/api/v1/links/:idFetch one link by UUID.
/api/v1/links/:idUpdate destination, tags, pixels, expiry, scan limit, or active state.
/api/v1/links/:idSoft-delete a link (sets isActive to false).
/api/v1/links/bulkCreate, update, or soft-delete up to 100 links in one call.
/api/v1/links/:id/analyticsPer-link scan analytics for a date range.
/api/v1/analyticsTime series, totals, top links, devices, browsers, countries, cities, UTM, and referrers.
/api/v1/analytics/exportExport raw scan events as CSV or JSON (up to 50,000 rows).
/api/v1/qrRender a QR code as PNG or SVG (100–1024 px). Optional styled output: shapes, colors, circular ring frames, shape masks, and halftone art — SVG only; masks and halftone need Pro or Enterprise.
/api/v1/barcodeRender UPC-A, EAN-13, EAN-8, ITF-14, GS1-128, or Code 128 with check-digit checks.
/api/v1/trackRecord a conversion for a scan click ID (rr_cid) to attribute revenue.
The QR endpoint takes an optional style object for module and eye shapes, custom colors, circular ring frames, shape masks, and halftone art. Styled output is SVG only and always uses error correction H; shape masks and halftone art need a Pro or Enterprise plan.
curl -X POST https://reroutehq.com/api/v1/qr \
-H "Authorization: Bearer $RR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"shortId":"menu","format":"svg","style":{"qrShape":"circle","ringText":"SCAN ME • REROUTEHQ.COM","fgColor":"#1e293b"}}'The AI that sees your funnels, revenue, and anomalies
Connect Claude, ChatGPT, or any MCP client to reRoute and your assistant works from the same data the dashboard shows: where a funnel loses people, which scans turned into revenue through track_conversion and click IDs, and which links are behaving abnormally. It can still create links with routing rules or pull scan numbers from a conversation. Competitors package this as a chat product; we expose the same capabilities through the open Model Context Protocol so you pick the assistant.
Endpoint: POST https://reroutehq.com/api/mcp. Authenticates with the same Bearer API key as REST (Enterprise). Same workspace rate limit. Transport is stateless JSON-RPC (no SSE stream). Nine tools: list_links, create_link, list_campaigns, create_campaign, get_analytics, get_report, get_referrers, get_funnel, and track_conversion.
{
"mcpServers": {
"reroute": {
"url": "https://reroutehq.com/api/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}Full tool arguments and response shapes are in the dashboard Developers documentation. Machine-readable REST: /api/v1/openapi. MCP analytics uses a trailing daysBack window, not the full REST time-series export.
Webhooks
Register an HTTPS endpoint. On each scan the platform sends event scan.created, signed with HMAC-SHA256 in the x-reroute-signature header. Delivery runs after the redirect, so a slow endpoint does not delay the scanner.
Each event is queued before the first attempt. If your endpoint is down, the platform retries with exponential backoff for up to 5 attempts, then stops. Delivery is at-least-once: a retry can repeat an event your endpoint already accepted, so treat scanId as the idempotency key. Reply 2xx to acknowledge. A 4xx reply is taken as a permanent rejection and is not retried.
Rate limits
- API, per workspace100 / min
- Redirects, per IP60 / min
- Auth attempts, per IP10 / min
Every response carries the standard X-RateLimit headers.
Full reference lives in the dashboard
Create an account to get a key. The Developers tab has request and response shapes, webhook payloads, conversion attribution (rr_cid), and MCP tools. OpenAPI is public at /api/v1/openapi.