Exports

Export your link catalog and click-level analytics data as CSV for reporting and integrations.

Two types of exports

Nimriz provides two distinct export types, each designed for a different purpose.

Link catalog export-a snapshot of your current link configuration. This shows what each link looks like today: its destination URL, UTM fields, tags, space assignment, expiration, and lifetime click count.

Analytics export-a record of what actually happened at click time. This uses click-time data, not the link's current state. It is the source of truth for attribution, since UTM values captured at click time are preserved even if the link was edited later.

The Exports area also tracks async bulk QR ZIP jobs. These are not CSV exports, but they use the same background-job queue and recent-jobs history.


Link catalog export

What it contains

A link catalog export produces a CSV file with one row per link in your workspace (or matching your active filters). Columns include:

ColumnDescription
url_idThe link's permanent UUID. Use this as your stable reference when syncing with external systems.
short_codeThe slug (e.g., spring-launch).
short_urlThe full short URL (e.g., https://links.example.com/spring-launch).
domainThe domain the link is on.
destination_urlThe current destination URL.
utm_sourceCurrent UTM source value.
utm_mediumCurrent UTM medium value.
utm_campaignCurrent UTM campaign value.
utm_termCurrent UTM term value.
utm_contentCurrent UTM content value.
custom_query_paramsCustom query parameters as a JSON string.
spaceThe space name (blank if unassigned).
tagsComma-separated list of tag names.
statusactive, disabled, or expired.
expires_atExpiration timestamp (ISO 8601), or blank if no expiration.
password_protectedtrue or false.
redirect_status_code302 or 301.
clicksLifetime click count (updated periodically, not real-time).
created_atLink creation timestamp.

How to export the link catalog

  1. Go to the main Links view in your dashboard.
  2. Optionally apply filters (by space, tag, domain, status) to limit the export to a specific subset.
  3. Click the Export button in the toolbar.
  4. Select Link catalog as the export type.
  5. Confirm. A CSV file downloads immediately for small datasets.

For large workspaces, the export is generated as an async job. You will see a notification when it is ready to download.


Analytics export

What it contains

An analytics export produces a CSV file with one row per click event, within the date range you specify. Columns include:

ColumnDescription
clicked_atTimestamp of the click event (ISO 8601, UTC).
url_idThe link UUID that was clicked.
short_codeThe slug at the time of the click.
domainThe domain on which the click occurred.
touch_typeshort_link_click or qr_scan.
countryISO 2-letter country code (best-effort).
regionRegion/state code (best-effort).
cityCity name (best-effort).
device_categorymobile, tablet, or desktop.
browser_familyBrowser name (best-effort).
os_familyOS name (best-effort).
referrer_hostReferring domain (often blank due to privacy).
social_sourceDerived social platform, if identifiable.
bot_flagtrue if the click was classified as automated traffic.
utm_sourceUTM source value at click time.
utm_mediumUTM medium value at click time.
utm_campaignUTM campaign value at click time.
utm_termUTM term value at click time.
utm_contentUTM content value at click time.
variant_keyA/B test variant key, if routing rules were active on this link.

Note: Analytics exports use click-time UTM values, not the link's current UTM state. If you changed a link's utm_campaign after some clicks happened, the export will show both the old and new values for their respective click windows.

How to generate an analytics export

  1. Go to Exports in the dashboard navigation.
  2. Click New export.
  3. Select Analytics export as the export type.
  4. Set the date range. Exports are available for any range within your plan's data retention period.
  5. Optionally filter by domain, space, or tags.
  6. Click Generate export.

Analytics exports are always async-they run as background jobs and are typically ready within a few minutes for smaller date ranges.


Bulk QR ZIP downloads

Growth, Professional, and Enterprise workspaces can queue a ZIP of QR assets from the main Links table.

What the ZIP includes

  • One rendered QR asset per successful link selection.
  • Files generated from each link's saved effective QR state, including preset bindings, per-link overrides, transparent backgrounds, frames, and logos.
  • A manifest.json file describing every requested link, whether it succeeded or failed, and which render source Nimriz used.

What manifest.json contains

Each result row can include:

FieldDescription
url_idPermanent UUID of the selected link.
statusready or failed.
short_codeLink slug when available.
domain_nameDomain used for the QR asset when available.
file_nameGenerated filename inside the ZIP for successful renders.
qr_style_hashCanonical style hash for the rendered asset when available.
render_sourceWhether Nimriz rendered from the link's effective saved state or a specific preset-driven request.
errorFailure reason when a selected link could not be rendered.

How to queue a bulk QR ZIP

  1. Go to Links in the dashboard.
  2. Select one or more links.
  3. Click the bulk QR action in the toolbar.
  4. Confirm the PNG export job.
  5. Open Exports to watch the job move from queued to ready.

Current bulk QR job rules

  • The dashboard flow exports PNG assets at 1024px.
  • The job stays in the shared Exports history so you can leave the page and return later.
  • Partial success is allowed. If at least one QR asset renders, Nimriz still prepares the ZIP and lists failed items in manifest.json.
  • Bulk QR ZIP downloads do not create a separate QR inventory. They are snapshots of the QR settings already attached to the selected links.

Async export jobs

Large exports are generated asynchronously. When you trigger a large export:

  1. Nimriz creates an export job and shows its status in ExportsRecent exports.
  2. The job runs in the background. You can navigate away and come back.
  3. When complete, the export shows Ready to download. Click to download the CSV.
  4. Download links are temporary-they expire after a limited time. Download the file promptly once it is ready.

If an export job fails:

  • Check the error message shown in the Exports view.
  • Common causes: date range too large (try a shorter range), or a temporary service issue. Retry with a narrower scope.

Export limits and plan considerations

ConsiderationDetails
Link catalog sizeNo row limit on catalog exports; very large workspaces may take a few seconds.
Analytics date rangeThe available range depends on your plan's data retention period.
Concurrent exportsOnly a limited number of export jobs can run simultaneously per workspace.
Download expiryExport files are available to download for a limited time after generation.

Using exports for integrations

Link catalog exports are useful for:

  • Syncing your Nimriz link inventory to external databases or BI tools.
  • Auditing your link library (verifying UTM consistency, finding expired links, checking for broken destinations).
  • Importing a link list into a spreadsheet for team review.

Analytics exports are useful for:

  • Feeding click-level data into your data warehouse or BI tool.
  • Attribution analysis combining Nimriz click context with your own conversion data.
  • Reconciliation with your web analytics tool at a campaign level.

API-triggered exports

Exports can also be initiated programmatically. The link catalog download is available at:

GET /api/links/export
Authorization: Bearer <WORKSPACE_API_KEY>

For analytics export jobs:

POST /api/exports/jobs
Authorization: Bearer <WORKSPACE_API_KEY>
Content-Type: application/json

{
  "type": "analytics",
  "date_from": "2026-01-01",
  "date_to": "2026-03-31"
}

Poll for job completion:

GET /api/exports/jobs/:job_id

Download when complete:

GET /api/exports/jobs/:job_id/download

For bulk QR ZIP jobs:

POST /api/exports/jobs
Authorization: Bearer <WORKSPACE_API_KEY>
Content-Type: application/json

{
  "job_kind": "qr_bulk_download",
  "url_ids": [
    "22222222-2222-2222-2222-222222222222",
    "33333333-3333-3333-3333-333333333333"
  ],
  "image_format": "png",
  "image_size": 1024
}

Optional render_source lets automation pin the job to a preset-based render contract instead of each link's effective saved state.


Troubleshooting

The export is missing columns I expected

  • Confirm you are using the correct export type. Link catalog exports contain configuration columns; analytics exports contain click-level columns.
  • Some columns (like UTM fields) will be blank for links that do not have those fields set.

The analytics export shows different UTM values than the current link settings

This is expected. Analytics exports use click-time UTM values, which are captured at the moment of each click and are immutable. If you edited the link's UTM fields after some clicks, the export reflects the historical values accurately.

The export job failed

Try reducing the date range (e.g., export one month at a time instead of the full year). If the issue persists, contact support with the export job ID visible in the Exports view.

My bulk QR ZIP contains fewer files than I selected

Open manifest.json inside the ZIP. Nimriz allows partial success for QR batch jobs and records the failed link rows there instead of cancelling the entire archive.

I cannot find a previously downloaded export file

Export download links are temporary. If the link has expired, you will need to generate a new export. The export job itself (visible in Exports → Recent exports) shows the job status, but the download file is regenerated on demand.


Related guides