Pinterest Board Pins Scraper avatar

Pinterest Board Pins Scraper

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Pinterest Board Pins Scraper

Pinterest Board Pins Scraper

Collect public pins from Pinterest boards and board sections. Export individual pin records with media, source links and board context using cursor pagination.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

ScrapingMonkey

ScrapingMonkey

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Categories

Share

Export public pins from a Pinterest board or a selected board section with one pin per dataset row. Pinterest Board Pins Scraper collects descriptions, images, available video links, source websites and creator details while preserving the collection context.

Start from a thematic board you already know and build a reusable content inventory. Board and section URLs use the same result schema, so the output remains consistent across different collection sizes.

At a glanceDetails
📥 InputEnter full Pinterest board URLs (/username/board/) or section URLs (/username/board/section/). A section URL collects only that section.
📤 OutputOne pin per success row with the input source retained
📄 PaginationResult pages per input; page sizes and availability are controlled by Pinterest
🔐 Login requiredNo
⚡ ProcessingUp to 5 HTTP requests concurrently; up to 5 attempts for temporary failures
💾 DeliveryOne Apify dataset view with individual records and complete nested JSON

What the Pinterest board pins scraper collects 🗂️

The Actor resolves the board or section and paginates its public pins. A board starts with its main feed. When that feed ends, sections can be collected within the remaining total page budget; repeated pin IDs are removed within that input.

Data can include:

  • Pin IDs, canonical links, text and images
  • Available video variants, source websites and domains
  • Creator and board metadata exposed with each pin
  • Source board or section context for grouping exported rows
  • Visible pin counters and optional rich metadata

How to collect board pins from Pinterest 🚀

  1. Enter one or more supported inputs.
  2. Set the page budget and any collection option you need.
  3. Start the Actor.
  4. Open the Pins dataset view and review success or failed rows.
  5. Export the dataset or retrieve records from your application.
{
"inputList": [
"https://www.pinterest.com/luizacordery/fits/"
],
"pagesPerBoard": 1,
"includeSections": true
}

pagesPerBoard is one total pin-page budget per input, shared by the main feed and sections. The main feed is collected first; includeSections=true continues into sections only after that feed ends and budget remains. Metadata and section-list requests do not count as pin pages. A direct section URL collects only that section.

Pinterest board pins output fields 📦

FieldTypeMeaning
inputstringOriginal submitted input.
statusstringWhether this entity was successfully collected.
pageinteger or nullOne-based page within this input's collection.
source_boardobject or nullBoard requested as the source.
source_sectionobject or nullBoard section requested as the source, when applicable.
idstring or nullId when supplied by Pinterest.
urlstring or nullUrl when supplied by Pinterest.
titlestring or nullTitle when supplied by Pinterest.
descriptionstring or nullDescription when supplied by Pinterest.
created_atstring or nullCreated at when supplied by Pinterest.
linkstring or nullLink when supplied by Pinterest.
domainstring or nullDomain when supplied by Pinterest.
alt_textstring or nullAlt text when supplied by Pinterest.
auto_alt_textstring or nullAuto alt text when supplied by Pinterest.
seo_titlestring or nullSeo title when supplied by Pinterest.
seo_descriptionstring or nullSeo description when supplied by Pinterest.
seo_alt_textstring or nullSeo alt text when supplied by Pinterest.
dominant_colorstring or nullDominant color when supplied by Pinterest.
image_urlstring or nullImage url when supplied by Pinterest.
imagesarray or nullAvailable image variants, preserved in one dataset cell.
videosarray or nullAvailable video variants with duration in milliseconds, preserved in one dataset cell.
has_videoboolean or nullWhether video variants were present in this response.
is_video_rawboolean or nullRaw Pinterest is_video flag; video variants can exist when it is false.
is_repinboolean or nullIs repin when supplied by Pinterest.
is_promotedboolean or nullIs promoted when supplied by Pinterest.
repin_countinteger or nullRepin count reported for this pin; separate from aggregate saves.
comment_countinteger or nullComment count reported for this individual pin.
favorite_user_countinteger or nullFavorite user count when supplied by Pinterest.
share_countinteger or nullShare count when supplied by Pinterest.
comments_disabledboolean or nullComments disabled when supplied by Pinterest.
aggregated_pin_idstring or nullPinterest aggregate ID shared by related copies of the pin.
aggregated_comment_countinteger or nullComment count reported for the aggregated pin.
aggregated_save_countinteger or nullSave count reported for the aggregated pin.
aggregated_done_countinteger or nullTried-it count reported for the aggregated pin.
reactionsarray or nullReactions when supplied by Pinterest.
authorobject or nullAuthor when supplied by Pinterest.
boardobject or nullBoard when supplied by Pinterest.
sectionobject or nullSection when supplied by Pinterest.
productobject or nullProduct fields when product metadata exists. Raw zero prices do not establish a free product.

Nested field structure:

  • source_board: id, url, name, description, pin_count, follower_count, section_count, sectionless_pin_count, collaborator_count, is_collaborative, privacy, category, cover_image_url, cover_image_hd_url, last_modified_at, owner, images.
  • source_board.owner: id, username, name, url, image_url, image_large_url, is_verified, is_verified_merchant, is_private, follower_count.
  • source_board.images[]: variant, url, width, height, dominant_color.
  • source_section: id, title, slug, description, pin_count, url.
  • images[]: variant, url, width, height, dominant_color.
  • videos[]: variant, url, width, height, duration_ms, thumbnail_url.
  • reactions[]: type, count.
  • author: id, username, name, url, image_url, image_large_url, is_verified, is_verified_merchant, is_private, follower_count.
  • board: id, url, name, description, pin_count, follower_count, section_count, sectionless_pin_count, collaborator_count, is_collaborative, privacy, category, cover_image_url, cover_image_hd_url, last_modified_at, owner, images.
  • board.owner: id, username, name, url, image_url, image_large_url, is_verified, is_verified_merchant, is_private, follower_count.
  • board.images[]: variant, url, width, height, dominant_color.
  • section: id, title, slug, description, pin_count, url.
  • product: metadata_id, price_value_raw, price_currency, availability, is_out_of_stock, is_stale.

The examples below use normalized public response data. Values are snapshots and may change; every top-level output field is included. Different media variants and nested objects remain inside the same row.

Complete representative success result:

{
"input": "https://www.pinterest.com/luizacordery/fits/",
"status": "success",
"page": 1,
"source_board": {
"id": "500533014775145249",
"url": "https://www.pinterest.com/luizacordery/fits/",
"name": "fits !",
"description": "fits that make my brain go brrrrrr",
"pin_count": 5941,
"follower_count": 135458,
"section_count": 4,
"sectionless_pin_count": 5134,
"collaborator_count": 0,
"is_collaborative": false,
"privacy": "public",
"category": null,
"cover_image_url": "https://i.pinimg.com/custom_covers/200x150/500533014775145249_1768791434.jpg",
"cover_image_hd_url": null,
"last_modified_at": "2026-09-08T11:08:51Z",
"owner": {
"id": "500533083494204555",
"username": "luizacordery",
"name": "Lu¡za Cordery",
"url": "https://www.pinterest.com/luizacordery/",
"image_url": "https://i.pinimg.com/75x75_RS/f6/82/57/f68257fa231fabe0333275e535586e8d.jpg",
"image_large_url": "https://i.pinimg.com/280x280_RS/f6/82/57/f68257fa231fabe0333275e535586e8d.jpg",
"is_verified": true,
"is_verified_merchant": false,
"is_private": false,
"follower_count": null
},
"images": [
{
"variant": "474x.0",
"url": "https://i.pinimg.com/474x/14/3e/68/143e68ff30e366ed45eb10217ed831ec.jpg",
"width": 474,
"height": 797,
"dominant_color": "#121814"
},
{
"variant": "474x.1",
"url": "https://i.pinimg.com/474x/05/41/17/054117392c2de6ac54651ffb1e65b56c.jpg",
"width": 474,
"height": 632,
"dominant_color": "#655E55"
},
{
"variant": "474x.2",
"url": "https://i.pinimg.com/474x/db/3d/72/db3d72eb641350e7496624439f2ec707.jpg",
"width": 474,
"height": 488,
"dominant_color": "#CC9264"
},
{
"variant": "474x.3",
"url": "https://i.pinimg.com/474x/5e/ea/d0/5eead041ef5ad4d9a7e09ef6a7817071.jpg",
"width": 474,
"height": 824,
"dominant_color": "#4F4B40"
},
{
"variant": "474x.4",
"url": "https://i.pinimg.com/474x/e1/53/66/e153665b5e863c98ac38e6de69945868.jpg",
"width": 474,
"height": 594,
"dominant_color": "#202120"
},
{
"variant": "474x.5",
"url": "https://i.pinimg.com/474x/2c/3c/c4/2c3cc48f4f9a68c410112f0863b380d1.jpg",
"width": 474,
"height": 740,
"dominant_color": "#2C2218"
},
{
"variant": "474x.6",
"url": "https://i.pinimg.com/474x/bc/62/cb/bc62cb22bd8b9b5389084fc81a7ffaeb.jpg",
"width": 474,
"height": 632,
"dominant_color": "#9C9891"
},
{
"variant": "474x.7",
"url": "https://i.pinimg.com/474x/ce/7c/d4/ce7cd43aa68eeefa42308ffd84bb2a5c.jpg",
"width": 474,
"height": 632,
"dominant_color": "#897F72"
},
{
"variant": "474x.8",
"url": "https://i.pinimg.com/474x/8c/f6/dd/8cf6dd5837ddb039dfbaeea4410d62de.jpg",
"width": 474,
"height": 632,
"dominant_color": "#877C6E"
},
{
"variant": "474x.9",
"url": "https://i.pinimg.com/474x/0c/e1/4f/0ce14f1d10d60549730c3baef823f165.jpg",
"width": 474,
"height": 632,
"dominant_color": "#A59F99"
},
{
"variant": "474x.10",
"url": "https://i.pinimg.com/474x/b7/bd/ab/b7bdabf1635f7ce37df9653316951ff3.jpg",
"width": 474,
"height": 632,
"dominant_color": "#A1918B"
},
{
"variant": "474x.11",
"url": "https://i.pinimg.com/474x/04/23/7e/04237e9df8f0c7e93b5db56122ec316d.jpg",
"width": 474,
"height": 632,
"dominant_color": "#8F7D7B"
},
{
"variant": "474x.12",
"url": "https://i.pinimg.com/474x/fe/55/38/fe5538c7beaf3914ef1a8ed143864f74.jpg",
"width": 474,
"height": 632,
"dominant_color": "#9B8B87"
},
{
"variant": "474x.13",
"url": "https://i.pinimg.com/474x/b9/02/60/b90260772c78cf1170141786d5e0be5a.jpg",
"width": 474,
"height": 632,
"dominant_color": "#6A6868"
},
{
"variant": "474x.14",
"url": "https://i.pinimg.com/474x/61/0c/42/610c423e87da70d883444e44dfe7db6f.jpg",
"width": 474,
"height": 611,
"dominant_color": "#B3A794"
}
]
},
"source_section": null,
"id": "500532946109353226",
"url": "https://www.pinterest.com/pin/500532946109353226/",
"title": "",
"description": " ",
"created_at": null,
"link": null,
"domain": "Uploaded by user",
"alt_text": null,
"auto_alt_text": null,
"seo_title": null,
"seo_description": null,
"seo_alt_text": "Jeans Clothes, Clothing Embellishments, Bedazzled Clothing, Charms On Jeans, Altered Clothes, Studded Clothes, Customized Clothes, Buttons On Jeans, Jean Upcycle",
"dominant_color": "#7e7f7b",
"image_url": "https://i.pinimg.com/originals/58/aa/61/58aa61426c5163e65c2e66afbcce7c63.jpg",
"images": [
{
"variant": "170x",
"url": "https://i.pinimg.com/236x/58/aa/61/58aa61426c5163e65c2e66afbcce7c63.jpg",
"width": 236,
"height": 314,
"dominant_color": null
},
{
"variant": "136x136",
"url": "https://i.pinimg.com/136x136/58/aa/61/58aa61426c5163e65c2e66afbcce7c63.jpg",
"width": 136,
"height": 136,
"dominant_color": null
},
{
"variant": "474x",
"url": "https://i.pinimg.com/474x/58/aa/61/58aa61426c5163e65c2e66afbcce7c63.jpg",
"width": 474,
"height": 631,
"dominant_color": null
},
{
"variant": "736x",
"url": "https://i.pinimg.com/736x/58/aa/61/58aa61426c5163e65c2e66afbcce7c63.jpg",
"width": 736,
"height": 979,
"dominant_color": null
},
{
"variant": "orig",
"url": "https://i.pinimg.com/originals/58/aa/61/58aa61426c5163e65c2e66afbcce7c63.jpg",
"width": 887,
"height": 1181,
"dominant_color": null
}
],
"videos": [],
"has_video": false,
"is_video_raw": false,
"is_repin": true,
"is_promoted": false,
"repin_count": 0,
"comment_count": null,
"favorite_user_count": 0,
"share_count": null,
"comments_disabled": null,
"aggregated_pin_id": "2993895569221000576",
"aggregated_comment_count": null,
"aggregated_save_count": 25251,
"aggregated_done_count": 0,
"reactions": [
{
"type": "1",
"count": 2048
}
],
"author": {
"id": "500533083494204555",
"username": "luizacordery",
"name": "Lu¡za Cordery",
"url": "https://www.pinterest.com/luizacordery/",
"image_url": "https://i.pinimg.com/75x75_RS/f6/82/57/f68257fa231fabe0333275e535586e8d.jpg",
"image_large_url": null,
"is_verified": true,
"is_verified_merchant": false,
"is_private": null,
"follower_count": null
},
"board": {
"id": "500533014775145249",
"url": "https://www.pinterest.com/luizacordery/fits/",
"name": "fits !",
"description": null,
"pin_count": null,
"follower_count": null,
"section_count": null,
"sectionless_pin_count": null,
"collaborator_count": null,
"is_collaborative": false,
"privacy": "public",
"category": null,
"cover_image_url": null,
"cover_image_hd_url": null,
"last_modified_at": null,
"owner": {
"id": "500533083494204555",
"username": "luizacordery",
"name": "Lu¡za Cordery",
"url": "https://www.pinterest.com/luizacordery/",
"image_url": "https://i.pinimg.com/75x75_RS/f6/82/57/f68257fa231fabe0333275e535586e8d.jpg",
"image_large_url": null,
"is_verified": true,
"is_verified_merchant": false,
"is_private": null,
"follower_count": null
},
"images": []
},
"section": null,
"product": null
}

Complete section result:

{
"input": "https://www.pinterest.com/luizacordery/fits/doll-outfit-inspo/",
"status": "success",
"page": 1,
"source_board": {
"id": "500533014775145249",
"url": "https://www.pinterest.com/luizacordery/fits/",
"name": "fits !",
"description": "fits that make my brain go brrrrrr",
"pin_count": 5941,
"follower_count": 135458,
"section_count": 4,
"sectionless_pin_count": 5134,
"collaborator_count": 0,
"is_collaborative": false,
"privacy": "public",
"category": null,
"cover_image_url": "https://i.pinimg.com/custom_covers/200x150/500533014775145249_1768791434.jpg",
"cover_image_hd_url": null,
"last_modified_at": "2026-09-08T11:08:51Z",
"owner": {
"id": "500533083494204555",
"username": "luizacordery",
"name": "Lu¡za Cordery",
"url": "https://www.pinterest.com/luizacordery/",
"image_url": "https://i.pinimg.com/75x75_RS/f6/82/57/f68257fa231fabe0333275e535586e8d.jpg",
"image_large_url": "https://i.pinimg.com/280x280_RS/f6/82/57/f68257fa231fabe0333275e535586e8d.jpg",
"is_verified": true,
"is_verified_merchant": false,
"is_private": false,
"follower_count": null
},
"images": [
{
"variant": "474x.0",
"url": "https://i.pinimg.com/474x/14/3e/68/143e68ff30e366ed45eb10217ed831ec.jpg",
"width": 474,
"height": 797,
"dominant_color": "#121814"
},
{
"variant": "474x.1",
"url": "https://i.pinimg.com/474x/05/41/17/054117392c2de6ac54651ffb1e65b56c.jpg",
"width": 474,
"height": 632,
"dominant_color": "#655E55"
},
{
"variant": "474x.2",
"url": "https://i.pinimg.com/474x/db/3d/72/db3d72eb641350e7496624439f2ec707.jpg",
"width": 474,
"height": 488,
"dominant_color": "#CC9264"
},
{
"variant": "474x.3",
"url": "https://i.pinimg.com/474x/5e/ea/d0/5eead041ef5ad4d9a7e09ef6a7817071.jpg",
"width": 474,
"height": 824,
"dominant_color": "#4F4B40"
},
{
"variant": "474x.4",
"url": "https://i.pinimg.com/474x/e1/53/66/e153665b5e863c98ac38e6de69945868.jpg",
"width": 474,
"height": 594,
"dominant_color": "#202120"
},
{
"variant": "474x.5",
"url": "https://i.pinimg.com/474x/2c/3c/c4/2c3cc48f4f9a68c410112f0863b380d1.jpg",
"width": 474,
"height": 740,
"dominant_color": "#2C2218"
},
{
"variant": "474x.6",
"url": "https://i.pinimg.com/474x/bc/62/cb/bc62cb22bd8b9b5389084fc81a7ffaeb.jpg",
"width": 474,
"height": 632,
"dominant_color": "#9C9891"
},
{
"variant": "474x.7",
"url": "https://i.pinimg.com/474x/ce/7c/d4/ce7cd43aa68eeefa42308ffd84bb2a5c.jpg",
"width": 474,
"height": 632,
"dominant_color": "#897F72"
},
{
"variant": "474x.8",
"url": "https://i.pinimg.com/474x/8c/f6/dd/8cf6dd5837ddb039dfbaeea4410d62de.jpg",
"width": 474,
"height": 632,
"dominant_color": "#877C6E"
},
{
"variant": "474x.9",
"url": "https://i.pinimg.com/474x/0c/e1/4f/0ce14f1d10d60549730c3baef823f165.jpg",
"width": 474,
"height": 632,
"dominant_color": "#A59F99"
},
{
"variant": "474x.10",
"url": "https://i.pinimg.com/474x/b7/bd/ab/b7bdabf1635f7ce37df9653316951ff3.jpg",
"width": 474,
"height": 632,
"dominant_color": "#A1918B"
},
{
"variant": "474x.11",
"url": "https://i.pinimg.com/474x/04/23/7e/04237e9df8f0c7e93b5db56122ec316d.jpg",
"width": 474,
"height": 632,
"dominant_color": "#8F7D7B"
},
{
"variant": "474x.12",
"url": "https://i.pinimg.com/474x/fe/55/38/fe5538c7beaf3914ef1a8ed143864f74.jpg",
"width": 474,
"height": 632,
"dominant_color": "#9B8B87"
},
{
"variant": "474x.13",
"url": "https://i.pinimg.com/474x/b9/02/60/b90260772c78cf1170141786d5e0be5a.jpg",
"width": 474,
"height": 632,
"dominant_color": "#6A6868"
},
{
"variant": "474x.14",
"url": "https://i.pinimg.com/474x/61/0c/42/610c423e87da70d883444e44dfe7db6f.jpg",
"width": 474,
"height": 611,
"dominant_color": "#B3A794"
}
]
},
"source_section": {
"id": "5407676776130327804",
"title": "doll outfit inspo",
"slug": "doll-outfit-inspo",
"description": null,
"pin_count": 110,
"url": "https://www.pinterest.com/luizacordery/fits/doll-outfit-inspo/"
},
"id": "500532946109224497",
"url": "https://www.pinterest.com/pin/500532946109224497/",
"title": "",
"description": " ",
"created_at": null,
"link": null,
"domain": "Uploaded by user",
"alt_text": null,
"auto_alt_text": "five dolls are lined up against a wall in the same outfit as they stand next to each other",
"seo_title": null,
"seo_description": null,
"seo_alt_text": "five dolls are lined up against a wall in the same outfit as they stand next to each other",
"dominant_color": "#a88f85",
"image_url": "https://i.pinimg.com/originals/0a/80/2a/0a802adb0b6f3f460d37703dce08552b.jpg",
"images": [
{
"variant": "170x",
"url": "https://i.pinimg.com/236x/0a/80/2a/0a802adb0b6f3f460d37703dce08552b.jpg",
"width": 236,
"height": 408,
"dominant_color": null
},
{
"variant": "136x136",
"url": "https://i.pinimg.com/136x136/0a/80/2a/0a802adb0b6f3f460d37703dce08552b.jpg",
"width": 136,
"height": 136,
"dominant_color": null
},
{
"variant": "474x",
"url": "https://i.pinimg.com/474x/0a/80/2a/0a802adb0b6f3f460d37703dce08552b.jpg",
"width": 474,
"height": 820,
"dominant_color": null
},
{
"variant": "736x",
"url": "https://i.pinimg.com/736x/0a/80/2a/0a802adb0b6f3f460d37703dce08552b.jpg",
"width": 736,
"height": 1273,
"dominant_color": null
},
{
"variant": "orig",
"url": "https://i.pinimg.com/originals/0a/80/2a/0a802adb0b6f3f460d37703dce08552b.jpg",
"width": 1080,
"height": 1869,
"dominant_color": null
}
],
"videos": [],
"has_video": false,
"is_video_raw": false,
"is_repin": true,
"is_promoted": false,
"repin_count": 0,
"comment_count": null,
"favorite_user_count": 0,
"share_count": null,
"comments_disabled": null,
"aggregated_pin_id": "3489144603171549568",
"aggregated_comment_count": null,
"aggregated_save_count": 809,
"aggregated_done_count": 0,
"reactions": [
{
"type": "1",
"count": 130
}
],
"author": {
"id": "500533083494204555",
"username": "luizacordery",
"name": "Lu¡za Cordery",
"url": "https://www.pinterest.com/luizacordery/",
"image_url": "https://i.pinimg.com/75x75_RS/f6/82/57/f68257fa231fabe0333275e535586e8d.jpg",
"image_large_url": null,
"is_verified": true,
"is_verified_merchant": false,
"is_private": null,
"follower_count": null
},
"board": {
"id": "500533014775145249",
"url": "https://www.pinterest.com/luizacordery/fits/",
"name": "fits !",
"description": null,
"pin_count": null,
"follower_count": null,
"section_count": null,
"sectionless_pin_count": null,
"collaborator_count": null,
"is_collaborative": false,
"privacy": "public",
"category": null,
"cover_image_url": null,
"cover_image_hd_url": null,
"last_modified_at": null,
"owner": {
"id": "500533083494204555",
"username": "luizacordery",
"name": "Lu¡za Cordery",
"url": "https://www.pinterest.com/luizacordery/",
"image_url": "https://i.pinimg.com/75x75_RS/f6/82/57/f68257fa231fabe0333275e535586e8d.jpg",
"image_large_url": null,
"is_verified": true,
"is_verified_merchant": false,
"is_private": null,
"follower_count": null
},
"images": []
},
"section": null,
"product": null
}

Complete failed dataset item:

{
"input": "invalid input",
"status": "failed",
"page": null,
"source_board": null,
"source_section": null,
"id": null,
"url": null,
"title": null,
"description": null,
"created_at": null,
"link": null,
"domain": null,
"alt_text": null,
"auto_alt_text": null,
"seo_title": null,
"seo_description": null,
"seo_alt_text": null,
"dominant_color": null,
"image_url": null,
"images": null,
"videos": null,
"has_video": null,
"is_video_raw": null,
"is_repin": null,
"is_promoted": null,
"repin_count": null,
"comment_count": null,
"favorite_user_count": null,
"share_count": null,
"comments_disabled": null,
"aggregated_pin_id": null,
"aggregated_comment_count": null,
"aggregated_save_count": null,
"aggregated_done_count": null,
"reactions": null,
"author": null,
"board": null,
"section": null,
"product": null
}

A failed row preserves input, sets status to failed, and sets every other top-level field to null. The reason is written to the run log. Optional successful values remain null or empty when Pinterest omits them. The single dataset view exposes object fields as useful columns; arrays are kept in their parent row rather than expanded into additional rows or views.

Input and pagination settings ⚙️

ParameterTypeRequiredDefaultRules
inputListarray of stringsYesNoneEnter full Pinterest board URLs (/username/board/) or section URLs (/username/board/section/). A section URL collects only that section.
pagesPerBoardintegerNo1Total pin-page budget per board or section input. A board starts with its main feed, then visits sections if that feed ends and budget remains. Section listing requests do not count as pin pages. Minimum 1.
includeSectionsbooleanNotrueAfter the main board feed ends, collect its sections using the remaining total page budget. Ignored for a direct section URL. No section requests are made after the page budget is exhausted.

Use a supported board URL such as https://www.pinterest.com/luizacordery/fits/ or a section URL such as https://www.pinterest.com/luizacordery/fits/doll-outfit-inspo/. A profile URL or a pin URL is not a board input.

Use canonical HTTPS links on www.pinterest.com or pinterest.com. Country-specific hosts, shortened pin.it links and unsupported paths are not accepted.

Duplicate normalized inputs are processed once. A returned identifier is deduplicated within the pagination of one source input; the same object found under different source inputs retains each source relationship.

The first result request counts as page 1. Source validation and preparation requests do not consume result pages. A short or filtered page can continue if it supplies a usable cursor. Collection stops at the page budget or the end of pagination; a repeated cursor does not trigger an endless loop.

Pinterest board pins use cases 🎯

Thematic board exports

Collect a curated board and review its pin descriptions, media and external sources. Use the export as a traceable starting point for topic research.

Section-focused reference lists

Use a section URL to narrow collection to a particular subtopic. Keep the source section when combining several exports.

Repeated collection snapshots

Run the same board inputs on a schedule and compare returned IDs or metadata in your own system. Changes in a limited sample do not prove content was deleted.

Pricing and saved-result behavior 💰

Check the Actor’s Pricing tab for the active charging model and current rate. Store settings may change, so this README does not state an unverified fixed price or runtime.

Under dataset-item pricing:

  • Each unique success result represents one pin for its source input.
  • An invalid or unavailable input, an input with no accessible results, or a request that exhausts retries can produce a failed row.
  • Retry attempts and supporting metadata requests do not create extra dataset rows by themselves.
  • Nested media, author and source fields stay inside their parent result.
  • A normal empty continuation after earlier successes creates no additional result row.
  • Saved failed rows are not assumed to be free. Check the active pricing configuration for their treatment.

Larger page budgets and more inputs can produce more saved rows. Start with a small run and check actual usage before increasing the workload.

Pinterest board pins API 🔌

Replace $ACTOR_ID with the identifier shown in this Actor’s API tab and $APIFY_TOKEN with your Apify token.

curl -X POST "https://api.apify.com/v2/acts/$ACTOR_ID/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"inputList":["https://www.pinterest.com/luizacordery/fits/"],"pagesPerBoard":1,"includeSections":true}'

Download JSON, CSV, Excel, XML or other formats available in the Console, or retrieve the dataset through the Apify API. Schedules, webhooks and Apify integrations can connect results to Google Sheets, Make, Zapier, n8n, cloud storage or your own backend. These are connection options rather than integrations already configured by the Actor.

Reliability, retries, and public-data limits ⚠️

Collection uses pure HTTP with up to five concurrent requests. Invalid syntax and confirmed missing, removed or inaccessible targets stop without unnecessary retries. Temporary network or proxy failures, timeouts, blocking responses, malformed data, throttling and server errors are retried up to five total attempts per request.

Earlier successful pages remain saved when a later request fails. A normal end after previously saved results is not retried. An input that produces no accessible results can receive a failed row; this does not by itself prove the underlying account or collection does not exist. A later exhausted request can append a failed row while keeping earlier output.

Pinterest controls public availability, ranking, fields and pagination. Private, deleted, restricted or otherwise unavailable data can be omitted. Counts can change during collection, and media links can expire. Successful HTTP research confirms the supported request paths and pagination on tested sources, rather than future availability or exhaustive coverage.

A selected page budget yields a sample, not a promise to match the board’s reported pin count. Pins can appear in multiple source responses; duplicates are removed within one input. A board’s reported totals can include unavailable content and can change during the run.

An invalid string within a valid input list does not stop other inputs. A configuration that fails validation, such as a non-string list item or an invalid page-count type, exits before requests start. Infrastructure errors such as startup failure, unavailable dataset storage or an unrecoverable result-save error can stop the whole run. A failed dataset save is not retried as a new scraping request.

Frequently asked questions ❓

Can I collect just one board section?

Yes. Submit the section’s full URL. Its pins use the same output schema as board pins.

Does a board run include sections?

With includeSections=true, it continues into sections after the main feed ends and while the total pagesPerBoard budget remains. A small budget on a large board can be used entirely by the main feed.

Does it return board information as separate rows?

No. The output remains one row per pin, with source context attached. Supporting metadata and section discovery do not create extra dataset tables.

Does it require Pinterest login or personal cookies?

No. The Actor uses HTTP requests from the public website. It does not require a Pinterest account, password or personal session cookie, and does not launch a browser.

What happens to invalid or unavailable inputs?

Invalid individual inputs are saved as failed rows without a source request. Confirmed unavailable targets stop without unnecessary retries. Temporary failures allow up to five total attempts; other inputs and previously saved results remain available.

Can I export results or schedule runs?

Yes. Download the default dataset in supported formats or retrieve it through the Apify API. Apify schedules and completion webhooks can connect repeated runs to your own workflow.

For a reproducible issue, use the Actor’s Issues tab and provide the run ID, approximate time, safe public input, expected behavior and actual result. Include the selected mode or page count when applicable. Do not share access tokens, cookies or proxy credentials.

Use public data responsibly and follow applicable privacy, copyright, contractual and platform requirements before storing, analyzing or redistributing collected information.