{
  "openapi": "3.0.1",
  "info": {
    "title": "Website Contact Extractor – Emails, Phones, Socials & LINE",
    "description": "Get the business emails, phone numbers and social profiles (incl. LINE) that companies publish on their own websites, with source URLs. Taiwan phone formats, filters obvious junk (e.g. image filenames, placeholder emails), obeys robots.txt. $0.003/domain with contacts + $0.00005/GB start.",
    "version": "1.0",
    "x-build-id": "rW0ppqwIJ67uUnbVA"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/raspberry_rondel~website-contact-extractor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-raspberry_rondel-website-contact-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/raspberry_rondel~website-contact-extractor/runs": {
      "post": {
        "operationId": "runs-sync-raspberry_rondel-website-contact-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/raspberry_rondel~website-contact-extractor/run-sync": {
      "post": {
        "operationId": "run-sync-raspberry_rondel-website-contact-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",
        "required": [
          "startUrls"
        ],
        "properties": {
          "startUrls": {
            "title": "Company websites",
            "type": "array",
            "description": "One URL per company website (e.g. https://www.example.com.tw). Duplicates of the same domain are merged and charged once. One dataset row per domain.",
            "items": {
              "type": "string"
            }
          },
          "maxPagesPerDomain": {
            "title": "Max pages per domain",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Homepage + up to N-1 contact/about/locations pages linked from it. Charged per domain with results (US$0.003), not per page crawled; domains with nothing found are free.",
            "default": 4
          },
          "defaultCountry": {
            "title": "Default country for phone numbers",
            "type": "string",
            "description": "ISO country code (e.g. TW, US, GB) used to read numbers without a +country prefix when the country cannot be inferred from the domain (.tw, .co.uk…) or the page language (zh-TW…). Leave empty to only accept such numbers when the country is known.",
            "default": ""
          },
          "includeFax": {
            "title": "Include fax numbers",
            "type": "boolean",
            "description": "Numbers labelled 傳真 / Fax are returned with kind = fax. Turn off to drop them.",
            "default": true
          },
          "onlyRoleBasedEmails": {
            "title": "Only role-based emails (data minimisation)",
            "type": "boolean",
            "description": "Return only generic business mailboxes such as info@, sales@, service@, contact@ and drop addresses that may belong to a person (jane.doe@…). Recommended if you have no legal basis to process personal data.",
            "default": true
          },
          "allSocialLinks": {
            "title": "Keep all social links",
            "type": "boolean",
            "description": "By default only the site's own accounts are kept: links in the site-wide header/footer/navigation, profiles listed in the homepage's schema.org sameAs, profiles whose handle matches the brand, and a single profile per platform in a contact or follow block. Personal profiles (linkedin.com/in/…) and team members' accounts on about/company pages are dropped and counted in socialLinksDropped. Turn on to keep every social link found, including personal profiles; do this only if you have a legal basis to process personal data.",
            "default": false
          },
          "probeCommonPaths": {
            "title": "Try /contact and /about if not linked",
            "type": "boolean",
            "description": "If the homepage links to no contact/about page, try /contact, /contact-us, /about, /about-us (still within maxPagesPerDomain and robots.txt).",
            "default": true
          },
          "useBrowser": {
            "title": "Render JavaScript",
            "enum": [
              "off",
              "auto",
              "always"
            ],
            "type": "string",
            "description": "off = plain HTTP (fast, cheapest). auto = render the homepage in headless Chromium only when the HTML is almost empty (JavaScript-only sites); needs 2 GB memory. always = render every homepage. Rendering does not try to bypass bot protection.",
            "default": "off"
          },
          "maxCrawlDelaySecs": {
            "title": "Max Crawl-delay to follow (seconds)",
            "minimum": 0,
            "maximum": 120,
            "type": "integer",
            "description": "robots.txt Crawl-delay is obeyed. If a site asks for a longer delay than this, only its homepage is fetched (instead of waiting minutes).",
            "default": 10
          },
          "maxConcurrency": {
            "title": "Domains in parallel",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "How many different domains are crawled at the same time (pages of one domain are fetched one by one, at least 1 s apart).",
            "default": 10
          },
          "requestTimeoutSecs": {
            "title": "Request timeout (seconds)",
            "minimum": 5,
            "maximum": 120,
            "type": "integer",
            "description": "Per-request timeout. Slow sites that exceed it are reported as unreachable (not charged).",
            "default": 20
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}