Automation integrations
n8n
Add invisible watermarking and watermark detection to an n8n workflow with the Etchv community node. Add your API key, then build the workflow.
Use the Etchv community node in self-hosted n8n. A community node is an add-on not built by the n8n team. Request early access for the package and install steps. Hosted n8n accounts need an administrator to allow community nodes.
Add your credentials
Create an API key with watermarks:embed, watermarks:detect and/or assets:read. Save it as Etchv API credentials. Testing the connection uses no credits.
Build a workflow
| Step | Configuration |
|---|---|
| Submit Watermark / Submit Detection | Choose Image, PDF or Video. Set the input binary field, usually data |
| Reference and retry key | For embedding, supply non-empty JSON. For the idempotency key (a value you choose so a retry isn't run twice), combine the source event and the operation so it stays the same |
| Wait → Get Job Status | Check status_url about once a minute while the job is pending. Stop after 35 minutes |
| Get Job Result | On success, select Watermark for binary data or Detection for JSON |
| Handle failure | Send error_code and request_id to your error step |
- Submit Watermark / Submit Detection
- Configuration
- Choose Image, PDF or Video. Set the input binary field, usually
data
- Reference and retry key
- Configuration
- For embedding, supply non-empty JSON. For the idempotency key (a value you choose so a retry isn't run twice), combine the source event and the operation so it stays the same
- Wait → Get Job Status
- Configuration
- Check
status_urlabout once a minute while the job is pending. Stop after 35 minutes
- Get Job Result
- Configuration
- On success, select Watermark for binary
dataor Detection for JSON
- Handle failure
- Configuration
- Send
error_codeandrequest_idto your error step
Save status_url and result_url. Check the existing job instead of sending a new one.
Download Asset takes an asset_id and needs assets:read. Job results last 24 hours. Kept assets follow the asset download window.
Many files at once
Submit Batch sends every item that reaches the node, up to 100, as one batch instead of one job per item. Each item needs a binary file whose name keeps its extension. Reference data is evaluated per item, so an expression such as {"recipient": "{{ $json.email }}"} gives each file its own data; the idempotency key, zip option and accelerator come from the first item. The node outputs one item with the batch, paired with every input.
Check it with Get Batch Status about once a minute until status is completed, failed or cancelled, then collect each file with Get Job Result and the item's result_url. Each file costs the same credits as a single request, and files that fail are refunded; error_code on each item says why. For more than 100 items, split them first with Loop Over Items.
The node holds every file of a batch in memory while it uploads them. On a small n8n instance, send large files in smaller batches.
See shared workflow requirements for file limits, reference data and safe retries.