For developers

API reference

Create codes and repoint them from your own server. The printed code never changes — only where it goes.

The basics

Base URL
https://blueagency-eg.com/api/v1
Auth
Authorization: Bearer bq_live_…
Rate limit
120 requests a minute, per key
Plan
Agency

Keys

From your dashboard → API. A key is shown once and once only — we store a hash, not the key, so there is no way to show it again.

Two scopes: read lists codes and their scans; write can change where any printed code points. Pick read unless you need to write.

Endpoints

GET/api/v1/codesread

List codes. Cursor paginated — pass next_cursor for the following page.

?limit=25&cursor=…&q=menu
POST/api/v1/codeswrite

Create a dynamic code.

{
  "name": "Zamalek menu",
  "destination": "https://example.com/menu",
  "custom_code": "ZAMALEK",
  "tags": ["menu", "cairo"]
}
GET/api/v1/codes/{id}read

One code.

PATCH/api/v1/codes/{id}write

Change the destination or the status. The printed payload is untouched.

{ "destination": "https://example.com/new-menu" }

{ "status": "paused" }   // active · paused · archived

Responses

Every success is wrapped in data. Every error carries a stable code — rely on that, not on the message text, which is written for people and may change.

{ "data": { "code": { "id": "…", "short_code": "BLUE01",
    "payload": "HTTPS://BLUEAGENCY-EG.COM/Q/BLUE01",
    "destination": "https://example.com/menu", "scans": 412 } } }

{ "error": { "code": "PLAN_LIMIT_REACHED",
    "message": "Dynamic QR code limit reached" } }

A full example

# Repoint every code tagged "menu" at the new PDF
curl https://blueagency-eg.com/api/v1/codes?q=menu \
  -H "Authorization: Bearer $BQ_KEY" \
| jq -r '.data.codes[].id' \
| while read id; do
    curl -X PATCH https://blueagency-eg.com/api/v1/codes/$id \
      -H "Authorization: Bearer $BQ_KEY" \
      -H "Content-Type: application/json" \
      -d '{"destination":"https://example.com/menu-autumn.pdf"}'
  done

Note that no endpoint changes payload. There isn't one, and there never will be — that is what keeps everything already printed working.

← Back to the product