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

# Export QR Codes

> POST /qr/export/

Queues an export of QR-code metadata. Requires the `QR_CODE_CAN_EXPORT` role permission (`PAGE_CAN_EXPORT` for landing pages).

```
POST   https://api.scanova.io/qr/export/
Authorization: 401f7ac837da42b97f613d789819ff93537bee6a
```

<ParamField body="data" type="array">
  Write-only — the `qrid` values to export.
</ParamField>

<ParamField body="filters" type="string">
  Write-only — serialized query parameters selecting what to export, as an alternative to an explicit `data` list.
</ParamField>

<ParamField body="id" type="integer">
  Read-only — the export record's id.
</ParamField>

<ParamField body="status" type="string">
  Read-only — export progress.
</ParamField>

<ParamField body="result_file" type="string">
  Read-only — the finished file's URL. `null` until the export completes.
</ParamField>

<ParamField body="completed_on" type="string">
  Read-only — completion timestamp. `null` until the export completes.
</ParamField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST "https://api.scanova.io/qr/export/" \
    -H "Authorization: 401f7ac837da42b97f613d789819ff93537bee6a" \
    -H "Content-Type: application/json" \
    -d '{
        "data": [
            "Qa1b2c3d4e5f6g7h8"
        ],
        "filters": "type=dy&status=active"
    }'
  ```
</RequestExample>

<Warning>
  This endpoint is **asynchronous**. The `201` response is a *pending* record — `result_file` is `null` at that point. The export is generated by a background worker; wait for the completion email or poll the record until `status` reports completion and `result_file` is populated. Don't treat the `201` as "the export is ready".
</Warning>

## Related

* [Download many rendered QR Code images](/api-reference/management-api/qr/download-multi) — a synchronous ZIP of images rather than a queued export.
* [List QR Codes](/api-reference/management-api/qr/list) — the filter syntax `filters` serializes.
* [QR Manager overview](/api-reference/management-api/qr/overview) — the quotas, role permissions, and Trash model shared by every endpoint in this module.
* [Management API overview](/api-reference/management-api/overview) — the auth scheme and quota rules that apply to this endpoint.


## OpenAPI

````yaml api-reference/openapi/management-api.json POST /qr/export/
openapi: 3.1.0
info:
  title: Scanova Management API (v2)
  description: >-
    The complete Scanova Management API — every endpoint available at
    api.scanova.io (QR codes, folders, tags, leads, forms, analytics, plans,
    shared users & roles), plus the token-creation and usage-stats endpoints
    used to authenticate against it. Every path and request/response shape below
    was verified live against a real API key and the actual running backend
    (Phase 7, 2026-08-16) — not guessed from reading urls.py alone.
  version: 2.0.0
servers:
  - url: https://api.scanova.io
    description: Management API — QR/folder/tag/lead/form/analytics/plans endpoints
security:
  - apiKeyAuth: []
paths:
  /qr/export/:
    post:
      summary: Queue a QR code export
      description: >-
        Asynchronous export. Queues a Celery task and returns 201 immediately
        with a pending export record; `result_file` and `completed_on` are
        populated later. Poll the record or wait for the completion email.
        Requires QR_CODE_CAN_EXPORT (or PAGE_CAN_EXPORT).
      operationId: createQrExport
      requestBody:
        content:
          application/json:
            example:
              data:
                - Qa1b2c3d4e5f6g7h8
                - Qb2c3d4e5f6g7h8i9
              filters: type=dy&status=active
      responses:
        '201':
          description: Export queued — a pending record.
          content:
            application/json:
              example:
                id: 77
                result_file: null
                completed_on: null
                status: pending
                created: '2026-09-09T09:00:00Z'
                modified: '2026-09-09T09:00:00Z'
        '403':
          description: The role lacks QR_CODE_CAN_EXPORT / PAGE_CAN_EXPORT.
components:
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: >-
        Send your Management API key as the raw value of the Authorization
        header — no "Bearer " or "Token " prefix, and no other characters.
        Example: `Authorization: 401f7ac837da42b97f613d789819ff93537bee6a`. A
        header containing more than one space-separated part is rejected
        outright. Requests also require the request's Host header to be the
        management API host (e.g. api.scanova.io) — the same key sent to the
        regular API host will not authenticate.

````