{"openapi":"3.1.0","info":{"title":"Whitepages API Reference","description":"Comprehensive API for accessing Whitepages data with enterprise-grade authentication, authorization, and usage tracking.\n\n<h3>Features</h3>\n\n- **Person Search**: Find individuals by name, phone number, address, and id\n- **Property Search**: Search properties by address and retrieve detailed property information\n- **Enhanced Data Access**: API provides a more powerful way to search our dataset\n- **Usage Tracking**: Detailed usage accounting and reporting\n- **Rate Limiting**: Intelligent rate limiting to ensure optimal performance\n- **Data Validation**: Comprehensive input validation and sanitization\n\n<h3>Authentication</h3>\n\nAll requests require a valid API key provided in the X-Api-Key header. Contact our support team for API key provisioning and management.\n\n<h3>Usage Accounting</h3>\n\nAPI usage is tracked and billed based on successful requests:\n\n<h3>Billing Rules</h3>\n\n- **Billable Requests**: All 2xx (success) and 4xx (client error) responses from Person and Property endpoints are charged\n- **Non-Billable Requests**: 5xx (server error) and 429 (rate limit) responses are not charged\n- **Billing Period**: Usage is calculated from the start of the month in UTC time\n- **Usage Reports**: Detailed usage reports are available through the `/v1/account/usage` endpoint\n\n<h3>Rate Limits</h3>\n\nAPI usage is rate-limited to ensure system stability and fair usage across all customers. Rate limit violations return a 429 status code with retry information.\n\n<h3>Getting Started</h3>\n\nNew to the API? Check out our <a href=\"/docs/quickstart\">QuickStart Guide</a> for step-by-step examples.\n\n<h3>Support</h3>\n\nFor API key management, rate limit increases, quota adjustments, or technical support, please contact our team at support@whitepages.com.\n","contact":{"name":"Whitepages API Support","email":"support@whitepages.com"},"license":{"name":"Terms of Service","url":"https://www.whitepages.com/terms"},"version":"1.0.0"},"paths":{"/v1/person/":{"get":{"tags":["Person"],"summary":"Search for a person by name, phone number, and address","description":"Retrieve person information based on the provided query parameters.\n\nThis endpoint accepts a person query request and returns full details for\nup to the top 15 matching persons from Whitepages data.","operationId":"search_person_by_name_phone_or_address","deprecated":true,"parameters":[{"name":"phone","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^(\\+?1[-.\\s]?)?\\(?([0-9]{3})\\)?[-.\\s]?([0-9]{3})[-.\\s]?([0-9]{4})$"},{"type":"null"}],"title":"Phone Number","description":"Phone number to search for a person by","examples":["(216) 676-6366","216-676-6366","2166766366","+1-800-676-6366"]},"description":"Phone number to search for a person by"},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Full name, first name, last name, or partial name match for the person","examples":["Marsha Mellow","Marsha","Mellow","Smith"]},"description":"Full name, first name, last name, or partial name match for the person"},{"name":"first_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name","description":"First name of the person. Cannot be used with 'name' parameter.","examples":["Marsha","John"]},"description":"First name of the person. Cannot be used with 'name' parameter."},{"name":"middle_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Middle Name","description":"Middle name of the person. Cannot be used with 'name' parameter.","examples":["Ann","Michael"]},"description":"Middle name of the person. Cannot be used with 'name' parameter."},{"name":"last_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Name","description":"Last name of the person. Cannot be used with 'name' parameter.","examples":["Mellow","Smith"]},"description":"Last name of the person. Cannot be used with 'name' parameter."},{"name":"street","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Street","description":"Full or partial street address including street number, name","examples":["123 Main St","Main Street"]},"description":"Full or partial street address including street number, name"},{"name":"city","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City","description":"Full city name","examples":["Anytown","Seattle","Los Angeles"]},"description":"Full city name"},{"name":"state_code","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/StateCodeEnum"},{"type":"null"}],"title":"State Code","description":"2-Letter code representing a state name","examples":["CA","NY","WA"],"type":"string"},"description":"2-Letter code representing a state name"},{"name":"zipcode","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^\\d{5}$"},{"type":"null"}],"title":"5-Digit ZIP Code","description":"Full 5-digit ZIP code","examples":["94102","98101"]},"description":"Full 5-digit ZIP code"},{"name":"include_historical_locations","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Include Historical Locations","description":"Include historical addresses in search. When false (default), only current addresses are included.","examples":[false,true]},"description":"Include historical addresses in search. When false (default), only current addresses are included."},{"name":"min_age","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":65,"minimum":18},{"type":"null"}],"title":"Minimum Age","description":"Minimum age of the person to search for, must be between 18 and 65","examples":[18,25,30]},"description":"Minimum age of the person to search for, must be between 18 and 65"},{"name":"max_age","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":65,"minimum":18},{"type":"null"}],"title":"Maximum Age","description":"Maximum age of the person to search for, must be between 18 and 65","examples":[65,80,100]},"description":"Maximum age of the person to search for, must be between 18 and 65"},{"name":"radius","in":"query","required":false,"schema":{"anyOf":[{"type":"number","maximum":100.0,"minimum":0.1},{"type":"null"}],"title":"Search Radius","description":"Search radius in miles for distance-based filtering","examples":[2.5,5.0,10.0]},"description":"Search radius in miles for distance-based filtering"},{"name":"strict_match","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Strict Match","description":"Suppress automatic broadening. When true, the search does not fall back to fuzzy matching or radius expansion on a zero-result response; the exact query is authoritative.","examples":[false,true]},"description":"Suppress automatic broadening. When true, the search does not fall back to fuzzy matching or radius expansion on a zero-result response; the exact query is authoritative."}],"responses":{"200":{"description":"Person data retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PersonResponseDto"},"title":"Response Search Person By Name Phone Or Address"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestErrorModel"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthenticationErrorModel"}}},"description":"Forbidden"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Content"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorModel"}}},"description":"Internal Server Error"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestLimitErrorModel"}}},"description":"Too Many Requests"}}}},"/v1/person/{id}":{"get":{"tags":["Person"],"summary":"Gets person details by id","description":"Retrieve detailed person information by Whitepages person ID.\n\nThis endpoint accepts a valid Whitepages person ID in the path parameter\nand returns the complete person record if the ID exists in our data.","operationId":"get_person_by_id","deprecated":true,"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Person ID","description":"Valid Person ID in format: P followed by 10 alphanumeric characters","examples":["PABcd12345e","P1234567890"]},"description":"Valid Person ID in format: P followed by 10 alphanumeric characters"}],"responses":{"200":{"description":"Person details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonResponseDto"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestErrorModel"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthenticationErrorModel"}}},"description":"Forbidden"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Content"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorModel"}}},"description":"Internal Server Error"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundErrorModel"}}},"description":"Not Found"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestLimitErrorModel"}}},"description":"Too Many Requests"}}}},"/v1/property/":{"get":{"tags":["Property"],"summary":"Get property details by address","description":"Retrieve property information based on the provided query parameters.\n\nThis endpoint accepts a property query request and returns the matching\nproperty details if found within Whitepages data.","operationId":"get_property_by_address","deprecated":true,"parameters":[{"name":"street","in":"query","required":true,"schema":{"type":"string","title":"Street","description":"Full or partial street address including street number, name","examples":["123 Main St","Main Street"]},"description":"Full or partial street address including street number, name"},{"name":"city","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City","description":"Full city name","examples":["Anytown","Seattle","Los Angeles"]},"description":"Full city name"},{"name":"state_code","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/StateCodeEnum"},{"type":"null"}],"title":"State Code","description":"2-Letter code representing a state name","examples":["CA","NY","WA"],"type":"string"},"description":"2-Letter code representing a state name"},{"name":"zip","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"5 or 9 digit zip code","description":"","examples":["94102","98101-0001"]}}],"responses":{"200":{"description":"Property data retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/PropertyResponseDto"},{"type":"null"}],"title":"Response Get Property By Address"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestErrorModel"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthenticationErrorModel"}}},"description":"Forbidden"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Content"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorModel"}}},"description":"Internal Server Error"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundErrorModel"}}},"description":"Not Found"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestLimitErrorModel"}}},"description":"Too Many Requests"}}}},"/v1/regions/states":{"get":{"tags":["Regions"],"summary":"List all US states and territories","description":"Retrieve a list of all US states and territories.","operationId":"list_states","responses":{"200":{"description":"List of all US states and territories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponseDto_StateDto_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestErrorModel"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthenticationErrorModel"}}}},"422":{"description":"Unprocessable Content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorModel"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestLimitErrorModel"}}}}},"security":[]}},"/v1/regions/states/{state_code}/counties":{"get":{"tags":["Regions"],"summary":"List counties for a state","description":"Retrieve a list of counties for a given state.","operationId":"list_counties","parameters":[{"name":"state_code","in":"path","required":true,"schema":{"$ref":"#/components/schemas/StateCodeEnum"}}],"responses":{"200":{"description":"List of counties for the specified state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponseDto_CountyDto_"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestErrorModel"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthenticationErrorModel"}}},"description":"Forbidden"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Content"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorModel"}}},"description":"Internal Server Error"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundErrorModel"}}},"description":"Not Found"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestLimitErrorModel"}}},"description":"Too Many Requests"}},"security":[]}},"/v1/account/usage/":{"get":{"tags":["Account"],"summary":"Retrieve usage data for a specific time range","description":"Retrieve API usage data for a specified date range.\n\nReturns daily usage statistics including request counts for each day\nwithin the specified time period. The response includes both individual\ndaily usage data and total usage for the entire period.\n\n- The request count is total number of requests made including 2xx, 4xx\nand 5xx responses. It is not the same as billable requests which is not\navailable right now as part of API.\n- Maximum date range allowed: 90 days\n- Dates are in UTC format\n- Current day data when requested will be updated during the day\n- Usage data is updated approximately every 30 minutes\n- Usage data is returned only from the first date of actual usage in\nthe specified duration","operationId":"get_account_usage_data","parameters":[{"name":"start_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Start Date","description":"Start date of the duration to get usage data for. Format: YYYY-MM-DD","examples":["2025-09-12"]},"description":"Start date of the duration to get usage data for. Format: YYYY-MM-DD"},{"name":"end_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"End Date","description":"End date of the duration to get usage data for. Format: YYYY-MM-DD","examples":["2025-09-12"]},"description":"End date of the duration to get usage data for. Format: YYYY-MM-DD"}],"responses":{"200":{"description":"Usage data retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsageResponseDto"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestErrorModel"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthenticationErrorModel"}}},"description":"Forbidden"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Content"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorModel"}}},"description":"Internal Server Error"}}}},"/v1/webhooks/":{"post":{"tags":["Webhooks"],"summary":"Create a webhook subscription","description":"Register a new webhook subscription for property events. The endpoint URL is validated on creation — it must be reachable and return a 2xx response. Currently supports `deed.*` events scoped to Texas counties.","operationId":"create_webhook","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWebhookRequestDto"}}}},"responses":{"201":{"description":"Webhook created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DetailResponseDto_WebhookResponseDto_"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestErrorModel"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthenticationErrorModel"}}},"description":"Forbidden"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Content"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorModel"}}},"description":"Internal Server Error"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictErrorModel"}}},"description":"Conflict"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestLimitErrorModel"}}},"description":"Too Many Requests"}}},"get":{"tags":["Webhooks"],"summary":"List webhook subscriptions","description":"List all webhook subscriptions for the authenticated account. Optionally filter by status or event type.","operationId":"list_webhooks","parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"enum":["active","inactive"],"type":"string"},{"type":"null"}],"description":"Filter by status (active/inactive)","title":"Status"},"description":"Filter by status (active/inactive)"},{"name":"event_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by subscribed event type","title":"Event Type"},"description":"Filter by subscribed event type"}],"responses":{"200":{"description":"Webhooks listed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListWebhooksResponseDto"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestErrorModel"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthenticationErrorModel"}}},"description":"Forbidden"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Content"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorModel"}}},"description":"Internal Server Error"}}}},"/v1/webhooks/{webhook_id}":{"get":{"tags":["Webhooks"],"summary":"Get a webhook subscription","description":"Retrieve a single webhook subscription by its ID.","operationId":"get_webhook","parameters":[{"name":"webhook_id","in":"path","required":true,"schema":{"type":"string","title":"Webhook Id"}}],"responses":{"200":{"description":"Webhook retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DetailResponseDto_WebhookResponseDto_"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestErrorModel"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthenticationErrorModel"}}},"description":"Forbidden"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Content"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorModel"}}},"description":"Internal Server Error"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundErrorModel"}}},"description":"Not Found"}}},"patch":{"tags":["Webhooks"],"summary":"Update a webhook subscription","description":"Partially update a webhook subscription. Only provided fields are modified; omitted fields remain unchanged.","operationId":"update_webhook","parameters":[{"name":"webhook_id","in":"path","required":true,"schema":{"type":"string","title":"Webhook Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWebhookRequestDto"}}}},"responses":{"200":{"description":"Webhook updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DetailResponseDto_WebhookResponseDto_"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestErrorModel"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthenticationErrorModel"}}},"description":"Forbidden"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Content"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorModel"}}},"description":"Internal Server Error"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundErrorModel"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictErrorModel"}}},"description":"Conflict"}}},"delete":{"tags":["Webhooks"],"summary":"Delete a webhook subscription","description":"Permanently delete a webhook subscription. This action cannot be undone.","operationId":"delete_webhook","parameters":[{"name":"webhook_id","in":"path","required":true,"schema":{"type":"string","title":"Webhook Id"}}],"responses":{"204":{"description":"Webhook deleted successfully"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestErrorModel"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthenticationErrorModel"}}},"description":"Forbidden"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Content"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorModel"}}},"description":"Internal Server Error"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundErrorModel"}}},"description":"Not Found"}}}},"/v1/webhooks/{webhook_id}/test":{"post":{"tags":["Webhooks"],"summary":"Test a webhook delivery","description":"Send a synthetic notification to the webhook endpoint. Uses the same payload format as real deliveries with a fixed event ID.","operationId":"test_webhook","parameters":[{"name":"webhook_id","in":"path","required":true,"schema":{"type":"string","title":"Webhook Id"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/TestWebhookRequestDto"},{"type":"null"}],"title":"Body"}}}},"responses":{"200":{"description":"Test delivery completed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestWebhookResponseDto"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestErrorModel"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthenticationErrorModel"}}},"description":"Forbidden"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestErrorModel"}}},"description":"Unprocessable Content"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorModel"}}},"description":"Internal Server Error"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundErrorModel"}}},"description":"Not Found"}}}},"/v1/events/deed":{"get":{"tags":["Events"],"summary":"Search all deed events","description":"Search historical deed events by region and optional filters.\n\nRaises\n------\nEventInvalidParameterError\n    When event_date_from is after event_date_to.","operationId":"search_events","parameters":[{"name":"region","in":"query","required":true,"schema":{"type":"string","description":"Geographic scope in type:value format (e.g., state:tx, county:tx.travis, county:48453)","title":"Region"},"description":"Geographic scope in type:value format (e.g., state:tx, county:tx.travis, county:48453)"},{"name":"property_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Whitepages property ID filter","title":"Property Id"},"description":"Whitepages property ID filter"},{"name":"event_date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Start of event date range, inclusive (ISO 8601)","title":"Event Date From"},"description":"Start of event date range, inclusive (ISO 8601)"},{"name":"event_date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"End of event date range, inclusive (ISO 8601)","title":"Event Date To"},"description":"End of event date range, inclusive (ISO 8601)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Results per page","default":20,"title":"Limit"},"description":"Results per page"},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Pagination cursor from a previous response","title":"Cursor"},"description":"Pagination cursor from a previous response"}],"responses":{"200":{"description":"Deed events retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchDeedEventsResponseDto"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestErrorModel"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthenticationErrorModel"}}},"description":"Forbidden"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Content"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorModel"}}},"description":"Internal Server Error"}}}},"/v1/events/{event_id}":{"get":{"tags":["Events"],"summary":"Retrieve a single event by ID","description":"Return a single event by its unique identifier.","operationId":"get_event","parameters":[{"name":"event_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"title":"Event ID","description":"Unique event identifier"},"description":"Unique event identifier"}],"responses":{"200":{"description":"Event retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DetailResponseDto_EventResponseDto_"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestErrorModel"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthenticationErrorModel"}}},"description":"Forbidden"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Content"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorModel"}}},"description":"Internal Server Error"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundErrorModel"}}},"description":"Not Found"}}}},"/v2/person/":{"get":{"tags":["Person V2"],"summary":"Search for a person by name, phone number, and address","description":"Retrieve person information with match scores and enriched emails.\n\nRaises\n------\nStrictMatchWithFuzzyMatchingError\n    If ``strict_match`` and ``include_fuzzy_matching`` are both\n    set to true — the two flags are semantically contradictory.","operationId":"search_person_by_name_phone_or_address_v2","parameters":[{"name":"phone","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^(\\+?1[-.\\s]?)?\\(?([0-9]{3})\\)?[-.\\s]?([0-9]{3})[-.\\s]?([0-9]{4})$"},{"type":"null"}],"title":"Phone Number","description":"Phone number to search for","examples":["(216) 676-6366","216-676-6366","2166766366","+1-800-676-6366"]},"description":"Phone number to search for"},{"name":"email","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$"},{"type":"null"}],"title":"Email Address","description":"Email address to search for","examples":["user@example.com"]},"description":"Email address to search for"},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Full name or partial name match","examples":["Marsha Mellow","Marsha","Mellow"]},"description":"Full name or partial name match"},{"name":"first_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name","description":"First name. Cannot be used with 'name'.","examples":["Marsha","John"]},"description":"First name. Cannot be used with 'name'."},{"name":"middle_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Middle Name","description":"Middle name. Cannot be used with 'name'.","examples":["Ann","Michael"]},"description":"Middle name. Cannot be used with 'name'."},{"name":"last_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Name","description":"Last name. Cannot be used with 'name'.","examples":["Mellow","Smith"]},"description":"Last name. Cannot be used with 'name'."},{"name":"street","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Street","description":"Street address including number and name","examples":["123 Main St","Main Street"]},"description":"Street address including number and name"},{"name":"city","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City","description":"Full city name","examples":["Anytown","Seattle","Los Angeles"]},"description":"Full city name"},{"name":"state_code","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/StateCodeEnum"},{"type":"null"}],"title":"State Code","description":"2-Letter state code","examples":["CA","NY","WA"],"type":"string"},"description":"2-Letter state code"},{"name":"zipcode","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^\\d{5}$"},{"type":"null"}],"title":"5-Digit ZIP Code","description":"Full 5-digit ZIP code","examples":["94102","98101"]},"description":"Full 5-digit ZIP code"},{"name":"include_historical_locations","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Include Historical Locations","description":"Include historical addresses in search","examples":[false,true]},"description":"Include historical addresses in search"},{"name":"min_age","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":65,"minimum":18},{"type":"null"}],"title":"Minimum Age","description":"Minimum age (18-65)","examples":[18,25,30]},"description":"Minimum age (18-65)"},{"name":"max_age","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":65,"minimum":18},{"type":"null"}],"title":"Maximum Age","description":"Maximum age (18-65)","examples":[35,50,65]},"description":"Maximum age (18-65)"},{"name":"radius","in":"query","required":false,"schema":{"anyOf":[{"type":"number","maximum":100.0,"minimum":0.1},{"type":"null"}],"title":"Search Radius","description":"Search radius in miles","examples":[2.5,5.0,10.0]},"description":"Search radius in miles"},{"name":"include_fuzzy_matching","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Include Fuzzy Matching","description":"Enable fuzzy name matching to broaden search results","examples":[false,true]},"description":"Enable fuzzy name matching to broaden search results"},{"name":"strict_match","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Strict Match","description":"Suppress automatic broadening. When true, the search does not fall back to fuzzy matching or radius expansion on a zero-result response; the exact query is authoritative.","examples":[false,true]},"description":"Suppress automatic broadening. When true, the search does not fall back to fuzzy matching or radius expansion on a zero-result response; the exact query is authoritative."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","maximum":10,"minimum":1,"title":"Page","description":"Page number (1-indexed)","examples":[1,2,3],"default":1},"description":"Page number (1-indexed)"},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":15,"minimum":1,"title":"Page Size","description":"Number of results per page","examples":[5,10,15],"default":15},"description":"Number of results per page"}],"responses":{"200":{"description":"Person data retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonSearchV2ResponseDto"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestErrorModel"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthenticationErrorModel"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Content"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorModel"}}},"description":"Internal Server Error"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestLimitErrorModel"}}},"description":"Too Many Requests"}}}},"/v2/person/{id}":{"get":{"tags":["Person V2"],"summary":"Gets person details by id","description":"Retrieve detailed person information by Whitepages person ID.","operationId":"get_person_by_id_v2","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Person ID","description":"Person ID: P followed by 10 alphanumeric characters","examples":["PABcd12345e","P1234567890"]},"description":"Person ID: P followed by 10 alphanumeric characters"}],"responses":{"200":{"description":"Person details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DetailResponseDto_PersonV2ResponseDto_"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestErrorModel"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthenticationErrorModel"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Content"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorModel"}}},"description":"Internal Server Error"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestLimitErrorModel"}}},"description":"Too Many Requests"}}}},"/v2/property/{property_id}":{"get":{"tags":["Property V2"],"summary":"Get property details by ID","description":"Retrieve detailed property information by Whitepages property ID.\n\nAccepts either a Whitepages property ID (prefix ``R``) or an address ID\n(prefix ``A``). Address IDs are resolved to the associated property\nbefore lookup.\n\nThis endpoint returns comprehensive property data including physical\ncharacteristics, tax assessment information, ownership details, mortgage\nhistory, predictive insights, and current residents.\n\nTo obtain a property_id, first use the \"Search for property by address\"\nendpoint (/v2/property/), which returns basic property information\nincluding the property_id needed for this request.","operationId":"get_property_by_id_v2","parameters":[{"name":"property_id","in":"path","required":true,"schema":{"type":"string","title":"Property or Address ID","description":"Whitepages property identifier (capital 'R' prefix) or address identifier (capital 'A' prefix). Both are 11 characters long.","examples":["RkzQlEj2kmg","AEoLeWBEeyj"]},"description":"Whitepages property identifier (capital 'R' prefix) or address identifier (capital 'A' prefix). Both are 11 characters long."}],"responses":{"200":{"description":"Property details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DetailResponseDto_PropertyDetailsV2Dto_"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestErrorModel"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthenticationErrorModel"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Content"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorModel"}}},"description":"Internal Server Error"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestLimitErrorModel"}}},"description":"Too Many Requests"}}}},"/v2/property/":{"get":{"tags":["Property V2"],"summary":"Search for property by address","description":"Search for property by address parameters.\n\nReturns basic property information including property_id, address, owner,\nand resident details. For comprehensive property details including physical\ncharacteristics, tax assessments, and mortgage history, use the returned\nproperty_id with the \"Get property details by ID\" endpoint\n(/v2/property/{property_id}).","operationId":"search_property_v2","parameters":[{"name":"street","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Street Address","description":"Street address including number and name","examples":["123 Main St","456 Oak Avenue"]},"description":"Street address including number and name"},{"name":"city","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City","description":"City name","examples":["Seattle","Portland","San Francisco"]},"description":"City name"},{"name":"state_code","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/StateCodeEnum"},{"type":"null"}],"title":"State Code","description":"Two-letter state code","examples":["WA","OR","CA"]},"description":"Two-letter state code"},{"name":"zipcode","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^\\d{5}$"},{"type":"null"}],"title":"ZIP Code","description":"5","examples":["98101","60616"]},"description":"5"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DetailResponseDto_PropertyV2Dto_"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestErrorModel"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthenticationErrorModel"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Content"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorModel"}}},"description":"Internal Server Error"}}}}},"components":{"schemas":{"AddressDto":{"properties":{"address_id":{"type":"string","title":"Address Id","description":"Unique address identifier"},"full_address":{"type":"string","title":"Full Address","description":"Complete formatted address string"},"city":{"type":"string","title":"City","description":"City name"},"state":{"type":"string","title":"State","description":"Two-letter state code"},"line1":{"type":"string","title":"Line1","description":"Street address line (house number and street)"},"zip":{"type":"string","title":"Zip","description":"5-digit ZIP code"}},"type":"object","required":["address_id","full_address","city","state","line1","zip"],"title":"AddressDto","description":"Address used by v2 person and property endpoints."},"AssessedInfoDto":{"properties":{"market_value":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Market Value","description":"Estimated market value in USD"},"assessed_value":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Assessed Value","description":"Tax-assessed value in USD"},"property_tax_amount":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Property Tax Amount","description":"Annual property tax amount in USD"},"property_tax_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Property Tax Percent","description":"Effective property tax rate as percentage"}},"type":"object","title":"AssessedInfoDto","description":"Property tax assessment information."},"AuthenticationErrorModel":{"properties":{"message":{"type":"string","title":"Message","description":"Reason for the 403 response","examples":["Forbidden"]}},"type":"object","required":["message"],"title":"AuthenticationErrorModel","description":"Response for missing or invalid API key."},"BadRequestErrorModel":{"properties":{"error":{"$ref":"#/components/schemas/BadRequestErrorObject","description":"Error details object"},"wp_trace_id":{"type":"string","title":"Wp Trace Id","description":"Unique trace ID for request tracking","examples":["3b0b537a60d84057817bb40563ca5c99"]}},"type":"object","required":["error","wp_trace_id"],"title":"BadRequestErrorModel","description":"Standardized 400 response model for bad request errors."},"BadRequestErrorObject":{"properties":{"code":{"type":"integer","title":"Code","description":"HTTP status code","default":400,"examples":[400]},"message":{"type":"string","title":"Message","description":"Short error message","default":"Bad Request","examples":["Bad Request"]},"long_message":{"type":"string","title":"Long Message","description":"Detailed error description","examples":["Invalid person ID format: 'sdf'. Person ID must start with 'P' followed by exactly 10 alphanumeric characters. Example: 'PABcd12345e' or 'P1234567890'."]},"meta":{"type":"null","title":"Meta","description":"Additional metadata (always null for 400)"}},"type":"object","required":["long_message"],"title":"BadRequestErrorObject","description":"Error object specifically for 400 Bad Request responses."},"BusinessOwnerDto":{"properties":{"name":{"type":"string","title":"Name","description":"Business entity name"}},"type":"object","required":["name"],"title":"BusinessOwnerDto","description":"Business owner information."},"ConflictErrorModel":{"properties":{"error":{"$ref":"#/components/schemas/ErrorObject","description":"Error details object"},"wp_trace_id":{"type":"string","title":"Wp Trace Id","description":"Unique trace ID for request tracking","examples":["550e8400-e29b-41d4-a716-446655440000"]}},"type":"object","required":["error","wp_trace_id"],"title":"ConflictErrorModel","description":"Standardized 409 response model for conflict errors."},"CountyDto":{"properties":{"slug":{"type":"string","title":"Slug","description":"Identifier for the county (e.g., 'wa.king')"},"name":{"type":"string","title":"Name","description":"Display name of the county (e.g., 'King')"},"fips_code":{"type":"string","title":"Fips Code","description":"FIPS code for the county (e.g., '53033')"},"supported_webhook_events":{"items":{"type":"string"},"type":"array","title":"Supported Webhook Events","description":"Event types available for webhook subscriptions in this county (e.g., ['deed.*'])"}},"type":"object","required":["slug","name","fips_code","supported_webhook_events"],"title":"CountyDto","description":"Representation of a county."},"CreateWebhookRequestDto":{"properties":{"url":{"type":"string","maxLength":2048,"minLength":1,"pattern":"^https://","title":"Url","description":"HTTPS URL where webhook notifications will be delivered via POST. Must use HTTPS.","examples":["https://api.example.com/webhooks/wp-events"]},"name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Name","description":"Optional human-readable label for identifying this subscription (max 255 characters).","examples":["Austin metro deed alerts"]},"event_type":{"type":"string","title":"Event Type","description":"Event type to subscribe to, in `category.*` format. Currently only `deed.*` is supported.","examples":["deed.*"]},"region":{"type":"string","title":"Region","description":"Geographic region in `type:value` format. Supported types: `state:{code}` (e.g., `state:tx`) for an entire state, or `county:{state}.{name}` (e.g., `county:tx.travis`) / `county:{fips}` (e.g., `county:48453`) for a single county. Currently only Texas and its counties are supported. Use the Regions API to discover valid values: `GET /v1/regions/states` and `GET /v1/regions/states/{state}/counties`.","examples":["state:tx","county:tx.travis","county:48453"]}},"type":"object","required":["url","event_type","region"],"title":"CreateWebhookRequestDto","description":"Request body for creating a webhook subscription."},"DeedDetailDto":{"properties":{"document_type":{"anyOf":[{"$ref":"#/components/schemas/DocumentTypeDto"},{"type":"null"}],"description":"Document classification"},"recorded_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recorded Date","description":"Date the deed was recorded (ISO 8601)"},"instrument_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instrument Date","description":"Date the deed was executed (ISO 8601)"},"consideration":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Consideration","description":"Sale price or consideration amount"},"transaction_reason":{"anyOf":[{"$ref":"#/components/schemas/TransactionReasonDto"},{"type":"null"}],"description":"Transaction classification"}},"type":"object","title":"DeedDetailDto","description":"Deed-specific event detail."},"DeedEventDataDto":{"properties":{"jurisdiction":{"$ref":"#/components/schemas/JurisdictionDto","description":"Geographic jurisdiction"},"property":{"anyOf":[{"$ref":"#/components/schemas/PropertyDto"},{"type":"null"}],"description":"Property involved in the event"},"parties":{"items":{"$ref":"#/components/schemas/PartyDto"},"type":"array","title":"Parties","description":"Parties involved"},"detail":{"anyOf":[{"$ref":"#/components/schemas/DeedDetailDto"},{"type":"null"}],"description":"Deed-specific detail"}},"type":"object","required":["jurisdiction"],"title":"DeedEventDataDto","description":"Data payload for deed events."},"DetailResponseDto_EventResponseDto_":{"properties":{"result":{"$ref":"#/components/schemas/EventResponseDto"}},"type":"object","required":["result"],"title":"DetailResponseDto[EventResponseDto]"},"DetailResponseDto_PersonV2ResponseDto_":{"properties":{"result":{"$ref":"#/components/schemas/PersonV2ResponseDto"}},"type":"object","required":["result"],"title":"DetailResponseDto[PersonV2ResponseDto]"},"DetailResponseDto_PropertyDetailsV2Dto_":{"properties":{"result":{"$ref":"#/components/schemas/PropertyDetailsV2Dto"}},"type":"object","required":["result"],"title":"DetailResponseDto[PropertyDetailsV2Dto]"},"DetailResponseDto_PropertyV2Dto_":{"properties":{"result":{"$ref":"#/components/schemas/PropertyV2Dto"}},"type":"object","required":["result"],"title":"DetailResponseDto[PropertyV2Dto]"},"DetailResponseDto_WebhookResponseDto_":{"properties":{"result":{"$ref":"#/components/schemas/WebhookResponseDto"}},"type":"object","required":["result"],"title":"DetailResponseDto[WebhookResponseDto]"},"DocumentTypeDto":{"properties":{"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category","description":"Normalized category"},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text","description":"Human-readable label"}},"type":"object","title":"DocumentTypeDto","description":"Document classification."},"EmailDto":{"properties":{"email":{"type":"string","title":"Email","description":"Email address"},"score":{"type":"integer","title":"Score","description":"Confidence score 0-100 for this email association"}},"type":"object","required":["email","score"],"title":"EmailDto","description":"Enriched email with confidence score."},"ErrorModel":{"properties":{"error":{"$ref":"#/components/schemas/ErrorObject","description":"Error details object"},"wp_trace_id":{"type":"string","title":"Wp Trace Id","description":"Unique trace ID for request tracking","examples":["550e8400-e29b-41d4-a716-446655440000"]}},"type":"object","required":["error","wp_trace_id"],"title":"ErrorModel","description":"Base response model for error responses."},"ErrorObject":{"properties":{"code":{"$ref":"#/components/schemas/HTTPStatus","description":"HTTP status codes","examples":[400,403,422,500]},"message":{"type":"string","title":"Message","description":"Short error message","examples":["Short error message","Bad Request","Internal Server Error"]},"long_message":{"type":"string","title":"Long Message","description":"Detailed error description","examples":["The request was malformed","An internal server error occurred"]},"meta":{"anyOf":[{"$ref":"#/components/schemas/JSONObject"},{"type":"null"}],"description":"Additional metadata related to the error","examples":[{"field":"email","validation_error":"Invalid email format"},{"request_id":"req_123","retry_after":300},null]}},"type":"object","required":["code","message","long_message"],"title":"ErrorObject","description":"Error object for error response."},"EventGeolocationDto":{"properties":{"lat":{"type":"number","title":"Lat","description":"Latitude"},"lng":{"type":"number","title":"Lng","description":"Longitude"}},"type":"object","required":["lat","lng"],"title":"EventGeolocationDto","description":"Geocoordinates."},"EventLinkDto":{"properties":{"version":{"type":"string","title":"Version","description":"API version for the linked resource.","examples":["1"]},"url":{"type":"string","title":"Url","description":"URL to fetch the full event detail from the Historical Events API.","examples":["https://api.whitepages.com/v1/events/evt_abc123"]}},"type":"object","required":["version","url"],"title":"EventLinkDto","description":"Versioned link to the full event resource."},"EventNotificationDto":{"properties":{"event_id":{"type":"string","title":"Event Id","description":"Unique event identifier.","examples":["evt_abc123","3686343b-81f8-5d48-84c5-52dc1407e9bb"]},"event_type":{"type":"string","title":"Event Type","description":"Event type that triggered this notification, in `category.*` format.","examples":["deed.*"]},"links":{"items":{"$ref":"#/components/schemas/EventLinkDto"},"type":"array","title":"Links","description":"Versioned links to retrieve the full event detail from the Historical Events API."}},"type":"object","required":["event_id","event_type","links"],"title":"EventNotificationDto","description":"Thin notification payload matching webhook delivery format.\n\nThis is the same structure delivered to webhook endpoints.\nTest deliveries use a fixed event ID."},"EventPropertyAddressDto":{"properties":{"line1":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Line1","description":"Street address"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City","description":"City"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State","description":"State code"},"zip":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Zip","description":"ZIP code"},"county":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"County","description":"County name"}},"type":"object","title":"EventPropertyAddressDto","description":"Structured property address."},"EventResponseDto":{"properties":{"id":{"type":"string","title":"Id","description":"Unique event identifier (UUID)"},"object":{"type":"string","title":"Object","description":"Object type","default":"event"},"event_type":{"type":"string","title":"Event Type","description":"Event type"},"data":{"$ref":"#/components/schemas/DeedEventDataDto","description":"Type-specific event data"}},"type":"object","required":["id","event_type","data"],"title":"EventResponseDto","description":"Event response envelope."},"FullAddress":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"full_address":{"type":"string","title":"Full Address"}},"type":"object","required":["id","full_address"],"title":"FullAddress","description":"Address information for a property."},"GeolocationDto":{"properties":{"lat":{"type":"number","title":"Lat","description":"Latitude coordinate"},"lng":{"type":"number","title":"Lng","description":"Longitude coordinate"}},"type":"object","required":["lat","lng"],"title":"GeolocationDto","description":"Geographic coordinates."},"HTTPStatus":{"type":"integer","enum":[100,101,102,103,200,201,202,203,204,205,206,207,208,226,300,301,302,303,304,305,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,413,414,414,415,416,416,417,418,421,422,422,423,424,425,426,428,429,431,451,500,501,502,503,504,505,506,507,508,510,511],"title":"HTTPStatus","description":"HTTP status codes and reason phrases\n\nStatus codes from the following RFCs are all observed:\n\n    * RFC 9110: HTTP Semantics, obsoletes 7231, which obsoleted 2616\n    * RFC 6585: Additional HTTP Status Codes\n    * RFC 3229: Delta encoding in HTTP\n    * RFC 4918: HTTP Extensions for WebDAV, obsoletes 2518\n    * RFC 5842: Binding Extensions to WebDAV\n    * RFC 7238: Permanent Redirect\n    * RFC 2295: Transparent Content Negotiation in HTTP\n    * RFC 2774: An HTTP Extension Framework\n    * RFC 7725: An HTTP Status Code to Report Legal Obstacles\n    * RFC 7540: Hypertext Transfer Protocol Version 2 (HTTP/2)\n    * RFC 2324: Hyper Text Coffee Pot Control Protocol (HTCPCP/1.0)\n    * RFC 8297: An HTTP Status Code for Indicating Hints\n    * RFC 8470: Using Early Data in HTTP"},"InternalServerErrorModel":{"properties":{"error":{"$ref":"#/components/schemas/ErrorObject","description":"Error details object"},"wp_trace_id":{"type":"string","title":"Wp Trace Id","description":"Unique trace ID for request tracking","examples":["550e8400-e29b-41d4-a716-446655440000"]}},"type":"object","required":["error","wp_trace_id"],"title":"InternalServerErrorModel","description":"Response for internal server errors.\n\nThis response indicates an internal server error occurred.\nContact support for assistance, or try again later."},"JSON":{"anyOf":[{"$ref":"#/components/schemas/JSONObject"},{"items":{"$ref":"#/components/schemas/JSONObject"},"type":"array"},{"items":{"$ref":"#/components/schemas/JSON"},"type":"array"},{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"type":"null"}]},"JSONObject":{"additionalProperties":{"$ref":"#/components/schemas/JSON"},"type":"object"},"JurisdictionDto":{"properties":{"county":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"County","description":"County name"},"state":{"type":"string","title":"State","description":"State code"},"fips_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fips Code","description":"FIPS county code"}},"type":"object","required":["state"],"title":"JurisdictionDto","description":"Geographic jurisdiction."},"LatLong":{"properties":{"lat":{"type":"number","title":"Lat","description":"Latitude coordinate"},"lng":{"type":"number","title":"Lng","description":"Longitude coordinate"}},"type":"object","required":["lat","lng"],"title":"LatLong","description":"Latitude and longitude coordinates."},"LegalDescriptionDto":{"properties":{"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text","description":"Full legal description as raw text"}},"type":"object","title":"LegalDescriptionDto","description":"Legal description of a property."},"ListCountDto":{"properties":{"displayed":{"type":"integer","title":"Displayed","description":"Number of items returned in this list on this response"},"additional":{"type":"integer","title":"Additional","description":"Count of items linked to the person but not included in the response (i.e. upstream_total minus displayed)"}},"type":"object","required":["displayed","additional"],"title":"ListCountDto","description":"Displayed-vs-additional count for one list on a Search result."},"ListResponseDto_CountyDto_":{"properties":{"results":{"items":{"$ref":"#/components/schemas/CountyDto"},"type":"array","title":"Results"}},"type":"object","required":["results"],"title":"ListResponseDto[CountyDto]"},"ListResponseDto_StateDto_":{"properties":{"results":{"items":{"$ref":"#/components/schemas/StateDto"},"type":"array","title":"Results"}},"type":"object","required":["results"],"title":"ListResponseDto[StateDto]"},"ListWebhooksResponseDto":{"properties":{"results":{"items":{"$ref":"#/components/schemas/WebhookResponseDto"},"type":"array","title":"Results","description":"List of matching webhook subscriptions."}},"type":"object","required":["results"],"title":"ListWebhooksResponseDto","description":"Response for listing webhook subscriptions."},"MortgageDto":{"properties":{"amount":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Amount","description":"Mortgage principal amount in USD"},"date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date","description":"Mortgage origination date (YYYY-MM-DD)"},"due_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Due Date","description":"Mortgage maturity date (YYYY-MM-DD)"},"term":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Term","description":"Mortgage term in months"},"rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rate","description":"Interest rate as percentage"},"rate_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rate Type","description":"Rate type (fixed, adjustable)"}},"type":"object","title":"MortgageDto","description":"Mortgage information."},"NotFoundErrorModel":{"properties":{"error":{"$ref":"#/components/schemas/NotFoundErrorObject","description":"Error details object"},"wp_trace_id":{"type":"string","title":"Wp Trace Id","description":"Unique trace ID for request tracking","examples":["0c57473114bd49b3b3c4b585df624f2f"]}},"type":"object","required":["error","wp_trace_id"],"title":"NotFoundErrorModel","description":"Standardized 404 response model for not found errors."},"NotFoundErrorObject":{"properties":{"code":{"type":"integer","title":"Code","description":"HTTP status code","default":404,"examples":[404]},"message":{"type":"string","title":"Message","description":"Short error message","default":"Not Found","examples":["Not Found"]},"long_message":{"type":"string","title":"Long Message","description":"Detailed error description","examples":["Person id not found: PABcd12345e"]},"meta":{"type":"null","title":"Meta","description":"Additional metadata (always null for 404)"}},"type":"object","required":["long_message"],"title":"NotFoundErrorObject","description":"Error object specifically for 404 Not Found responses."},"OwnedProperty":{"properties":{"id":{"type":"string","title":"Id"},"address":{"type":"string","title":"Address"}},"type":"object","required":["id","address"],"title":"OwnedProperty","description":"Property ownership information for a person."},"OwnershipInfoDetailsDto":{"properties":{"owner_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Owner Type","description":"Type of ownership (individual, corporate, trust)"},"sale_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sale Date","description":"Most recent sale date (YYYY-MM-DD)"},"last_sale_amount":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Sale Amount","description":"Most recent sale price in USD"},"mortgages":{"items":{"$ref":"#/components/schemas/MortgageDto"},"type":"array","title":"Mortgages","description":"Mortgage records associated with the property","default":[]},"business_owners":{"items":{"$ref":"#/components/schemas/BusinessOwnerDto"},"type":"array","title":"Business Owners","description":"Business entities that own the property","default":[]},"person_owners":{"items":{"$ref":"#/components/schemas/PersonOwnerDto"},"type":"array","title":"Person Owners","description":"Individuals who own the property","default":[]}},"type":"object","title":"OwnershipInfoDetailsDto","description":"Detailed ownership information for property details."},"OwnershipInfoDto":{"properties":{"owner_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Owner Type","description":"Type of ownership (individual, corporate, trust)"},"business_owners":{"items":{"$ref":"#/components/schemas/BusinessOwnerDto"},"type":"array","title":"Business Owners","description":"Business entities that own the property","default":[]},"person_owners":{"items":{"$ref":"#/components/schemas/PersonOwnerDto"},"type":"array","title":"Person Owners","description":"Individuals who own the property","default":[]}},"type":"object","title":"OwnershipInfoDto","description":"Ownership information for search results."},"PaginationDto":{"properties":{"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor","description":"Cursor for the next page of results"}},"type":"object","title":"PaginationDto","description":"Cursor-based pagination metadata."},"PaginationMetadataDto":{"properties":{"result_count":{"type":"integer","title":"Result Count","description":"Total number of results matching the query"},"page":{"type":"integer","title":"Page","description":"Current page number"},"page_size":{"type":"integer","title":"Page Size","description":"Number of results per page"}},"type":"object","required":["result_count","page","page_size"],"title":"PaginationMetadataDto","description":"Pagination metadata returned with every search response."},"PartyAddressDto":{"properties":{"full_address":{"type":"string","title":"Full Address","description":"Formatted full address"}},"type":"object","required":["full_address"],"title":"PartyAddressDto","description":"Address associated with a party."},"PartyDto":{"properties":{"role":{"type":"string","title":"Role","description":"Party role"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Full name of person or entity"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type","description":"Entity type"},"person_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Person Id","description":"Whitepages person ID if resolved"},"addresses":{"items":{"$ref":"#/components/schemas/PartyAddressDto"},"type":"array","title":"Addresses","description":"Associated addresses"}},"type":"object","required":["role"],"title":"PartyDto","description":"Party involved in the event."},"PersonAddress":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"address":{"type":"string","title":"Address"},"latlong":{"anyOf":[{"$ref":"#/components/schemas/LatLong"},{"type":"null"}],"description":"Latitude and longitude coordinates"},"score":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Score","description":"Confidence score 0-100 showing how strongly this address is linked to the person."}},"type":"object","required":["id","address"],"title":"PersonAddress","description":"Address information for a person."},"PersonEmailDto":{"properties":{"email":{"type":"string","title":"Email","description":"Email address"}},"type":"object","required":["email"],"title":"PersonEmailDto","description":"Person email information."},"PersonOwnerDto":{"properties":{"id":{"type":"string","title":"Id","description":"Unique person identifier"},"name":{"type":"string","title":"Name","description":"Full name of the property owner"},"current_addresses":{"items":{"$ref":"#/components/schemas/AddressDto"},"type":"array","title":"Current Addresses","description":"Current residential addresses","default":[]},"phones":{"items":{"$ref":"#/components/schemas/PersonPhoneDto"},"type":"array","title":"Phones","description":"Phone numbers associated with the owner","default":[]},"emails":{"items":{"$ref":"#/components/schemas/PersonEmailDto"},"type":"array","title":"Emails","description":"Email addresses associated with the owner","default":[]}},"type":"object","required":["id","name"],"title":"PersonOwnerDto","description":"Person owner information."},"PersonPhoneDto":{"properties":{"number":{"type":"string","title":"Number","description":"Phone number in E.164 or national format"},"type":{"type":"string","enum":["Unknown","Mobile","Landline","VOIP","TollFree"],"title":"Type","description":"Phone line type (mobile, landline, voip)"}},"type":"object","required":["number","type"],"title":"PersonPhoneDto","description":"Person phone information."},"PersonResponseDto":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the person"},"name":{"type":"string","title":"Name","description":"Full name of the person"},"aliases":{"items":{"type":"string"},"type":"array","title":"Aliases","description":"List of aliases for the person"},"is_dead":{"type":"boolean","title":"Is Dead","description":"Whether the person is deceased"},"owned_properties":{"items":{"$ref":"#/components/schemas/OwnedProperty"},"type":"array","title":"Owned Properties","description":"List of properties owned by the person"},"phones":{"items":{"$ref":"#/components/schemas/PhoneNumber"},"type":"array","title":"Phones","description":"List of phone numbers, ordered by strength"},"date_of_birth":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date Of Birth","description":"Date of birth in ISO format (YYYY-MM-DD)"},"linkedin_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Linkedin Url","description":"LinkedIn profile URL for the person"},"company_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company Name","description":"Current or most recent company name"},"job_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Job Title","description":"Current or most recent job title"},"relatives":{"items":{"$ref":"#/components/schemas/Relative"},"type":"array","title":"Relatives","description":"List of relatives associated with the person"},"current_addresses":{"items":{"$ref":"#/components/schemas/PersonAddress"},"type":"array","title":"Current Addresses","description":"List of current residential addresses"},"historic_addresses":{"items":{"$ref":"#/components/schemas/PersonAddress"},"type":"array","title":"Historic Addresses","description":"List of historic residential addresses"},"emails":{"items":{"type":"string"},"type":"array","title":"Emails","description":"List of email addresses associated with the person"}},"type":"object","required":["id","name","aliases","is_dead","owned_properties","phones","date_of_birth","linkedin_url","company_name","job_title","relatives","current_addresses","historic_addresses","emails"],"title":"PersonResponseDto","description":"V1 response model for the person endpoint."},"PersonSearchResultDto":{"additionalProperties":true,"type":"object"},"PersonSearchV2ResponseDto":{"properties":{"results":{"items":{"$ref":"#/components/schemas/PersonSearchResultDto"},"type":"array","title":"Results"},"metadata":{"$ref":"#/components/schemas/PaginationMetadataDto"}},"type":"object","required":["results","metadata"],"title":"PersonSearchV2ResponseDto","description":"Search response containing results and pagination metadata."},"PersonV2ResponseDto":{"additionalProperties":true,"type":"object"},"PhoneNumber":{"properties":{"number":{"type":"string","title":"Number"},"type":{"$ref":"#/components/schemas/PhoneNumberTypeEnum"},"score":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Score","description":"Confidence score 0-100 showing how strongly this phone is linked to the person. Higher scores mean a stronger match."}},"type":"object","required":["number","type","score"],"title":"PhoneNumber","description":"Phone number with type classification and score."},"PhoneNumberTypeEnum":{"type":"string","enum":["mobile","landline","voip","tollfree","unknown"],"title":"PhoneNumberTypeEnum","description":"Enumeration of supported phone number types."},"PropertyAddressDto":{"properties":{"full_address":{"type":"string","title":"Full Address","description":"Complete formatted address string"},"line1":{"type":"string","title":"Line1","description":"Street address line (house number and street)"},"city":{"type":"string","title":"City","description":"City name"},"state":{"type":"string","title":"State","description":"Two-letter state code"},"zip":{"type":"string","title":"Zip","description":"5-digit ZIP code"},"house":{"type":"string","title":"House","description":"House or building number"},"street":{"type":"string","title":"Street","description":"Street name"},"street_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Street Type","description":"Street suffix (St, Ave, Blvd, etc.)"},"county":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"County","description":"County name"}},"type":"object","required":["full_address","line1","city","state","zip","house","street"],"title":"PropertyAddressDto","description":"Property address information."},"PropertyDetailsV2Dto":{"properties":{"property_id":{"type":"string","title":"Property Id","description":"Unique property identifier"},"address_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address Id","description":"Unique address identifier"},"apn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Apn","description":"Assessor's Parcel Number"},"property_address":{"$ref":"#/components/schemas/PropertyAddressDto","description":"Physical property address"},"mailing_address":{"anyOf":[{"$ref":"#/components/schemas/PropertyAddressDto"},{"type":"null"}],"description":"Owner mailing address if different from property"},"geolocation":{"anyOf":[{"$ref":"#/components/schemas/GeolocationDto"},{"type":"null"}],"description":"Geographic coordinates of the property"},"year_built":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year Built","description":"Year the property was originally constructed"},"effective_year_built":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Effective Year Built","description":"Effective year built accounting for major renovations"},"property_purpose":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Property Purpose","description":"Primary use (residential, commercial, industrial)"},"living_sqft":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Living Sqft","description":"Livable square footage"},"lot_sqft":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Lot Sqft","description":"Total lot size in square feet"},"ground_floor_sqft":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ground Floor Sqft","description":"Ground floor square footage"},"basement_sqft":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Basement Sqft","description":"Basement square footage"},"basement_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Basement Type","description":"Basement type (full, partial, none)"},"stories":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Stories","description":"Number of stories"},"bedrooms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Bedrooms","description":"Number of bedrooms"},"bathrooms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Bathrooms","description":"Number of bathrooms"},"has_pool":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Pool","description":"Whether the property has a pool"},"garage_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Garage Type","description":"Garage type (attached, detached, carport, none)"},"roof_covering":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Roof Covering","description":"Roof material type"},"heating_fuel":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Heating Fuel","description":"Primary heating fuel type"},"condition":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Condition","description":"Overall property condition"},"build_quality":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Build Quality","description":"Construction quality rating"},"owner_occupied":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Owner Occupied","description":"Whether property is owner-occupied"},"is_vacant":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Vacant","description":"Whether the property is currently vacant"},"assessed_info":{"anyOf":[{"$ref":"#/components/schemas/AssessedInfoDto"},{"type":"null"}],"description":"Tax assessment information"},"ownership_info":{"anyOf":[{"$ref":"#/components/schemas/OwnershipInfoDetailsDto"},{"type":"null"}],"description":"Detailed ownership and sale history"},"residents":{"items":{"$ref":"#/components/schemas/ResidentDto"},"type":"array","title":"Residents","description":"Current residents at the property","default":[]}},"type":"object","required":["property_id","property_address"],"title":"PropertyDetailsV2Dto","description":"Full property information for details endpoint."},"PropertyDto":{"properties":{"property_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Property Id","description":"Whitepages property ID"},"property_address":{"anyOf":[{"$ref":"#/components/schemas/EventPropertyAddressDto"},{"type":"null"}],"description":"Structured address"},"apn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Apn","description":"Assessor Parcel Number"},"parcel_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parcel Id","description":"Parcel identifier"},"geolocation":{"anyOf":[{"$ref":"#/components/schemas/EventGeolocationDto"},{"type":"null"}],"description":"Geocoordinates"},"legal_description":{"anyOf":[{"$ref":"#/components/schemas/LegalDescriptionDto"},{"type":"null"}],"description":"Legal description"},"bedrooms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Bedrooms","description":"Number of bedrooms"},"bathrooms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Bathrooms","description":"Number of bathrooms"},"living_sqft":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Living Sqft","description":"Living area in square feet"},"lot_sqft":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Lot Sqft","description":"Lot size in square feet"},"property_purpose":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Property Purpose","description":"Property type"}},"type":"object","title":"PropertyDto","description":"Property involved in the event."},"PropertyPersonResponseDto":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the person"},"name":{"type":"string","title":"Name","description":"Full name of the person"},"current_addresses":{"items":{"$ref":"#/components/schemas/FullAddress"},"type":"array","title":"Current Addresses","description":"List of current residential addresses"},"phones":{"items":{"$ref":"#/components/schemas/PhoneNumber"},"type":"array","title":"Phones","description":"List of phone numbers associated with the person, sorted by confidence score from highest to lowest"},"emails":{"items":{"type":"string"},"type":"array","title":"Emails","description":"List of email addresses associated with the person"}},"type":"object","required":["id","name","current_addresses","phones","emails"],"title":"PropertyPersonResponseDto","description":"Response model for the person endpoint."},"PropertyResponseDto":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the property"},"property_address":{"$ref":"#/components/schemas/FullAddress","description":"Full address of the property"},"owners":{"items":{"$ref":"#/components/schemas/PropertyPersonResponseDto"},"type":"array","title":"Owners","description":"List of owners of the property"},"residents":{"items":{"$ref":"#/components/schemas/PropertyPersonResponseDto"},"type":"array","title":"Residents","description":"List of residents of the property"}},"type":"object","required":["id","property_address","owners","residents"],"title":"PropertyResponseDto","description":"Response model for the property endpoint."},"PropertyV2Dto":{"properties":{"property_id":{"type":"string","title":"Property Id","description":"Unique property identifier"},"apn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Apn","description":"Assessor's Parcel Number"},"property_address":{"$ref":"#/components/schemas/PropertyAddressDto","description":"Physical property address"},"mailing_address":{"anyOf":[{"$ref":"#/components/schemas/PropertyAddressDto"},{"type":"null"}],"description":"Owner mailing address if different from property"},"geolocation":{"anyOf":[{"$ref":"#/components/schemas/GeolocationDto"},{"type":"null"}],"description":"Geographic coordinates of the property"},"ownership_info":{"anyOf":[{"$ref":"#/components/schemas/OwnershipInfoDto"},{"type":"null"}],"description":"Property ownership details"},"residents":{"items":{"$ref":"#/components/schemas/ResidentDto"},"type":"array","title":"Residents","description":"Current residents at the property","default":[]}},"type":"object","required":["property_id","property_address"],"title":"PropertyV2Dto","description":"Property information for search results."},"Relative":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the relative"},"name":{"type":"string","title":"Name","description":"Full name of the relative"}},"type":"object","required":["id","name"],"title":"Relative","description":"Relative information for a person."},"RequestLimitErrorModel":{"properties":{"message":{"type":"string","title":"Message","description":"Reason for the 429 response","examples":["Too Many Requests","Limit Exceeded","Query cap reached for this billing cycle. To restore access before it resets, upgrade to a plan with more included queries: https://www.whitepages.com/billing/manage-plan/pro-api"]},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Machine-readable discriminator. Present only on the usage-cap variant; absent on the two gateway-originated 429s.","examples":["usage_cap_exceeded"]},"error_instance_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Instance Id","description":"Unique id for this occurrence, for support requests","examples":["1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed"]},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit","description":"Billable queries allowed in the current period","examples":[1000]},"used":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Used","description":"Billable queries consumed in the current period","examples":[1000]},"reset_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reset At","description":"ISO 8601 instant when the allowance resets","examples":["2026-09-01T00:00:00+00:00"]},"upgrade_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Upgrade Url","description":"Where to restore access before the period resets. Paid subscribers are sent to manage-plan; free trials are sent to the pricing page.","examples":["https://www.whitepages.com/billing/manage-plan/pro-api"]}},"type":"object","required":["message"],"title":"RequestLimitErrorModel","description":"Response for request limit violations.\n\nThis response indicates the client exceeded service-imposed limits.\nThree distinct limits share the 429 status. The ``error`` field is the\ndiscriminator: only the third sets it.\n\n* **Rate limit** — gateway, ``{\"message\": \"Too Many Requests\"}``. Too\n  many requests per second. Clears on its own; retry with backoff.\n* **Gateway quota** — gateway, ``{\"message\": \"Limit Exceeded\"}``. The\n  usage plan's own hard ceiling. Persists until the quota resets.\n* **Usage cap** — this service, ``error: \"usage_cap_exceeded\"``. The\n  query allowance for the current period is spent. Waiting will not\n  help until ``reset_at``; ``upgrade_url`` is where the customer\n  restores access sooner.\n\nThe first two originate upstream of this service and carry only\n``message``. Every other field below appears on the usage-cap variant\nalone."},"ResidentDto":{"properties":{"id":{"type":"string","title":"Id","description":"Unique person identifier"},"name":{"type":"string","title":"Name","description":"Full name of the resident"},"current_addresses":{"items":{"$ref":"#/components/schemas/AddressDto"},"type":"array","title":"Current Addresses","description":"Current residential addresses","default":[]},"phones":{"items":{"$ref":"#/components/schemas/PersonPhoneDto"},"type":"array","title":"Phones","description":"Phone numbers associated with the resident","default":[]},"emails":{"items":{"$ref":"#/components/schemas/PersonEmailDto"},"type":"array","title":"Emails","description":"Email addresses associated with the resident","default":[]}},"type":"object","required":["id","name"],"title":"ResidentDto","description":"Resident information."},"ResultMetadataDto":{"properties":{"details_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Details Url","description":"Canonical Person Details URL for this record, or `null` when the record has no canonical Whitepages person id (e.g., a phone-owner record that did not resolve to a known person)"},"phones":{"$ref":"#/components/schemas/ListCountDto","description":"Display summary for phones"},"emails":{"$ref":"#/components/schemas/ListCountDto","description":"Display summary for emails"},"historic_addresses":{"$ref":"#/components/schemas/ListCountDto","description":"Display summary for historic addresses"},"owned_properties":{"$ref":"#/components/schemas/ListCountDto","description":"Display summary for owned properties"}},"type":"object","required":["details_url","phones","emails","historic_addresses","owned_properties"],"title":"ResultMetadataDto","description":"Per-result metadata summarizing the displayed-vs-additional counts.\n\nAttached only to Person Search results. Person Details continues to\nreturn the full lists with no metadata block."},"SearchDeedEventsResponseDto":{"properties":{"results":{"items":{"$ref":"#/components/schemas/EventResponseDto"},"type":"array","title":"Results","description":"Matching events"},"pagination":{"$ref":"#/components/schemas/PaginationDto","description":"Pagination metadata"}},"type":"object","required":["pagination"],"title":"SearchDeedEventsResponseDto","description":"Response for deed event search endpoints."},"StateCodeEnum":{"type":"string","enum":["AL","AK","AZ","AR","AS","CA","CO","CT","DE","DC","FL","GA","GU","HI","ID","IL","IN","IA","KS","KY","LA","ME","MD","MA","MI","MN","MS","MO","MT","NE","NV","NH","NJ","NM","NY","NC","ND","MP","OH","OK","OR","PA","PR","RI","SC","SD","TN","TX","TT","UT","VT","VA","VI","WA","WV","WI","WY"],"title":"StateCodeEnum","description":"Valid US State and Territory codes.\n\nThis enum contains all valid two-letter codes for US states and territories.\nUsed for parameter validation in API requests."},"StateDto":{"properties":{"slug":{"type":"string","title":"Slug","description":"Lowercase identifier for the state (e.g., 'wa')"},"state_code":{"type":"string","title":"State Code","description":"Two-letter state abbreviation code (e.g., 'WA')"},"name":{"type":"string","title":"Name","description":"Display name of the state (e.g., 'Washington')"},"supported_webhook_events":{"items":{"type":"string"},"type":"array","title":"Supported Webhook Events","description":"Event types available for webhook subscriptions in this state (e.g., ['deed.*'])"}},"type":"object","required":["slug","state_code","name","supported_webhook_events"],"title":"StateDto","description":"Representation of a US state or territory."},"TestDeliveryResultDto":{"properties":{"status_code":{"type":"integer","title":"Status Code","description":"HTTP status code returned by the webhook endpoint.","examples":[200,202]},"response_time_ms":{"type":"integer","title":"Response Time Ms","description":"Round-trip response time in milliseconds.","examples":[142]},"timestamp":{"type":"string","title":"Timestamp","description":"Timestamp when delivery was attempted (ISO 8601).","examples":["2026-02-20T14:45:00Z"]}},"type":"object","required":["status_code","response_time_ms","timestamp"],"title":"TestDeliveryResultDto","description":"Delivery result from a test webhook request."},"TestWebhookRequestDto":{"properties":{"event_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Event Type","description":"Event type to simulate. If omitted, defaults to the event type the webhook is subscribed to.","examples":["deed.*"]}},"type":"object","title":"TestWebhookRequestDto","description":"Request body for testing a webhook delivery.\n\nSends a synthetic notification to the webhook endpoint\nusing the same format as real deliveries. The event ID\nis a fixed identifier to distinguish test payloads."},"TestWebhookResponseDto":{"properties":{"success":{"type":"boolean","title":"Success","description":"Whether the test delivery succeeded (endpoint returned a 2xx status code)."},"delivery":{"$ref":"#/components/schemas/TestDeliveryResultDto","description":"Details about the delivery attempt."},"payload":{"$ref":"#/components/schemas/EventNotificationDto","description":"The notification payload that was POSTed to the webhook endpoint."}},"type":"object","required":["success","delivery","payload"],"title":"TestWebhookResponseDto","description":"Response from testing a webhook delivery.\n\nContains the delivery result and the exact notification\npayload that was sent to the endpoint."},"TimeRange":{"properties":{"start_date":{"type":"string","format":"date","title":"Start Date","description":"Start date of input duration range"},"end_date":{"type":"string","format":"date","title":"End Date","description":"End date of input duration range"}},"type":"object","required":["start_date","end_date"],"title":"TimeRange","description":"Time range object for the usage data."},"TransactionReasonDto":{"properties":{"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category","description":"Normalized category"},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text","description":"Human-readable label"}},"type":"object","title":"TransactionReasonDto","description":"Transaction classification."},"UpdateWebhookRequestDto":{"properties":{"url":{"anyOf":[{"type":"string","maxLength":2048,"minLength":1,"pattern":"^https://"},{"type":"null"}],"title":"Url","description":"New HTTPS URL for webhook delivery. Must use HTTPS.","examples":["https://api.example.com/webhooks/wp-events"]},"name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Name","description":"New human-readable label (max 255 characters).","examples":["Updated deed alerts"]},"event_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Event Type","description":"Event type to subscribe to, in `category.*` format. Currently only `deed.*` is supported.","examples":["deed.*"]},"region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region","description":"Geographic region in `type:value` format. Supported types: `state:{code}` (e.g., `state:tx`) for an entire state, or `county:{state}.{name}` (e.g., `county:tx.travis`) / `county:{fips}` (e.g., `county:48453`) for a single county. Currently only Texas and its counties are supported. Use the Regions API to discover valid values: `GET /v1/regions/states` and `GET /v1/regions/states/{state}/counties`.","examples":["state:tx","county:tx.williamson"]}},"type":"object","title":"UpdateWebhookRequestDto","description":"Request body for partially updating a webhook.\n\nOnly provided fields are updated; omitted fields remain\nunchanged."},"UsageData":{"properties":{"date":{"type":"string","format":"date","title":"Date","description":"Date of the usage data"},"request_count":{"type":"integer","title":"Request Count","description":"Request count for the usage date"}},"type":"object","required":["date","request_count"],"title":"UsageData","description":"Usage data for a specific date."},"UsageResponseDto":{"properties":{"time_range":{"$ref":"#/components/schemas/TimeRange","description":"Time range object for the usage data"},"usage_data":{"items":{"$ref":"#/components/schemas/UsageData"},"type":"array","title":"Usage Data","description":"List of usage data for each day in the input duration range"},"total_requests_in_timeperiod":{"type":"integer","title":"Total Requests In Timeperiod","description":"Total requests in the input duration range"}},"type":"object","required":["time_range","usage_data","total_requests_in_timeperiod"],"title":"UsageResponseDto","description":"Response model for the usage endpoint."},"WebhookResponseDto":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the webhook subscription.","examples":["a1b2c3d4-e5f6-7890-abcd-ef1234567890"]},"url":{"type":"string","title":"Url","description":"HTTPS endpoint URL where notifications are delivered.","examples":["https://api.example.com/webhooks/wp-events"]},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Human-readable label for the subscription.","examples":["Austin metro deed alerts"]},"event_type":{"type":"string","title":"Event Type","description":"The event type this webhook is subscribed to, in `category.*` format. Currently only `deed.*` is supported.","examples":["deed.*"]},"region":{"type":"string","title":"Region","description":"Geographic region this webhook is scoped to, in `type:value` format. Currently only Texas and its counties are supported.","examples":["county:tx.travis","state:tx"]},"status":{"type":"string","title":"Status","description":"Current status of the webhook. `active` webhooks receive event notifications; `inactive` webhooks are paused and do not receive deliveries.","examples":["active","inactive"]},"created_at":{"type":"string","title":"Created At","description":"Timestamp when the webhook was created (ISO 8601).","examples":["2026-01-15T09:30:00Z"]},"updated_at":{"type":"string","title":"Updated At","description":"Timestamp of the last modification (ISO 8601).","examples":["2026-02-20T14:45:00Z"]}},"type":"object","required":["id","url","event_type","region","status","created_at","updated_at"],"title":"WebhookResponseDto","description":"Webhook subscription response object."}},"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"x-api-key","description":"API key for authentication. Get your key from the Whitepages developer portal."}}},"tags":[{"name":"Person","description":"Search for individuals by name, phone number, and address."},{"name":"Property","description":"Search for property information and ownership details by address."},{"name":"Account","description":"Account management endpoints for retrieving usage statistics."},{"name":"Webhooks","description":"Manage webhook subscriptions for near-live property event notifications. Register an HTTPS endpoint, choose an event type and geographic region, and receive POST notifications when matching events occur. Currently supports `deed.*` events in Texas counties."}],"servers":[{"url":"https://api.whitepages.com"}],"security":[{"ApiKeyAuth":[]}]}