{
  "openapi": "3.0.1",
  "info": {
    "title": "WhoIsThisPerson",
    "description": "Multi-engine search (Google, Bing, Yandex, FaceCheck.ID) with AI face verification and social discovery. It ranks and verifies matches using confidence scoring for faster, reliable OSINT investigations, due diligence, and identity verification.",
    "version": "0.0",
    "x-build-id": "FDY65jMJrLRx3arEd"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/rexreus~WhoIsThisPerson/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-rexreus-WhoIsThisPerson",
        "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/rexreus~WhoIsThisPerson/runs": {
      "post": {
        "operationId": "runs-sync-rexreus-WhoIsThisPerson",
        "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/rexreus~WhoIsThisPerson/run-sync": {
      "post": {
        "operationId": "run-sync-rexreus-WhoIsThisPerson",
        "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": {
          "imageUrl": {
            "title": "Image URL",
            "type": "string",
            "description": "URL of the image to search for. Can be a direct image link (any format: jpg, png, webp, avif...) OR a normal web page URL — a file extension is NOT required. If the URL points to an HTML page, the Actor extracts its main image (og:image). Images are detected by content, not by extension."
          },
          "imageBase64": {
            "title": "Image Base64",
            "type": "string",
            "description": "Base64-encoded image data (alternative to imageUrl)"
          },
          "engines": {
            "title": "Search Engines",
            "type": "array",
            "description": "Search engines to use. Default: all available",
            "items": {
              "type": "string",
              "enum": [
                "google",
                "yandex",
                "bing",
                "facecheck"
              ]
            },
            "default": [
              "google",
              "yandex",
              "bing"
            ]
          },
          "minSimilarity": {
            "title": "Minimum Face Similarity",
            "minimum": 0,
            "maximum": 1,
            "type": "number",
            "description": "Minimum face similarity threshold (0.0-1.0). Results below this are excluded.",
            "default": 0.85
          },
          "depth": {
            "title": "Search Depth",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Maximum results per engine",
            "default": 20
          },
          "maxResults": {
            "title": "Max Total Results",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "Maximum total results after aggregation",
            "default": 50
          },
          "timeout": {
            "title": "Timeout Per Engine (seconds)",
            "minimum": 30,
            "maximum": 180,
            "type": "integer",
            "description": "Timeout budget in seconds. For API engines this is the request timeout. For browser-based engines (Google, Yandex, Bing) the per-attempt budget is clamped to 45-75s (a single page navigation is separately bounded to 45s so it can't hang), with up to 2 attempts, so a stuck engine is abandoned in ~170s at most and results from engines that DID succeed are still saved. Set your Actor 'Run options > Timeout' to at least ~240s so slow engines can finish. Use a residential proxy for Google/Bing to avoid captchas; for the most reliable Google/Bing results, set googleApiKey/bingApiKey to use the official APIs.",
            "default": 120
          },
          "facecheckApiKey": {
            "title": "FaceCheck.ID API Key",
            "type": "string",
            "description": "FaceCheck.ID API key"
          },
          "googleApiKey": {
            "title": "Google API Key",
            "type": "string",
            "description": "Google API key for Programmable Search or Vision"
          },
          "googleCx": {
            "title": "Google Custom Search Engine ID",
            "type": "string",
            "description": "Programmable Search Engine (CSE) ID"
          },
          "bingApiKey": {
            "title": "Bing Image Search API Key",
            "type": "string",
            "description": "Bing Image Search API key"
          },
          "twitterBearerToken": {
            "title": "Twitter / X Bearer Token",
            "type": "string",
            "description": "OAuth2 Bearer token for Twitter API v2"
          },
          "instagramAccessToken": {
            "title": "Instagram Access Token",
            "type": "string",
            "description": "Instagram access token (if available)"
          },
          "linkedinAccessToken": {
            "title": "LinkedIn Access Token",
            "type": "string",
            "description": "LinkedIn access token (if available)"
          },
          "enableSocialFootprint": {
            "title": "Enable Social Footprint Analysis",
            "type": "boolean",
            "description": "Search for social media profiles based on names found in results",
            "default": true
          },
          "socialPlatforms": {
            "title": "Social Platforms",
            "type": "array",
            "description": "Social media platforms to check",
            "items": {
              "type": "string",
              "enum": [
                "instagram",
                "linkedin",
                "twitter"
              ]
            },
            "default": [
              "instagram",
              "linkedin",
              "twitter"
            ]
          },
          "minSocialSimilarity": {
            "title": "Min Social Profile Similarity",
            "minimum": 0,
            "maximum": 1,
            "type": "number",
            "description": "Minimum face similarity for social profile matches",
            "default": 0.8
          },
          "sortBy": {
            "title": "Sort Results By",
            "enum": [
              "similarity",
              "confidence",
              "engine"
            ],
            "type": "string",
            "description": "How to sort final results",
            "default": "similarity"
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Proxy used by the scraping engines (Google, Yandex, Bing). Apify RESIDENTIAL proxy is strongly recommended to avoid captchas/anti-bot blocks; without a proxy those engines are frequently blocked. If you provide googleApiKey/bingApiKey/facecheckApiKey, those engines switch to the official API path and need no proxy. You can also supply your own proxy via custom proxy URLs.",
            "default": {
              "useApifyProxy": 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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}