Pinterest Scraper scraper API

Scraper module for Pinterest content including users, boards, pins, and sections with streaming support

Social & content 7 capabilities stable 70.8% success rate

Capabilities

Every capability is one POST /execute call that returns structured JSON.

Get Full Board

pinterest.board-full.get

Fetches complete board data including all pins and sections. IMPORTANT: 'pins' contains board-level pins NOT in any section. Section-specific pins are nested inside 'sections[].pins'. This separation preserves the exact board organization. Also returns summary statistics.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"max_pins":25,"max_sections":0,"page_size":25,"url":"https://www.pinterest.com/PinterestPredicts/gimme-gummy/"},"capability":"pinterest.board-full.get"}'

Input

Field Type Required Description
cookies object optional Optional cookies for authenticated requests
max_pins integer optional Maximum total number of pins to return across board-level pins and section pins. Omit or set to 0 to fetch all available pins.
max_sections integer optional Maximum number of sections to scrape. When set, only the first N sections will have their pins fetched. Section metadata is always returned for all sections via stats.total_sections. Omit or set to 0 to scrape all sections.
page_size integer optional Pinterest pagination page size for full-board pin fetching. Board pin requests are capped at 250 and section pin requests at 50.
url string required Full Pinterest board URL or ?boardId= URL

Output

Field Type Required Description
board object optional Board metadata
board.collaborator_count integer optional Number of collaborators
board.description string optional Board description
board.follower_count integer optional Number of followers
board.id string optional Numeric identifier of the board
board.is_collaborative boolean optional Whether the board allows collaborators
board.name string optional Display name of the board
board.owner object optional Board owner (basic metadata only; use pinterest.user-boards.get for the full owner profile including node_id, image_medium_url, follower_count, verified_identity, etc.)
board.pin_count integer optional Number of pins in the board
board.privacy string optional Privacy setting
board.section_count integer optional Number of sections
board.url string optional Relative URL path of the board
pins array<object> optional Pins NOT in any section (board-level pins only)
pins[].alt_text string optional Custom alt text (user-provided)
pins[].board object optional Board this pin belongs to
pins[].description string optional Full pin description
pins[].domain string optional Domain of the external link
pins[].dominant_color string optional Dominant color hex code
pins[].favorite_count integer optional Number of favorites
pins[].has_products boolean optional Whether pin has shoppable products
pins[].id string optional Unique identifier of the pin
pins[].image_signature string optional Unique image hash for deduplication
pins[].images object optional Image URLs at different resolutions
pins[].is_native boolean optional Whether original content (not a repin)
pins[].is_promoted boolean optional Whether sponsored/promoted content
pins[].is_repin boolean optional Whether saved/repinned content
pins[].is_story_pin boolean optional Whether this is an idea/story pin
pins[].is_video boolean optional Whether this pin contains video
pins[].link string optional External URL the pin links to
pins[].native_creator object optional Original creator of the content
pins[].node_id string optional GraphQL node identifier
pins[].page_count integer optional Number of pages (for story/idea pins)
pins[].pinner object optional User who saved/created this pin
pins[].repin_count integer optional Direct repin count
pins[].rich_summary object optional Metadata from linked article/product (rich pins)
pins[].save_count integer optional Total number of saves
pins[].seo_alt_text string optional Auto-generated SEO alt text
pins[].seo_url string optional Pinterest SEO-friendly URL path
pins[].title string optional Pin title
pins[].video_url string optional Direct MP4 download URL for video pins
pins[].visual_annotations array<string> optional AI-detected visual tags/keywords (only populated for some pins)
sections array<object> optional Board sections, each containing its own pins array
sections[].id string optional Unique identifier of the section
sections[].node_id string optional GraphQL node identifier
sections[].pin_count integer optional Number of pins in this section
sections[].pins array<object> optional Pins within this section
sections[].slug string optional URL-friendly section name
sections[].title string optional Section title
stats object optional Summary statistics for the board
stats.board_pins integer optional Pins at board level (not in any section)
stats.section_pins integer optional Pins inside sections
stats.sections_scraped integer optional Number of sections actually scraped. Present only when total_sections > 0.
stats.total_pins integer optional Total pins across board and all sections
stats.total_sections integer optional Number of sections

Get Board ID

pinterest.board-id.get

Extracts the numeric board ID from a Pinterest board URL. The board ID is required for some API operations and is extracted from the page's embedded data.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"url":"https://www.pinterest.com/PinterestPredicts/gimme-gummy/"},"capability":"pinterest.board-id.get"}'

Input

Field Type Required Description
cookies object optional Optional cookies for authenticated requests
url string required Full Pinterest board URL

Output

Field Type Required Description
board_id string optional Numeric board identifier

Get Board Info

pinterest.board-info.get

Fetches board metadata without pins. Returns board name, description, pin count, section count, owner, privacy setting, cover images, and section list with pin counts.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"url":"https://www.pinterest.com/PinterestPredicts/gimme-gummy/"},"capability":"pinterest.board-info.get"}'

Input

Field Type Required Description
cookies object optional Optional cookies for authenticated requests
url string required Full Pinterest board URL

Output

Field Type Required Description
board object optional Pinterest board
board.collaborator_count integer optional Number of collaborators
board.description string optional Board description
board.follower_count integer optional Number of followers
board.id string optional Numeric identifier of the board
board.is_collaborative boolean optional Whether the board allows collaborators
board.name string optional Display name of the board
board.owner object optional Board owner
board.pin_count integer optional Number of pins in the board
board.privacy string optional Privacy setting
board.section_count integer optional Number of sections
board.sections array<object> optional All sections with their pin counts
board.url string optional Relative URL path of the board

Get Pin

pinterest.pin.get

Fetches complete metadata for a single Pinterest pin including title, description, images at multiple resolutions, engagement metrics (saves, repins), creator info, rich metadata (for articles/products), and video URL for video pins.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"url":"https://www.pinterest.com/pin/46443439902640817/"},"capability":"pinterest.pin.get"}'

Input

Field Type Required Description
cookies object optional Optional cookies for authenticated requests
url string required Full Pinterest pin URL

Output

Field Type Required Description
pin object optional Pinterest pin
pin.alt_text string optional Custom alt text (user-provided)
pin.board object optional Board this pin belongs to
pin.created_at string optional When the pin was created (section pins only)
pin.description string optional Full pin description
pin.domain string optional Domain of the external link
pin.dominant_color string optional Dominant color hex code
pin.favorite_count integer optional Number of favorites
pin.has_products boolean optional Whether pin has shoppable products
pin.id string optional Unique identifier of the pin
pin.image_signature string optional Unique image hash for deduplication
pin.images object optional Image URLs at different resolutions
pin.is_native boolean optional Whether original content (not a repin)
pin.is_promoted boolean optional Whether sponsored/promoted content
pin.is_repin boolean optional Whether saved/repinned content
pin.is_story_pin boolean optional Whether this is an idea/story pin
pin.is_video boolean optional Whether this pin contains video
pin.link string optional External URL the pin links to
pin.native_creator object optional Original creator of the content
pin.node_id string optional GraphQL node identifier
pin.page_count integer optional Number of pages (for story/idea pins)
pin.pinner object optional User who saved/created this pin
pin.repin_count integer optional Direct repin count
pin.rich_summary object optional Metadata from linked article/product (rich pins)
pin.save_count integer optional Total number of saves
pin.seo_alt_text string optional Auto-generated SEO alt text (board-level pins only)
pin.seo_url string optional Pinterest SEO-friendly URL path (board-level pins only)
pin.title string optional Pin title
pin.video_url string optional Direct MP4 download URL for video pins
pin.visual_annotations array<string> optional AI-detected visual tags/keywords (board-level pins only)

Get Section

pinterest.section.get

Fetches a board section with all its pins. Returns section metadata (title, slug, pin count) and complete pin data for all pins in that section.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"url":"https://www.pinterest.com/ashishbishnoi18/myboard/mysection/"},"capability":"pinterest.section.get"}'

Input

Field Type Required Description
cookies object optional Optional cookies for authenticated requests
url string required Full Pinterest section URL

Output

Field Type Required Description
section object optional Section with all its full pin data
section.id string optional Unique identifier of the section
section.node_id string optional GraphQL node identifier
section.pin_count integer optional Number of pins in this section
section.pins array<object> optional Full pin data for pins within this section
section.slug string optional URL-friendly section name
section.title string optional Section title

Get User Boards

pinterest.user-boards.get

Fetches all public boards for a Pinterest user. Returns board metadata including name, description, pin count, section count, privacy setting, cover image, and owner information.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"url":"https://www.pinterest.com/PinterestPredicts/"},"capability":"pinterest.user-boards.get"}'

Input

Field Type Required Description
cookies object optional Optional cookies for authenticated requests
url string required Full Pinterest profile URL

Output

Field Type Required Description
boards array<object> optional All boards for this user
boards[].collaborator_count integer optional Number of collaborators
boards[].created_at string optional Creation timestamp
boards[].description string optional Board description
boards[].follower_count integer optional Number of followers
boards[].has_custom_cover boolean optional Whether the board has a custom cover
boards[].id string optional Numeric identifier of the board
boards[].image_cover_hd_url string optional HD cover image URL
boards[].image_cover_url string optional Board cover image URL
boards[].is_collaborative boolean optional Whether the board allows collaborators
boards[].name string optional Display name of the board
boards[].node_id string optional GraphQL node identifier
boards[].owner object optional Board owner
boards[].pin_count integer optional Number of pins
boards[].privacy string optional Privacy setting
boards[].section_count integer optional Number of sections
boards[].url string optional Relative URL path of the board

Get User

pinterest.user.get

Fetches a Pinterest user's public profile data including username, display name, follower count, profile image URL, and verification status (partner, merchant, domain verified).

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"url":"https://www.pinterest.com/PinterestPredicts/"},"capability":"pinterest.user.get"}'

Input

Field Type Required Description
cookies object optional Optional cookies for authenticated requests
url string required Full Pinterest profile URL

Output

Field Type Required Description
user object optional Pinterest user/profile
user.domain_verified boolean optional Whether the user's domain is verified
user.follower_count integer optional Number of followers
user.full_name string optional Display name of the user
user.id string optional Numeric identifier of the user
user.image_medium_url string optional Profile image URL
user.is_partner boolean optional Whether the user is a Pinterest partner
user.is_private_profile boolean optional Whether the profile is private
user.is_verified_merchant boolean optional Whether the user is a verified merchant
user.node_id string optional GraphQL node identifier
user.username string optional Unique username of the user
user.verified_identity object optional Verification status

Run Pinterest Scraper in under a minute

Sign in, create an API key, and try any capability in the playground before you write code.

Get an API key