Browse the docs Open Close
Embedded Forms
let anyone render, no key required
An embedded form turns a template into a fill-in-the-blanks widget you can hand to a teammate, a client, or the public. Whoever opens it edits only the layers you chose to expose and renders a snap, and they never touch an API token. You, the form owner, pay for the render.
An embedded form is authenticated by the link itself. The signature is built into the URL, so the form needs no API key. That is the opposite of Signed URLs, where you sign each request with an API token. Use an embedded form when a person fills in the values, and a signed URL when your code does.
1. Create a form
Open a template, or a template collection, and choose Forms → New form. Tick the layers you want people to edit. Anything you leave unticked stays locked to the template default. A template form renders a single snap, and a collection form renders one snap for each template in the collection.
2. Grab the signed URLs
Every form comes with two ready-to-use links:
| Field | Use |
|---|---|
signed_url |
The hosted form page. Drop it in an <iframe> to embed the whole widget. |
submit_signed_url |
The POST target. Send layer values straight to it if you would rather build your own UI. |
3. Embed it, or post to it
Drop the form into a page with an iframe:
<iframe src="https://snapsbrew.com/embedded-form/<formUuid>?signature=<sig>"
width="100%" height="640" frameborder="0"></iframe>
Or send the layer values yourself:
curl -X POST 'https://snapsbrew.com/api/v1/embedded-forms/<formUuid>?signature=<sig>' \
-F 'layers[headline]=Summer sale' \
-F 'layers[logo][email protected]'
Layer keys
Template forms address a layer by its plain key, like
headline. Collection forms put the
template UUID in front of the key
({templateUuid}__{layerKey}), so the same
key on two templates stays separate. Values key by layer type:
image → image_url (a file),
text → text,
empty → background_color, and
qr_code → qr_content. Any layer the form
was not set up with is quietly ignored.
Billing
The form owner pays: 1 credit for a template form, or 1 credit per template for a collection form. The person filling it in is never charged, and never needs an account.
Good to know
A signature that has been changed or is missing returns a
404. There is no placeholder fallback the way there is with
signed URLs, so always use the exact
signed_url the form handed you.
Collection forms hand back a bare array of snap objects rather than a
data-wrapped object, and the submit
endpoint is not rate limited. The full request and response shapes live in the
Embedded Forms endpoint reference.