API quickstart

Create your first QR code via the REST API in under a minute.

Everything is HTTP + JSON. No SDK required for the REST API; there is an optional embed widget and an MCP server for AI tools.

1. Create a secret key

Go to Dashboard → Developer and create a secret key with the qr:write scope. Keys start with sk_live_. You won't see the full value again after the initial create modal closes — copy it into your secret manager.

Secret keys authenticate on behalf of your workspace. A Free plan can create keys but only publishable keys work without an upgrade; secret keys require Pro or higher.

2. Create a QR

curl -X POST https://gigaqr.com/api/v1/qr \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Summer promo",
    "qrType": "url",
    "data": { "type": "url", "url": "example.com/summer" }
  }'

The response includes a public scanUrl — that's the URL encoded into the QR image. Download, print, or embed it wherever you need.

{
  "id": "7f8c...",
  "hash": "aB3x1q",
  "qrType": "url",
  "name": "Summer promo",
  "scanUrl": "https://gigaqr.com/scan/aB3x1q"
}

3. Update the destination later

The whole point of a dynamic QR is that you can change where it points without reprinting. Send a PATCH to the same id:

curl -X PATCH https://gigaqr.com/api/v1/qr/7f8c... \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "data": { "type": "url", "url": "example.com/fall" } }'

Every printed / shared QR that resolves through scanUrl immediately redirects to the new destination.

4. Read scan analytics

curl https://gigaqr.com/api/v1/qr/7f8c.../scans \
  -H "Authorization: Bearer sk_live_..."

For warehouse-style export over longer ranges, use /scans/export?format=ndjson — it streams one event per line so you can pipe it into BigQuery, Snowflake, or a local jq.

What's next