Introducing Webhooks — Get live property deed updates delivered to you. Learn more →
Whitepages
Webhooks

Create a webhook subscription

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.

POST
/v1/webhooks/

Authorization

ApiKeyAuth

x-api-key<token>

API key for authentication. Get your key from the Whitepages developer portal.

In: header

Request Body

application/json

url*string

HTTPS URL where webhook notifications will be delivered via POST. Must use HTTPS.

Match^https://
Length1 <= length <= 2048
Example"https://api.example.com/webhooks/wp-events"
name?Name|Name

Optional human-readable label for identifying this subscription (max 255 characters).

Example"Austin metro deed alerts"
event_type*string

Event type to subscribe to, in category.* format. Currently only deed.* is supported.

Example"deed.*"
region*string

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.

Example"state:tx"
Example"county:tx.travis"
Example"county:48453"

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://api.whitepages.com/v1/webhooks/" \  -H "Content-Type: application/json" \  -d '{    "url": "https://api.example.com/webhooks/wp-events",    "event_type": "deed.*",    "region": "state:tx"  }'
{
  "result": {
    "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "url": "https://api.example.com/webhooks/wp-events",
    "name": "Austin metro deed alerts",
    "event_type": "deed.*",
    "region": "county:tx.travis",
    "status": "active",
    "created_at": "2026-01-15T09:30:00Z",
    "updated_at": "2026-02-20T14:45:00Z"
  }
}
{
  "error": {
    "code": 400,
    "message": "Bad Request",
    "long_message": "Invalid person ID format: 'sdf'. Person ID must start with 'P' followed by exactly 10 alphanumeric characters. Example: 'PABcd12345e' or 'P1234567890'.",
    "meta": null
  },
  "wp_trace_id": "3b0b537a60d84057817bb40563ca5c99"
}
{
  "message": "Forbidden"
}
{
  "error": {
    "code": 400,
    "message": "Short error message",
    "long_message": "The request was malformed",
    "meta": {
      "field": "email",
      "validation_error": "Invalid email format"
    }
  },
  "wp_trace_id": "550e8400-e29b-41d4-a716-446655440000"
}
{
  "error": {
    "code": 400,
    "message": "Short error message",
    "long_message": "The request was malformed",
    "meta": {
      "field": "email",
      "validation_error": "Invalid email format"
    }
  },
  "wp_trace_id": "550e8400-e29b-41d4-a716-446655440000"
}
{
  "message": "Too Many Requests"
}
{
  "error": {
    "code": 400,
    "message": "Short error message",
    "long_message": "The request was malformed",
    "meta": {
      "field": "email",
      "validation_error": "Invalid email format"
    }
  },
  "wp_trace_id": "550e8400-e29b-41d4-a716-446655440000"
}