{
  "openapi": "3.0.1",
  "info": {
    "title": "Email OSINT Checker — Account Finder & Reverse Lookup",
    "description": "Looks an email up on 210+ sites (Twitter/X, Spotify, Pinterest, Adobe, Dropbox and more) and lists where it is registered. Silent: no password-reset mail is sent. Holehe-based email OSINT, batch up to 500 addresses. Free: 1 address, 3 accounts shown; paid: every account on all sites.",
    "version": "1.0",
    "x-build-id": "tsBiWmfJT1SRxXzv4"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/ntriqpro~email-osint-search/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-ntriqpro-email-osint-search",
        "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/ntriqpro~email-osint-search/runs": {
      "post": {
        "operationId": "runs-sync-ntriqpro-email-osint-search",
        "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/ntriqpro~email-osint-search/run-sync": {
      "post": {
        "operationId": "run-sync-ntriqpro-email-osint-search",
        "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": {
          "emails": {
            "title": "Email Addresses",
            "maxItems": 500,
            "type": "array",
            "description": "List of email addresses to investigate (max 500). Free Apify plans receive a sample: the first address only, looked up on every site, with the first 3 accounts shown in full (plus 1 extended-site account and one row of each extra layer) and the rest counted without site names; the run finishes successfully with a 'Free tier limit reached' message that is the free-plan sample, not an error. Any paid plan checks the whole list and returns every account found. Each address is looked up on up to 211 sites and every completed lookup is billed once: account-found when the address is registered on the site and, on runs whose price table lists the site-checked event, site-checked when the site confirms it is not (blocked or unanswered lookups are never billed). The run log states the maximum before the first lookup; 'Max sites per email' and the run's maximum cost cap it. Use only addresses you own or have authorization to investigate.",
            "items": {
              "type": "string"
            }
          },
          "email": {
            "title": "Single Email (legacy)",
            "type": "string",
            "description": "Alternative single-email input. Use 'emails' for batch. Free-plan runs show the first 3 accounts in full and count the rest; paid plans return every account found."
          },
          "timeout": {
            "title": "Per-Site Timeout (seconds)",
            "minimum": 10,
            "maximum": 120,
            "type": "integer",
            "description": "Maximum time to wait for each site check. Default: 30 seconds."
          },
          "maxEmails": {
            "title": "Max Emails Per Run",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "How many emails this run may process (hard cap 500; free Apify plans: the first address only). Each email is checked against 120+ sites in turn, so a large batch is a long run — the Actor automatically trims the batch to what the remaining run time can carry."
          },
          "maxSitesPerEmail": {
            "title": "Max sites per email",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Optional. Looks each address up on at most this many sites: the 121 holehe sites first (in module-name order), then the 90 extended sites. Leave empty to check every site. Use it to cap the cost of a run: each completed lookup is billed once, as account-found when the address is registered on the site or, on runs whose price table lists the site-checked event, as site-checked when the site confirms it is not. Free Apify plans check one address on every site and see the first 3 accounts in full."
          },
          "usernameLayer": {
            "title": "Username layer",
            "type": "boolean",
            "description": "Also search the email's local part (jane.doe@… becomes janedoe) as a username on 390+ sites. Rows are marked rowType 'username-match' and mean the same username exists on that site, not that it is the same person. Skipped for local parts of four characters or fewer and for shared mailboxes such as info@. Free Apify plans get 1 row per address and the count of locked matches."
          },
          "maxUsernameCandidates": {
            "title": "Username candidates per address",
            "minimum": 1,
            "maximum": 3,
            "type": "integer",
            "description": "How many username forms of the email's local part to search with Sherlock (1-3: dot-less, original, underscore). Candidates 2 and 3 only run when the run has spare time and are less certain matches (usernameCandidateRank 2 or 3). Free Apify plans still see 1 row per address across all candidates.",
            "default": 3
          },
          "deepUsernameSearch": {
            "title": "Deep username search",
            "type": "boolean",
            "description": "Paid plans only. Run Maigret (top 500 sites) on the first (dot-less) form, adding only the sites Sherlock did not return (rows carry matchSource 'maigret'). Takes several minutes per address, so send few addresses and raise the run timeout. Skipped for an address when the run has no spare time."
          },
          "includeDomainInfo": {
            "title": "Company domain records",
            "type": "boolean",
            "description": "For company addresses (not Gmail, Outlook, Naver and other free mailboxes), add WHOIS, MX, SPF and DMARC rows for the address's domain, rowType 'domain-record'. Each domain is looked up once per run, even when several addresses share it. Free Apify plans get one row of each type (WHOIS, MX, SPF, DMARC) per run, at least one per domain, and the count of locked rows."
          },
          "includeDomainAssets": {
            "title": "Company domain assets (hundreds of rows)",
            "type": "boolean",
            "description": "Off by default because one company domain can return hundreds of rows, each billed as a 'domain-asset' event. Adds subdomains, host IPs and same-domain addresses found in public certificate and host records, rowType 'domain-asset'. The number of rows is limited by 'Max domain assets'. Free Apify plans get one asset of each type (subdomain, IP, address) per run and the count of locked assets."
          },
          "maxDomainAssets": {
            "title": "Max domain assets per domain",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Upper bound on domain-asset rows delivered (and billed) per company domain when 'Company domain assets' is on. Default 200, maximum 1000."
          },
          "includeGravatar": {
            "title": "Gravatar profile",
            "type": "boolean",
            "description": "Adds one row, rowType 'profile', when the address has a public Gravatar profile (name, photo URL, public profile link). No profile, no row. Free Apify plans see the first profile of the run in full; later profiles show only that they exist (name, photo and link locked)."
          },
          "extendedSites": {
            "title": "Extended sites (90 more)",
            "type": "boolean",
            "description": "Default true: after the 120+ site check, also looks the address up on 90 more sites (user-scanner, MIT). Each site where the address is registered is one row, billed as the same account-found event; on runs whose price table lists the site-checked event, each site that confirms the address is not registered is one row billed as site-checked. Sites that error leave no row and no charge. The same layer asks 11 big sites of the first engine again (Instagram, Pinterest, Spotify, Tumblr, Adobe and others) for an address where that engine got no answer; the site still counts and is billed once. Runs only on spare run time. Free Apify plans see 1 of the account rows; the rest is counted as locked, without site names."
          },
          "emailAnalysis": {
            "title": "Email analysis row",
            "type": "boolean",
            "description": "Default true: adds one row per address, rowType 'analysis', with format validity, disposable-domain, role-account and free-provider flags and the domain's MX hosts. It does not count against the free-plan result sample. Set false to skip it."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}