No-code

Zapier, Make, n8n, Pipedream

Trigger tinyposter from any of the 7,000+ apps in Zapier (or Make, or n8n, or Pipedream). No tinyposter integration needed — they all support webhooks/HTTP calls out of the box.

The trick

tinyposter doesn't need a custom Zapier integration. Every no-code tool has a generic HTTP / Webhook action. Point it at our REST API, paste a token, done. Same idea for Make, n8n, Pipedream, IFTTT Pro, and Power Automate.

Common setup (any tool)

You'll always need three things:

  1. URL: https://tinyposter.app/api/v1/posts
  2. Method: POST
  3. Headers:
    text
    Authorization: Bearer tp_PASTE_YOUR_TOKEN_HERE
    Content-Type: application/json

And a JSON body — at minimum text and platforms:

json
{
  "text": "the post content",
  "platforms": ["TWITTER", "LINKEDIN"]
}

Zapier

  1. 01

    Pick your trigger

    Anything Zapier supports. RSS new item, Google Sheets new row, Notion new page, etc.

  2. 02

    Add a 'Webhooks by Zapier' action

    Search for Webhooks by Zapier → choose POST.

    • URL: https://tinyposter.app/api/v1/posts
    • Payload Type: JSON
    • Data:
      • text — map to the trigger's text field
      • platforms — type TWITTER,LINKEDIN (Zapier converts comma-sep to array)
    • Headers:
      • Authorization = Bearer tp_…
      • Content-Type = application/json
      • Idempotency-Key = the trigger's unique id (prevents duplicates on Zap retries)
  3. 03

    Test it

    Zapier will run a test send. If you see a 201 response with a post.id, it worked. Turn the Zap on.

Make.com

Make has a built-in HTTP module that's a closer fit:

  1. Add an HTTP → Make a request module.
  2. URL: https://tinyposter.app/api/v1/posts
  3. Method: POST
  4. Headers: Authorization: Bearer tp_… and Content-Type: application/json
  5. Body type: Raw → Content type JSON → request content:
json
{
  "text": "{{1.text}}",
  "platforms": ["TWITTER", "LINKEDIN"]
}
Use the OpenAPI spec
Make.com can also import our spec directly. In Make, use HTTP → Make an API Key Auth requestand import /api/v1/openapi.json — Make builds typed modules for every endpoint.

n8n

  1. Add an HTTP Request node.
  2. Method: POST · URL: https://tinyposter.app/api/v1/posts
  3. Authentication → Generic Credential Type → Header Auth → Name: Authorization → Value: Bearer tp_…
  4. Send Body → JSON → paste:
json
{
  "text": "={{$json.text}}",
  "platforms": ["TWITTER", "LINKEDIN"]
}

Pipedream

Run Node.js code stepjavascript
const res = await fetch("https://tinyposter.app/api/v1/posts", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.TINYPOSTER_TOKEN}`,
    "Content-Type": "application/json",
    "Idempotency-Key": steps.trigger.context.id,
  },
  body: JSON.stringify({
    text: steps.trigger.event.text,
    platforms: ["TWITTER", "LINKEDIN"],
  }),
});
return await res.json();

Common patterns

  • Notion → tinyposter: trigger on new row in a “Posts” database, send the content to tinyposter. Auto-publish content calendar.
  • Google Sheets → tinyposter: add rows to a spreadsheet, schedule each one for a future date.
  • RSS → tinyposter: announce every new blog post on social.
  • Substack → tinyposter: Substack RSS feeds + your CTA template = automated cross-posts.
  • YouTube → tinyposter: new video → tweet a link with thumbnail.
Always set an Idempotency-Key
Zapier/Make/n8n retry on transient failures. Without an Idempotency-Key, a retry can mean double-posting. Use the trigger's unique id as the key — same key, same result for 24h.

Troubleshooting

401 Unauthorized

Token wrong or revoked. Check the header is exactly Authorization: Bearer tp_… with a single space.

409 platform_not_connected

You requested a platform you haven't connected. Add it at accounts.

I'm getting duplicate posts

Add an Idempotency-Key header tied to the trigger's unique id. See the warning above.

How do I attach an image from Google Drive?

Make the image publicly accessible (Google Drive: Anyone with link → Viewer). Get the direct file URL. Pass it in media_urls.