API Access

Automate links & QR with the xengo API

A clean REST API with bearer auth and JSON — create, edit, list and track branded links and dynamic QR in code. Available on the Business plan.

Automate links & QR with the xengo API in the xengo console
Built for developers

One key, full control

Everything you do in the console, you can do in code. Mint an API key, call a simple REST endpoint with a bearer token, and create, re-point, list, tag and measure links and QR at scale — wired into your own systems, CI or automations.

  1. 1

    Create a key

    Generate an API key in the console under API Keys (Business plan).

  2. 2

    Call the API

    Send a bearer-authenticated request to api.xengo.io — plain REST and JSON.

  3. 3

    Automate

    Create, re-point, tag and track links and QR in bulk from your own code or tools.

Every link, in code

Create branded links on your own domain, re-point them, tag them and delete them — the same operations you run in the console, over a clean REST API.

  • Create, update, list and delete links
  • Re-point a live link without changing the URL
  • Set tags, expiry and notify channels per link

Bulk-create and automate

Spin up thousands of links in a single call, or wire link creation into your CRM, CI or campaign tooling. The API is the console — scriptable.

  • Bulk endpoint for high-volume jobs
  • Wire into your CRM, CI or automations
  • Pull per-link, bot-filtered click stats
See it in action

The console, in a few lines of code

Bearer-authenticated REST with JSON. Pick an operation:

api.xengo.io
Request
curl -X POST https://api.xengo.io/links \
  -H "Authorization: Bearer $XENGO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "destination": "https://acme.com/spring-sale",
    "domain": "go.acme.com",
    "code": "spring",
    "tags": { "campaign": "spring", "channel": "newsletter" },
    "notifyChannels": ["slack-growth"]
  }'
Response 201 Created
{
  "code": "spring",
  "shortUrl": "https://go.acme.com/spring",
  "destination": "https://acme.com/spring-sale",
  "domain": "go.acme.com",
  "status": "active",
  "tags": { "campaign": "spring", "channel": "newsletter" },
  "notifyChannels": ["slack-growth"],
  "createdAt": "2026-07-03T14:20:00Z",
  "clicks24h": 0
}
Request
curl https://api.xengo.io/links \
  -H "Authorization: Bearer $XENGO_API_KEY"
Response 200 OK
{
  "links": [
    {
      "code": "spring",
      "shortUrl": "https://go.acme.com/spring",
      "destination": "https://acme.com/spring-sale",
      "status": "active",
      "clicks24h": 128,
      "lastClickAt": "2026-07-03T13:59:11Z"
    },
    {
      "code": "ios-app",
      "shortUrl": "https://go.acme.com/ios-app",
      "destination": "https://apps.apple.com/app/acme",
      "status": "active",
      "clicks24h": 64
    }
  ]
}
Request
curl -X PATCH https://api.xengo.io/links/spring \
  -H "Authorization: Bearer $XENGO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "destination": "https://acme.com/summer-sale" }'
Response 200 OK
{
  "code": "spring",
  "shortUrl": "https://go.acme.com/spring",
  "destination": "https://acme.com/summer-sale",
  "status": "active",
  "createdAt": "2026-07-03T14:20:00Z",
  "clicks24h": 128
}
Request
curl -i -X DELETE https://api.xengo.io/links/spring \
  -H "Authorization: Bearer $XENGO_API_KEY"
Response 204 No Content
HTTP/1.1 204 No Content
Request
curl "https://api.xengo.io/links/spring/stats?window=24h" \
  -H "Authorization: Bearer $XENGO_API_KEY"
Response 200 OK
{
  "window": "24h",
  "total": 128,
  "points": [
    { "hour": "2026-07-03T12:00Z", "count": 41 },
    { "hour": "2026-07-03T13:00Z", "count": 87 }
  ]
}

Everything you'd expect — and the parts you wouldn't

Bearer auth

Authenticate with an API key as a bearer token over HTTPS.

Plain REST + JSON

Predictable endpoints under api.xengo.io — JSON in, JSON out.

Full link lifecycle

Create, update, list, delete and re-point links and their QR.

Bulk endpoint

Create many links in a single request.

Per-link stats

Pull bot-filtered click and scan counts per link.

Business plan

API access is available on the Business tier.

Frequently asked questions

How do I authenticate?

Generate an API key in the console (API Keys), then send it as a bearer token — Authorization: Bearer <key> — over HTTPS.

Which plan includes API access?

The API is available on the Business plan.

What can the API do?

Create, update, list, delete and re-point links, create in bulk, and pull per-link click and scan stats — the same operations as the console.

Can I create links in bulk?

Yes — the bulk endpoint creates many links in one request and returns how many were created, failed and requested.

Can I trigger notifications via the API?

Yes — set notifyChannels on a link and its clicks and scans fire your alerts, exactly as they do in the console.

Build on the xengo API

Create a key and automate branded links and QR in code. Available on Business.