Skip to main content
n8nFetchski AttractFetchski Attract

Coming soon: the Fetchski Attract node for n8n

A full community node for the Attract API: every call a ready-made action, with your key and its signing handled for you. Until it ships, n8n’s HTTP Request node reaches the whole API, as this page shows.
Most calls name one document by its _id: get a page, change it, publish it. To reach every page, chain three nodes:

1. List

One request answers every page’s _id, in a single item.

2. Split

Split Out turns that one item into one item per page.

3. Get each

n8n runs the next node once per item, with that page’s _id.
Set up your key first in Authenticate from n8n. It needs Pages: read (content:pages:read): pick the Read pages pack. The steps below use a token only key; With a signed key shows what changes.

Build it

List your pages

Add an HTTP Request node after your trigger, with this URL:
URL
asks for every page, in one flat list, and keeps each one small. Click Execute step. The answer is one item holding a results list:
Output: 1 item
A node after this one would run once, not once per page. The next step fixes that.
n8n's HTTP Request node listing pages, its output one item with a results list

List your pages: one item, holding results

Split the results into items

Add a Split Out node:Click Execute step. Each page is now its own item, with _id at the top:
Output: 3 items
n8n's Split Out node splitting results, its output one item per page

One item per page

Want only some pages? Put a Filter node here, on any field you asked for in fields, e.g. {{ $json.slug }} starts with /services.

Get each page by its id

Add a second HTTP Request node, with this URL:
URL
To write {{ $json._id }}, drag _id from the input panel on the left into the end of the URL. n8n runs the node once per item, and {{ $json._id }} is that item’s id each time.
n8n's HTTP Request node with the page's _id in its URL and the split items in its input panel

Get each page: the _id dragged into the URL

Run the workflow

Click Execute workflow.You should see 1 item on the connector out of List your pages, and one item per page out of One item per page and Get each page: each of those last items is a whole page, every field and section included.
The n8n canvas after a run, with item counts on each connector

After a run: 1 item into Split Out, 3 items out of it, and Get each page called once for each

With a signed key

Nothing changes. This chain only reads, and this key signs only its writes, so the token alone does it.

Going further

Swap the last node’s method for PATCH, add ?aposMode=draft to its URL so only the draft changes, and send the change as its body. The key needs Pages: write drafts (content:pages:write). On a key that signs writes, put the body in What to sign and send it Raw, as in Signing a write. Drafts and locales explains the modes.
Every piece type lists at GET /api/v1/<type> with the same fields, and answers one document at GET /api/v1/<type>/{_id}. A piece list comes a page of results at a time: add perPage=100 and walk page (the HTTP Request node’s Options → Pagination can do it). Find a document’s id has the details.
A key allows 600 reads and 120 writes a minute unless set otherwise. Over it, n8n says “The service is receiving too many requests from you”: on Get each page open Options → Batching and send fewer items a minute.

Authenticate from n8n

Token only, or token and HMAC signature

Find a document's id

The fields parameter, and which id to send

List pages

The route, its parameters and its answer

Required scopes

Every operation’s scope, per content type