# Pinterest

> The visual discovery platform. Read the connected Pinterest account and how it performed, and organise its boards: create, rename, change the privacy of and remove boards, and add, rename and remove the sections inside them.

App · Social Media · 11 actions. Web page: https://docs.lodol.com/docs/integrations/pinterest

## Actions

### Create a board

Create a board on the connected Pinterest account and answer with it, including the id later steps read, rename, section or delete it by. A board can be public, protected (visible only to people you share it with) or secret; public unless you say otherwise.

**Inputs**

- Name (`name`, text, required): The board's name, shown on your profile.
- Description (`description`, text): Optional. What the board is for.
- Privacy (`privacy`, text): Who can see the board. Public by default. Protected boards are visible only to people you share them with; secret boards only to you. One of: `PUBLIC`, `PROTECTED` (Protected (shared link only)), `SECRET` (Secret (only me)). Default: `PUBLIC`.

**Outputs**: A Pinterest board.

- `board_pins_modified_at` (text): ISO 8601 timestamp of the last change to its contents.
- `collaborator_count` (number): How many people may add to this board.
- `created_at` (text): ISO 8601 timestamp of when the board was created.
- `description` (text): The board's description, or null.
- `follower_count` (number): How many people follow the board.
- `id` (text): Unique board id, a string of digits.
- `is_ads_only` (true/false): Whether the board can hold only ad-only content.
- `media` (object): The board's cover imagery.
- `name` (text): The board's name.
- `owner` (object): The account that owns the board.
- `pin_count` (number): How many items the board holds.
- `privacy` (text): PUBLIC, PROTECTED or SECRET.

**Example output**

```json
{
  "board_pins_modified_at": "2026-03-04T17:02:11Z",
  "collaborator_count": 0,
  "created_at": "2026-03-01T09:12:44Z",
  "description": "Things to cook when it is too hot to cook.",
  "follower_count": 12,
  "id": "549755885175",
  "is_ads_only": false,
  "media": {
    "image_cover_url": "https://i.pinimg.com/400x300/00/00/00/cover.jpg",
    "pin_thumbnail_urls": [
      "https://i.pinimg.com/150x150/00/00/00/thumb.jpg"
    ]
  },
  "name": "Summer recipes",
  "owner": {
    "username": "lodol_demo"
  },
  "pin_count": 3,
  "privacy": "PUBLIC"
}
```

### Create a board section

Add a section to a board (the named groups Pinterest shows as tiles at the top of a board) and answer with it, including the id later steps rename or delete it by.

**Inputs**

- Board (`board_id`, text, required): Which board to act on. The list holds the boards this account owns and the group boards it collaborates on; you can also paste a board id (a string of digits) that an earlier step produced. A board's web address carries only its name, never its id, so 'List boards' is the way to find one by hand.
- Section name (`name`, text, required): The section's name, up to 180 characters.

**Outputs**: A section of a board: a named group inside it.

- `id` (text): Unique section id.
- `name` (text): The section's name, up to 180 characters.

**Example output**

```json
{
  "id": "5430934547178",
  "name": "Salads"
}
```

### Delete a board

Permanently remove a board from the connected Pinterest account, together with everything saved on it. This cannot be undone, so read the board first if you need a copy.

**Inputs**

- Board (`board_id`, text, required): Which board to act on. The list holds the boards this account owns and the group boards it collaborates on; you can also paste a board id (a string of digits) that an earlier step produced. A board's web address carries only its name, never its id, so 'List boards' is the way to find one by hand.

**Outputs**: Confirmation that the record was removed.

- `deleted` (true/false): Always true: Pinterest answers a delete with either the record or no content at all, so this is the confirmation.
- `id` (text): The id that was deleted.

**Example output**

```json
{
  "deleted": true,
  "id": "549755885175"
}
```

### Delete a board section

Remove a section from a board. Whatever was filed in it stays on the board: only the grouping goes.

**Inputs**

- Board (`board_id`, text, required): Which board to act on. The list holds the boards this account owns and the group boards it collaborates on; you can also paste a board id (a string of digits) that an earlier step produced. A board's web address carries only its name, never its id, so 'List boards' is the way to find one by hand.
- Board section (`section_id`, text, required): Which section of the chosen board to act on. Pick the board first: this list holds that board's sections. A section id from an earlier step also works.

**Outputs**: Confirmation that the record was removed.

- `deleted` (true/false): Always true: Pinterest answers a delete with either the record or no content at all, so this is the confirmation.
- `id` (text): The id that was deleted.

**Example output**

```json
{
  "deleted": true,
  "id": "5430934547178"
}
```

### Get a board

Get one board in full by its id: name, description, privacy, cover imagery, owner, and its collaborator, follower and item counts.

**Inputs**

- Board (`board_id`, text, required): Which board to act on. The list holds the boards this account owns and the group boards it collaborates on; you can also paste a board id (a string of digits) that an earlier step produced. A board's web address carries only its name, never its id, so 'List boards' is the way to find one by hand.

**Outputs**: A Pinterest board.

- `board_pins_modified_at` (text): ISO 8601 timestamp of the last change to its contents.
- `collaborator_count` (number): How many people may add to this board.
- `created_at` (text): ISO 8601 timestamp of when the board was created.
- `description` (text): The board's description, or null.
- `follower_count` (number): How many people follow the board.
- `id` (text): Unique board id, a string of digits.
- `is_ads_only` (true/false): Whether the board can hold only ad-only content.
- `media` (object): The board's cover imagery.
- `name` (text): The board's name.
- `owner` (object): The account that owns the board.
- `pin_count` (number): How many items the board holds.
- `privacy` (text): PUBLIC, PROTECTED or SECRET.

**Example output**

```json
{
  "board_pins_modified_at": "2026-03-04T17:02:11Z",
  "collaborator_count": 0,
  "created_at": "2026-03-01T09:12:44Z",
  "description": "Things to cook when it is too hot to cook.",
  "follower_count": 12,
  "id": "549755885175",
  "is_ads_only": false,
  "media": {
    "image_cover_url": "https://i.pinimg.com/400x300/00/00/00/cover.jpg",
    "pin_thumbnail_urls": [
      "https://i.pinimg.com/150x150/00/00/00/thumb.jpg"
    ]
  },
  "name": "Summer recipes",
  "owner": {
    "username": "lodol_demo"
  },
  "pin_count": 3,
  "privacy": "PUBLIC"
}
```

### Get account analytics

Read how the whole connected account performed over a date range: impressions, clicks, outbound clicks, saves, engagement and their rates, day by day and as a summary. Pinterest keeps the last 90 days, and a range may cover at most 90 days. An account with no activity in the range legitimately reports nothing, which the result flags rather than failing.

**Inputs**

- From date (`start_date`, date, required): First day of the report, in UTC. Pinterest keeps the last 90 days only, so this cannot be further back than that.
- To date (`end_date`, date, required): Last day of the report, in UTC. It must be on or after the From date and no more than 90 days past it.
- Metrics (`metric_types`, list): Optional. Which figures to report. Choose none for all of them. One or more of: `ENGAGEMENT` (Engagements), `ENGAGEMENT_RATE` (Engagement rate), `IMPRESSION` (Impressions), `OUTBOUND_CLICK` (Outbound clicks), `OUTBOUND_CLICK_RATE` (Outbound click rate), `PIN_CLICK` (Clicks), `PIN_CLICK_RATE` (Click rate), `SAVE` (Saves), `SAVE_RATE` (Save rate).
- Claimed content (`from_claimed_content`, text): Optional. Count content from websites you have claimed, content from anywhere else, or both. Both by default. One of: `OTHER` (Unclaimed content only), `CLAIMED` (Claimed content only), `BOTH`.
- Content format (`pin_format`, text): Optional. Count only one format of content. All formats by default. One of: `ALL` (All formats), `ORGANIC_IMAGE` (Organic image), `ORGANIC_PRODUCT` (Organic product), `ORGANIC_VIDEO` (Organic video), `ADS_STANDARD` (Standard ad), `ADS_PRODUCT` (Product ad), `ADS_VIDEO` (Video ad), `ADS_IDEA` (Idea ad).
- Device (`app_types`, text): Optional. Count only activity from this kind of device. All devices by default. One of: `ALL` (All devices), `MOBILE`, `TABLET`, `WEB`.
- Content type (`content_type`, text): Optional. Count paid activity, organic activity, or both. Both by default. One of: `ALL` (Paid and organic), `PAID`, `ORGANIC`.
- Content source (`source`, text): Optional. Count only your own content, only content others created from your site, or both. Both by default. One of: `ALL` (All content), `YOUR_PINS` (Your own content only), `OTHER_PINS` (Other people's content only).
- Break down by (`split_field`, text): Optional. Report separate figures per device, per owned/unowned content, per source or per content format. One combined report by default; a broken-down one arrives under 'results', keyed by the split. One of: `NO_SPLIT` (Do not break down), `APP_TYPE` (Device), `OWNED_CONTENT` (Owned vs other content), `SOURCE` (Content source), `PIN_FORMAT` (Content format).

**Outputs**: One analytics report. Pinterest answers with a map keyed by the split that was asked for, so the whole map is kept under 'results' and the single (or 'ALL') split is lifted out for convenience.

- `daily_metrics` (list): One entry per day in the requested range.
- `end_date` (text): The last day of the range that was asked for.
- `is_empty` (true/false): True when Pinterest reported no figures at all for the range. An account with no activity in the range legitimately has none — it is not a failure.
- `lifetime_metrics` (object): All-time totals. Empty when Pinterest reports none.
- `results` (object): Pinterest's report exactly as it sent it, keyed by split. Read this when more than one split was asked for.
- `splits` (list): The keys Pinterest's report is divided by. One entry when no split was asked for.
- `start_date` (text): The first day of the range that was asked for.
- `summary_metrics` (object): Metric name to value, for example IMPRESSION, PIN_CLICK, SAVE, OUTBOUND_CLICK, SAVE_RATE. Which names appear depends on the metrics that were asked for.

**Example output**

```json
{
  "daily_metrics": [
    {
      "data_status": {
        "IMPRESSION": "READY"
      },
      "date": "2026-03-01",
      "metrics": {
        "IMPRESSION": 120,
        "SAVE": 9
      }
    }
  ],
  "end_date": "2026-03-07",
  "is_empty": false,
  "lifetime_metrics": {},
  "results": {
    "ALL": {
      "summary_metrics": {
        "IMPRESSION": 240
      }
    }
  },
  "splits": [
    "ALL"
  ],
  "start_date": "2026-03-01",
  "summary_metrics": {
    "IMPRESSION": 240,
    "OUTBOUND_CLICK": 20,
    "PIN_CLICK": 37,
    "SAVE": 20,
    "SAVE_RATE": 0.18
  }
}
```

### Get my Pinterest account

Get the Pinterest account this integration is connected as: its username, id, account type, business name, profile text and picture, website, and its board, follower and monthly-view counts. Useful as a connection check and as the first step of a workflow that needs the account's username.

**Inputs**: None.

**Outputs**: The Pinterest account the connection acts as.

- `about` (text): The profile's about text.
- `account_type` (text): PINNER for a personal account, BUSINESS for a business one.
- `board_count` (number): How many boards the account has.
- `business_name` (text): The business's name, or null on a personal account.
- `follower_count` (number): How many people follow the account.
- `following_count` (number): How many accounts it follows.
- `id` (text): Unique account id.
- `monthly_views` (number): Monthly views of the account's content.
- `pin_count` (number): How many items the account has saved.
- `profile_image` (text): Address of the profile picture.
- `username` (text): The account's username.
- `website_url` (text): The website shown on the profile.

**Example output**

```json
{
  "about": "Workflow automation, organised.",
  "account_type": "BUSINESS",
  "board_count": 4,
  "business_name": "Lodol Demo",
  "follower_count": 128,
  "following_count": 42,
  "id": "986784283747381927",
  "monthly_views": 1904,
  "pin_count": 37,
  "profile_image": "https://i.pinimg.com/280x280_RS/00/00/00/demo.jpg",
  "username": "lodol_demo",
  "website_url": "https://example.com"
}
```

### List board sections

List a board's sections with their ids and names. This is how a workflow finds the id of a section to rename or delete. Paged with a cursor.

**Inputs**

- Board (`board_id`, text, required): Which board to act on. The list holds the boards this account owns and the group boards it collaborates on; you can also paste a board id (a string of digits) that an earlier step produced. A board's web address carries only its name, never its id, so 'List boards' is the way to find one by hand.
- Page cursor (`bookmark`, text): Leave blank for the first page. To read the next page, pass the 'bookmark' value the previous result reported. Pinterest pages with a cursor, not a page number.
- Results per page (`page_size`, number): How many records to return in one page. Leave blank for Pinterest's default of 25. At least 1.

**Outputs**: One page of board sections.

- `bookmark` (text): Cursor to pass as 'bookmark' to read the next page, or null on the last page.
- `count` (number): How many records this page holds.
- `has_more` (true/false): Whether Pinterest offered another page.
- `items` (list): The board sections on this page.

**Example output**

```json
{
  "bookmark": null,
  "count": 1,
  "has_more": false,
  "items": [
    {
      "id": "5430934547178",
      "name": "Salads"
    }
  ]
}
```

### List boards

List the boards the connected account owns, plus the group boards it collaborates on, with each board's id, name, description, privacy and counts. This is how a workflow finds the id of a board to read, change, add a section to or delete. Results are paged with a cursor: the answer says whether there is another page and carries the bookmark to ask for it.

**Inputs**

- Privacy (`privacy`, text): Optional. Only boards at this privacy level. All the boards the connection may see, by default. One of: `ALL` (All boards), `PUBLIC` (Public only), `PROTECTED` (Protected only), `SECRET` (Secret only), `PUBLIC_AND_SECRET` (Public and secret).
- Page cursor (`bookmark`, text): Leave blank for the first page. To read the next page, pass the 'bookmark' value the previous result reported. Pinterest pages with a cursor, not a page number.
- Results per page (`page_size`, number): How many records to return in one page. Leave blank for Pinterest's default of 25. At least 1.

**Outputs**: One page of boards.

- `bookmark` (text): Cursor to pass as 'bookmark' to read the next page, or null on the last page.
- `count` (number): How many records this page holds.
- `has_more` (true/false): Whether Pinterest offered another page.
- `items` (list): The boards on this page.

**Example output**

```json
{
  "bookmark": null,
  "count": 1,
  "has_more": false,
  "items": [
    {
      "board_pins_modified_at": "2026-03-04T17:02:11Z",
      "collaborator_count": 0,
      "created_at": "2026-03-01T09:12:44Z",
      "description": "Things to cook when it is too hot to cook.",
      "follower_count": 12,
      "id": "549755885175",
      "is_ads_only": false,
      "media": {
        "image_cover_url": "https://i.pinimg.com/400x300/00/00/00/cover.jpg",
        "pin_thumbnail_urls": [
          "https://i.pinimg.com/150x150/00/00/00/thumb.jpg"
        ]
      },
      "name": "Summer recipes",
      "owner": {
        "username": "lodol_demo"
      },
      "pin_count": 3,
      "privacy": "PUBLIC"
    }
  ]
}
```

### Rename a board section

Give one of a board's sections a new name. The name is required: renaming is the only change Pinterest allows to a section.

**Inputs**

- Board (`board_id`, text, required): Which board to act on. The list holds the boards this account owns and the group boards it collaborates on; you can also paste a board id (a string of digits) that an earlier step produced. A board's web address carries only its name, never its id, so 'List boards' is the way to find one by hand.
- Board section (`section_id`, text, required): Which section of the chosen board to act on. Pick the board first: this list holds that board's sections. A section id from an earlier step also works.
- New name (`name`, text, required): The section's new name, up to 180 characters.

**Outputs**: A section of a board: a named group inside it.

- `id` (text): Unique section id.
- `name` (text): The section's name, up to 180 characters.

**Example output**

```json
{
  "id": "5430934547178",
  "name": "Salads"
}
```

### Update a board

Rename a board, change its description, change who can see it, or any combination. Whatever you leave blank is kept as it is. Note that Pinterest only lets an existing board be switched between public and secret: 'protected' can be chosen when a board is created but not afterwards.

**Inputs**

- Board (`board_id`, text, required): Which board to act on. The list holds the boards this account owns and the group boards it collaborates on; you can also paste a board id (a string of digits) that an earlier step produced. A board's web address carries only its name, never its id, so 'List boards' is the way to find one by hand.
- Name (`name`, text): A new name. Leave blank to keep the current one.
- Description (`description`, text): A new description. Leave blank to keep the current one.
- Privacy (`privacy`, text): A new privacy setting. Leave blank to keep the current one. Only public and secret can be set on an existing board. One of: `PUBLIC`, `SECRET` (Secret (only me)).

**Outputs**: A Pinterest board.

- `board_pins_modified_at` (text): ISO 8601 timestamp of the last change to its contents.
- `collaborator_count` (number): How many people may add to this board.
- `created_at` (text): ISO 8601 timestamp of when the board was created.
- `description` (text): The board's description, or null.
- `follower_count` (number): How many people follow the board.
- `id` (text): Unique board id, a string of digits.
- `is_ads_only` (true/false): Whether the board can hold only ad-only content.
- `media` (object): The board's cover imagery.
- `name` (text): The board's name.
- `owner` (object): The account that owns the board.
- `pin_count` (number): How many items the board holds.
- `privacy` (text): PUBLIC, PROTECTED or SECRET.

**Example output**

```json
{
  "board_pins_modified_at": "2026-03-04T17:02:11Z",
  "collaborator_count": 0,
  "created_at": "2026-03-01T09:12:44Z",
  "description": "Things to cook when it is too hot to cook.",
  "follower_count": 12,
  "id": "549755885175",
  "is_ads_only": false,
  "media": {
    "image_cover_url": "https://i.pinimg.com/400x300/00/00/00/cover.jpg",
    "pin_thumbnail_urls": [
      "https://i.pinimg.com/150x150/00/00/00/thumb.jpg"
    ]
  },
  "name": "Summer recipes",
  "owner": {
    "username": "lodol_demo"
  },
  "pin_count": 3,
  "privacy": "PUBLIC"
}
```
