{
  "openapi": "3.0.1",
  "info": {
    "title": "People Skip Trace: Phone, Email & Address Lookup",
    "description": "Skip trace US people by name, address, phone or email: every phone number with line type and carrier, emails, age, past addresses, relatives, associates and property. CSV and CRM-friendly input, JSON/CSV/Excel export.",
    "version": "0.0",
    "x-build-id": "9ns69V6ebkjsbPZTR"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nice_dev~people-skip-trace-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nice_dev-people-skip-trace-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/nice_dev~people-skip-trace-scraper/runs": {
      "post": {
        "operationId": "runs-sync-nice_dev-people-skip-trace-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/nice_dev~people-skip-trace-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-nice_dev-people-skip-trace-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",
        "properties": {
          "name": {
            "title": "Names",
            "maxItems": 1000,
            "type": "array",
            "description": "One person per line: `Full name; City, ST` or `Full name; ST` (e.g. `Janette Suarez; Miami, FL`). A ZIP code may follow the state. The city and state make the match much better.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "street_citystatezip": {
            "title": "Addresses",
            "maxItems": 1000,
            "type": "array",
            "description": "One address per line: `Street; City, ST ZIP` (e.g. `641 NW 59th Ave; Miami, FL 33126`). Returns the people linked to the address, newest first. Add `| Full name` at the end to put that person first (e.g. the owner): `641 NW 59th Ave; Miami, FL 33126 | Janette Suarez`.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "phone_number": {
            "title": "Phone numbers",
            "maxItems": 1000,
            "type": "array",
            "description": "Reverse phone lookup, one US number per line, any format (`(786) 523-6332`, `7865236332`, `+1 786 523 6332`). Add `| Full name` to put that person first.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "email": {
            "title": "Emails",
            "maxItems": 1000,
            "type": "array",
            "description": "Reverse email lookup, one email per line. Add `| Full name` to put that person first.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "people": {
            "title": "People (structured)",
            "maxItems": 1000,
            "type": "array",
            "description": "For CRMs and automations: a JSON list of objects with any of `firstName`, `lastName`, `street`, `city`, `state`, `zip`, `phone`, `email` and your own `id` (copied to the result as `inputId`). Each object is one search: by address when a street is given, else by phone, else by email, else by name.",
            "default": []
          },
          "csvUrl": {
            "title": "CSV file URL",
            "maxLength": 2000,
            "type": "string",
            "description": "Link to a CSV file (e.g. a Google Sheets `…/export?format=csv` link) with a header row. Recognised columns: `name` or `first name` + `last name`, `street` / `address`, `city`, `state`, `zip`, `phone`, `email`, `id`. Each row is one search, like **People (structured)**."
          },
          "startUrls": {
            "title": "Start URLs",
            "maxItems": 1000,
            "type": "array",
            "description": "FastPeopleSearch search pages (`/name/…`, `/address/…`, phone pages) or person pages (`…_id_G-…`), and CyberBackgroundChecks email pages (`/email/…`). A person page is read in full and charged as a full report, even with **Full person report** off. Max 1 000 URLs.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "maxItems": {
            "title": "Max people",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Maximum number of people to save for the whole run (after filters). 0 = no limit.",
            "default": 100
          },
          "maxItemsPerQuery": {
            "title": "Max people per search",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "People saved for EACH search. 1 = the best match only (the person whose name matches, else the first one listed). Raise it to get every resident of an address or every namesake. 0 = no per-search cap.",
            "default": 1
          },
          "extractDetails": {
            "title": "Full person report",
            "type": "boolean",
            "description": "Off by default. Turn it on for each person's phone numbers (type, carrier, first reported), emails, past addresses with dates, relatives and associates with ages, property, employment and businesses: the Actor opens each person's page, charged per report (see Pricing). Off = what the search result lists: name, age, city, relatives' names, past cities (and the phones an email search lists), never emails. **Only people with a phone number**, **Only people with an email** and **Check that emails exist** need it.",
            "default": false
          },
          "verifyEmails": {
            "title": "Check that emails exist",
            "type": "boolean",
            "description": "Check each of the first 5 emails of a report with its email provider (no email is ever sent). Adds `emailChecks` and `email1Status`-`email5Status`: `valid` (the email provider confirms the mailbox exists: Gmail and the other providers that answer), `invalid` (the domain takes no email, or the provider says the mailbox does not exist), `accept-all` (the domain accepts any address: the mailbox cannot be confirmed), `unknown` (no clear answer: several large providers such as Yahoo, AOL or Outlook do not say). Priced separately, per `valid` or `invalid` answer only: `accept-all` and `unknown` are free. Needs **Full person report**: ignored when it is off.",
            "default": false
          },
          "requireNameMatch": {
            "title": "Only people whose name matches",
            "type": "boolean",
            "description": "With a name to look for (a name search, or `| Full name` after an address, phone or email): save only the people whose first and last names match it (nicknames and middle names tolerated). Off = when nobody matches, the first person listed is saved and marked `nameMatch: fallback`.",
            "default": false
          },
          "requirePhone": {
            "title": "Only people with a phone number",
            "type": "boolean",
            "description": "Drop the people without any phone number (needs **Full person report**: ignored when it is off).",
            "default": false
          },
          "requireEmail": {
            "title": "Only people with an email",
            "type": "boolean",
            "description": "Drop the people without any email (needs **Full person report**: ignored when it is off).",
            "default": false
          },
          "minAge": {
            "title": "Minimum age",
            "minimum": 0,
            "maximum": 130,
            "type": "integer",
            "description": "Drop the people younger than this. People whose age is not known are kept."
          },
          "maxAge": {
            "title": "Maximum age",
            "minimum": 0,
            "maximum": 130,
            "type": "integer",
            "description": "Drop the people older than this. People whose age is not known are kept."
          },
          "excludeKeywords": {
            "title": "Exclude names containing",
            "maxItems": 50,
            "uniqueItems": true,
            "type": "array",
            "description": "Drop the people whose name contains one of these words (case and accents ignored), e.g. `LLC`, `Trust`.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "onlyNew": {
            "title": "Only new people",
            "type": "boolean",
            "description": "Skip the people that a previous run (same **Memory key**) already delivered: they are not saved and not charged, and their page is not even opened. First run = everything is new.",
            "default": false
          },
          "stateKey": {
            "title": "Memory key",
            "pattern": "^[a-zA-Z0-9_-]{1,64}$",
            "maxLength": 64,
            "type": "string",
            "description": "Name of the memory used by **Only new people**. Give each schedule / task its own key (e.g. `miami-owners`) so that they do not share their memory. Letters, digits, `-` and `_`.",
            "default": "default"
          },
          "resetState": {
            "title": "Reset the memory",
            "type": "boolean",
            "description": "Forget everything remembered under this **Memory key** before the run: this run returns (and charges) every person again. Untick it afterwards.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Keep the default (Apify Proxy): the access to the sites is included in the price. Your own proxies (custom proxy URLs) are used instead when you give them. The residential Apify proxy is not available in this Actor.",
            "default": {
              "useApifyProxy": true
            }
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Maximum number of pages read in parallel.",
            "default": 5
          },
          "maxRequestsPerMinute": {
            "title": "Max requests per minute",
            "minimum": 10,
            "maximum": 2000,
            "type": "integer",
            "description": "Most page requests in any 60 seconds, search pages and person pages counted. A budget, not an even pace (spread them with the minimum delay below). Lower it if the log shows many refused pages.",
            "default": 120
          },
          "minRequestIntervalMs": {
            "title": "Min delay between requests",
            "minimum": 0,
            "maximum": 60000,
            "type": "integer",
            "description": "Smallest gap between two requests, in milliseconds. Unlike the per-minute rate, this spreads the requests evenly. 0 = no gap.",
            "default": 0
          },
          "maxRequestRetries": {
            "title": "Max request retries",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Retries per page before it is marked as failed.",
            "default": 5
          },
          "debugLog": {
            "title": "Debug log",
            "type": "boolean",
            "description": "Include debug messages in the run log.",
            "default": false
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}