---
title: "Create many dynamic URL codes (up to 2,000 rows)"
method: POST
path: "/codes/bulk"
tags: ["codes"]
---

# Create many dynamic URL codes (up to 2,000 rows)

`POST /codes/bulk`

## Request

- Base URL: `https://qrflow.codes/api/v1`
- URL: `https://qrflow.codes/api/v1/codes/bulk`
- Auth: HTTP bearer

## Request body

- object
  - `rows` object[], required
    - `destination` string, uri, required
    - `label` string
  - `fg_color` string
  - `bg_color` string

## Response `201`

Created

- object
  - `codes` Code[]
    - `id` string, uuid
    - `label` string, nullable
    - `kind` string
    - `kind_label` string
    - `type` string
    - `destination_data` object
    - `destination` string
    - `dynamic` boolean
    - `dynamic_capable` boolean
    - `short_code` string
    - `short_url` string: What to print for a dynamic code
    - `domain_id` string, nullable
    - `fg_color` string
    - `bg_color` string
    - `has_logo` boolean
    - `frame_style` string, nullable
    - `frame_caption` string, nullable
    - `scans` integer
    - `created_at` string, date-time
    - `updated_at` string, date-time
    - `manage_url` string
    - `image_url` string: Print-ready SVG; needs the Authorization header
    - `svg_download_url` string: Same SVG through a signed link that works for 24 hours with no header
    - `png_download_url` string: Plain PNG (no frame or logo) through a signed 24-hour link
    - `download_expires_at` string, date-time
  - `rejected` object[]
    - `destination` string
    - `reason` string
  - `remaining_this_month` integer

## Other responses

- `400`: Over the monthly or per-request allowance

---

[API](https://skmtc.dev/qrflow/apis/qrflow-codes-api.md) · [All operations](https://skmtc.dev/qrflow/apis/qrflow-codes-api/llms.txt) · [OpenAPI document](https://skmtc.dev/qrflow/apis/qrflow-codes-api/revisions/76e294bbe2b6?raw)
