Previews and confirm
Destructive and far-reaching API v2 writes preview first: send them without confirm to see what would change, then repeat with confirm true.
Last updated
Some writes cannot be undone: deleting a file, deleting a digital product, deleting licence keys. Others reach a lot of people at once, or overwrite work. For these actions API v2 asks you to confirm, and it shows you the effect first.
How it works
Section titled “How it works”- Send the request without
confirm. Nothing changes. The API answers409withcode: "confirmation_required", a sentence saying exactly what would happen, and the counts involved. - Show that to the merchant (or check it in your code), and decide.
- Send the same request again with
confirm: true. Now it runs.
For example, deleting a file without confirm:
curl -X DELETE 'https://app.filemonk.io/api/v2/external/assets/a1b2c3d4-e5f6-7890-abcd-ef1234567890' \ -H 'X-Auth-Token: fm_api_key_your_key_here'answers with a 409 that tells you how many digital products and orders the file is on, and changes nothing. To go ahead:
curl -X DELETE 'https://app.filemonk.io/api/v2/external/assets/a1b2c3d4-e5f6-7890-abcd-ef1234567890?confirm=true' \ -H 'X-Auth-Token: fm_api_key_your_key_here'The 409 also carries a next_step sentence, which is written to be passed on to a person: “Tell the merchant exactly this; only after they agree, send the same request with confirm: true.”
Where to put confirm
Section titled “Where to put confirm”| Verb | Where |
|---|---|
DELETE |
In the query string: DELETE /assets/:id?confirm=true |
POST, PATCH, PUT |
In the JSON body: {"confirm": true} |
Each action page tells you whether the action takes confirm. These do:
DELETE /assets/:idandPOST /assets/bulk_deleteDELETE /digital_products/:idandPOST /digital_products/:id/files/detachDELETE /licences/:id,POST /licences/bulk_deleteandDELETE /licence_tags/:nameDELETE /orders/:id,POST /orders/:id/files/detachandDELETE /orders/:id/licences/:licence_idPOST /ordersandPOST /orders/:id/resyncPOST /settings/texts/setup
Other previews
Section titled “Other previews”- Imports.
POST /imports/previewpreviews an import beforePOST /importsruns it. - Emails. Sending is real.
send_email,send_emailsandnotify_buyersemail your buyers, so usePOST /settings/test_emailto see the email first.
AI assistants and previews
Section titled “AI assistants and previews”The same rule protects you when an AI assistant works on your store through the MCP server. The assistant is told to run a destructive action without confirm first, tell you what it would do, and only repeat it with confirm: true once you agree. Nothing is deleted on the first call.
Thanks for letting us know.
Still stuck? Ask Quinn or chat with support