Ghost n8n integrationAutomate Ghost with n8n.
Your publication already holds content that the rest of your tools keep asking for. The Ghost n8n integration exposes 1 resource and 2 operations on posts, read through the Admin API or the Content API. No trigger node ships for Ghost, so a Schedule Trigger or a Webhook starts the run.
Verified Trustpilot reviews · AI, automation & growth agency
What does the Ghost n8n integration actually cover?
The Ghost node links an n8n workflow to a Ghost publication and reads its posts. One resource, Post, and 2 operations: get a single post by ID or slug, or get many posts in one call. Each request runs against the Admin API or the Content API, your pick, through a credential you create once in n8n and reuse in every workflow that needs it.
The most common setup is a recap. A Schedule Trigger fires in the morning, post.getAll reads the recent posts with Return All left off and Limit kept small, and the titles land in a channel through Slack. The editorial team sees what went live without opening the admin panel.
A second pattern is the content index. Same read operation, but this time Fields narrows the response to the handful of properties a spreadsheet needs, and Include brings back authors and tags alongside each post. The rows go into Google Sheets, which then feeds a reporting tab or a translation backlog.
Promotion is the third one, and it uses the other operation. A new URL arrives in the workflow, post.get fetches that single post by slug, and the title plus the excerpt go out as a scheduled message on X (Formerly Twitter) or as a campaign block sent with SendGrid. Fetching the post rather than trusting the incoming payload keeps the copy in sync with what is actually published.
Anything the node does not list goes through HTTP Request. That node calls any endpoint of the Ghost API and reuses the same credential through predefined authentication, so members, tags or pages stay reachable without a second integration to configure.
Two limits are worth knowing before building. There is no Ghost trigger node, so nothing here reacts to a post being published on its own: the workflow polls on a schedule, or an external service calls an n8n Webhook, meaning a URL that n8n exposes and another system calls. And the Content API only serves published content, so a draft check has to run on the Admin API. If the choice between platforms is still open, the n8n review goes through the trade-offs in detail.
How do you connect Ghost to n8n?
- 01
Create a custom integration in Ghost
Both authentication methods start the same way, inside your Ghost account: create a new Custom Integration, which generates the keys for that publication. The screen shows an Admin API Key and a Content API Key. They are generated through the same steps, but the authorization flows and the key formats differ, so copy the one that matches what the workflow needs to read.
- 02
Store the key as an n8n credential
In n8n, open Credentials and create a Ghost credential. A credential is a saved set of connection details: you create it once and every workflow can select it. Two fields matter. URL takes your Ghost admin domain, and API Key takes the key you just copied. The Admin and Content keys live in separate credentials, so create one for each if both flows are in play.
- 03
Point the node at the right API
Drop the Ghost node into a workflow, pick Post as the resource and an operation. The Source parameter decides which service answers:
adminApifor the Admin API,contentApifor the Content API. Run the node once with Get many posts before wiring anything downstream, since a list of real posts confirms the key, the domain and the API choice in a single execution.
What can the Ghost node do?
The Ghost node exposes 2 operations across 1 resources. For each one: the node as you configure it in n8n, the required fields, and our field notes.
Operations index
Post
2 operationsGet a post
post.getWhat you see in n8n
Notes & use cases
Reads one post and returns its record, so the nodes after it can reuse the title, the URL or the body without a second lookup.
Key parameters
- By: choose
idorslug, which tells Ghost how to read the value you pass next. - Identifier: the ID or the slug of the post to get, often
{{ $json.slug }}from the node before it. - Source:
adminApiorcontentApi, depending on whether unpublished content has to be visible. - Formats: pick
html,mobiledocorlexicalto match what the next node can parse.
Get many posts
post.getAllWhat you see in n8n
Notes & use cases
Returns a list of posts rather than a single record, which makes it the operation behind recaps, indexes and one-off exports.
Key parameters
- Return All: on, n8n walks every page of results; off, Limit caps how many posts come back.
- Include: add
authors,tags, or both, when the destination needs more than the post itself. - Fields: list the properties to keep, such as title and url, instead of carrying the whole object around.
- Formats:
html,plaintextorlexicalfor the body of each post.
Need help automating Ghost with n8n?
A person reads every message.


