Create (or regenerate) an atomization
Turns a published article into one channel-native asset. Requires the write:atomize scope.
The handler runs its checks in this order: body validation first (so a malformed request always gets its 400 rather than a 403/429), then the plan gate (Omni-Channel Atomization requires the professional plan or higher), then two rate limiters (20/hour per organization+user, 50/hour per organization), then billing.
Billing charges one content credit per (organization, content, billing period), so a second type for the same article inside the same period is free by the ledger's unique claim, and a new period charges again. If the charge crosses the organization into paid per-article overage the response body sets overage_incurred to true and the X-Frase-Overage-Incurred: true header is added.
Generation is asynchronous: the row is created (or an existing row for the same content+type is reset) to generating, an atomization/create background event is dispatched, and 201 is returned immediately. Poll GET /atomizations/{id} for the finished payload. If a row for that content+type is already generating, the existing row is returned as-is with 201 — no charge, no second dispatch, and overage_incurred is false.
If the background dispatch itself fails, the row is released back to draft so the (already charged) caller can retry; the retry is free within the same period.
Request
- Base URL: https://next.frase.io/api/v1
- URL: https://next.frase.io/api/v1/atomizations
- Auth: API key in header X-API-KEY
Request body
Response
Atomization queued (or an already in-flight one returned unchanged)
Changes
No recorded changes to this operation across all 1 revision of this API.