{
  "openapi": "3.0.1",
  "info": {
    "title": "ThatsThem Scraper | Skip Trace by Name, Phone, Address & Email",
    "description": "Look up a US name, phone, address or email on ThatsThem: one public-records row per match with address history, relatives and aliases. Phones and emails ThatsThem hides are filled from our people-search index when matched. Mix inputs or drop a CSV. $7 per 1,000 matches. Lawful B2B — not for FCRA.",
    "version": "0.0",
    "x-build-id": "uZ7D109LAnt9KImTl"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/memo23~skip-trace-people-finder/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-memo23-skip-trace-people-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/memo23~skip-trace-people-finder/runs": {
      "post": {
        "operationId": "runs-sync-memo23-skip-trace-people-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/memo23~skip-trace-people-finder/run-sync": {
      "post": {
        "operationId": "run-sync-memo23-skip-trace-people-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": {
          "names": {
            "title": "Names",
            "type": "array",
            "description": "Full names to look up. Optionally append a location after a comma to narrow results, e.g. \"Jane Doe, Springfield, IL\". Each value becomes one /name/ lookup and may return several people. Not required if you fill phones, addresses, emails, or startUrls.",
            "items": {
              "type": "string"
            }
          },
          "phones": {
            "title": "Phone numbers (reverse lookup)",
            "type": "array",
            "description": "US phone numbers in any format — \"(202) 555-0182\", \"202-555-0182\", \"+1 202 555 0182\". Each number becomes one reverse lookup. Numbers that are not 10 digits after stripping a leading 1 are skipped.",
            "items": {
              "type": "string"
            }
          },
          "addresses": {
            "title": "Addresses (reverse lookup)",
            "type": "array",
            "description": "Street addresses with city, state and ZIP, e.g. \"123 Main St, Springfield, IL 62704\". Each address becomes one reverse lookup of the people tied to that property.",
            "items": {
              "type": "string"
            }
          },
          "emails": {
            "title": "Emails (reverse lookup)",
            "type": "array",
            "description": "Email addresses to reverse-lookup the likely owner, e.g. \"jane.doe@email.com\". This is the slot FastPeopleSearch does not take. Invalid emails are skipped.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Direct ThatsThem URLs",
            "type": "array",
            "description": "Direct thatsthem.com result URLs to scrape as-is, e.g. \"https://thatsthem.com/name/Jane-Doe\". Accepted path prefixes: /name/, /phone/, /address/, /email/.",
            "items": {
              "type": "string"
            }
          },
          "csvUrl": {
            "title": "Bulk CSV URL",
            "type": "string",
            "description": "HTTPS URL of a raw CSV. Header names should include Name, Phone, Address, and/or Email (City/State/Zip fold into the name). Each populated cell becomes one lookup. Leave empty for array inputs only."
          },
          "webhookUrl": {
            "title": "CRM webhook URL (Zapier / Make / GoHighLevel)",
            "type": "string",
            "description": "HTTPS endpoint that receives each person record as JSON the moment it is found (Zapier / Make / GoHighLevel). Best-effort: a failed webhook never fails the run. Leave empty to skip."
          },
          "demoMode": {
            "title": "Demo mode (preview output free — no lookup, no charge)",
            "type": "boolean",
            "description": "When true, write one fake sample record to the preview dataset and the OUTPUT key-value record. No ThatsThem lookup and no per-person charge. Default false.",
            "default": false
          },
          "maxItems": {
            "title": "Maximum person records to return",
            "minimum": 1,
            "type": "integer",
            "description": "Hard cap on person records pushed to the default dataset across all lookups. You are billed per record. Default 100. Minimum 1.",
            "default": 100
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "type": "integer",
            "description": "How many lookup pages to fetch in parallel. Default 3. Raise for large CSV batches; lower if you hit blocks.",
            "default": 3
          },
          "cacheMaxAgeHours": {
            "title": "Reuse recent results (hours)",
            "minimum": 0,
            "maximum": 720,
            "type": "integer",
            "description": "When one of your earlier runs already fetched a page, reuse it if it is younger than this many hours instead of fetching it again. Faster and gentler on the source; set 0 to always fetch fresh. Only your own account's pages are reused.",
            "default": 24
          },
          "fillContactsLive": {
            "title": "Look up missing phones and emails live",
            "type": "boolean",
            "description": "ThatsThem shows phones and emails only in part. When a person is not in our people-search index, look up their full record live and keep it only if it is verifiably the same person (a phone matching the digits ThatsThem shows). Fills many more rows but adds 10-60 s per person looked up. Turn off for the fastest run.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}