There is no native n8n node or Zapier app for this API. Both tools can send the HTTP request themselves. The contract is small: one POST, one header, one JSON field.
POST https://signature-detector.com/api/detect
Header x-api-key: your_api_key_here, plus Content-Type: application/json.
Body, exactly one of these fields:
{ "imageUrl": "https://example.com/document.jpg" }{ "imageBase64": "<base64 bytes>" }A PDF uses pdfUrl or pdfBase64 instead. pages, count, and creditsUsed are top-level fields. A PDF spends 1 credit per page, and a repeat of the same file returns creditsUsed 0. That shape is documented on PDF signature detection. The steps below use an image, which nests detections under result.
The URL has to be public to the API
imageUrl is downloaded by the API with a normal GET. No Authorization header is added, and your n8n or Zapier login is not forwarded. A private Google Drive link, an expiring portal URL that requires cookies, or an S3 object that is not readable will fail even if the workflow can open it.
Use one of these:
- A URL that is already public, or a short-lived pre-signed URL.
imageBase64, if the previous step can produce the file bytes. The playground sends raw base64. Adata:image/...;base64,prefix is also accepted.
Do not put the API key in the workflow JSON you paste into a public template. Use n8n credentials or Zapier's secret storage.
n8n HTTP Request node
Add an HTTP Request node after the step that knows the file URL.
- Method:
POST - URL:
https://signature-detector.com/api/detect - Authentication: generic header auth, header name
x-api-key, value from a credential - Send body: on
- Body content type: JSON
- JSON body:
{
"imageUrl": "{{ $json.imageUrl }}"
}Change $json.imageUrl to whatever field the previous node actually outputs. If you are not sure, run the previous node once and read the item.
On success the item contains the parsed JSON. Branch with an IF node:
- Condition:
{{ $json.result.count }}is larger than0for "mark found" - A second condition on confidence if you want to hold weak hits. Image requests default to 0.1. You can add
"threshold": 0.5to an image body. PDF detection always uses 0.1.
Map HTTP errors instead of treating every non-2xx as a crash:
- 401: the credential is wrong or the key was revoked
- 402: the account has no credits left.
needsPurchaseis true. This is the one to alert a human about, because retrying will not help until someone buys credits - 400: the body was empty, both image fields were set, or the URL was not a URL
- 503: the detector was unavailable. The credit taken for that attempt is refunded, so a later retry is safe
n8n's HTTP Request node can throw on a non-2xx status before your IF node runs. Turn on the option that continues on a failed status code (wording varies by node version: "Never error" / continue on fail) if you want a single branch that inspects statusCode. Otherwise use the node's error output for 4xx and 5xx.
Zapier, Webhooks by Zapier
Create an action: Webhooks by Zapier, event POST.
- URL:
https://signature-detector.com/api/detect - Payload type: Json
- Data:
imageUrlmapped from the trigger, for example the file URL a form produced - Headers:
x-api-keywith the key, andContent-Typeasapplication/json
Zapier wraps the response. In a later Filter or Paths step, look for the count under the body Zapier stored. The field path is usually the response's result.count. Open one task's data to confirm the wrapping before you depend on a path. A path named "no signature" should run when that count equals 0. A path named "out of credits" should run when the status is 402.
Do not log the x-api-key header into a Zapier note or a Slack message.
What the IF node should not decide
result.count > 0 means a visual mark was returned. It does not mean the right person signed, and it does not mean a PDF certificate is valid. For a contract workflow, send the zero-count path to a review queue and still review low confidence. That policy is spelled out in Automating signed-contract checks.
A fresh image spends 1 credit ($0.0001). The same image bytes detected earlier come back with cached: true and the balance does not move. New accounts include 10 credits. Credits do not expire. Buy more from the dashboard. The minimum charge is $1, which is 10,000 credits.
Field reference: Signature detection API and the API docs. You can try a file in the playground before wiring the workflow, using the same account.

