{
  "openapi": "3.0.1",
  "info": {
    "title": "Email OSINT Account Search",
    "description": "Check email addresses for public account-registration signals across a pinned 121-service catalog. Returns one privacy-safe scan record per email with found sites, categories, uncertainty, source domains, and timestamps for authorized OSINT research.",
    "version": "0.1",
    "x-build-id": "Rxh9lSJY7YaEDQCtR"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/khadinakbar~email-osint-search/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-khadinakbar-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/khadinakbar~email-osint-search/runs": {
      "post": {
        "operationId": "runs-sync-khadinakbar-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/khadinakbar~email-osint-search/run-sync": {
      "post": {
        "operationId": "run-sync-khadinakbar-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",
        "required": [
          "emails"
        ],
        "properties": {
          "emails": {
            "title": "Email addresses to scan",
            "minItems": 1,
            "maxItems": 3,
            "uniqueItems": true,
            "type": "array",
            "description": "Use this when you need an account-footprint scan for one or more addresses you are authorized to investigate. Pass full strings such as [\"name@example.com\"] or [\"a@example.com\", \"b@example.org\"]. Up to 3 addresses are accepted per run and each completed address is one billable scan. This is not a username or domain-only input.",
            "items": {
              "type": "string",
              "minLength": 3,
              "maxLength": 254
            }
          },
          "includeAdultSites": {
            "title": "Include adult-site checks",
            "type": "boolean",
            "description": "Use this when adult-site registration signals are in scope for an authorized brand-protection or security investigation. Set true to include the adult-tagged modules in the 120+ catalog; it defaults to true so a full catalog scan is the normal behavior. Set false to omit those modules and their results. This does not retrieve adult content or profile data.",
            "default": true
          },
          "includeRecoveryChecks": {
            "title": "Include recovery-style checks",
            "type": "boolean",
            "description": "Use this when the investigation permits public password-recovery or login-form account-existence signals. It defaults to true to preserve the full Holehe 1.61 catalog, including four recovery-style modules. Set false to omit those modules when your rules prohibit that signal type. The Actor never submits a password, completes a reset, or sends a message.",
            "default": true
          },
          "includeNotFound": {
            "title": "Include NOT_FOUND rows",
            "type": "boolean",
            "description": "Use this when you need an auditable row for every checked service, including services that returned no registration signal. It defaults to false so the dataset focuses on FOUND and INCONCLUSIVE results while counts still report NOT_FOUND totals. Set true to return every service result. This does not change which services are checked or billed.",
            "default": false
          },
          "includeInconclusive": {
            "title": "Include INCONCLUSIVE rows",
            "type": "boolean",
            "description": "Use this when blocked, rate-limited, timed-out, or error responses need to remain visible for review. It defaults to true because an inconclusive response must not be mistaken for NOT_FOUND. Set false only when you want a compact FOUND-only or FOUND-plus-NOT_FOUND result list. The top-level inconclusive count remains available either way.",
            "default": true
          },
          "siteCategories": {
            "title": "Site categories",
            "uniqueItems": true,
            "type": "array",
            "description": "Use this to limit a scan to named categories and reduce runtime or scope. Pass values such as [\"social\", \"developer\"] or [] for all available categories. The default is [] and categories are deduplicated before selection. This is not a list of individual site names; use maxSites for a simple cap.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "maxSites": {
            "title": "Maximum sites per email",
            "minimum": 1,
            "maximum": 121,
            "type": "integer",
            "description": "Use this to cap the number of site modules selected after category and safety filters. Values from 1 to 121 are accepted and the default is 121 for the full pinned catalog. The first modules are selected in stable alphabetical order, which makes repeated runs comparable. This is a site-count cap, not a concurrency control.",
            "default": 121
          },
          "concurrency": {
            "title": "Concurrent site checks",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Use this to control how many site modules run at once for each email. Values from 1 to 50 are accepted and the default is 25 for a balanced 512 MB run. Lower it when a target service is rate-sensitive; raise it only when you accept more simultaneous requests. This does not run multiple email addresses concurrently.",
            "default": 25
          },
          "requestTimeoutSecs": {
            "title": "Per-site timeout (seconds)",
            "minimum": 3,
            "maximum": 30,
            "type": "integer",
            "description": "Use this to bound the wait for each public site response. Values from 3 to 30 seconds are accepted and the default is 8 seconds, which keeps the full catalog inside ordinary Actor health-test windows. A timeout becomes an INCONCLUSIVE result rather than a false NOT_FOUND. This is not the total scan timeout.",
            "default": 8
          },
          "scanTimeoutSecs": {
            "title": "Total timeout per email (seconds)",
            "minimum": 30,
            "maximum": 180,
            "type": "integer",
            "description": "Use this to cap the complete site sweep for each email. Values from 30 to 180 seconds are accepted and the default is 90 seconds. Pending modules are returned as INCONCLUSIVE when this limit is reached, so partial evidence remains visible. This is not a guarantee that every target service responds within the limit.",
            "default": 90
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Use this when target services require an Apify proxy or a caller-managed proxy policy. The default uses Apify Residential proxies, while an empty object disables the proxy. Supply only Apify-supported proxy configuration and never put credentials in this field. This controls network routing, not account authentication.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}