Loopedn API
The Loopedn API sends your leads to the tools you use, as they're captured. Loopedn's Zapier app uses it. For your own system, the webhook is simpler, since it posts each lead to any address you choose.
Who can use it
The API is part of Pro. On a team, a team admin makes the key once, and it covers the whole team's leads. A rep working solo on Pro makes their own.
Your API key
Make one in Loopedn at Settings, Zapier. It starts with lpd_key_, and Loopedn shows it once, so copy it then. Loopedn keeps only a fingerprint of it, never the key itself.
Each account has one key. Making a new one turns the old one off at once, along with every subscription made with it. Keep it private, because anyone who has it can send your leads to their own Zaps.
Making a request
Every call is a POST to one address, with the key in the X-Api-Key header and a JSON body that names the action.
POST https://wwuosjsjkupwuvgyyjyu.supabase.co/functions/v1/zapier-api
X-Api-Key: lpd_key_...
Content-Type: application/json
{ "action": "me" }The same call with curl:
curl -X POST https://wwuosjsjkupwuvgyyjyu.supabase.co/functions/v1/zapier-api \
-H "X-Api-Key: $LOOPEDN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"action":"me"}'Actions
me
Says who the key belongs to. Zapier calls it to test a connection, and names the connection after it.
{ "action": "me" }
200
{ "id": "5b1e...", "name": "Acme Events", "kind": "team" }kind is team or personal. name is the team's name, or the person's.
subscribe
Starts sending leads to an address. trigger is new_lead or new_hot_lead, and target_url is the address Zapier gives a Zap. Only Zapier's own hook addresses, starting https://hooks.zapier.com/, are accepted.
{
"action": "subscribe",
"trigger": "new_lead",
"target_url": "https://hooks.zapier.com/hooks/standard/123/abc/"
}
201
{ "id": "9c4f...", "trigger": "new_lead", "created_at": "2026-10-27T15:00:00.000Z" }Keep the id, because unsubscribe takes it. Subscribing the same address to the same trigger again returns the same id, never a second subscription.
unsubscribe
Stops sending to a subscription. It always works, even when the plan has lapsed, and an id that's already gone is fine.
{ "action": "unsubscribe", "id": "9c4f..." }
200
{ "ok": true, "id": "9c4f..." }recent_leads
The newest leads for a trigger, newest first, each shaped exactly as a delivery. Zapier shows them as samples while a Zap is built. limit is 3 when left out, and at most 10.
{ "action": "recent_leads", "trigger": "new_hot_lead", "limit": 3 }
200
[ { "id": "...", "type": "lead.created", "lead": { ... }, "event": { ... } } ]The two triggers
new_leadsends every lead, as it's captured.new_hot_leadsends A leads only. A lead that becomes an A later is sent then.
What Loopedn sends
One POST per lead to each subscribed address, usually within a minute of capture, with the same JSON body as the webhook. Its fields are listed in How do I send Loopedn leads to Zapier, Make or my own system?
- The
Loopedn-Eventheader is alwayslead.created, andLoopedn-Deliveryrepeats the body'sid. - There is no signature. The address itself is the secret, as with any Zapier hook.
- A subscription gets each lead once. If Loopedn has to try again, the id stays the same.
- A subscription gets only leads captured after it was made.
- Never sent, as with the webhook: a lead marked private, a lead with no email yet, an email Loopedn guessed until a rep confirms it, and a lead past the free plan's limit for its event.
- An address that answers
410 Goneis unsubscribed. Other failures are tried again for about five minutes, then show as failed in Settings, Zapier, where Retry failed sends them again to the subscriptions that missed them.
Errors
Every refusal is JSON with an error field, written to show a person as it is.
- 400 means the request is missing something, or names an action that doesn't exist.
- 401 means the key is missing, mistyped, or was replaced.
- 403 means the account no longer has Pro. Sending pauses, and nothing is lost.
- 500 means Loopedn couldn't finish. Try again.
