Developers

REST API

Query millions of properties — ownership, valuations, characteristics, and motivation scoring — straight from your own app or model. A single API key, one base URL, JSON in and out.

Base URL

https://www.subdivvy.com/api/v1

Authentication

Create an API key in your dashboard and send it as a Bearer token on every request. Keys share your account's credit pool with the app, MCP, and CRM push.

curl https://www.subdivvy.com/api/v1/credits \
  -H "Authorization: Bearer sk_subdivvy_your_key_here"

Credits

Browsing and reading are free — search and fetch as much as you want. Locked properties return address and location only. Unlocking a property reveals its full insights (owner, equity, motivation, contact) for 1 credit, permanently and shared across your whole account.

GET/properties

Search properties

List properties matching filters. Free. A state or countyFips filter is required so the query stays fast at nationwide scale. Locked rows omit insight fields.

Query parameters

state string

Two-letter state code, e.g. FL or TX. Required unless countyFips is set.

countyFips string

5-digit county FIPS, e.g. 12057 (Hillsborough).

city / zip string

Narrow to a city or ZIP.

propertyType string

sfr, condo, multifamily, vacant_land, …

motivationTier string

hot, warm, cool, or cold.

minValue / maxValue number

Market (just) value bounds, in dollars.

minEquityPct number

Minimum estimated equity, as a percentage.

absentee / outOfState / taxDelinquent / vacant bool

Owner and distress flags (true / false).

minBeds number

Minimum bedrooms.

limit / offset number

Page size (1–500, default 50) and offset.

curl "https://www.subdivvy.com/api/v1/properties?state=FL&motivationTier=hot&minEquityPct=50&limit=25" \
  -H "Authorization: Bearer sk_subdivvy_your_key_here"
{
  "data": [
    {
      "id": 8123456,
      "situs_address": "1450 NE 56th St",
      "situs_city": "Fort Lauderdale",
      "situs_state": "FL",
      "situs_zip": "33334",
      "motivation_tier": null,      // insight fields null until unlocked
      "unlocked": false
    }
  ],
  "pagination": { "limit": 25, "offset": 0, "returned": 25, "has_more": true }
}
GET/properties/:id

Get a property

Fetch a single property by id. Free. Returns address and location while locked; full insights once your account has unlocked it.

curl https://www.subdivvy.com/api/v1/properties/8123456 \
  -H "Authorization: Bearer sk_subdivvy_your_key_here"
POST/unlock

Unlock properties

Unlock full insights for a set of ids. Costs 1 credit per newly-unlocked property (already-unlocked ids are free). Returns the complete records you now own.

curl -X POST https://www.subdivvy.com/api/v1/unlock \
  -H "Authorization: Bearer sk_subdivvy_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{ "state": "FL", "ids": [8123456, 8123457] }'
{
  "newly_unlocked": 2,
  "unlocked_ids": [8123456, 8123457],
  "credits_remaining": 99998,
  "data": [ { "id": 8123456, "owner_name": "…", "estimated_equity": "…", "motivation_tier": "hot", … } ]
}
GET/credits

Check credit balance

Return your account's credit usage and remaining balance for the current billing period.

{
  "data": { "unlimited": false, "limit": 100000, "used": 2, "remaining": 99998, "period": "2026-07" }
}

Rate limits

Each API key is limited to 120 requests per minute. Exceeding it returns 429 with a Retry-After header — back off and retry. Need a higher ceiling? Talk to us.

Errors

Errors use standard HTTP status codes and a consistent JSON envelope. 401 for a missing or invalid key, 400 for bad parameters, 404 for an unknown id.

{ "error": { "code": "missing_filter", "message": "A `state` or `countyFips` filter is required." } }

Ready to build?

Create a key and start pulling data — every plan includes API access.