GET/api/v1/account
Account status
Whether a Pinterest account is connected, the username, granted scopes, and how many boards are cached. Pass ?account_id= to target one of your connected accounts; omit it for the active (newest) account.
curl https://365pinterest.com/api/v1/account \
-H "Authorization: Bearer pk_live_YOUR_KEY_HERE"
GET/api/v1/boards
List boards
All boards on the connected account (id, name, description, privacy, pin count). Served from the local cache when available, otherwise fetched live from Pinterest once and cached. Pass ?account_id= to list another connected account's boards.
curl https://365pinterest.com/api/v1/boards \
-H "Authorization: Bearer pk_live_YOUR_KEY_HERE"
POST/api/v1/boards
Create a board
Creates a board on Pinterest and caches it. privacy is optional (PUBLIC, PROTECTED, or SECRET). Pass account_id in the body to create it on another connected account.
curl -X POST https://365pinterest.com/api/v1/boards \
-H "Authorization: Bearer pk_live_YOUR_KEY_HERE" \
-H "Content-Type: application/json" \
-d '{"name": "Weeknight dinners", "description": "Fast recipes for busy evenings", "privacy": "PUBLIC"}'
POST/api/v1/pins
Create a pin (JSON)
Creates a pin from an image URL. A future scheduledFor makes it SCHEDULED (published by the scheduler at that time); without one it is a DRAFT. Creation never publishes directly. boardId is the cached board id from List boards (a Pinterest board id is also accepted).
curl -X POST https://365pinterest.com/api/v1/pins \
-H "Authorization: Bearer pk_live_YOUR_KEY_HERE" \
-H "Content-Type: application/json" \
-d '{"title": "Creamy garlic pasta", "description": "Ready in 20 minutes.", "destinationUrl": "https://example.com/garlic-pasta", "boardId": "BOARD_ID", "imageUrl": "https://example.com/pasta.jpg", "scheduledFor": "2026-11-20T09:00:00Z"}'
POST/api/v1/pins
Create a pin (file upload)
Same as above, but uploads an image file (JPEG, PNG, or WebP, max 10 MB) instead of passing an imageUrl. The file is stored on Cloudinary first. Returns 503 when image uploads are not configured.
curl -X POST https://365pinterest.com/api/v1/pins \
-H "Authorization: Bearer pk_live_YOUR_KEY_HERE" \
-F "title=Creamy garlic pasta" \
-F "boardId=BOARD_ID" \
-F "scheduledFor=2026-11-20T09:00:00Z" \
-F "file=@./pasta.jpg"
GET/api/v1/pins
List pins
Pins in your account, newest first. Filter with ?status= (DRAFT, SCHEDULED, POSTING, PUBLISHED, FAILED), ?boardId=, and ?limit= (default 50, max 100). Pass ?account_id= to list one connected account's pins; omit it to list pins across all your accounts.
curl "https://365pinterest.com/api/v1/pins?status=SCHEDULED&limit=20" \
-H "Authorization: Bearer pk_live_YOUR_KEY_HERE"
POST/api/v1/pins/[id]/schedule
Schedule a pin
Moves a draft (or failed) pin to SCHEDULED for a future time. Published pins and pins currently publishing return 409.
curl -X POST https://365pinterest.com/api/v1/pins/PIN_ID/schedule \
-H "Authorization: Bearer pk_live_YOUR_KEY_HERE" \
-H "Content-Type: application/json" \
-d '{"scheduledFor": "2026-11-21T09:00:00Z"}'
POST/api/v1/pins/[id]/cancel
Cancel a scheduled pin
Cancels a scheduled pin: SCHEDULED back to DRAFT, with the scheduled time cleared. A pin that is not SCHEDULED returns 409.
curl -X POST https://365pinterest.com/api/v1/pins/PIN_ID/cancel \
-H "Authorization: Bearer pk_live_YOUR_KEY_HERE"
GET/api/v1/queue
Get the queue
Up-next: scheduled pins ordered by scheduled time, with board names. These are the pins the scheduler will publish next. Pass ?account_id= for one account's queue; omit it for the queue across all your accounts.
curl https://365pinterest.com/api/v1/queue \
-H "Authorization: Bearer pk_live_YOUR_KEY_HERE"
GET/api/v1/analytics
Account analytics
Account analytics for the last 30 days: total impressions, saves, clicks, and outbound clicks. Totals are honest zeros when Pinterest returns no data — numbers are never invented. Pass ?account_id= for one connected account; omit it for the active (newest) account.
curl https://365pinterest.com/api/v1/analytics \
-H "Authorization: Bearer pk_live_YOUR_KEY_HERE"