{
  "openapi": "3.0.1",
  "info": {
    "title": "Pinterest Pins Videos Search & Outbound Shopping Links Scraper",
    "description": "Pinterest Pins Videos Search Scraper extracts pins and video results from Pinterest search queries. Collect pin titles, descriptions, images, video URLs, engagement metrics, and source links. Ideal for trend research, content discovery, and market analysis.",
    "version": "0.2",
    "x-build-id": "moqk61Gl5DRnE8aun"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scraper-engine~pinterest-pins-videos-search-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scraper-engine-pinterest-pins-videos-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/scraper-engine~pinterest-pins-videos-search-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scraper-engine-pinterest-pins-videos-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/scraper-engine~pinterest-pins-videos-search-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scraper-engine-pinterest-pins-videos-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": {
          "merchantSearchTerms": {
            "title": "🔎🛍️ Search Terms, URLs, or Usernames",
            "type": "array",
            "description": "List of Pinterest search keywords, profile URLs (e.g., https://www.pinterest.com/username/), or usernames to find shopping/outbound-link pins for. Supports bulk input. (Also accepts the base actor's 'searchTerms' key.)",
            "items": {
              "type": "string"
            }
          },
          "maxPinsPerTerm": {
            "title": "📦 Max Pins per Search Term",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Maximum number of pins to scrape per search term (1-1000). Default is 50. (Also accepts the base actor's 'maxItems' key.)"
          },
          "contentFilter": {
            "title": "📌🎥 Content Filter",
            "enum": [
              "All",
              "Videos"
            ],
            "type": "string",
            "description": "Filter results: All (pins + videos) or Videos only. (Also accepts the base actor's 'filtre' key.)"
          },
          "onlyLinkedPins": {
            "title": "🛒 Only Shopping / Linked Pins",
            "type": "boolean",
            "description": "When ON, keep ONLY pins that look like real shopping/product pins — a genuine outbound `link` plus a real merchant `domain` (not \"Uploaded by user\"). This is a heuristic (isShoppingPin), not a login-gated Pinterest 'Shopping' category flag. Default is OFF (keep all pins). Note: Pinterest only exposes a pin's `link`/`domain` to a logged-in viewer, so on an anonymous run every pin's isShoppingPin is false and turning this ON will keep 0 pins.",
            "default": false
          },
          "merchantDomainFilter": {
            "title": "🏷️ Merchant Domain Filter",
            "type": "array",
            "description": "Optional. Only keep pins whose outbound domain contains one of these strings (e.g. \"amazon.com\", \"etsy.com\"). Case-insensitive substring match. Leave empty (default) to keep all pins -- Pinterest only discloses a pin's outbound domain/link to a LOGGED-IN viewer, so on an anonymous run every pin's domain is blank and a non-empty filter here will silently keep 0 pins. Only set this if you supply your own logged-in session/proxy.",
            "items": {
              "type": "string"
            }
          },
          "topMerchantsCount": {
            "title": "📊 Top Merchants To Aggregate",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "How many top merchant domains to include in the derived topMerchants ranking attached to every row (and in the run's final MERCHANT-SUMMARY key-value record). Default is 5.",
            "default": 5
          },
          "proxyConfiguration": {
            "title": "🌐🔒 Proxy Configuration",
            "type": "object",
            "description": "Choose which proxies to use. By default, no proxy is used. If Pinterest blocks the request, it will automatically fallback to datacenter proxy, then residential proxy with 3 retries."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}