Documentation

Add a human approval step to any workflow

NodGo is a plain HTTP API — it doesn't care what sent the request. Send it a title, some content, and where to reach the reviewer; it emails them, waits for a decision, then calls you back. Works from n8n, Make, Zapier-style tools, a cron job, or a single curl command — no SDK to install.

How it works, in plain English

1

Your workflow calls NodGo

One HTTP request with a title, some content, who should review it, and where to send you the answer. That's it — no account needed on your reviewer's end.
2

Your reviewer gets an email

One button: "Review & Decide." No login, no app to download. They approve or reject, with an optional comment.
3

NodGo calls you back

The moment they decide, NodGo sends the result to a URL you provided — that's what resumes your workflow automatically. If that call fails, you get an email instead of finding out days later that nothing happened.
4

If they forget, NodGo nudges them

A reminder email goes out after 4 hours if nobody's answered. If it's still pending after 48 hours, you get alerted too — and the link expires.

That's the whole idea. The rest of this page is the technical reference — exact fields, exact responses — for when you're ready to wire it up.

1. Authentication

Create an account, then generate an API key from your dashboard. Send it on every request as the X-API-Key header — no OAuth, no token refresh.

header
X-API-Key: sk_live_xxxxxxxxxxxxxxxxxxxx

The full key is shown once, at creation. Keep it out of client-side code — treat it like a password. Limit: 20 keys per account.

2. Create an approval

POST /webhook — all four fields are required.

POST /webhook — request body
{
  "title": "Postare LinkedIn",
  "content": "Check out our new AI tool!",
  "client_email": "client@acme.com",
  "callback_url": "https://your-n8n.app/webhook/resume"
}
200 OK — response
{
  "status": "success",
  "token": "b3f1c9a2-...-8e2d",
  "approval_url": "https://signoff-api-production.up.railway.app/approve/b3f1c9a2-...-8e2d",
  "message": "Approval created successfully"
}
  • title / content — shown to the reviewer in the email and on the approval page.
  • client_email — where the approval request is sent.
  • callback_url — where NodGo posts the decision back to you (step 4).

Approvals expire automatically after 48 hours — this isn't configurable per-request yet.

3. What the reviewer sees

The reviewer gets an email with your title and content, and a single "Review & Decide" button. That takes them to a hosted approval page (no account needed) with Approve / Reject and an optional comment.

4. Getting the decision back

The moment the reviewer decides, NodGo sends a POST to the callback_url you provided — this is what resumes your workflow.

POST {your callback_url} — body
{
  "Token": "b3f1c9a2-...-8e2d",
  "Decision": "approved",
  "Comment": ""
}

Decision is "approved", "rejected", or "expired" (sent automatically if nobody decided within 48h). Note the capitalized field names — that's the current API, match it exactly on your end (an n8n Switch node on {{$json.Decision}} works fine).

If your endpoint doesn't respond with a 2xx status, the callback isn't retried automatically — but you'll get an email with the token and the error, so you can resume the workflow manually. Make sure your callback URL is reachable and returns quickly.

5. Rate limits & plan limits

50 requests per 15 minutes per account. If you hit it, you'll get a 429 response — back off and retry after a bit.

The free plan covers 50 approvals a month. Past that, /webhook returns a 402 until the next cycle or an upgrade.

Sending the exact same request (same title, content, reviewer, and callback URL) again on the same day returns the original approval instead of creating a duplicate — safe for retries from flaky connections.

6. n8n template (optional — if that's what you use)

Tested end to end: trigger → call NodGo → pause with n8n's native Wait-for-webhook → branch on the decision → continue the workflow.

In n8n: Workflow menu → Import from File, then swap in your own API key (Header Auth credential), reviewer email, and the node after "Check Decision" for whatever your workflow should actually do.

Questions or something not working as documented? hello@nodgo.app