API KEYS

API Key Usage Documentation

Use API keys with the x-api-key header for supported unlocked list and bulk verification routes.

Last updated: March 9, 2026

Authentication Header

Include your generated API key in every request header:

Header Value
x-api-key: <api_key>

API key values are shown only once at creation. Store them securely in your server-side secret manager.

Quickstart Example

Example request using API key authentication:

cURL
curl -X POST "https://prospector.estateprospector.com/api/private/user/getDataByConditions" \
  -H "Content-Type: application/json" \
  -H "x-api-key: <api_key>" \
  -d '{
    "filterList":[{"field":"State","value":"CA"}],
    "page":1,
    "sortBy":"Office Name",
    "sortOrder":"DESC"
  }'

Scopes

unlocked:list:read

Unlocked List Fetch

Use this scope to fetch unlocked list data through the private user data route.

email:verify

Bulk Email Verification

Use this scope to preview, create, list, inspect, and download verification jobs.

Supported Routes

MethodRouteRequired ScopeDescription
POST/api/private/user/getDataByConditionsunlocked:list:readFetch unlocked records based on query conditions.
POST/api/bulk-email-verification/previewemail:verifyPreview uploaded file columns and estimate verification volume.
POST/api/bulk-email-verification/jobsemail:verifyCreate a bulk verification job.
GET/api/bulk-email-verification/jobsemail:verifyList bulk verification jobs.
GET/api/bulk-email-verification/jobs/:jobIdemail:verifyGet a job status and result summary.
GET/api/bulk-email-verification/jobs/:jobId/downloademail:verifyDownload results for a completed job.

POST /api/private/user/getDataByConditions Request Body

Use this payload structure for unlocked list fetch requests with API keys.

JSON Schema Example
{
  "filterList": [
    { "field": "State", "value": "AK" }
  ],
  "page": 1,
  "sortBy": "Office Name",
  "sortOrder": "DESC"
}

Body Fields

FieldTypeRequiredDefaultRules
filterListarrayNo[]Array of filter objects.
pagenumberNo1Page number.
sortBystringNo-One of: State, County, City, Association, Office Name, License Type, Zip.
sortOrderstringNoASCASC or DESC.

filterList Item Format

FieldRules
fieldOne of State, County, City, Zip, Association, Office Name, License Type.
valueSemicolon-separated string values, formatted per field type.

value Format by field

FieldExample Value
StateAK;CA
CountyAK=Anchorage;CA=Los Angeles
CityAK=Anchorage=Anchorage;CA=Los Angeles=Beverly Hills
ZipAK=Anchorage=Anchorage=99501;CA=Los Angeles=Beverly Hills=90210
AssociationAssociation A;Association B
Office NameOffice 1;Office 2
License TypeBroker;Salesperson;Associate Broker;Real Estate Broker

Validation Notes

  • If sortBy is invalid, API returns HTTP 400.
  • If sortOrder is not ASC or DESC, API returns HTTP 400.
  • If filterList is not an array, API returns HTTP 400.
  • If a filter.field is outside the allowed set, API returns HTTP 400.
  • For best stability, always send non-empty string value for each filter.

Rate Limits

API key requests are rate-limited to protect service stability. Limits are enforced server-side and can vary by account plan and endpoint sensitivity.

  • When limit is exceeded, the API returns HTTP 429 (Too Many Requests).
  • Implement exponential backoff and retry with jitter for safe recovery.
  • Avoid sending burst traffic from parallel workers using the same API key.
  • Use separate API keys per integration to isolate traffic patterns.

Common Status Codes

CodeStatusMeaning
200SuccessRequest completed successfully.
400Bad RequestInvalid request payload, parameters, or schema.
401UnauthorizedMissing or invalid API key header.
403ForbiddenAPI key lacks required scope for this route.
429Too Many RequestsRate limit exceeded. Retry with backoff.
500Server ErrorUnexpected backend error. Retry or contact support.

Security Recommendations

  • Never expose API keys in frontend client code or public repositories.
  • Rotate keys regularly and revoke keys immediately if compromise is suspected.
  • Use separate keys per integration and environment for safer isolation.
  • Grant only required scopes to minimize risk.