> ## Documentation Index
> Fetch the complete documentation index at: https://docs.scanova.io/llms.txt
> Use this file to discover all available pages before exploring further.

# 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.

## 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)

* `ordering` example: `?ordering=-dynamic_url_object__visit_count` returns most-scanned QR codes first.
* Date filters accept `YYYY-MM-DD` (server timezone aware). To filter by exact datetime, use server-side date range with `created_from`/`created_till`.
* The `qrid` parameter 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,Q3` instead of `?qrid=Q1&qrid=Q2&qrid=Q3`.
* For `scan_type=between`, supply both `scan_count1` and `scan_count2` (e.g., `scan_count1=10&scan_count2=100`).
* When filtering by `tags`, `category`, or `qrid`, URL-encode commas (or use repeated parameters depending on your client).

## Examples

### Get All QR Codes

```bash theme={null}
curl -X GET "https://management.scanova.io/qr/" \
  -H "Authorization: YOUR_API_KEY"
```

### Pagination

```bash theme={null}
# Get page 2
curl -X GET "https://management.scanova.io/qr/?page=2" \
  -H "Authorization: YOUR_API_KEY"
```

### Sorting

```bash theme={null}
# 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

```bash theme={null}
# 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

```bash theme={null}
# 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

```bash theme={null}
# 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

```bash theme={null}
# Filter by tags
curl -X GET "https://management.scanova.io/qr/?tags=new%20batch%2Cdfgh" \
  -H "Authorization: YOUR_API_KEY"
```

### User Filtering

```bash theme={null}
# Filter by specific users
curl -X GET "https://management.scanova.io/qr/?users=412428%2C412427" \
  -H "Authorization: YOUR_API_KEY"
```

### Scan Count Filtering

```bash theme={null}
# 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

```bash theme={null}
# 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

```bash theme={null}
# 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

```json theme={null}
{
  "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_active` and `is_visible` flags when listing to end users.
* Use `dynamic_url_object.visit_count` and `qr_type_display` for quick insights.
* For lists with many columns, provide column toggles — hide expensive fields (full `info` JSON) by default.


## OpenAPI

````yaml GET /qr/
openapi: 3.1.0
info:
  title: Scanova QR Code API
  description: QR Code management endpoints for creating, updating, and managing QR codes
  version: 1.0.0
servers:
  - url: https://management.scanova.io
    description: Production server
security:
  - apiKeyAuth: []
paths:
  /qr/:
    get:
      tags:
        - QR Code
      summary: List QR Codes
      description: >-
        Retrieves a paginated list of all QR codes in your account with
        comprehensive details including advanced features, analytics, and
        configuration options. Supports advanced filtering, sorting, and search
        capabilities. Requires authentication.
      parameters:
        - name: page
          in: query
          description: Page number to retrieve
          required: false
          schema:
            type: integer
            minimum: 1
          example: 1
        - name: ordering
          in: query
          description: Sort order. Use '-' prefix for descending order
          required: false
          schema:
            type: string
            enum:
              - created
              - '-created'
              - name
              - '-name'
              - category__name
              - '-category__name'
              - dynamic_url_object__visit_count
              - '-dynamic_url_object__visit_count'
          example: '-created'
        - name: created_from
          in: query
          description: Filter QR codes created from this date (YYYY-MM-DD)
          required: false
          schema:
            type: string
            format: date
          example: '2025-10-06'
        - name: created_till
          in: query
          description: Filter QR codes created till this date (YYYY-MM-DD)
          required: false
          schema:
            type: string
            format: date
          example: '2025-10-24'
        - name: qrid
          in: query
          description: >-
            Filter by specific QR code ID(s). Must be a comma-separated list of
            QR IDs. Example: Q349...,Qf94...
          required: false
          schema:
            type: string
          example: Q349...,Qf94...
        - name: tags
          in: query
          description: Filter by tags (comma-separated, URL encoded)
          required: false
          schema:
            type: string
          example: new%20batch%2Cdfgh
        - name: category
          in: query
          description: Filter by category slugs (comma-separated, URL encoded)
          required: false
          schema:
            type: string
          example: image%2CrealEstate
        - name: type
          in: query
          description: Filter by QR code type
          required: false
          schema:
            type: string
            enum:
              - st
              - dy
          example: dy
        - name: status
          in: query
          description: Filter by QR code status
          required: false
          schema:
            type: string
            enum:
              - active
              - inactive
          example: active
        - name: users
          in: query
          description: Filter by user IDs (comma-separated, URL encoded)
          required: false
          schema:
            type: string
          example: 412428%2C412427
        - name: scan_type
          in: query
          description: Filter by scan count comparison type
          required: false
          schema:
            type: string
            enum:
              - less_than
              - between
              - greater_than
              - equal_to
          example: greater_than
        - name: scan_count1
          in: query
          description: Primary scan count value (required with scan_type)
          required: false
          schema:
            type: integer
            minimum: 0
          example: 100
        - name: scan_count2
          in: query
          description: Secondary scan count value (required for 'between' scan_type)
          required: false
          schema:
            type: integer
            minimum: 0
          example: 10
        - name: search
          in: query
          description: Search value
          required: false
          schema:
            type: string
          example: my qr code
        - name: search_fields
          in: query
          description: Fields to search in (comma-separated)
          required: false
          schema:
            type: string
            enum:
              - qrid
              - dynamic_url_object__url_hash
              - name
          example: qrid,dynamic_url_object__url_hash,name
      responses:
        '200':
          description: List of QR codes
          content:
            application/json:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                    description: Total number of QR codes
                    example: 185
                  next:
                    type: integer
                    description: Page number for next page (null if no more pages)
                    example: 2
                  previous:
                    type: integer
                    description: Page number for previous page (null if first page)
                    example: null
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/QRCodeResponse'
              examples:
                qr_code_list:
                  summary: QR Code list response
                  value:
                    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
        '401':
          description: Unauthorized - Invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticationErrorResponse'
      security:
        - apiKeyAuth: []
components:
  schemas:
    QRCodeResponse:
      type: object
      properties:
        id:
          type: integer
          description: Internal QR code ID
          example: 2411719
        qrid:
          type: string
          description: Unique QR code identifier
          example: Q3493df1c0e074ac7
        name:
          type: string
          description: Name of the QR code
          example: QR Code
        qr_type:
          type: string
          description: QR code type
          example: dy
        qr_type_display:
          type: string
          description: Human-readable QR code type
          example: Dynamic
        category:
          $ref: '#/components/schemas/Category'
        info:
          type: string
          description: JSON data for QR code content
          example: '{"type":"url","data":{"url":"https://scanova.io"}}'
        dynamic_url_object:
          type: object
          properties:
            url_hash:
              type: string
              description: Short URL hash for the QR code
              example: 9drY
            domain:
              type: string
              description: Domain for the QR code URL
              example: null
            custom_domain:
              type: integer
              description: Custom domain ID if using custom domain
              example: 1903
            high_accuracy_mode:
              type: boolean
              description: Whether high accuracy mode is enabled
              example: false
            high_accuracy_mode_text:
              type: string
              description: Text displayed when requesting location access
              example: ''
            high_accuracy_confirmation:
              type: boolean
              description: Whether high accuracy confirmation is enabled
              example: false
            lead_list:
              type: integer
              description: Lead list ID for capturing leads
              example: null
            expire_on_timezone:
              type: string
              description: Timezone for expiration date
              example: null
            expire_on:
              type: string
              format: date-time
              description: Expiration date and time
              example: null
            expire_on_text:
              type: string
              description: Custom text displayed when QR code is expired
              example: null
            minimum_age:
              type: integer
              description: Minimum age requirement for accessing QR code
              example: null
            visit_count:
              type: integer
              description: Number of visits to the QR code
              example: 0
            created:
              type: string
              format: date-time
              description: Creation timestamp
              example: '2025-10-24T18:54:22.752924+05:30'
            modified:
              type: string
              format: date-time
              description: Last modification timestamp
              example: '2025-10-24T18:54:22.752945+05:30'
            is_custom_hash:
              type: boolean
              description: Whether custom hash is used
              example: false
            is_custom_domain:
              type: boolean
              description: Whether custom domain is used
              example: true
            is_password_protected:
              type: boolean
              description: Whether the QR code is password protected
              example: false
            complete_url:
              type: string
              description: Complete URL for the QR code
              example: https://anuj.sqcg.in/9drY
            is_expired:
              type: boolean
              description: Whether the QR code has expired
              example: false
            is_page:
              type: boolean
              description: Whether this is a page QR code
              example: false
            has_qr:
              type: boolean
              description: Whether QR code image is available
              example: true
            high_accuracy_geo_fencing:
              type: boolean
              description: Whether geo-fencing is enabled
              example: false
            high_accuracy_geo_fencing_config:
              type: object
              description: Geo-fencing configuration
              example: {}
            qr_url:
              type: string
              description: URL to access QR code image
              example: https://anuj.sqcg.in/9drY?qr=1
        pattern_info:
          type: string
          description: QR code design pattern information
          example: null
        svg_code:
          type: string
          description: SVG code for QR code
          example: null
        thumbnail:
          type: string
          description: Thumbnail URL for QR code
          example: null
        is_active:
          type: boolean
          description: Whether the QR code is active
          example: true
        version:
          type: number
          description: QR code version
          example: 1
        created:
          type: string
          format: date-time
          description: Creation timestamp
          example: '2025-10-24T18:54:22.697338+05:30'
        modified:
          type: string
          format: date-time
          description: Last modification timestamp
          example: '2025-10-24T18:54:22.697362+05:30'
        tags_list:
          type: array
          items:
            type: string
          description: List of tags associated with QR code
          example: []
        is_password_protected:
          type: boolean
          description: Whether the QR code is password protected
          example: false
        is_age_restricted:
          type: boolean
          description: Whether the QR code has age restrictions
          example: false
        is_designer:
          type: boolean
          description: Whether the QR code uses designer features
          example: false
        pattern_type:
          type: string
          description: Pattern type for QR code design
          example: null
        created_by:
          type: string
          description: User who created the QR code
          example: null
        password:
          type: string
          description: Password for QR code access
          example: null
        ai_qr_code:
          type: string
          description: AI-generated QR code information
          example: null
        wallet_pass_info:
          type: string
          description: Wallet pass information
          example: null
        is_qr_scannable:
          type: boolean
          description: Whether the QR code is scannable
          example: null
        custom_form_response_count:
          type: integer
          description: Number of custom form responses
          example: 0
        rsvp_form_response_count:
          type: integer
          description: Number of RSVP form responses
          example: 0
        restaurant_feedback_response_count:
          type: integer
          description: Number of restaurant feedback responses
          example: 0
    AuthenticationErrorResponse:
      type: object
      properties:
        detail:
          type: string
          description: Authentication error message
          example: Invalid token.
    Category:
      type: object
      properties:
        id:
          type: integer
          description: Category ID
          example: 1
        name:
          type: string
          description: Category name
          example: Website URL
        slug:
          type: string
          description: Category slug
          example: url
        description:
          type: string
          description: Category description
          example: When scanned, redirects user to a website.
        preview_image:
          type: string
          description: URL to category preview image
          example: https://qcg-media.scanova.io/qr-category/2020/09/url.png
        allowed_qr_types:
          type: string
          description: Allowed QR code types for this category
          example: bt
        allowed_qr_types_display:
          type: string
          description: Human-readable allowed QR code types
          example: Both
        tags:
          type: string
          description: Comma-separated tags for this category
          example: internet,website,link,url,webpage
        is_active:
          type: boolean
          description: Whether the category is active
          example: true
        is_new:
          type: boolean
          description: Whether this is a new category
          example: false
        has_landing_page:
          type: boolean
          description: Whether the category has a landing page
          example: false
        helpdesk_link:
          type: string
          description: URL to helpdesk documentation for this category
          example: >-
            https://support.scanova.io/hc/en-us/articles/36997331177753-Create-Website-URL-QR-Code
        created:
          type: string
          format: date-time
          description: Category creation timestamp
          example: '2020-09-07T11:37:48.093485+05:30'
        modified:
          type: string
          format: date-time
          description: Category last modification timestamp
          example: '2025-10-16T14:50:48.791993+05:30'
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: >-
        API key authentication. Enter your API key directly in the Authorization
        header.

````