Connect Zapier
Trigger Zaps from Brault events and call the API with Webhooks by Zapier.
Brault has no native Zapier app yet (it is on the roadmap). You do not need one: Zapier's
webhook trigger receives Brault events, and its HTTP step calls any /v1 route with your
API
key. This guide wires both directions.
Webhooks by Zapier is a premium app on Zapier's side; check your Zapier plan before building on it.
You need an API key with webhooks:manage (to register the endpoint) and files:write (for
the import example). Create one under Settings → Developers in the app, see
Get an API key.
1. Trigger a Zapier workflow from a Brault event
Start the Zap with Webhooks by Zapier → Catch Hook. Zapier shows a unique
https://hooks.zapier.com/hooks/catch/… URL; register it with Brault.
Zapier needs a sample request before it lets you map fields, so register the endpoint and send the test delivery below, then click Find new records (or the equivalent test button) in the trigger step.
us.api.brault.app— follows the region selector in the top barcurl -X POST https://us.api.brault.app/v1/webhooks \
-H "Authorization: Bearer $BRAULT_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 8f14e45f-2222-4c1a-9c1e-zapier-hook" \
-d '{
"url": "<the URL Zapier gave you>",
"name": "Zapier workflow",
"events": ["file.created", "comment.created", "transfer.downloaded"]
}'Pick any tokens from the event catalogue, or ["*"] for
everything. Then send a test delivery so Zapier has a sample payload to map fields from:
us.api.brault.app— follows the region selector in the top barcurl -X POST https://us.api.brault.app/v1/webhooks/<webhook_id>/test \
-H "Authorization: Bearer $BRAULT_API_KEY"Every delivery body is the event envelope: type,
occurred_at, actor, and a minimal data snapshot with the ids you need for the next
step. Deliveries are at-least-once with no ordering guarantee, so deduplicate on id if a
duplicate would matter to your workflow.
Before production traffic, verify the Brault-Signature header: add a Code by Zapier
step right after the trigger that runs the JavaScript verification from the
Webhooks page. Catch Hook exposes the parsed body
rather than the raw bytes by default, so switch the trigger to Catch Raw Hook when you
verify signatures. Stop the Zap when the check fails.
2. Call the Brault API from Zapier
Use Webhooks by Zapier → Custom Request (or POST). Add a header Authorization with
value Bearer bsk_…, set Payload Type to json, and fill Data with the request
body.
Map ids from the trigger step into the body.
The example below imports a file that another step produced (any public http(s) URL) into
a
Brault library:
us.api.brault.app— follows the region selector in the top barPOST https://us.api.brault.app/v1/files/import
Authorization: Bearer <your key>
Content-Type: application/json
Idempotency-Key: <a unique value per run, e.g. the workflow execution id>
{
"url": "https://example.com/exports/hero-v3.psd",
"name": "hero-v3.psd",
"library_id": "<library_id>"
}The response is 202 with an import object: status starts at queued, and file_id is
set once it reaches succeeded. Either poll GET /v1/imports/<import_id> from a later
step,
or let Brault call you back: subscribe the endpoint from section 1 to import.completed and
import.failed (a successful import also emits a normal file.created). Imports are capped
at 5 GiB and 2 concurrent per brandspace.
Anything else in the reference works the same way: same base URL, same
header, JSON in and out. Use Idempotency-Key on every POST that creates something, so a
retried run does not create it twice.
3. Rate limits and errors
Zapier retries failed HTTP steps on its own schedule. Brault answers 429 with a
Retry-After header when a bucket or the monthly quota is hit, and every error carries a
request_id you can quote to support. See Rate limits and
Conventions.