{
  "openapi": "3.0.1",
  "info": {
    "title": "PitchBook Scraper — Companies & Investors",
    "description": "Scrape PitchBook company & investor profiles without a login — financing status, competitors, employees, deal history, investor type, HQ, activity metrics, and FAQ data. Works with profile URLs, keyword search (auto-paginated), or sitemap-wide investor filters. JSON or CSV out.",
    "version": "0.0",
    "x-build-id": "VHE0tLfPBnGFtXjfk"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/memo23~pitchbook-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-memo23-pitchbook-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/memo23~pitchbook-scraper/runs": {
      "post": {
        "operationId": "runs-sync-memo23-pitchbook-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/memo23~pitchbook-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-memo23-pitchbook-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": {
          "instantDatabase": {
            "title": "Serve from the instant database",
            "type": "boolean",
            "description": "Skip scraping entirely and answer from the archive using the db* filters in this section. Choose investors, companies, funds, both (companies+investors), or all via dbEntity. PitchBook gates its sitemap for cloud egress, so live filter discovery has to go through the paid unblocker one page at a time (slow and costly); the archive answers the same queries instantly for pages already collected. Archive rows are billed at the normal per-result price (same as a fresh scrape) and carry servedFromDatabase + dataAsOf. Turning this on ignores every scraping input below.",
            "default": false
          },
          "dbEntity": {
            "title": "Archive to read",
            "enum": [
              "investors",
              "companies",
              "funds",
              "both",
              "all"
            ],
            "type": "string",
            "description": "Which archive table instantDatabase reads. Default investors so existing tasks keep their old behaviour. companies / funds read that table only. both fills companies first, then investors. all adds funds after that. Each run stops at maxItems.",
            "default": "investors"
          },
          "dbQuery": {
            "title": "Name or description contains",
            "type": "string",
            "description": "Case-insensitive substring match on the row's name or description (investor companyName, company company_name, or fund fund_name / fund_manager)."
          },
          "dbCountry": {
            "title": "Country (investors)",
            "type": "string",
            "description": "Exact country on investor rows, e.g. <code>United States</code>, <code>United Kingdom</code>. Ignored when dbEntity is companies or funds."
          },
          "dbRegion": {
            "title": "HQ global region (investors)",
            "type": "string",
            "description": "Exact region on investor rows, e.g. <code>Americas</code>, <code>Europe</code>, <code>Asia</code>. Ignored when dbEntity is companies or funds."
          },
          "dbInvestorType": {
            "title": "Investor type",
            "type": "string",
            "description": "Exact type, e.g. <code>PE/Buyout</code>, <code>Venture Capital</code>, <code>Corporation</code>. Ignored when dbEntity is companies or funds."
          },
          "dbMinInvestments": {
            "title": "Min total investments",
            "minimum": 0,
            "type": "integer",
            "description": "Only investors with at least this many total investments recorded on their PitchBook profile. Ignored when dbEntity is companies or funds."
          },
          "dbMinExits": {
            "title": "Min total exits",
            "minimum": 0,
            "type": "integer",
            "description": "Only investors with at least this many recorded exits. Ignored when dbEntity is companies or funds."
          },
          "dbCompanyStatus": {
            "title": "Company status",
            "type": "string",
            "description": "Exact company status when reading the company archive, e.g. <code>Private</code>, <code>Acquired/Merged</code>. Ignored when dbEntity is investors or funds."
          },
          "dbFundStatus": {
            "title": "Fund status",
            "type": "string",
            "description": "Exact fund status when reading the fund archive, e.g. <code>Liquidated</code>, <code>Closed</code>. Ignored unless dbEntity is funds or all."
          },
          "dbMaxAgeDays": {
            "title": "Only rows seen in the last N days",
            "minimum": 1,
            "type": "integer",
            "description": "Freshness cap. Leave empty to accept any age — every row still carries <code>dataAsOf</code>."
          },
          "startUrls": {
            "title": "PitchBook URLs (company / investor / fund / search)",
            "type": "array",
            "description": "Any mix of: company profiles (https://pitchbook.com/profiles/company/361831-87), investor profiles (https://pitchbook.com/profiles/investor/100016-92), fund profiles (https://pitchbook.com/profiles/fund/11295-73F), search listings (https://pitchbook.com/profiles/search?q=fintech — paginated automatically), or bare tokens (`100016-92` = investor, `11295-73F` = fund). When empty (and searchQuery / *Ids are also empty), the actor streams from PitchBook's public sitemap.",
            "items": {
              "type": "string"
            }
          },
          "searchQuery": {
            "title": "Keyword search",
            "type": "string",
            "description": "Turned into https://pitchbook.com/profiles/search?q=&lt;term&gt; and paginated. Same as pasting that search URL into startUrls. Example: <code>fintech</code> or <code>venture capital Berlin</code>."
          },
          "companyIds": {
            "title": "Company profile IDs",
            "type": "array",
            "description": "Bare company ids, e.g. <code>361831-87</code>. Expanded to https://pitchbook.com/profiles/company/&lt;id&gt;. Use this instead of a bare N-N token in startUrls — those resolve as investors.",
            "items": {
              "type": "string"
            }
          },
          "investorIds": {
            "title": "Investor profile IDs",
            "type": "array",
            "description": "Bare investor ids, e.g. <code>100016-92</code>. Expanded to https://pitchbook.com/profiles/investor/&lt;id&gt;.",
            "items": {
              "type": "string"
            }
          },
          "fundIds": {
            "title": "Fund profile IDs",
            "type": "array",
            "description": "Bare fund ids — they end in F, e.g. <code>11295-73F</code>. Expanded to https://pitchbook.com/profiles/fund/&lt;id&gt;.",
            "items": {
              "type": "string"
            }
          },
          "sitemapEntity": {
            "title": "Sitemap entity (when URLs are empty)",
            "enum": [
              "investors",
              "funds"
            ],
            "type": "string",
            "description": "When startUrls, searchQuery, and the *Ids lists are all empty, stream this entity from PitchBook's public sitemap. Default investors. Funds use /profiles/fund/{id}F URLs.",
            "default": "investors"
          },
          "regions": {
            "title": "Regions",
            "type": "array",
            "description": "Global regions to include. Allowed values: Americas, Europe, Asia, Oceania, Africa, Middle East. Leave empty to include all.",
            "items": {
              "type": "string"
            }
          },
          "investorTypes": {
            "title": "Investor types",
            "type": "array",
            "description": "Primary/other investor types to include, e.g. Venture Capital, Private Equity, Corporate Venture Capital, Angel (individual), Family Office, Growth/Expansion, Hedge Fund, Fund of Funds, Sovereign Wealth Fund, Accelerator/Incubator. Leave empty to include all.",
            "items": {
              "type": "string"
            }
          },
          "investorStatuses": {
            "title": "Investor statuses",
            "type": "array",
            "description": "Statuses to include, e.g. Actively Seeking New Investments, Making Add-On Investments Only, Not Actively Seeking New Investments, Out of Business, Acquired/Merged. Leave empty to include all.",
            "items": {
              "type": "string"
            }
          },
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "Specific countries to include (e.g. United States, United Kingdom, Germany). Leave empty to include all.",
            "items": {
              "type": "string"
            }
          },
          "cities": {
            "title": "Cities",
            "type": "array",
            "description": "Specific HQ cities to include (e.g. San Francisco, London). Leave empty to include all.",
            "items": {
              "type": "string"
            }
          },
          "minInvestments": {
            "title": "Minimum total investments",
            "minimum": 0,
            "type": "integer",
            "description": "Only include investors with at least this many total investments. Investors with no disclosed value are kept."
          },
          "maxInvestments": {
            "title": "Maximum total investments",
            "minimum": 0,
            "type": "integer",
            "description": "Only include investors with at most this many total investments. Investors with no disclosed value are kept."
          },
          "minActivePortfolio": {
            "title": "Minimum active portfolio",
            "minimum": 0,
            "type": "integer",
            "description": "Only include investors with at least this many active portfolio companies. Investors with no disclosed value are kept."
          },
          "maxActivePortfolio": {
            "title": "Maximum active portfolio",
            "minimum": 0,
            "type": "integer",
            "description": "Only include investors with at most this many active portfolio companies. Investors with no disclosed value are kept."
          },
          "minExits": {
            "title": "Minimum total exits",
            "minimum": 0,
            "type": "integer",
            "description": "Only include investors with at least this many total exits. Investors with no disclosed value are kept."
          },
          "maxExits": {
            "title": "Maximum total exits",
            "minimum": 0,
            "type": "integer",
            "description": "Only include investors with at most this many total exits. Investors with no disclosed value are kept."
          },
          "requiredFields": {
            "title": "Required fields",
            "type": "array",
            "description": "Only emit investors that have a non-empty value in ALL selected fields. Useful field names: website, contactEmail, primaryInvestorType, city, country, streetAddress. Leave empty to keep every scraped investor.",
            "items": {
              "type": "string"
            }
          },
          "enrichEmails": {
            "title": "Discover contact email from the investor website (billed per email)",
            "type": "boolean",
            "description": "When enabled, the actor visits each investor's on-page website and harvests a contact email. Best-effort; hit rate depends on whether the firm publishes an email. Adds latency per row. Billed once per result where a contact email is found (the Additional data event); results without an email are not charged.",
            "default": false
          },
          "maxItems": {
            "title": "Maximum profiles to scrape",
            "minimum": 1,
            "type": "integer",
            "description": "Hard cap on the number of profile rows (companies + investors + funds) pushed to the dataset. Error rows do not count toward this cap. Free users are capped at 50.",
            "default": 1000
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum number of profiles fetched in parallel.",
            "default": 10
          },
          "proxy": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "PitchBook is Cloudflare-fronted and — unusually — TRUSTS clean datacenter egress while CHALLENGING residential exit nodes, so the scraper uses Apify's datacenter pool and drops a RESIDENTIAL group if one is set. The default is therefore datacenter (useApifyProxy with no group). It used to default to RESIDENTIAL on the assumption that every account can select it; that assumption is wrong — an account without residential access is rejected by the platform with \"You currently do not have access to proxy groups: RESIDENTIAL\" and cannot start the run at all, which made the actor unstartable for exactly the accounts that lack it. Setting a group the scraper then discards was never worth that. If a run reports no usable proxy, check Console → Settings → Limits for the monthly external-data-transfer allowance.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}