Skip to main content
A Make scenario can put posts on your PostQueen calendar today. It calls the same public API as the CLI, MCP and the n8n node, so anything a scenario creates lands on the same calendar where you review everything else. She publishes it on time from there.
A native PostQueen app for Make is coming soon. Until it lands, the HTTP module covers the same ground: scheduling, drafts and publishing right away. Scenarios you build now stay valid, because they talk to the public API directly.
A Make scenario whose HTTP module sends a post to PostQueen and schedules it on the calendar

Before you start

Your Public API key. In app.postqueen.ai, open Settings > Developers > Public API and click Reveal.
The API expects the key raw. The header is Authorization: YOUR_API_KEY with no Bearer prefix, which trips up people who have wired other APIs into Make before.

Schedule a post

This all happens in Make’s HTTP app, and the module you want is Make a request.
1

Add the module

In your scenario, add the HTTP app and choose the Make a request module.
2

Set the method and URL

Method: POST. URL: https://api.postqueen.ai/public/v1/posts
3

Add the Authorization header

Under Headers, click Add item. Name: Authorization. Value: your API key exactly as the app showed it.
4

Send the body as JSON

Set Body type to Raw, set Content type to JSON (application/json), then paste the payload into Request content.
5

Parse the response

Turn on Parse response so the created post IDs come back as mappable fields instead of one long string. Run the module once by hand so Make learns the response shape.
The body is the same one the Create Post reference documents:
Mixing mapped values straight into raw JSON is the usual way a scenario breaks: one unescaped quote or line break from an upstream module and the whole body stops being valid JSON. If your content comes from another module, build the payload with the JSON app’s Create JSON module and map its output into Request content.
Media works the same way it does everywhere else. Upload the file first with POST /public/v1/upload, then pass the returned id and path into value[].image[]. TikTok, Instagram and YouTube accept media only from trusted domains, so a raw external URL will be rejected.

Find your integration IDs

Every post needs to name the channel it goes to, and she answers with the whole list. Add a second Make a request module, set the method to GET and the URL to https://api.postqueen.ai/public/v1/integrations, with the same Authorization header. Turn on Parse response and run it once.
Map id into posts[].integration.id. The identifier field is the same string you put in settings.__type, so x maps to __type: "x". Check Create Post for the extra settings each provider needs alongside it. Two ways to use this in practice: run the module once, copy the IDs you need and paste them into your payload, or keep the GET module in front of the POST and filter for the channel you want by name. The first is simpler, the second survives you reconnecting a channel later.

Trigger a scenario from PostQueen

The HTTP module drives her. For the other direction, she calls your scenario the moment a post goes out.
1

Create the webhook in Make

Add the Webhooks app with the Custom webhook module as the first module in your scenario. Click Add, name it, save, then Copy address to clipboard.
2

Register it in PostQueen

In the app open Settings, then the Webhooks tab, and click Add a webhook. Paste the Make URL, give it a name, and choose whether it fires for all channels or only the ones you pick.
3

Teach Make the payload

With the Make scenario listening, click Send Test on the webhook form. Make receives a sample delivery and builds the data structure from it, then click Save. To send another sample later, reopen the webhook with Edit and press Send Test again; in the Make module, click Re-determine data structure first.
The delivery is a POST with a JSON array of published posts. Each entry carries the post content and its publish time, plus a releaseURL pointing at the live post and an integration object that names the channel. The moment she publishes, that releaseURL is what makes the trigger worth wiring up: log a row in Airtable or drop a Slack message while the post is still warm. Full payload details and delivery behavior live on the Webhooks page.

Self-hosting

Running her yourself? Everything above still works. Swap the base URL for https://postqueen.example.com/api/public/v1 and keep the header, the body and the modules as they are. One thing to watch: the create-post endpoint is rate limited to 30 requests per hour, and you raise that with the API_LIMIT env var. A scenario that loops over many rows can hit the ceiling, so batch several posts into one request where you can, or add a Sleep module between iterations.

Next steps

Public API

Every endpoint the HTTP module can call, with request and response shapes.

Create Post

Provider settings, thread structure and the __type table.

Webhooks

What she sends the moment a post goes out, field by field.

n8n

Ready-made operations instead of hand-built HTTP requests.

Zapier

The same requests, built with Webhooks by Zapier instead.

CLI

Test a payload in your terminal before you paste it into Make.