curl --request GET \
--url https://management.scanova.io/qr/ \
--header 'Authorization: <api-key>'{
"count": 185,
"next": 2,
"previous": null,
"results": [
{
"id": 2411719,
"qrid": "Q3493df1c0e074ac7",
"name": "QR Code",
"qr_type": "dy",
"qr_type_display": "Dynamic",
"category": {
"id": 1,
"name": "Website URL",
"slug": "url",
"description": "When scanned, redirects user to a website.",
"preview_image": "https://qcg-media.scanova.io/qr-category/2020/09/url.png",
"allowed_qr_types": "bt",
"allowed_qr_types_display": "Both",
"tags": "internet,website,link,url,webpage",
"is_active": true,
"is_new": false,
"has_landing_page": false,
"helpdesk_link": "https://support.scanova.io/hc/en-us/articles/36997331177753-Create-Website-URL-QR-Code",
"created": "2020-09-07T11:37:48.093485+05:30",
"modified": "2025-10-16T14:50:48.791993+05:30"
},
"info": "{\"type\":\"url\",\"data\":{\"url\":\"https://scanova.io\"}}",
"dynamic_url_object": {
"url_hash": "9drY",
"domain": null,
"custom_domain": 1903,
"high_accuracy_mode": true,
"high_accuracy_mode_text": "The QR Code administrator is requesting one-time access to your device's location. You will be redirected to the content regardless of your choice.",
"high_accuracy_confirmation": true,
"lead_list": 1106,
"expire_on_timezone": "Asia/Kolkata",
"expire_on": "2025-10-31T02:03:00+05:30",
"expire_on_text": "<div style=\"text-align:center\"><img alt=\"\" src=\"https://qcg-media.scanova.io/assets/landing/qr-placeholder-expired.png\" style=\"height:137px; width:150px\" /></div><p style=\"text-align:center\">This QR Code has been deactivated</p>",
"minimum_age": 18,
"visit_count": 0,
"created": "2025-10-24T18:54:22.752924+05:30",
"modified": "2025-10-24T18:56:37.833924+05:30",
"is_custom_hash": false,
"is_custom_domain": true,
"is_password_protected": true,
"complete_url": "https://anuj.sqcg.in/9drY",
"is_expired": false,
"is_page": false,
"has_qr": true,
"high_accuracy_geo_fencing": true,
"high_accuracy_geo_fencing_config": {
"unit": "ft",
"range": 500,
"fallback": "message",
"displayText": "<p style=\"text-align:center\">This QR Code is location-restricted.</p><p style=\"text-align:center\">The content linked to this QR Code is only accessible when scanned from a specific location. Looks like you are either outside the specified area or haven't granted location access.</p><p style=\"text-align:center\">Enable GPS location access and try again.</p>",
"mapLocation": {
"placeId": "",
"latitude": 40.7127753,
"provider": "google",
"longitude": -74.0059728,
"placeName": "New York"
},
"redirectUrl": ""
},
"qr_url": "https://anuj.sqcg.in/9drY?qr=1"
},
"pattern_info": null,
"svg_code": null,
"thumbnail": "https://qcg-media.scanova.io/qr/thumbnail/2025/10/cde2550d-2bb1-4a6f-9f94-0e7136154e2b.jpg",
"is_active": true,
"version": 1,
"created": "2025-10-24T18:54:22.697338+05:30",
"modified": "2025-10-24T18:56:37.602122+05:30",
"tags_list": [],
"is_password_protected": true,
"is_age_restricted": true,
"is_designer": false,
"pattern_type": null,
"created_by": {
"full_name": "Anuj Sharma"
},
"password": null,
"ai_qr_code": null,
"wallet_pass_info": null,
"is_qr_scannable": null,
"custom_form_response_count": 0,
"rsvp_form_response_count": 0,
"restaurant_feedback_response_count": 0
}
]
}Get QR Code List
Retrieves a paginated list of QR Codes in your account with full metadata, advanced configuration flags, and analytics fields. Supports filtering, sorting, and search. Authentication required.
curl --request GET \
--url https://management.scanova.io/qr/ \
--header 'Authorization: <api-key>'{
"count": 185,
"next": 2,
"previous": null,
"results": [
{
"id": 2411719,
"qrid": "Q3493df1c0e074ac7",
"name": "QR Code",
"qr_type": "dy",
"qr_type_display": "Dynamic",
"category": {
"id": 1,
"name": "Website URL",
"slug": "url",
"description": "When scanned, redirects user to a website.",
"preview_image": "https://qcg-media.scanova.io/qr-category/2020/09/url.png",
"allowed_qr_types": "bt",
"allowed_qr_types_display": "Both",
"tags": "internet,website,link,url,webpage",
"is_active": true,
"is_new": false,
"has_landing_page": false,
"helpdesk_link": "https://support.scanova.io/hc/en-us/articles/36997331177753-Create-Website-URL-QR-Code",
"created": "2020-09-07T11:37:48.093485+05:30",
"modified": "2025-10-16T14:50:48.791993+05:30"
},
"info": "{\"type\":\"url\",\"data\":{\"url\":\"https://scanova.io\"}}",
"dynamic_url_object": {
"url_hash": "9drY",
"domain": null,
"custom_domain": 1903,
"high_accuracy_mode": true,
"high_accuracy_mode_text": "The QR Code administrator is requesting one-time access to your device's location. You will be redirected to the content regardless of your choice.",
"high_accuracy_confirmation": true,
"lead_list": 1106,
"expire_on_timezone": "Asia/Kolkata",
"expire_on": "2025-10-31T02:03:00+05:30",
"expire_on_text": "<div style=\"text-align:center\"><img alt=\"\" src=\"https://qcg-media.scanova.io/assets/landing/qr-placeholder-expired.png\" style=\"height:137px; width:150px\" /></div><p style=\"text-align:center\">This QR Code has been deactivated</p>",
"minimum_age": 18,
"visit_count": 0,
"created": "2025-10-24T18:54:22.752924+05:30",
"modified": "2025-10-24T18:56:37.833924+05:30",
"is_custom_hash": false,
"is_custom_domain": true,
"is_password_protected": true,
"complete_url": "https://anuj.sqcg.in/9drY",
"is_expired": false,
"is_page": false,
"has_qr": true,
"high_accuracy_geo_fencing": true,
"high_accuracy_geo_fencing_config": {
"unit": "ft",
"range": 500,
"fallback": "message",
"displayText": "<p style=\"text-align:center\">This QR Code is location-restricted.</p><p style=\"text-align:center\">The content linked to this QR Code is only accessible when scanned from a specific location. Looks like you are either outside the specified area or haven't granted location access.</p><p style=\"text-align:center\">Enable GPS location access and try again.</p>",
"mapLocation": {
"placeId": "",
"latitude": 40.7127753,
"provider": "google",
"longitude": -74.0059728,
"placeName": "New York"
},
"redirectUrl": ""
},
"qr_url": "https://anuj.sqcg.in/9drY?qr=1"
},
"pattern_info": null,
"svg_code": null,
"thumbnail": "https://qcg-media.scanova.io/qr/thumbnail/2025/10/cde2550d-2bb1-4a6f-9f94-0e7136154e2b.jpg",
"is_active": true,
"version": 1,
"created": "2025-10-24T18:54:22.697338+05:30",
"modified": "2025-10-24T18:56:37.602122+05:30",
"tags_list": [],
"is_password_protected": true,
"is_age_restricted": true,
"is_designer": false,
"pattern_type": null,
"created_by": {
"full_name": "Anuj Sharma"
},
"password": null,
"ai_qr_code": null,
"wallet_pass_info": null,
"is_qr_scannable": null,
"custom_form_response_count": 0,
"rsvp_form_response_count": 0,
"restaurant_feedback_response_count": 0
}
]
}Query Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
page | integer | No | 1 | Page number (1-based). |
ordering | string | No | created | Sort order. Prefix with - for descending. Allowed: created, -created, name, -name, category__name, -category__name, dynamic_url_object__visit_count, -dynamic_url_object__visit_count. |
created_from | date (YYYY-MM-DD) | No | — | Only return QR codes created on/after this date. |
created_till | date (YYYY-MM-DD) | No | — | Only return QR codes created on/before this date. |
qrid | string | No | — | Filter by specific QR code ID(s). Must be a comma-separated list of QR IDs. Example: Q349...,Qf9...,Qf94.... |
tags | string | No | — | Comma-separated tags (URL-encoded). Example: marketing,summer-campaign. |
category | string | No | — | Comma-separated category slugs. Example: url,product. |
type | string | No | — | Filter by QR type: st (static), dy (dynamic). |
status | string | No | — | Filter by status: active, inactive. |
users | string | No | — | Comma-separated user IDs (URL-encoded). |
scan_type | string | No | — | Scan-count comparison mode: less_than, between, greater_than, equal_to. Must be used with scan_count1. |
scan_count1 | integer | No | — | Primary scan-count value (required with scan_type). |
scan_count2 | integer | No | — | Secondary scan-count value (required when scan_type=between). |
search | string | No | — | Free-text search value. |
search_fields | string | No | — | Comma-separated fields to search in: qrid, dynamic_url_object__url_hash, name. If omitted, default search fields are used. |
Usage Notes (query params)
orderingexample:?ordering=-dynamic_url_object__visit_countreturns most-scanned QR codes first.- Date filters accept
YYYY-MM-DD(server timezone aware). To filter by exact datetime, use server-side date range withcreated_from/created_till. - The
qridparameter accepts a single QR ID or multiple QR IDs as a comma-separated string (e.g.,qrid=Q349...,Qf94...). Note: Use comma-separated values in a single parameter, not repeated query parameters. For example, use?qrid=Q1,Q2,Q3instead of?qrid=Q1&qrid=Q2&qrid=Q3. - For
scan_type=between, supply bothscan_count1andscan_count2(e.g.,scan_count1=10&scan_count2=100). - When filtering by
tags,category, orqrid, URL-encode commas (or use repeated parameters depending on your client).
Examples
Get All QR Codes
curl -X GET "https://management.scanova.io/qr/" \
-H "Authorization: YOUR_API_KEY"
Pagination
# Get page 2
curl -X GET "https://management.scanova.io/qr/?page=2" \
-H "Authorization: YOUR_API_KEY"
Sorting
# Sort by creation date (newest first)
curl -X GET "https://management.scanova.io/qr/?ordering=-created" \
-H "Authorization: YOUR_API_KEY"
# Sort by name (alphabetical)
curl -X GET "https://management.scanova.io/qr/?ordering=name" \
-H "Authorization: YOUR_API_KEY"
# Sort by visit count (most visited first)
curl -X GET "https://management.scanova.io/qr/?ordering=-dynamic_url_object__visit_count" \
-H "Authorization: YOUR_API_KEY"
Date Filtering
# QR codes created between specific dates
curl -X GET "https://management.scanova.io/qr/?created_from=2025-10-06&created_till=2025-10-24" \
-H "Authorization: YOUR_API_KEY"
# QR codes created from a specific date
curl -X GET "https://management.scanova.io/qr/?created_from=2025-10-01" \
-H "Authorization: YOUR_API_KEY"
Category and Type Filtering
# Filter by specific categories
curl -X GET "https://management.scanova.io/qr/?category=image%2CrealEstate" \
-H "Authorization: YOUR_API_KEY"
# Filter by QR code type
curl -X GET "https://management.scanova.io/qr/?type=dy" \
-H "Authorization: YOUR_API_KEY"
# Filter by status
curl -X GET "https://management.scanova.io/qr/?status=active" \
-H "Authorization: YOUR_API_KEY"
QR ID Filtering
# Filter by a single QR ID
curl -X GET "https://management.scanova.io/qr/?qrid=Q3493df1c0e074ac7" \
-H "Authorization: YOUR_API_KEY"
# Filter by multiple QR IDs (comma-separated, no spaces)
curl -X GET "https://management.scanova.io/qr/?qrid=Q3493df1c0e074ac7,Qf94b25d768294148,Qf94b25d768294149" \
-H "Authorization: YOUR_API_KEY"
# Example with URL encoding (if needed)
curl -X GET "https://management.scanova.io/qr/?qrid=Qa9d654f16ff64ea3,Q61afaf3aaa6e4701" \
-H "Authorization: YOUR_API_KEY"
Tag Filtering
# Filter by tags
curl -X GET "https://management.scanova.io/qr/?tags=new%20batch%2Cdfgh" \
-H "Authorization: YOUR_API_KEY"
User Filtering
# Filter by specific users
curl -X GET "https://management.scanova.io/qr/?users=412428%2C412427" \
-H "Authorization: YOUR_API_KEY"
Scan Count Filtering
# QR codes with less than 100 scans
curl -X GET "https://management.scanova.io/qr/?scan_type=less_than&scan_count1=100" \
-H "Authorization: YOUR_API_KEY"
# QR codes with more than 50 scans
curl -X GET "https://management.scanova.io/qr/?scan_type=greater_than&scan_count1=50" \
-H "Authorization: YOUR_API_KEY"
# QR codes with exactly 10 scans
curl -X GET "https://management.scanova.io/qr/?scan_type=equal_to&scan_count1=10" \
-H "Authorization: YOUR_API_KEY"
# QR codes with between 10 and 100 scans
curl -X GET "https://management.scanova.io/qr/?scan_type=between&scan_count1=100&scan_count2=10" \
-H "Authorization: YOUR_API_KEY"
Search
# Search by QR code name
curl -X GET "https://management.scanova.io/qr/?search=my%20qr%20code&search_fields=name" \
-H "Authorization: YOUR_API_KEY"
# Search by QR ID
curl -X GET "https://management.scanova.io/qr/?search=Q3493df1c0e074ac7&search_fields=qrid" \
-H "Authorization: YOUR_API_KEY"
# Search by URL hash
curl -X GET "https://management.scanova.io/qr/?search=9drY&search_fields=dynamic_url_object__url_hash" \
-H "Authorization: YOUR_API_KEY"
# Search across multiple fields
curl -X GET "https://management.scanova.io/qr/?search=website&search_fields=qrid,dynamic_url_object__url_hash,name" \
-H "Authorization: YOUR_API_KEY"
Complex Filtering
# Active dynamic QR codes created in October 2025, sorted by visit count
curl -X GET "https://management.scanova.io/qr/?status=active&type=dy&created_from=2025-10-01&created_till=2025-10-31&ordering=-dynamic_url_object__visit_count" \
-H "Authorization: YOUR_API_KEY"
# Image and real estate QR codes with more than 50 scans, sorted by name
curl -X GET "https://management.scanova.io/qr/?category=image%2CrealEstate&scan_type=greater_than&scan_count1=50&ordering=name" \
-H "Authorization: YOUR_API_KEY"
Response Example
{
"count": 185,
"next": 2,
"previous": null,
"results": [
{
"id": 2411719,
"qrid": "Q3493df1c0e074ac7",
"name": "QR Code",
"qr_type": "dy",
"qr_type_display": "Dynamic",
"category": {
"id": 1,
"name": "Website URL",
"slug": "url",
"description": "When scanned, redirects user to a website.",
"preview_image": "https://qcg-media.scanova.io/qr-category/2020/09/url.png",
"allowed_qr_types": "bt",
"allowed_qr_types_display": "Both",
"tags": "internet,website,link,url,webpage",
"is_active": true,
"is_new": false,
"has_landing_page": false,
"helpdesk_link": "https://support.scanova.io/hc/en-us/articles/36997331177753-Create-Website-URL-QR-Code",
"created": "2020-09-07T11:37:48.093485+05:30",
"modified": "2025-10-16T14:50:48.791993+05:30"
},
"info": "{\"type\":\"url\",\"data\":{\"url\":\"https://scanova.io\"}}",
"dynamic_url_object": {
"url_hash": "9drY",
"domain": null,
"custom_domain": 1903,
"high_accuracy_mode": true,
"high_accuracy_mode_text": "The QR Code administrator is requesting one-time access to your device's location. You will be redirected to the content regardless of your choice.",
"high_accuracy_confirmation": true,
"lead_list": 1106,
"expire_on_timezone": "Asia/Kolkata",
"expire_on": "2025-10-31T02:03:00+05:30",
"expire_on_text": "<div style=\"text-align:center\"><img alt=\"\" src=\"https://qcg-media.scanova.io/assets/landing/qr-placeholder-expired.png\" style=\"height:137px; width:150px\" /></div><p style=\"text-align:center\">This QR Code has been deactivated</p>",
"minimum_age": 18,
"visit_count": 0,
"created": "2025-10-24T18:54:22.752924+05:30",
"modified": "2025-10-24T18:56:37.833924+05:30",
"is_custom_hash": false,
"is_custom_domain": true,
"is_password_protected": true,
"complete_url": "https://anuj.sqcg.in/9drY",
"is_expired": false,
"is_page": false,
"has_qr": true,
"high_accuracy_geo_fencing": true,
"high_accuracy_geo_fencing_config": {
"unit": "ft",
"range": 500,
"fallback": "message",
"displayText": "<p style=\"text-align:center\">This QR Code is location-restricted.</p><p style=\"text-align:center\">The content linked to this QR Code is only accessible when scanned from a specific location. Looks like you are either outside the specified area or haven't granted location access.</p><p style=\"text-align:center\">Enable GPS location access and try again.</p>",
"mapLocation": {
"placeId": "",
"latitude": 40.7127753,
"provider": "google",
"longitude": -74.0059728,
"placeName": "New York"
},
"redirectUrl": ""
},
"qr_url": "https://anuj.sqcg.in/9drY?qr=1"
},
"pattern_info": null,
"svg_code": null,
"thumbnail": "https://qcg-media.scanova.io/qr/thumbnail/2025/10/cde2550d-2bb1-4a6f-9f94-0e7136154e2b.jpg",
"is_active": true,
"version": 1.0,
"created": "2025-10-24T18:54:22.697338+05:30",
"modified": "2025-10-24T18:56:37.602122+05:30",
"tags_list": [],
"is_password_protected": true,
"is_age_restricted": true,
"is_designer": false,
"pattern_type": null,
"created_by": {
"full_name": "Anuj Sharma"
},
"password": null,
"ai_qr_code": null,
"wallet_pass_info": null,
"is_qr_scannable": null,
"custom_form_response_count": 0,
"rsvp_form_response_count": 0,
"restaurant_feedback_response_count": 0
}
]
}
Performance & Pagination Best Practices
- Use sensible page sizes on the client (server defaults to a safe page size). For large exports, use dedicated export endpoints if available.
- Cache category metadata (it changes rarely) instead of refetching per-QR item.
- Use server-side sorting (
ordering) for accurate, paginated results rather than fetching all pages and sorting client-side. - Avoid deep paging with very large offsets; prefer cursor-based or export flows for millions of records.
- Rate-limit handling: implement retries with exponential backoff for
429 Too Many Requests.
UI/UX Tips for Rendering
- Show thumbnail if available; fall back to generated QR preview using
qr_url. - Respect
is_activeandis_visibleflags when listing to end users. - Use
dynamic_url_object.visit_countandqr_type_displayfor quick insights. - For lists with many columns, provide column toggles — hide expensive fields (full
infoJSON) by default.
Authorizations
API key authentication. Enter your API key directly in the Authorization header.
Query Parameters
Page number to retrieve
x >= 1Sort order. Use '-' prefix for descending order
created, -created, name, -name, category__name, -category__name, dynamic_url_object__visit_count, -dynamic_url_object__visit_count Filter QR codes created from this date (YYYY-MM-DD)
Filter QR codes created till this date (YYYY-MM-DD)
Filter by specific QR code ID(s). Must be a comma-separated list of QR IDs. Example: Q349...,Qf94...
Filter by tags (comma-separated, URL encoded)
Filter by category slugs (comma-separated, URL encoded)
Filter by QR code type
st, dy Filter by QR code status
active, inactive Filter by user IDs (comma-separated, URL encoded)
Filter by scan count comparison type
less_than, between, greater_than, equal_to Primary scan count value (required with scan_type)
x >= 0Secondary scan count value (required for 'between' scan_type)
x >= 0Search value
Fields to search in (comma-separated)
qrid, dynamic_url_object__url_hash, name Was this page helpful?