{
  "openapi": "3.0.1",
  "info": {
    "title": "Pinterest Scraper — Search Pins, Boards & Creators",
    "description": "Scrape Pinterest search results by keyword — pins, video pins, boards, creator profiles and keyword suggestions as clean rows. Every pin carries its outbound link, destination domain, board, creator, topic tags and image sizes. No login needed. Export to CSV, JSON or Excel.",
    "version": "0.0",
    "x-build-id": "OedjI1jdj3dEJ8jj1"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/afanasenko~pinterest-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-afanasenko-pinterest-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/afanasenko~pinterest-scraper/runs": {
      "post": {
        "operationId": "runs-sync-afanasenko-pinterest-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/afanasenko~pinterest-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-afanasenko-pinterest-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",
        "required": [
          "operationMode"
        ],
        "properties": {
          "operationMode": {
            "title": "1. Choose operation mode",
            "enum": [
              "searchPins",
              "searchVideoPins",
              "searchBoards",
              "searchCreators",
              "keywordSuggestions"
            ],
            "type": "string",
            "description": "What the run should search for. The section you fill in below depends on this choice."
          },
          "searchPinsKeywords": {
            "title": "Keywords",
            "type": "array",
            "description": "One keyword per line. Letters, digits and spaces only — Pinterest search rejects punctuation, hashtags and emoji.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "searchPinsMaxItems": {
            "title": "Max pins (Mode 1 cost control)",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many rows. 0 = no limit of your own (free plan still stops at 50).",
            "default": 0
          },
          "searchVideoPinsKeywords": {
            "title": "Keywords",
            "type": "array",
            "description": "One keyword per line. Only pins that carry a video are returned.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "searchVideoPinsMaxItems": {
            "title": "Max video pins (Mode 2 cost control)",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many rows. 0 = no limit of your own (free plan still stops at 50).",
            "default": 0
          },
          "searchBoardsKeywords": {
            "title": "Keywords",
            "type": "array",
            "description": "One keyword per line. Returns boards whose title or description matches.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "searchBoardsMaxItems": {
            "title": "Max boards (Mode 3 cost control)",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many rows. 0 = no limit of your own (free plan still stops at 50).",
            "default": 0
          },
          "searchCreatorsKeywords": {
            "title": "Keywords",
            "type": "array",
            "description": "One keyword per line. Returns accounts that publish about the topic.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "searchCreatorsMaxItems": {
            "title": "Max creators (Mode 4 cost control)",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many rows. 0 = no limit of your own (free plan still stops at 50).",
            "default": 0
          },
          "keywordSuggestionsKeywords": {
            "title": "Seed keywords",
            "type": "array",
            "description": "One seed per line. Each seed returns the phrases Pinterest itself suggests for it.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "keywordSuggestionsMaxItems": {
            "title": "Max suggestions (Mode 5 cost control)",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many rows. 0 = no limit of your own (free plan still stops at 50).",
            "default": 0
          },
          "minReactions": {
            "title": "Minimum reactions",
            "minimum": 0,
            "type": "integer",
            "description": "Drop pins with fewer reactions than this. 0 = keep everything. Most pins carry few reactions, so start low.",
            "default": 0
          },
          "onlyPinsWithLink": {
            "title": "Only pins that link somewhere",
            "type": "boolean",
            "description": "Keep only pins with an outbound destination URL. Modes 1 and 2.",
            "default": false
          },
          "excludePromotedPins": {
            "title": "Exclude promoted pins",
            "type": "boolean",
            "description": "Drop pins Pinterest marks as promoted (ads). Modes 1 and 2.",
            "default": false
          },
          "linkDomainContains": {
            "title": "Destination domain contains",
            "type": "string",
            "description": "Comma-separated fragments, e.g. \"etsy,amzn\". Keeps only pins whose destination domain matches one of them. Modes 1 and 2.",
            "default": ""
          },
          "minCreatorFollowers": {
            "title": "Minimum creator followers",
            "minimum": 0,
            "type": "integer",
            "description": "Drop rows whose creator (Modes 1, 2, 4) or board owner (Mode 3) has fewer followers than this. 0 = no minimum.",
            "default": 0
          },
          "minBoardPins": {
            "title": "Minimum pins on a board",
            "minimum": 0,
            "type": "integer",
            "description": "Drop boards holding fewer pins than this. Mode 3 only. 0 = no minimum.",
            "default": 0
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}