{
  "openapi": "3.0.1",
  "info": {
    "title": "Pinterest Profile Scraper & Board List",
    "description": "Pinterest Profile Scraper helps you extract structured data from public Pinterest profiles. Retrieve boards, pins, follower counts, and profile information efficiently. Designed for growth teams, researchers, and analytics workflows.",
    "version": "0.1",
    "x-build-id": "aDvnMHYXJxhKkgV9Z"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/api-empire~pinterest-profile-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-api-empire-pinterest-profile-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/api-empire~pinterest-profile-scraper/runs": {
      "post": {
        "operationId": "runs-sync-api-empire-pinterest-profile-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/api-empire~pinterest-profile-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-api-empire-pinterest-profile-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": [
          "startUrls"
        ],
        "properties": {
          "startUrls": {
            "title": "📌 Pinterest Accounts To Read",
            "type": "array",
            "description": "One entry per account. Accepts a bare username (`marthastewart`), a profile URL (`https://www.pinterest.com/marthastewart/`), a regional domain (`https://au.pinterest.com/etsy/`), or any sub-path below the profile root — a board URL such as `https://www.pinterest.com/chrislovesjulia/holiday-recipes/` and a tab URL such as `https://www.pinterest.com/target/_created/` both resolve to the parent profile. Search phrases are NOT supported: this actor reads accounts you name, it does not discover them. Anything that is not a username produces an uncharged row with `errorReason: invalid_input`.",
            "items": {
              "type": "string"
            }
          },
          "maxProfiles": {
            "title": "🔢 Maximum Accounts To Read",
            "minimum": 0,
            "maximum": 1000,
            "type": "integer",
            "description": "Hard cap on how many of the supplied accounts are processed. Every charged row counts against it — boards are nested inside the account's own row and are never billed separately. Example: 40 usernames with maxProfiles=10 reads the first 10. Set 0 to read every account supplied."
          },
          "includeBoards": {
            "title": "🗂️ Return The Account's Boards",
            "type": "boolean",
            "description": "Turn the `board_count` number into the boards themselves — name, description, pin count, follower count, cover image, collaborator flags and dates, all nested in the `boards` column of the account's row. This is the whole point of this actor, so it is ON by default. Costs one extra request per account. Switch it off to get the plain profile record only, in which case every board column is null.",
            "default": true
          },
          "maxBoardsPerProfile": {
            "title": "📚 Maximum Boards Per Account",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "How many boards to keep per account, applied AFTER the minimum-pins floor so the cap counts boards you kept rather than boards Pinterest happened to list first. Order is Pinterest's own board-grid order — owners can pin boards to the top and the grid is not chronological — so this is 'the first N Pinterest chose to serve', not 'the N newest'. When boards are cut, `boards_truncated` comes back true. Default 50.",
            "default": 50
          },
          "minBoardPins": {
            "title": "📉 Minimum Pins Per Board",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Drop boards holding fewer pins than this, so abandoned two-pin boards do not fill the sheet. How many were dropped is reported in `boards_dropped_by_filter`, so the filter is auditable. A board whose pin count Pinterest did not return is kept, never dropped — an unknown count is not a small count. Set 0 to keep every board. Default 3.",
            "default": 3
          },
          "includeBoardSections": {
            "title": "📂 Also Return Board Sections",
            "type": "boolean",
            "description": "Pinterest's own sub-folders inside a board — a *Kitchen* board split into *Storage*, *Lighting*, *Backsplash*. Each section returns id, title, slug and pin count. Sections are rare (measured on 63 of 571 boards across 8 accounts), and this costs one extra request per board that has any, so it is OFF by default. When it is off, every board still reports `section_count`, which is served for free — so you can see which boards are sub-foldered without paying for the contents.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "🌐 Proxy Configuration",
            "type": "object",
            "description": "Whatever you choose here is used for every request in the run — profile, boards and sections alike. There is no hidden proxy ladder and no silent fallback to a direct connection. Pinterest served all three endpoints to a bare Apify datacenter IP in testing, so a proxy is optional; switch Apify Proxy on if you see `blocked` accounting rows."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}