Skip to main content
GET
/
qr-codes
List QR Codes
curl --request GET \
  --url https://api.useqrkit.com/v1/qr-codes \
  --header 'Authorization: Bearer <token>'
{
  "object": "list",
  "has_more": true,
  "next_cursor": "<string>",
  "data": [
    {
      "id": "qr_123",
      "object": "qr_code",
      "name": "<string>",
      "short_code": "AB3D5",
      "short_url": "https://scan.useqrkit.com/AB3D5",
      "target": {
        "type": "<string>",
        "destination": "<string>"
      },
      "design": {
        "colors": {
          "foreground": "<string>",
          "background": "<string>"
        },
        "gradient": {
          "start": "<string>",
          "end": "<string>",
          "type": "<string>"
        },
        "shapes": {
          "body": "<string>",
          "eye_frame": "<string>",
          "eye_ball": "<string>"
        },
        "eye_colors": {
          "frame": "<string>",
          "ball": "<string>"
        },
        "has_logo": true,
        "transparent_background": true
      },
      "folder_id": "fld_12",
      "tags": [
        "<string>"
      ],
      "image_url": "https://img.useqrkit.com/qr-AB3D5-1717000000000.svg",
      "download_url": "/v1/qr-codes/qr_123/download",
      "is_active": true,
      "scan_count": 123,
      "utm": {
        "source": "<string>",
        "medium": "<string>",
        "campaign": "<string>",
        "term": "<string>",
        "content": "<string>"
      },
      "created_at": "2023-11-07T05:31:56Z",
      "updated_at": "2023-11-07T05:31:56Z"
    }
  ]
}

Authorizations

Authorization
string
header
required

API key in the Authorization header: Bearer qr_live_… or Bearer qr_test_…. Token endpoints take a Clerk session JWT instead.

Query Parameters

limit
integer
default:25
Required range: 1 <= x <= 100
cursor
string

Opaque cursor from a previous response's next_cursor.

kind
enum<string>
default:all
Available options:
dynamic,
static,
all
folder_id
string

Only codes in this folder (e.g. fld_12).

status
enum<string>
default:all

inactive only matches paused dynamic codes.

Available options:
active,
inactive,
all
sort
enum<string>
default:created_at
Available options:
created_at,
updated_at,
name,
scan_count
order
enum<string>
default:desc
Available options:
asc,
desc

Case-insensitive name search.

Response

Paginated list

object
string
Example:

"list"

has_more
boolean
next_cursor
string | null
data
object[]