Maintaining a Content Mix
Tailwind’s tools each do one thing: read the queue, recommend Pins, create a Pin, save a Pin. This guide shows how an AI assistant (over MCP) or a script (over the REST API) can combine them into a standing workflow — a short routine you run again and again to keep your Pinterest activity in a shape you choose.
The example aims for about one Pin from your own website and two Pins from other creators each day. Your own Pins go on your SmartSchedule, kept topped up to a queue depth; the third-party Pins are existing Pinterest Pins saved (repinned) to your board on every run. Every run reads what is already queued and fills only the gap.
The mix is approximate by design. The workflow controls how many of your own Pins are queued and how many third-party Pins are saved per run; which day each own Pin publishes is up to your SmartSchedule and Pin Spacing (see Step 2).
Tailwind does not store this routine. There is no “content mix” setting: each run is started by you, your assistant, or your own scheduler, and Tailwind only sees the individual tool calls. See Running it again.
Inputs
Section titled “Inputs”| Input | Example | Where it comes from |
|---|---|---|
| Account | 123456 |
list_accounts |
| Your domain | myblog.com |
domainUrl from get_account, or tell the assistant directly when the account has no claimed domain |
| Target board | 1106196864631757445 |
list_boards |
| Own-Pin depth | 7 of your own Pins queued (about a week’s worth) | Your choice |
| Third-party Pins per run | 2 | Your choice |
| Your own Pins | Blog posts with an image, title, description and link | Your site, a list you keep, or a feed you read |
| Keyword | coastal decor |
Your niche, for get_recommended_pins |
One run
Section titled “One run”- Count your own queued Pins
- Schedule enough of your own Pins to get back to the depth
- Find third-party Pins for the board
- Save the best two to the board
Step 1: Count your own queued Pins
Section titled “Step 1: Count your own queued Pins”List every scheduled Pin with list_posts, following cursor until a response comes back without one. Read the whole queue, not just the next few weeks: an own Pin from an earlier run can land well out when slots are full or Pin Spacing pushes it back, and it still has to count, or every run would schedule more.
{ "accountId": "123456", "status": "queued", "limit": 100}REST equivalent: GET /v1/accounts/123456/posts?status=queued&limit=100, passing the previous response’s cursor to get the next page (reference).
Each post carries its destination url (abridged):
{ "posts": [ { "id": "post_abc123", "status": "queued", "title": "Easy Coastal Shelf Styling", "url": "https://myblog.com/coastal-shelves", "sendAt": 4072582800 }, { "id": "post_def456", "status": "queued", "title": "Driftwood Mirror DIY", "url": "https://partner-shop.com/driftwood-mirror", "sendAt": 4072600800 }, { "id": "post_ghi789", "status": "queued", "title": "Beach Cottage Palette", "sendAt": 4072618800 } ], "cursor": "eyJvZmZzZXQiOjEwMH0"}Compare the hostname of each post’s url with your domain, ignoring a leading www.. A match is one of your own Pins. A Pin with no url (like the third one above) is not one of yours — skip it rather than parsing a missing value.
To see when those Pins publish and which slots are still open, read get_schedule. It is the right view for reasoning about the calendar, but it covers at most 60 days, so it is not the source for this count.
Step 2: Schedule your own Pins back to the depth
Section titled “Step 2: Schedule your own Pins back to the depth”If 4 of your own Pins are queued and the depth is 7, create 3. Create none when the queue already holds the depth or more. Call create_post once per Pin with useNextOpenSlot: true, which claims the next open SmartSchedule slot and applies your Pin Spacing rules for the Pin’s url.
{ "accountId": "123456", "boardId": "1106196864631757445", "mediaUrl": "https://myblog.com/images/coastal-entryway.jpg", "title": "Coastal Entryway Ideas on a Budget", "description": "Five easy swaps that make any entryway feel like a beach house. #coastaldecor #entryway", "url": "https://myblog.com/coastal-entryway", "useNextOpenSlot": true}REST equivalent: POST /v1/accounts/123456/posts with the same body (reference).
The rule is a queue depth, not a per-day quota, because create_post cannot choose a day: useNextOpenSlot takes the next genuinely open slot, wherever it falls. As your Pins publish they leave the queue, so later runs add as many as went out since the last run. Whether that is one a day depends on your schedule, not on this workflow: with several open slots a day, own Pins can publish together on one day, and a sparse schedule or a long Pin Spacing interval can leave a day with none. A Pin Spacing rule for your domain (see get_pin_spacing_rule) is what spreads them out; set the interval to about a day if you want close to one own Pin per day.
Do not compute a time yourself and pass it as sendAt — for example, an open entry from get_schedule. A slot that read as open can be taken before the write lands, and sendAt ignores Pin Spacing, so Pins stack up off-schedule. The workflow only adds Pins; it never removes any to reach the depth.
Step 3: Find third-party Pins
Section titled “Step 3: Find third-party Pins”get_recommended_pins finds public Pins from across Pinterest that fit the board and keyword. It is free and read-only.
{ "accountId": "123456", "boardId": "1106196864631757445", "keyword": "coastal decor", "limit": 10}REST equivalent: GET /v1/accounts/123456/boards/1106196864631757445/recommended-pins?keyword=coastal%20decor&limit=10 (reference).
Each result carries its Pinterest Pin ID, title, description, link and a relevance tier, strongest first. Results already exclude Pins on the board — including ones an earlier run saved — so you do not need to track what you saved before.
Step 4: Save two of them to the board
Section titled “Step 4: Save two of them to the board”Pass the IDs you picked to save_pins_to_board. This saves the existing Pins to your board, keeping the original creator’s attribution (Pinterest stores the save as a copy under a new Pin ID) — it does not re-upload their image as a new Pin of yours.
{ "accountId": "123456", "boardId": "1106196864631757445", "pinIds": ["1122334455667788990", "2233445566778899001"]}REST equivalent: POST /v1/accounts/123456/boards/1106196864631757445/pins with { "pinIds": [...] } (reference).
A save publishes when the run happens, not in a SmartSchedule slot, so how often you run sets the pace of your third-party Pins: run daily for two a day.
Check savedCount in the response. A savedCount of 0 is a complete failure even though the call succeeded. Do not retry a failed or unclear save — Pinterest treats a repeat save as a second Pin, and a save counted as failed may have landed anyway. Leave it to the next run, which will recommend whatever is still missing from the board.
Result of one run
Section titled “Result of one run”On a first run against the example above, the assistant schedules 3 of your own Pins and saves 2 third-party Pins. On later runs it schedules however many of your own Pins published since the previous run, and saves 2.
Running it again
Section titled “Running it again”Nothing in Tailwind starts the next run. Re-running the workflow belongs to whoever owns the routine:
- You, by asking the assistant again each day.
- Your assistant’s own scheduled tasks, if your AI client supports recurring tasks. The schedule lives in the client, not in Tailwind.
- Your own scheduler, such as a daily cron job running a script against the REST API.
The two halves repeat differently, and that is the main thing the caller has to own:
- Steps 1–2 are safe to repeat. They read the queue first and fill only what is missing, so an extra run adds nothing and a missed day is caught up next time.
- Steps 3–4 are not. Every run saves two more Pins, and Tailwind keeps no record that a run happened. Run once a day, and run one at a time: two runs that overlap will both save. Whether a missed day should save four the next day is your call.
A prompt an assistant can run each day:
“On account 123456: keep 7 of my own Pins from myblog.com queued — list all my queued Pins, count the ones whose link is on myblog.com, and schedule the shortfall from my latest blog posts on my Coastal Decor board using the next open slot. Then find recommended Pins for ‘coastal decor’ on that board and save the best two to it.”
What Tailwind keeps
Section titled “What Tailwind keeps”Tailwind stores the Pins this workflow creates and saves, and the account’s SmartSchedule and Pin Spacing rules. It does not store the mix rule, the depth, your content list, or any record that a run happened.
Pins already in the queue are only read. This workflow never reschedules, edits or deletes them. If you want a different policy — for example, moving a Pin to make room — that is your decision to build on top, using schedule_post, update_post or delete_post.
Listing the queue, fetching recommendations, and saving Pins are free. Requesting many different keywords in quick succession can return 429, so keep to one or two keywords per run.
Each own Pin you schedule is charged the same as any other: one plan credit on modular-billing accounts with Publishing access, whether subscribed or granted, except on winback plans, which schedule without charge; modular accounts without Publishing draw on a free-trial allowance; and legacy and Shopify accounts spend no credits, counting the Pin against the plan’s post limit instead. Check what is left with get_account_usage before a large fill. When the allowance runs out, create_post fails with a payment-required error and the rest of that run’s Pins are not created.
Next steps
Section titled “Next steps”- Read the scheduling guide for every
create_postfield - Browse the MCP tools reference
- Connect your AI assistant
