{
  "openapi": "3.0.1",
  "info": {
    "title": "TruePeopleSearch — People Search Scraper",
    "description": "Scrape free US people data from TruePeopleSearch. Search by name, reverse phone, reverse email or reverse address, batching many lookups per run. Results carry name, age and current city by default; switch on detailed results for phones, emails, full and past addresses, relatives and associates.",
    "version": "0.1",
    "x-build-id": "kIkEqtwsJHGJ82mWd"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/jungle_synthesizer~truepeoplesearch-people-search-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-jungle_synthesizer-truepeoplesearch-people-search-scraper",
        "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/jungle_synthesizer~truepeoplesearch-people-search-scraper/runs": {
      "post": {
        "operationId": "runs-sync-jungle_synthesizer-truepeoplesearch-people-search-scraper",
        "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/jungle_synthesizer~truepeoplesearch-people-search-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-jungle_synthesizer-truepeoplesearch-people-search-scraper",
        "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": [
          "maxItems"
        ],
        "properties": {
          "sp_intended_usage": {
            "title": "What is the intended usage of this data?",
            "minLength": 1,
            "type": "string",
            "description": "What will this data feed? E.g. lead lists, KYB checks, price tracking."
          },
          "sp_improvement_suggestions": {
            "title": "How can we improve this crawler for you?",
            "minLength": 1,
            "type": "string",
            "description": "Provide any feedback or suggestions for improvements."
          },
          "sp_contact": {
            "title": "Contact email (optional)",
            "minLength": 1,
            "type": "string",
            "description": "We'll personally help with your use case. No spam."
          },
          "searchMode": {
            "title": "Search Mode",
            "enum": [
              "name",
              "phone",
              "address",
              "email"
            ],
            "type": "string",
            "description": "Search mode: \"name\" (search by first+last name), \"phone\" (reverse phone lookup), \"address\" (reverse address lookup) or \"email\" (reverse email lookup).",
            "default": "name"
          },
          "firstName": {
            "title": "First Name",
            "type": "string",
            "description": "First name of the person to search for (required for name mode)."
          },
          "lastName": {
            "title": "Last Name",
            "type": "string",
            "description": "Last name of the person to search for (required for name mode)."
          },
          "city": {
            "title": "City",
            "type": "string",
            "description": "City to narrow the name or address search (optional for name mode, required for address mode)."
          },
          "state": {
            "title": "State",
            "enum": [
              "AL",
              "AK",
              "AZ",
              "AR",
              "CA",
              "CO",
              "CT",
              "DE",
              "FL",
              "GA",
              "HI",
              "ID",
              "IL",
              "IN",
              "IA",
              "KS",
              "KY",
              "LA",
              "ME",
              "MD",
              "MA",
              "MI",
              "MN",
              "MS",
              "MO",
              "MT",
              "NE",
              "NV",
              "NH",
              "NJ",
              "NM",
              "NY",
              "NC",
              "ND",
              "OH",
              "OK",
              "OR",
              "PA",
              "RI",
              "SC",
              "SD",
              "TN",
              "TX",
              "UT",
              "VT",
              "VA",
              "WA",
              "WV",
              "WI",
              "WY",
              "DC"
            ],
            "type": "string",
            "description": "US state abbreviation (e.g. CA, TX, NY). In a name search only people who live in this state are returned and billed; people the site lists elsewhere are skipped. Add a city (or a zip) as well to have people near it listed first."
          },
          "phone": {
            "title": "Phone Number",
            "type": "string",
            "description": "Phone number to reverse-lookup (required for phone mode). Format: digits only, e.g. 5551234567."
          },
          "address": {
            "title": "Street Address",
            "type": "string",
            "description": "Street address to reverse-lookup (required for address mode), e.g. \"123 Main St\"."
          },
          "zip": {
            "title": "ZIP Code",
            "type": "string",
            "description": "Optional 5-digit ZIP code. In address mode it can stand in for city and state; in a name search it lists people near that ZIP first (it does not exclude anyone; use the state to do that)."
          },
          "email": {
            "title": "Email Address",
            "type": "string",
            "description": "Email address to reverse-lookup (required for email mode), e.g. \"jane.doe@example.com\"."
          },
          "names": {
            "title": "Batch — names (one per line)",
            "type": "array",
            "description": "Optional. People to search for, one per entry: \"Jane Doe\", \"Jane Doe, Denver, CO\", \"Jane Doe | CO\" or \"Jane Doe | 80202\". A middle name is ignored; a trailing Jr or Sr is dropped. Added to the same run as the other lists, so one clearance of the site's bot protection covers them all.",
            "items": {
              "type": "string"
            }
          },
          "phones": {
            "title": "Batch — phone numbers (one per line)",
            "type": "array",
            "description": "Optional. Phone numbers to reverse-lookup, one per entry, e.g. \"5167817770\" or \"(516) 781-7770\".",
            "items": {
              "type": "string"
            }
          },
          "emails": {
            "title": "Batch — email addresses (one per line)",
            "type": "array",
            "description": "Optional. Email addresses to reverse-lookup, one per entry.",
            "items": {
              "type": "string"
            }
          },
          "addresses": {
            "title": "Batch — addresses (one per line)",
            "type": "array",
            "description": "Optional. Addresses to reverse-lookup, one per entry: \"350 5th Ave, New York, NY\" or \"350 5th Ave, 10118\" (street, then city and state or a ZIP).",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Batch — TruePeopleSearch URLs (one per line)",
            "type": "array",
            "description": "Optional. Pasted TruePeopleSearch pages. A profile page (truepeoplesearch.com/find/person/...) returns that one person as a full record, billed as a detailed record (3). A results page (truepeoplesearch.com/results?...) runs that search. Any other address is rejected.",
            "items": {
              "type": "string"
            }
          },
          "ageMin": {
            "title": "Minimum age",
            "minimum": 0,
            "maximum": 120,
            "type": "integer",
            "description": "Optional. Only people at least this old are returned and billed. A person whose age the site does not show cannot be confirmed and is skipped. Skipped people are never billed."
          },
          "ageMax": {
            "title": "Maximum age",
            "minimum": 0,
            "maximum": 120,
            "type": "integer",
            "description": "Optional. Only people at most this old are returned and billed. A person whose age the site does not show cannot be confirmed and is skipped. Skipped people are never billed."
          },
          "wirelessOnly": {
            "title": "Wireless numbers only (needs detailed)",
            "type": "boolean",
            "description": "Off by default. Needs \"Fetch full profiles\". Keeps only the wireless (mobile) numbers in phones and phoneDetails, and skips (and does not bill) any person who has none.",
            "default": false
          },
          "searches": {
            "title": "Batch — search several people at once (optional)",
            "type": "array",
            "description": "Optional. A list of searches to run in ONE actor run, instead of one run per person. Each entry takes the same fields as a single search (searchMode, firstName, lastName, city, state, zip, phone, email, address); searchMode may be omitted and is inferred from the fields present. Any field you set at the top level is inherited as a default by every entry. maxItems caps the WHOLE run, so 3 entries with maxItems 10 return at most 10 records in total — set maxItemsPerSearch as well if you want a guaranteed share for each entry (e.g. 30 entries, maxItems 30, maxItemsPerSearch 1 for one record per person). Batching is much faster than separate runs — the site's bot protection is cleared once for the whole batch instead of once per person. Leave empty to run a single search."
          },
          "detailed": {
            "title": "Fetch full profiles (costs 3 records each)",
            "type": "boolean",
            "description": "Off by default. Every result comes back from the search page with name, age, current city and state, and the profile URL, billed as ONE record. Turn this on to also open each person's profile page for phone numbers, email addresses, the full street address, past addresses, relatives and associates. A detailed person is billed as 3 records against a summary person's 1.",
            "default": false
          },
          "maxItems": {
            "title": "Max Items (total for the run)",
            "type": "integer",
            "description": "Maximum number of person records this run returns and is billed for, in total. In batch mode it caps the whole run, not each search — 10 phone numbers with maxItems 5 return 5 records, not 50. Default 10.",
            "default": 10
          },
          "maxItemsPerSearch": {
            "title": "Max Items per search entry (batch only)",
            "minimum": 1,
            "type": "integer",
            "description": "Optional, and only meaningful with a batch. The most records any ONE search entry may take out of the maxItems budget, so an early entry with many matches cannot use it all up and leave the later entries with nothing. Leave empty and each entry may use the whole budget. Example: 30 phone numbers with maxItems 30 and maxItemsPerSearch 1 returns one record per number."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}