{
  "openapi": "3.0.1",
  "info": {
    "title": "People Search API - Phone, Email and Address Identity Data",
    "description": "Look up people by name, phone, email or street address and get verified phone numbers, email addresses, address history, relatives and associates. Also covers reverse phone, caller ID, business records, employment records and domain registrants. Pay per result. Bring your own API key.",
    "version": "0.1",
    "x-build-id": "EKX7V5HF6owTkXi5j"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nabeelbaghoor~people-search-identity-data-api/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nabeelbaghoor-people-search-identity-data-api",
        "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/nabeelbaghoor~people-search-identity-data-api/runs": {
      "post": {
        "operationId": "runs-sync-nabeelbaghoor-people-search-identity-data-api",
        "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/nabeelbaghoor~people-search-identity-data-api/run-sync": {
      "post": {
        "operationId": "run-sync-nabeelbaghoor-people-search-identity-data-api",
        "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": {
          "mode": {
            "title": "Which product to run",
            "enum": [
              "contactEnrich",
              "contactEnrichPlus",
              "callerId",
              "callerIdPlus",
              "emailId",
              "emailIdPlus",
              "addressId",
              "personSearch",
              "reversePhone",
              "businessSearch",
              "workplaceSearch",
              "domainSearch"
            ],
            "type": "string",
            "description": "The enrichment products take one identifier and return the best matching person. The plus variants of each return the same data plus a person id, partial date of birth, associates, per address property detail and consumer insight fields, and cost more per lookup. The search products take criteria and page through every match.",
            "default": "contactEnrich"
          },
          "fullNames": {
            "title": "Full names",
            "type": "array",
            "description": "Names to look up, one per line. The last word is treated as the surname and anything between as the middle name. Contact enrichment reads this list row by row alongside the phone, email and address lists, so row one of each describes the same person. The search products use the first name in the list as their criteria.",
            "items": {
              "type": "string"
            }
          },
          "phones": {
            "title": "Phone numbers",
            "type": "array",
            "description": "Phone numbers, one per line, in any format. Punctuation is stripped and a leading country code is removed from a ten digit number before the request.",
            "items": {
              "type": "string"
            }
          },
          "emails": {
            "title": "Email addresses",
            "type": "array",
            "description": "Email addresses, one per line. An address pasted inside a longer string is extracted before the request.",
            "items": {
              "type": "string"
            }
          },
          "addresses": {
            "title": "Street addresses",
            "type": "array",
            "description": "Street addresses, one per line, written as street, then city and state, for example 1234 Main Street, Los Angeles, CA. Everything before the first comma is read as the street and the rest as the city, state and postcode.",
            "items": {
              "type": "string"
            }
          },
          "addressMatchType": {
            "title": "Which residents to return",
            "enum": [
              "",
              "CurrentOwner",
              "CurrentResident"
            ],
            "type": "string",
            "description": "For address lookups, whether to return the current owners of the property or its current residents. Leave empty to get the top people associated with the address instead.",
            "default": ""
          },
          "dob": {
            "title": "Date of birth",
            "type": "string",
            "description": "Date of birth as mm/dd/yyyy. Adding this to a common name is the single most effective way to cut a person search down to one person."
          },
          "age": {
            "title": "Age",
            "minimum": 0,
            "maximum": 120,
            "type": "integer",
            "description": "Exact age, when you know it but not the date of birth."
          },
          "ageRange": {
            "title": "Age range",
            "type": "string",
            "description": "Age range as min-max, for example 35-45. Person search only."
          },
          "personIds": {
            "title": "Person ids",
            "type": "array",
            "description": "Provider person ids to look up directly, one per line. These come back on earlier rows, so a broad search followed by a targeted lookup of the ids you kept is the cheapest way to work a large match set.",
            "items": {
              "type": "string"
            }
          },
          "includes": {
            "title": "Sections to include",
            "type": "array",
            "description": "Which sections the person search should return, one per line, such as Addresses or PhoneNumbers. These are enabled per account by your provider, so an unavailable section is simply absent from the response rather than an error. Leave empty for the account default.",
            "items": {
              "type": "string"
            }
          },
          "filterOptions": {
            "title": "Filter options",
            "type": "array",
            "description": "Provider filter options for the person search, one per line, such as IncludeLowQualityAddresses. Like sections, these are enabled per account.",
            "items": {
              "type": "string"
            }
          },
          "maxAddressYears": {
            "title": "Maximum address age in years",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Drop addresses last reported more than this many years ago. This is how you stop a record from twenty years of history burying the current address."
          },
          "maxPhoneYears": {
            "title": "Maximum phone age in years",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Drop phone numbers last reported more than this many years ago."
          },
          "teaserOnly": {
            "title": "Teaser results only",
            "type": "boolean",
            "description": "Run the person search in teaser mode, which returns masked and limited records rather than full ones. This is the variant intended for logged out users of a consumer facing product, and it is cheaper per search.",
            "default": false
          },
          "businessName": {
            "title": "Business name",
            "type": "string",
            "description": "Business name for the business, workplace and domain searches."
          },
          "businessType": {
            "title": "Business type",
            "type": "string",
            "description": "Business type for the business search."
          },
          "taxId": {
            "title": "Tax id",
            "type": "string",
            "description": "Tax id or FEIN for the business search."
          },
          "county": {
            "title": "County",
            "type": "string",
            "description": "County for the business search."
          },
          "city": {
            "title": "City",
            "type": "string",
            "description": "City for the workplace and domain searches."
          },
          "state": {
            "title": "State",
            "type": "string",
            "description": "Two letter state code for the workplace and domain searches."
          },
          "zip": {
            "title": "Postcode",
            "type": "string",
            "description": "Five digit postcode for the workplace and domain searches."
          },
          "country": {
            "title": "Country",
            "type": "string",
            "description": "Two letter country code for the domain search, such as US or CA."
          },
          "industry": {
            "title": "Industry",
            "type": "string",
            "description": "Industry for the workplace search. The accepted values are served by the provider's own drilldown search and are enabled per account."
          },
          "department": {
            "title": "Department",
            "type": "string",
            "description": "Department for the workplace search."
          },
          "jobTitle": {
            "title": "Job title",
            "type": "string",
            "description": "Job title for the workplace search."
          },
          "jobLevel": {
            "title": "Job level",
            "type": "string",
            "description": "Seniority level for the workplace search."
          },
          "skill": {
            "title": "Skill",
            "type": "string",
            "description": "Skill for the workplace search."
          },
          "workplaceScope": {
            "title": "Which positions to return",
            "enum": [
              "",
              "Current",
              "Any"
            ],
            "type": "string",
            "description": "Whether the workplace search returns only current positions or every position on record. Past positions are what tell you someone has moved on since the record you are holding.",
            "default": ""
          },
          "sortDirection": {
            "title": "Sort direction",
            "enum": [
              "",
              "desc",
              "asc"
            ],
            "type": "string",
            "description": "Sort direction for the workplace search.",
            "default": ""
          },
          "freeFormSearch": {
            "title": "Free form search",
            "type": "string",
            "description": "A single free text query for the domain search, such as a company name."
          },
          "resultsPerPage": {
            "title": "Results per page",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "How many records each search request asks for. Larger pages mean fewer requests, and a page that comes back short is treated as the last one.",
            "default": 10
          },
          "requestsPerMinute": {
            "title": "Requests per minute",
            "minimum": 1,
            "maximum": 1200,
            "type": "integer",
            "description": "Pace the run under your plan's rate limit. Lower this if the provider starts refusing requests.",
            "default": 300
          },
          "skipNotFound": {
            "title": "Skip unresolved inputs",
            "type": "boolean",
            "description": "Leave inputs that resolved to nothing out of the dataset. They are kept by default, because knowing which inputs the provider has nothing on is what makes a run auditable. Unresolved rows are never charged for either way.",
            "default": false
          },
          "maxResults": {
            "title": "Maximum results",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "Hard cap on rows, and therefore on spend and run time.",
            "default": 100
          },
          "clientId": {
            "title": "Access profile name",
            "type": "string",
            "description": "The first half of your credential: the access profile name from your provider account. This provider issues a name and a password rather than a single key, and both are required. Stored as a secret. You can also supply it as the DATA_API_CLIENT_ID environment secret."
          },
          "apiKey": {
            "title": "Access profile password",
            "type": "string",
            "description": "The second half of your credential: the access profile password from your provider account. Stored as a secret and never written to a log. You can also supply it as the DATA_API_KEY environment secret instead."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}