Overview
ATTOM Data is a commercial real-estate data provider covering ~150M U.S. properties with public-records-grade data: assessments, sales history, AVMs, ownership, schools, foreclosure events. Access requires a paid ATTOM API subscription — there is no free tier suitable for production use, and a sales conversation with ATTOM is part of standard onboarding.
Setup guide
Get your API key
- Visit the ATTOM developer portal and sign in (or contact ATTOM Sales if you don't yet have an account —
https://www.attomdata.com/contact/is the entry point). - Once logged in, your API key is shown on the My Account / Subscriptions page.
- Copy the key value — it's a single opaque string that ATTOM authenticates via the
apikeyheader (lowercase, verbatim).
Add it to Ingest
In the Ingest UI under Connectors → ATTOM Data, paste the key. Ingest stores it in AWS Secrets Manager under the key apikey.
Mind the limits
ATTOM does not publish a per-second rate cap, so the Ingest runtime defaults to a conservative 2 req/sec with AIMD backoff on 429 responses. Errors with status 400 (no results — treated as an empty payload, not a failure), 401 (bad key), 403 (out-of-scope endpoint for your subscription), or 404 (no record found) are handled inline.
The response envelope is:
{ "status": { "code": 0, "msg": "SuccessWithResult", "total": 1, "page": 1, "pagesize": 10 }, "property": [ { ... } ] }
status.code == 0 means success with results; status.code == 400 means success with zero results (the connector treats this as an empty array, not an error).
Pick endpoints
ATTOM endpoints fall into two groups:
- Seed —
property_idresolves an address to ATTOM's internalattomId. This is the gateway endpoint; almost every other endpoint expects an attomId.salestrendis the one independent endpoint, providing zip-level market trends. - Per-property (joined to
property_id) —property_expandedprofile,sale_detail,saleshistory_expanded,assessment_detail,assessmenthistory,avm_detail,avmhistory,rental_avm,allevents,school_search. Enable the ones your use case needs; each is orthogonal.
For most customers the property_expandedprofile + sale_detail + assessment_detail triad covers the canonical "property snapshot" use case. AVM endpoints are for valuation work; the schools endpoint is for housing/relocation tools.
Supported streams
10 endpoints are available out of the box. Each endpoint syncs into its own Iceberg table in Snowflake.
| Endpoint | Description | Reference |
|---|---|---|
| allevents allevents | – | |
| assessment_detail assessment_detail | – | |
| assessmenthistory assessmenthistory | – | |
| avm_detail avm_detail | – | |
| avmhistory avmhistory | – | |
| property_expandedprofile property_expandedprofile | – | |
| property_id property_id | – | |
| rental_avm rental_avm | – | |
| sale_detail sale_detail | – | |
| saleshistory_expanded saleshistory_expanded | – |
Authentication
- Auth type
- API Key
- Sent as header
apikey- Provider docs
- api.developer.attomdata.com ↗
Performance & limits
- Rate limit
- Conservative 2 req/sec by default; ATTOM does not publish a per-second cap and relies on AIMD backoff. Pagination uses `page` (1-indexed) + `pagesize` (max 100), but the runtime fetches single pages and enumerates more pages via additional generator rows.