{
  "openapi": "3.0.1",
  "info": {
    "title": "Pinterest Search Scraper — Pins, Boards & Trends",
    "description": "Pinterest scraper for search results, boards and profiles without login: pins with real pin links, saves, repins, comments, image and video links, plus Pinterest Trends with weekly interest and search suggestions for keyword research. Only new pins on a schedule.",
    "version": "0.1",
    "x-build-id": "dSf4yExeg6gfOybaB"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/anuarbakty~pinterest-search-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-anuarbakty-pinterest-search-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/anuarbakty~pinterest-search-scraper/runs": {
      "post": {
        "operationId": "runs-sync-anuarbakty-pinterest-search-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/anuarbakty~pinterest-search-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-anuarbakty-pinterest-search-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "searchQueries": {
            "title": "Search keywords",
            "type": "array",
            "description": "One keyword or phrase per line, searched on Pinterest like in its search box. Each keyword gets its own pins and its own summary row.",
            "items": {
              "type": "string"
            }
          },
          "searchFor": {
            "title": "Search for",
            "enum": [
              "pins",
              "videos",
              "boards",
              "people"
            ],
            "type": "string",
            "description": "What a keyword search returns: pins (pictures and videos), video pins only, boards, or people (profiles). Pinterest finds people by short words, one or two.",
            "default": "pins"
          },
          "startUrls": {
            "title": "Pinterest links",
            "type": "array",
            "description": "Pins (pinterest.com/pin/…, pin.it short links or pin IDs), boards, board sections, profiles (pinterest.com/<user>/, @user, or /_created/, /_saved/), search links and idea pages. Country domains (de.pinterest.com, pinterest.co.uk) work too.",
            "items": {
              "type": "string"
            }
          },
          "maxResultsPerSource": {
            "title": "Max results per keyword, board or profile",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Paid rows to deliver for each keyword, link or profile. Pinterest search goes past 800 pins deep for a common keyword.",
            "default": 50
          },
          "maxItems": {
            "title": "Max paid rows in the run",
            "minimum": 0,
            "type": "integer",
            "description": "Stops the run after this many paid rows in total. Empty = no limit besides the run's maximum cost."
          },
          "findRealLinks": {
            "title": "Find real links and save counts",
            "type": "boolean",
            "description": "Since October 2026 Pinterest shows pins of a search and a board feed under encrypted IDs: no working link, no save count. On: each such pin is looked up by its picture in its board's latest pins, its creator's pins and its board feed (included in the price, a few extra requests per board). Off: faster; these pins keep the encrypted ID and empty saves.",
            "default": true
          },
          "lookupFeedPages": {
            "title": "Board pages read per lookup",
            "minimum": 0,
            "maximum": 40,
            "type": "integer",
            "description": "How deep the board feed is read (25 pins a page) to find the save count of an encrypted pin. 0 = only the board's latest pins and the creator's pins.",
            "default": 3
          },
          "includeComments": {
            "title": "Comments",
            "type": "boolean",
            "description": "Comments of each pin, when Pinterest shows them to a visitor who is not logged in. Included in the price of the pin.",
            "default": false
          },
          "maxComments": {
            "title": "Max comments per pin",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Comments to read for each pin.",
            "default": 20
          },
          "profilePins": {
            "title": "Pins of profile links",
            "enum": [
              "created",
              "saved",
              "none"
            ],
            "type": "string",
            "description": "For a profile link: its created pins (made by the account), its saved pins (saved to its boards), or only the profile row. A link that ends with /_created/ or /_saved/ chooses by itself.",
            "default": "created"
          },
          "includeProfileBoards": {
            "title": "Boards of profile links",
            "type": "boolean",
            "description": "Also one paid row per board of each profile: name, pin count, followers, sections.",
            "default": false
          },
          "suggestionSeeds": {
            "title": "Search suggestions for these words",
            "type": "array",
            "description": "Pinterest's own search suggestions for each seed, in its own order: the words people type on Pinterest.",
            "items": {
              "type": "string"
            }
          },
          "trendsCountries": {
            "title": "Pinterest Trends: countries",
            "type": "array",
            "description": "Two-letter codes of the countries whose Pinterest Trends lists to read, such as US, GB, DE, FR, BR, CA, AU.",
            "items": {
              "type": "string"
            }
          },
          "trendsList": {
            "title": "Pinterest Trends: lists",
            "type": "array",
            "description": "Growing (fastest risers), top monthly, top yearly, seasonal.",
            "items": {
              "type": "string",
              "enum": [
                "growing",
                "monthly",
                "yearly",
                "seasonal"
              ],
              "enumTitles": [
                "Growing",
                "Top monthly",
                "Top yearly",
                "Seasonal"
              ]
            },
            "default": [
              "growing"
            ]
          },
          "trendsKeywords": {
            "title": "Pinterest Trends: only terms with these words",
            "type": "array",
            "description": "Each list keeps only the terms that contain one of these words. Empty = the whole list.",
            "items": {
              "type": "string"
            }
          },
          "trendsExclude": {
            "title": "Pinterest Trends: leave out terms with these words",
            "type": "array",
            "description": "Terms that contain one of these words are left out.",
            "items": {
              "type": "string"
            }
          },
          "trendsMaxTerms": {
            "title": "Pinterest Trends: terms per list",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Terms to deliver from each list (Pinterest gives up to 100).",
            "default": 25
          },
          "trendsLookback": {
            "title": "Pinterest Trends: compared period",
            "enum": [
              "7d",
              "30d",
              "90d",
              "180d",
              "365d"
            ],
            "type": "string",
            "description": "The period the growth of each term is measured over.",
            "default": "30d"
          },
          "trendsHistory": {
            "title": "Pinterest Trends: weekly interest",
            "type": "boolean",
            "description": "Add a year of weekly search interest to each term, on its own scale (its best week = 100).",
            "default": false
          },
          "trendsTopPins": {
            "title": "Pinterest Trends: top pins per term",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "For each term, this many pins of its search, the most saved first. 0 = none. Each pin is a paid row.",
            "default": 0
          },
          "minSaves": {
            "title": "Min saves",
            "minimum": 0,
            "type": "integer",
            "description": "Only pins saved at least this many times. Pins whose save count is unknown are left out."
          },
          "minReactions": {
            "title": "Min reactions",
            "minimum": 0,
            "type": "integer",
            "description": "Only pins with at least this many reactions."
          },
          "onlyWithLink": {
            "title": "Only pins with a link",
            "type": "boolean",
            "description": "Only pins that lead to a website.",
            "default": false
          },
          "linkDomainContains": {
            "title": "Link website contains",
            "type": "string",
            "description": "Only pins whose website contains one of these words, comma-separated, such as \"etsy, amazon\"."
          },
          "excludePromoted": {
            "title": "Leave out ads",
            "type": "boolean",
            "description": "Leave out promoted pins.",
            "default": false
          },
          "createdAfter": {
            "title": "Created on or after",
            "type": "string",
            "description": "A date like 2026-10-01, or a number of days back like \"30 days\". Pins without a date are left out."
          },
          "pinMedia": {
            "title": "Pictures or videos",
            "enum": [
              "all",
              "images",
              "videos"
            ],
            "type": "string",
            "description": "Keep all pins, only pictures, or only videos.",
            "default": "all"
          },
          "sortPins": {
            "title": "Order",
            "enum": [
              "relevance",
              "saves",
              "newest"
            ],
            "type": "string",
            "description": "Pinterest's own order, the most saved first, or the newest first. A sorted input collects three times its limit of pins that pass the filters, then delivers the best.",
            "default": "relevance"
          },
          "locale": {
            "title": "Language",
            "type": "string",
            "description": "Language of the Pinterest session, such as en-US, de-DE, pt-BR: Pinterest shows results for it.",
            "default": "en-US"
          },
          "onlyNewPins": {
            "title": "Only new pins",
            "type": "boolean",
            "description": "Deliver only pins that earlier runs with the same memory did not deliver. Schedule the run daily or weekly to get new pins only. The first run delivers what it finds and remembers it.",
            "default": false
          },
          "monitorStoreName": {
            "title": "Memory name",
            "type": "string",
            "description": "Name of the memory of \"Only new pins\" in your account. Use one name per watch list, so that lists do not mix.",
            "default": "pinterest-monitor"
          },
          "webhookUrl": {
            "title": "Send a message when the run ends",
            "type": "string",
            "description": "A Slack or Discord webhook, a Telegram bot link (https://api.telegram.org/bot<token>/sendMessage?chat_id=<chat>) or any webhook (Make, n8n, Zapier): it gets the count of results and the dataset link."
          },
          "notifyWhen": {
            "title": "When to send the message",
            "enum": [
              "results",
              "always"
            ],
            "type": "string",
            "description": "\"When there are results\" skips runs that found nothing.",
            "default": "results"
          },
          "tags": {
            "title": "Your labels",
            "type": "array",
            "description": "Added to every row, to tell runs and lists apart in one table.",
            "items": {
              "type": "string"
            }
          },
          "includeErrorRows": {
            "title": "Free rows that explain empty inputs",
            "type": "boolean",
            "description": "A free row for each input that gave nothing, with the reason, and a free summary row per input.",
            "default": true
          },
          "failIfAllInputsFail": {
            "title": "Fail the run when nothing is delivered",
            "type": "boolean",
            "description": "Off: a run that delivers nothing still succeeds and explains why in free rows, so schedules and integrations keep going.",
            "default": false
          },
          "strictInput": {
            "title": "Stop on unknown input fields",
            "type": "boolean",
            "description": "On: an unknown field name stops the run before anything is read or charged.",
            "default": false
          },
          "fastMode": {
            "title": "Fast mode for agents",
            "type": "boolean",
            "description": "Answers within about 30 seconds: at most 10 rows, no board feed lookups, no weekly interest.",
            "default": false
          },
          "maxConcurrency": {
            "title": "Inputs at once",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "How many inputs are read at the same time. Pinterest limits each address, so more mostly waits longer.",
            "default": 2
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Pinterest answers Apify's server address without a proxy, so none is used by default. Choose a proxy here to always use it.",
            "default": {
              "useApifyProxy": false
            }
          },
          "proxyFallback": {
            "title": "Use Apify datacenter proxies when refused",
            "type": "boolean",
            "description": "When Pinterest keeps refusing the server address, the run moves to Apify datacenter proxies for a while, then tries the server address again.",
            "default": true
          },
          "residentialFallback": {
            "title": "Then residential proxies",
            "type": "boolean",
            "description": "When Pinterest also keeps refusing datacenter addresses, move to residential ones for a while.",
            "default": false
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}