{
  "openapi": "3.0.1",
  "info": {
    "title": "Page Finder and Extractor Company Website Pages for Clay",
    "description": "Give it a company domain and name the page you want. Finds pricing, careers, investor relations, trust centers, terms, contact and 40 more page types on that company's own site, in 11 languages, and returns the URL, how it was found and a confidence for that method. Structured fields on request.",
    "version": "0.0",
    "x-build-id": "Blw3MToaobA1Vqh2P"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/mambalabs~page-finder-extractor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-mambalabs-page-finder-extractor",
        "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/mambalabs~page-finder-extractor/runs": {
      "post": {
        "operationId": "runs-sync-mambalabs-page-finder-extractor",
        "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/mambalabs~page-finder-extractor/run-sync": {
      "post": {
        "operationId": "run-sync-mambalabs-page-finder-extractor",
        "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": {
          "domain": {
            "title": "Company domain",
            "type": "string",
            "description": "A single company domain, for example stripe.com. Protocol and path are stripped. Use this for one company; use Company domains for a list."
          },
          "domains": {
            "title": "Company domains",
            "type": "array",
            "description": "A list of company domains. Every domain returns a row, including the ones where nothing is found.",
            "items": {
              "type": "string"
            }
          },
          "companies": {
            "title": "Companies by name",
            "type": "array",
            "description": "Companies you have a name for but not a domain. Each entry is an object with name, and optionally country, isin, ticker and url. Identity resolution runs first on this path and is charged as its own event. Send as JSON when calling from Clay."
          },
          "pageTypes": {
            "title": "Page types to find",
            "type": "array",
            "description": "Which page types to locate. 46 are available. Each one you add costs a locate event and takes more requests, so ask for what you will use.",
            "items": {
              "type": "string",
              "enum": [
                "pricing",
                "demo_request",
                "free_trial",
                "procurement_vendor",
                "about",
                "leadership_team",
                "locations",
                "investor_relations",
                "annual_report",
                "governance",
                "security_trust_center",
                "compliance_certifications",
                "privacy_policy",
                "terms_of_service",
                "dpa_subprocessors",
                "accessibility_statement",
                "status_page",
                "careers",
                "job_board",
                "benefits",
                "culture",
                "documentation",
                "api_reference",
                "integrations",
                "changelog",
                "roadmap",
                "developer_portal",
                "blog",
                "press_newsroom",
                "case_studies",
                "customers_logos",
                "resources_library",
                "events_webinars",
                "podcast",
                "media_kit",
                "partners",
                "reseller_channel",
                "affiliate_program",
                "marketplace_listing",
                "community",
                "contact",
                "support_help_center",
                "login_app",
                "sustainability_esg",
                "diversity_programs",
                "giving_volunteering"
              ]
            },
            "default": [
              "pricing"
            ]
          },
          "mode": {
            "title": "Mode",
            "enum": [
              "locate",
              "locate_and_extract"
            ],
            "type": "string",
            "description": "locate returns the page URL, the method that found it and a confidence. locate_and_extract also reads the page and returns structured fields. Locating alone is cheaper and is a complete product on its own.",
            "default": "locate"
          },
          "extractionFields": {
            "title": "Fields to extract on any page",
            "type": "array",
            "description": "The page agnostic menu. These are available on every page type. Only used in locate_and_extract mode. Leave empty for all of them.",
            "items": {
              "type": "string",
              "enum": [
                "copyright",
                "legal_entity",
                "emails",
                "phones",
                "addresses",
                "social_links",
                "meta",
                "last_modified",
                "canonical",
                "schema_org",
                "forms",
                "ctas",
                "tech_markers"
              ]
            },
            "default": [
              "copyright",
              "legal_entity",
              "emails",
              "phones",
              "addresses",
              "social_links",
              "meta",
              "last_modified",
              "canonical",
              "schema_org",
              "forms",
              "ctas",
              "tech_markers"
            ]
          },
          "extractPageTypeFields": {
            "title": "Extract page type specific fields",
            "enum": [
              "true",
              "false"
            ],
            "type": "string",
            "description": "true also runs the field map bound to each page type: pricing plans, filing rows and a derived fiscal year end, certifications, ATS host, governing law, and the rest. Only used in locate_and_extract mode.",
            "default": "true"
          },
          "knownUrls": {
            "title": "Known URLs",
            "type": "object",
            "description": "URLs you already hold, keyed by page type, for example {\"pricing\": \"https://stripe.com/pricing\"}. Discovery is skipped for that page type, which is faster and more accurate. Send as JSON when calling from Clay."
          },
          "maxPagesPerType": {
            "title": "Max pages per page type",
            "type": "string",
            "description": "Between 1 and 12. How many candidate pages to open per page type before giving up. Lowering it is faster and finds less: at 1 the actor opens only its single best candidate, so a company whose real pricing page was the second best guess comes back not found. 4 is the measured default. Sent as a string so it works from Clay.",
            "default": "4"
          },
          "maxRequestsPerInput": {
            "title": "Max requests per company",
            "type": "string",
            "description": "Between 5 and 200. The hard ceiling on requests to one company's site, robots.txt and sitemap included. Hitting it returns coverage partial rather than a false negative. Sent as a string so it works from Clay.",
            "default": "60"
          },
          "concurrency": {
            "title": "Companies in parallel",
            "type": "string",
            "description": "Between 1 and 30. How many companies to work on at once. Politeness is enforced per domain, not globally, so raising this never sends two requests to the same site at once. 10 is the default and it is what keeps the per company compute cost low enough to price. Sent as a string so it works from Clay.",
            "default": "10"
          },
          "allowRender": {
            "title": "Render JavaScript pages",
            "enum": [
              "true",
              "false"
            ],
            "type": "string",
            "description": "true opens a browser for pages that serve no readable HTML, which is most Nordic investor calendars. It is never used to get past a block, a CAPTCHA, a login or robots.txt: those come back refused, unretried. false skips rendering entirely and those pages report javascript_only.",
            "default": "true"
          },
          "languageHints": {
            "title": "Language hints",
            "type": "array",
            "description": "Optional. Discovery vocabulary is multilingual by default in all 11 languages; this only reorders it so the languages you name are tried first. It never removes a language.",
            "items": {
              "type": "string"
            }
          },
          "skipCache": {
            "title": "Skip the cache",
            "enum": [
              "false",
              "true"
            ],
            "type": "string",
            "description": "false uses the 14 day cache. true forces a fresh crawl.",
            "default": "false"
          },
          "source_tag": {
            "title": "Source Tag",
            "type": "string",
            "description": "Internal attribution tag set by Mamba Labs on published task examples. Not required, and nothing depends on it. Leave it empty."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}