Zapier integration
NativPost does not have a native Zapier app yet, but the API is fully usable through Zapier’s built-in Webhooks by Zapier action.
Outbound: create content from a Zap
Section titled “Outbound: create content from a Zap”-
In Zapier, choose your trigger (Google Sheets, Airtable, Typeform, whatever fires content ideas).
-
Add an action step: Webhooks by Zapier → POST.
-
Configure the request:
-
URL:
https://app.nativpost.com/api/v1/content -
Payload type:
json -
Data:
Key Value captionmapped from your trigger content_typetext_onlytarget_platforms["twitter","linkedin"](raw JSON) -
Headers:
Header Value AuthorizationBearer np_live_...(paste your key)Content-Typeapplication/json
Field names to get right: the copy goes in
caption(notbody_text), destinations go intarget_platforms(notplatforms), and X’s platform id istwitter(notx).captionis the only required field. -
-
Test the step. You should get back a
contentobject withstatus: "draft"and a UUIDid. -
To skip review and go straight to scheduled, add a second Webhooks by Zapier → Custom Request step using method
PATCHagainsthttps://app.nativpost.com/api/v1/content/{{id}}with body{"status":"scheduled","scheduled_for":"..."}. The plain POST action cannot sendPATCH.
Attaching media works the same way — add a media_urls key holding a raw JSON array of absolute URLs. Zapier cannot upload files to NativPost; the URLs must already be reachable.
Inbound: receive NativPost events in Zapier
Section titled “Inbound: receive NativPost events in Zapier”-
In Zapier, create a Zap with the Webhooks by Zapier → Catch Hook trigger.
-
Copy the unique catch URL Zapier gives you.
-
In the NativPost dashboard, go to Settings → Webhooks, add an endpoint pointed at that URL, and subscribe it to the events you want.
The API cannot create webhook endpoints —
GET /api/v1/webhooksis read-only, so this step has no curl equivalent. Confirm it registered with:Terminal window curl -sS https://app.nativpost.com/api/v1/webhooks \-H "Authorization: Bearer $NATIVPOST_API_KEY" -
There is no test-fire endpoint. To populate Zapier’s sample payload, create a throwaway draft over the API — that fires
content.createdimmediately, and Zapier picks it up.
Leaving the endpoint’s event list empty subscribes it to every event, including ones added in future releases. Name the events explicitly unless you want that.
Signature verification in Zapier
Section titled “Signature verification in Zapier”The Catch Hook trigger does not run custom code. If you need signature verification, chain a Code by Zapier step that reads the NativPost-Signature header from the trigger step and rejects the run if it does not match. The Node snippet in Signature verification drops in almost verbatim.
Two other headers come along: NativPost-Event mirrors the event name for cheap routing, and NativPost-Delivery-Id uniquely identifies the attempt.
Retries and duplicates
Section titled “Retries and duplicates”NativPost attempts each delivery once, with a 10-second timeout, and does not retry. A Zap that is slow to acknowledge simply misses the event — so treat the webhook as a nudge and re-read state over the API rather than trusting it as the sole record.
In the other direction, Zapier retries failed POSTs aggressively. The API applies no rate limit and no idempotency key, so a retried step creates a second content object. If a Zap can fan out, add a Delay by Zapier step or a dedupe lookup before the POST.