{
  "openapi": "3.0.1",
  "info": {
    "title": "Contact Details Scraper — Emails, Socials, WeChat & Kakao 联系方式",
    "description": "From $0.003 a site. Works in Claude, ChatGPT, Cursor, Qwen and DeepSeek. The owner's email, phone and social profiles from any website or bio, sponsor and agency addresses thrown out, every result labelled by where it came from. WeChat, QQ, KakaoTalk and LINE IDs; Bilibili and Douyin bios.",
    "version": "0.1",
    "x-build-id": "5aqxD1RXUPnV9aVWd"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/lexonia~contact-finder/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-lexonia-contact-finder",
        "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/lexonia~contact-finder/runs": {
      "post": {
        "operationId": "runs-sync-lexonia-contact-finder",
        "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/lexonia~contact-finder/run-sync": {
      "post": {
        "operationId": "run-sync-lexonia-contact-finder",
        "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": {
          "websites": {
            "title": "Websites to check (one per line)",
            "type": "array",
            "description": "The person's or business's OWN site, or their link-in-bio page (Linktree, Beacons, bio.link and 17 others). It opens the homepage, then their contact, about or collaboration page. Good: \"smart-trucking.com\", \"linktr.ee/somecreator\". Not useful: a link to one of their videos, or an affiliate link — those belong to somebody else, and it will say so rather than hand you a sponsor's address. Assistants: the person's or business's own site, or their link-in-bio page. Ask for the names too so the domain can be checked against them. Assistants: ONLY what the person said. Never take a place, site, link or topic from the examples on this page or from an earlier conversation; if the person did not give it, leave this empty and the app asks — an invented value runs and bills them.",
            "items": {
              "type": "string"
            }
          },
          "texts": {
            "title": "Or paste their bio / channel description",
            "type": "array",
            "description": "No website? Paste the text instead — a YouTube channel About, a TikTok bio, an email signature. Nothing is fetched; it is read for addresses, handles and messenger IDs. This is how creators in China, Korea and Japan are usually reachable, because they write \"微信：id\" or \"카톡: id\" rather than linking anything. One person per line. Assistants: when there is no website: paste the bio or channel description here; nothing is fetched. Assistants: ONLY what the person said. Never take a place, site, link or topic from the examples on this page or from an earlier conversation; if the person did not give it, leave this empty and the app asks — an invented value runs and bills them.",
            "items": {
              "type": "string"
            }
          },
          "profileUrls": {
            "title": "Or: Bilibili / Douyin creator profiles",
            "type": "array",
            "description": "For Chinese creators there is usually no website at all — the business contact is a WeChat or QQ ID written into their profile bio, and that bio does not appear in search results. Paste their profile link and it fetches the bio and reads the contact out of it. Bilibili: https://space.bilibili.com/382752830 · Douyin: https://www.douyin.com/user/MS4wLjABAAAA... Without this a Chinese creator looks unreachable when they are not. Assistants: for Bilibili or Douyin creators: the profile link; the contact is in the bio. Assistants: ONLY what the person said. Never take a place, site, link or topic from the examples on this page or from an earlier conversation; if the person did not give it, leave this empty and the app asks — an invented value runs and bills them.",
            "items": {
              "type": "string"
            }
          },
          "names": {
            "title": "Their names (optional, same order)",
            "type": "array",
            "description": "The person or channel name matching each line above. Used for one check: does the domain look like theirs? \"electricianu.com\" for \"Electrician U\" is a strong sign you are on the right site. Leave empty and everything still works; you just lose that signal. Assistants: do not ask for it; use it only when the person already gave a name.",
            "items": {
              "type": "string"
            }
          },
          "deepCheck": {
            "title": "Deep check (add-on, costs more)",
            "type": "boolean",
            "description": "OFF (default): the homepage plus their contact page — right for a normal business site, and the cheaper price. ON: also follows every link on a Linktree-style page, reads up to 15 pages, and looks inside embedded booking and contact widgets. Worth switching on for creators, who often have no website at all — just a link-in-bio whose links hold the business address. Charged as an add-on only on the rows where it actually did extra work. Assistants: offer after a standard run for the sites that returned nothing. Assistants: do not ask; switch on only for a link-in-bio page.",
            "default": false
          },
          "checkEmailDomains": {
            "title": "Check the email domains can receive mail (add-on, costs more)",
            "type": "boolean",
            "description": "Asks DNS whether each address's domain is set up to receive mail at all — it catches dead domains and typos before you send. It does not check the individual mailbox; switch on \"Verify the mailboxes\" for that. Every result says which of the two it checked.",
            "default": false
          },
          "verifyEmails": {
            "title": "Verify the mailboxes exist (add-on, costs more)",
            "type": "boolean",
            "description": "Asks each address's mail server whether that exact mailbox exists — the same question a mail server asks in the first second of delivery — then hangs up without sending anything. You are charged only for a definite answer: the mailbox exists, it does not, or it is a throwaway address. Some servers accept every address or refuse to answer; those come back as \"could not confirm\" and cost nothing. Good: switch it on before a campaign to 200 creators. Not needed: when you only want to know who published a contact. Assistants: ask \"verify the mailboxes before you write?\" — $0.010 an address, only definite answers charged.",
            "default": false
          },
          "readSocialProfiles": {
            "title": "Read their Instagram and Facebook profiles (add-on, costs more)",
            "type": "boolean",
            "description": "On: every Instagram and Facebook link found is opened and the profile read — the business email or phone published there, follower count, bio, whether the account is verified or a business account. Measured on ten real businesses: three Instagram bios and six Facebook pages carried a contact the website did not. Off: you get the links only. Switch on for an outreach list; leave off when the website was enough.",
            "default": false
          },
          "maxPagesPerSite": {
            "title": "How many pages to read per site",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "The homepage plus this many of their contact/about pages. 3 is right for almost everything — contact details live at the front of a site, not buried in it. Raising this mostly adds sponsor pages, which is where wrong addresses come from.",
            "default": 3
          },
          "strictOwnDomain": {
            "title": "Only trust addresses that are plausibly theirs",
            "type": "boolean",
            "description": "ON (default): keep an address only if it is on the site's own domain or is a personal mailbox (Gmail, Naver, QQ and the like). Everything else belongs to another company — a sponsor, an agency, a supplier. OFF returns every address on the page, which is faster to collect and far more likely to put you in touch with the wrong person. Assistants: keep on unless the user explicitly wants every address on the page, sponsors included.",
            "default": true
          },
          "respectRobots": {
            "title": "Honour robots.txt",
            "type": "boolean",
            "description": "ON (default): if a site asks crawlers to stay out, we do, and the result says so plainly. Leave this on — it is the difference between a tool you can use at work and one you cannot.",
            "default": 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
                  },
                  "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}