JetLeads: find business leads with phone numbers, websites and emails, and download them to Excel. Start now.Ad

Postify API

Post from your own website, shop or app. Send the text, a link and a photo or video; Postify publishes it to your Facebook Pages, Instagram and LinkedIn, and queues your Facebook groups and WhatsApp groups, now or at a time you choose. The same rules and daily limits apply as when you post on postify.live.

Your API key

Sign in and open Profile → API keys, name a key and make it. Copy it then: it's shown once. Send it with every request. Keep it secret (on your server, never in a web page); revoke it on the same page if it leaks.

Authorization: Bearer pk_live_…

Base address: https://postify.live. Up to 60 requests a minute per key. An active Postify plan is needed.

GET/api/v1/places

Where you can post, with the ids to use when posting.

curl https://postify.live/api/v1/places \
  -H "Authorization: Bearer $POSTIFY_KEY"
{
  "pages":     [{ "id": "1029384756", "name": "Rido Enterprises" }],
  "instagram": [{ "id": "17841400000000", "username": "rido.enterprises", "page": "Rido Enterprises" }],
  "linkedin":  { "name": "Nutan Roy" },
  "groups":    [{ "id": 412, "name": "Hyderabad Real Estate", "list": "Leads", "members": 15200 }],
  "whatsapp":  [{ "id": 31, "name": "Loan Agents India", "members": 141 }]
}

POST/api/v1/posts

Posts now, or at a time. Send JSON, or multipart/form-data to upload a file.

textRequired. The post.
linkOptional. Added after the text.
media_url / media_urlsOptional. Public https:// address of a JPG, PNG or GIF photo (under 8 MB) or an MP4/MOV video (under 200 MB). Up to 10 photos, or one video.
mediaMultipart only: the photo or video file(s).
to.pages, to.instagramIds from /places.
to.groups, to.whatsappFacebook group and WhatsApp group ids from /places. They go out from the Postify extension, with safe gaps.
to.linkedintrue to post to your LinkedIn profile.
atOptional. When to post, as an ISO time like 2026-10-20T09:30:00+05:30. Leave out to post now.
draftOptional. true saves it as a draft instead of posting.

JSON with a photo from your website

curl https://postify.live/api/v1/posts \
  -H "Authorization: Bearer $POSTIFY_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Diwali offer: 30% off all week",
    "link": "https://yourshop.in/diwali",
    "media_url": "https://yourshop.in/images/diwali.jpg",
    "to": { "pages": ["1029384756"], "instagram": ["17841400000000"], "groups": [412], "whatsapp": [31] },
    "at": "2026-10-20T09:30:00+05:30"
  }'

Uploading a video file (multipart/form-data)

curl https://postify.live/api/v1/posts \
  -H "Authorization: Bearer $POSTIFY_KEY" \
  -F text="New arrivals are in" \
  -F pages=1029384756 \
  -F groups=412 -F groups=413 \
  -F media=@arrivals.mp4

From Node.js (server side)

const res = await fetch("https://postify.live/api/v1/posts", {
  method: "POST",
  headers: { Authorization: `Bearer ${process.env.POSTIFY_KEY}`, "Content-Type": "application/json" },
  body: JSON.stringify({ text: "Fresh stock today", to: { pages: ["1029384756"] } }),
});
const post = await res.json(); // { id: 1234, notes: [], draft: false }

Answers 201 with the post's id. notes lists groups that were left out (for example, the same text went to that group in the last 7 days).

GET/api/v1/posts/{id}

The post and how each place is doing: scheduled, published, posted, waiting or failed (with the reason).

{ "id": 1234, "text": "Diwali offer…", "places": [
  { "kind": "page", "name": "Rido Enterprises", "status": "published", "label": "Published", "at": "…" },
  { "kind": "whatsapp", "name": "Loan Agents India", "status": "pending", "label": "Scheduled", "at": "…" }
] }

DELETE/api/v1/posts/{id}

Stops the Facebook group and WhatsApp group posts that haven't gone out yet. Answers { "stopped": true }.

Errors and limits

  • 400 something is missing or not allowed; error says what.
  • 401 no key, or the key isn't valid (revoked or mistyped).
  • 402 your plan has ended.
  • 404 no such post on your account.
  • 429 more than 60 requests a minute; wait a minute and try again.

Questions? Contact us.