{
  "openapi": "3.0.1",
  "info": {
    "title": "Skip Trace | Owner Phones & Emails — Pay Only for Hits",
    "description": "Skip tracing & people search: name, address or phone in → ranked phones (type, carrier, confidence), emails, addresses, relatives out. Name + location searches return the right person, not a namesake. Pay only for matched records. Lawful B2B use only.",
    "version": "1.0",
    "x-build-id": "nK3sPqLLCWyCKYEBs"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/thermostatic~skiptrace/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-thermostatic-skiptrace",
        "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/thermostatic~skiptrace/runs": {
      "post": {
        "operationId": "runs-sync-thermostatic-skiptrace",
        "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/thermostatic~skiptrace/run-sync": {
      "post": {
        "operationId": "run-sync-thermostatic-skiptrace",
        "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": {
          "name": {
            "title": "Names",
            "type": "array",
            "description": "Full name to search, one entry per search. Optionally append a location: 'Amalia Castillo; Dallas, TX 75228'. The prefilled example is only a suggestion; API runs without names search nothing here.",
            "items": {
              "type": "string"
            }
          },
          "street_citystatezip": {
            "title": "Addresses",
            "type": "array",
            "description": "Address to search, street and city/state/zip separated by a semicolon: '13770 Paseo Central Ave; Horizon City TX 79928'. Only people whose address history includes this address are charged. Append ' | Full Name' to pick a specific resident.",
            "items": {
              "type": "string"
            }
          },
          "phone_number": {
            "title": "Phone numbers",
            "type": "array",
            "description": "Phone number to search, e.g. '(208) 794-8562'. Only records that list this number are charged. Append ' | Full Name' to pick a specific person.",
            "items": {
              "type": "string"
            }
          },
          "owner_name": {
            "title": "Owner names",
            "type": "array",
            "description": "Property owner names, one per line, paired line-by-line with Property addresses below. Only the named owner is charged: if they are not among the property's residents, smart mode looks the owner up by name in the property's city and state.",
            "items": {
              "type": "string"
            }
          },
          "property_address": {
            "title": "Property addresses",
            "type": "array",
            "description": "Property address for each owner above (same line order), street and city/state/zip separated by a semicolon: '13770 Paseo Central Ave; Horizon City TX 79928'.",
            "items": {
              "type": "string"
            }
          },
          "email": {
            "title": "Emails",
            "type": "array",
            "description": "Reverse email search, one email per line: finds the people tied to the email, looks each one up by name and city, and returns the full record (phones, emails, addresses). Charged only when the returned record lists that email.",
            "items": {
              "type": "string"
            }
          },
          "sources": {
            "title": "Sources",
            "uniqueItems": true,
            "type": "array",
            "description": "Which data sources may be used. Smart mode tries the fast ones in its own order and adds truepeoplesearch, familytreenow and radaris only with Deep search on; all-sources mode queries every selected source. thatsthem returns discovery summaries (not charged) in all-sources mode and powers reverse email search, which always uses it.",
            "items": {
              "type": "string",
              "enum": [
                "fastpeoplesearch",
                "fastbackgroundcheck",
                "thatsthem",
                "truepeoplesearch",
                "radaris",
                "searchpeoplefree",
                "familytreenow"
              ]
            },
            "default": [
              "fastpeoplesearch",
              "fastbackgroundcheck",
              "truepeoplesearch",
              "searchpeoplefree",
              "familytreenow"
            ]
          },
          "search_mode": {
            "title": "Search mode",
            "enum": [
              "smart",
              "all_sources"
            ],
            "type": "string",
            "description": "Smart tries the fast sources (fastbackgroundcheck, searchpeoplefree, fastpeoplesearch) one at a time and stops once the searched person is found with contact data, so you get and pay for one verified record per person. All sources queries every selected source and returns (and charges) one record per source that has the person.",
            "default": "smart"
          },
          "deep_search": {
            "title": "Deep search (smart mode)",
            "type": "boolean",
            "description": "When the fast sources don't find the person, also try the browser-rendered sources (truepeoplesearch, familytreenow, radaris) before giving up. Finds a few more hard-to-find people; runs slower.",
            "default": false
          },
          "max_results": {
            "title": "Max results per search",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "How many people from each search's result list to expand into full records (phones, emails, address history, relatives).",
            "default": 1
          },
          "max_concurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Parallel requests. Leave empty for automatic: 10 through the actor's own proxy network, 5 on a single fallback proxy. Lower it if a source starts serving challenges."
          },
          "max_requests_per_minute": {
            "title": "Max requests per minute",
            "minimum": 1,
            "type": "integer",
            "description": "Request-rate cap. Leave empty for automatic: 600/min through the actor's own proxy network (every request leaves from a fresh IP), 240/min on a single fallback proxy to protect its reputation. Lower it if a source starts blocking."
          },
          "min_confidence": {
            "title": "Min phone confidence",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Drop phones scoring below this 0-100 confidence before results are charged. 0 keeps everything.",
            "default": 0
          },
          "fingerprint_preset": {
            "title": "Fingerprint preset",
            "enum": [
              "chrome-latest",
              "firefox-latest",
              "safari-latest",
              "edge-latest",
              "chrome-146",
              "firefox-141",
              "safari-18.4"
            ],
            "type": "string",
            "description": "Browser fingerprint preset (e.g. chrome-latest, firefox-latest, safari-latest). Keep the default unless you have a reason.",
            "default": "chrome-latest"
          },
          "proxy": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Fallback proxy. Requests go through the actor's own proxy network first; this proxy is used only when that is blocked. RESIDENTIAL + US by default. If you supply your own proxyUrls, every request uses them instead.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ],
              "apifyProxyCountry": "US"
            }
          },
          "output_profile": {
            "title": "Output profile",
            "enum": [
              "raw",
              "dialer",
              "address_verification",
              "investigation",
              "estate"
            ],
            "type": "string",
            "description": "Shape dataset rows for your use case: dialer (wholesaling cold-calling), address_verification (process servers / collections), investigation (PI/OSINT, full provenance), estate (relatives graph), raw (full record).",
            "default": "raw"
          },
          "corroborate": {
            "title": "Cross-source corroboration",
            "type": "boolean",
            "description": "Query the same person on multiple sources and merge into one record per person; phones are confidence-scored (0-100) by line type, report recency and how many sources list them, ranked best-first. Slower and costlier.",
            "default": false
          },
          "capture_failed_html": {
            "title": "Save failed detail pages for debugging",
            "type": "boolean",
            "description": "For ordinary searches, save up to five unparsed detail pages (maximum 2 MB each) in this run’s key-value store. Pages may contain personal data. Does not add or charge result rows.",
            "default": false
          },
          "direct_first": {
            "title": "Allow direct connections",
            "type": "boolean",
            "description": "Let sources that accept direct connections (fastbackgroundcheck, truepeoplesearch, familytreenow) try without a proxy before the fallback proxy. Turn off to never connect directly.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}