---
title: "Create a dynamic (editable) QR code"
method: POST
path: "/v1/dynamic"
---

# Create a dynamic (editable) QR code

`POST /v1/dynamic`

Creates a short link on oqr.to that you can re-point later. Encode the returned `short_url` in a QR code to print.

## Request body

- object
  - `destination` string, uri, required — The http(s) URL the code redirects to.
  - `label` string — Optional label for your dashboard.
  - `theme` string — A saved theme id or name to style the code with.

## Response `201`

Created.

- DynamicCode
  - `id` string
  - `slug` string
  - `short_url` string, uri
  - `destination` string, uri

## Other responses

- `400` — Invalid request — malformed JSON, a missing/invalid required field, or a disallowed dynamic-code destination (destinations must be public http(s) URLs; private/internal hosts and oqr.to self-loops are rejected).
- `401` — The `Authorization: Bearer oqr_…` header is missing or the API key is invalid or revoked.
- `429` — Dynamic-code creation rate limit hit — 20 codes per hour, per user. Bulk requests consume one unit per code and are rejected up-front (nothing created) when they exceed the remaining budget.
- `500` — An unexpected server-side error.

---

[API](https://skmtc.net/openqr/apis/openqr-api.md) · [All operations](https://skmtc.net/openqr/apis/openqr-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/openqr/openqr-api/versions/706b4ff45a32/schema)
