Skip to main content

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. Full API access is included on Enterprise at $19.99 a month. Pro includes a conversion key (scope track:write only) for the Track API.

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

GET/api/v1/links

List links with search, tag filter, sort, and pagination (up to 100 per page).

POST/api/v1/links

Create a link. Optional custom short ID, tags, iOS and Android URLs, expiry, or scan limit.

GET/api/v1/links/:id

Fetch one link by UUID.

PATCH/api/v1/links/:id

Update destination, tags, pixels, expiry, scan limit, or active state.

DELETE/api/v1/links/:id

Soft-delete a link (sets isActive to false).

POST/api/v1/links/bulk

Create, update, or soft-delete up to 100 links in one call.

GET/api/v1/links/:id/analytics

Per-link scan analytics for a date range.

GET/api/v1/analytics

Time series, totals, top links, devices, browsers, countries, cities, UTM, and referrers.

GET/api/v1/analytics/export

Export raw scan events as CSV or JSON (up to 50,000 rows).

POST/api/v1/qr

Render 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. In the API (Enterprise), all styles are available.

POST/api/v1/barcode

Render UPC-A, EAN-13, EAN-8, ITF-14, GS1-128, or Code 128 with check-digit checks.

POST/api/v1/track

Record a conversion for a scan click ID (rr_cid) to attribute revenue. Pro: use a conversion key (scope track:write only). Enterprise: any key with track:write.

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. In the API (Enterprise), all styles are available.

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 and revenue

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. It can also 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 only; a Pro conversion key cannot use MCP). 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.

claude_desktop_config.json
{
  "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. Each request has an HMAC-SHA256 signature in the reroute-signature header. Reject a timestamp more than 5 minutes (300 seconds) from now, in either direction. The x-reroute-signature header is deprecated. 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.

Create an account