openapi: 3.0.3 info: title: ATTOM Area Events API description: 'The ATTOM API (delivered as ATTOM Cloud) provides REST access to ATTOM Data Solutions'' national warehouse of property, real estate, and location data covering 158+ million U.S. properties. Resources are queried by address, APN + FIPS, ATTOM ID, radius around coordinates, or geoIdV4, and cover property characteristics, tax assessments, automated valuations (AVM), sales and deed history, mortgage records, area and boundary geographies, schools, community/neighborhood data, points of interest, transportation noise, consolidated all-event history, and home equity. Every request requires an API key passed in the `apikey` header. The URI pattern for the classic Property API is `{base}/propertyapi/v1.0.0/{resource}/{package}?{query}`; version 4 (v4) endpoints drop the component name and use a simplified `{base}/v4/{resource}` form. Area geography endpoints live under `areaapi/v2.0.0`. Endpoints under `propertyapi/v1.0.0` (property, assessment, avm, sale, saleshistory, salestrend, school, allevents, valuation) are grounded in ATTOM''s published endpoint reference. The v4 community, POI, area/boundary, and transportation-noise operations are modeled from ATTOM''s documented resource groups; confirm exact query parameters against the live docs.' version: 1.0.0 contact: name: ATTOM Data Solutions url: https://www.attomdata.com x-logo: url: https://kinlane-images.s3.amazonaws.com/shared/apis-json/apis-json-logo.jpg servers: - url: https://api.gateway.attomdata.com description: ATTOM API gateway (production) security: - apiKeyAuth: [] tags: - name: Events description: Consolidated all-event property history. paths: /propertyapi/v1.0.0/allevents/detail: get: operationId: getAllEventsDetail tags: - Events summary: All events detail description: A consolidated view of every event on a property - assessment, AVM, sale, deed, and mortgage - in a single call. parameters: - $ref: '#/components/parameters/Address1' - $ref: '#/components/parameters/Address2' - $ref: '#/components/parameters/AttomId' responses: '200': $ref: '#/components/responses/PropertyResponse' '401': $ref: '#/components/responses/Unauthorized' /propertyapi/v1.0.0/allevents/snapshot: get: operationId: getAllEventsSnapshot tags: - Events summary: All events snapshot description: Summary of property events for properties in an area. parameters: - $ref: '#/components/parameters/PostalCode' - $ref: '#/components/parameters/Latitude' - $ref: '#/components/parameters/Longitude' - $ref: '#/components/parameters/Radius' responses: '200': $ref: '#/components/responses/PropertyResponse' '401': $ref: '#/components/responses/Unauthorized' components: responses: PropertyResponse: description: A status envelope plus an array of property records. content: application/json: schema: $ref: '#/components/schemas/PropertyResponse' Unauthorized: description: Missing or invalid API key. content: application/json: schema: $ref: '#/components/schemas/StatusEnvelope' schemas: Property: type: object description: A property record. ATTOM returns a rich, package-dependent object; key groups are summarized here. properties: identifier: type: object properties: obPropId: type: string attomId: type: integer fips: type: string apn: type: string address: type: object properties: line1: type: string line2: type: string locality: type: string countrySubd: type: string postal1: type: string location: type: object properties: latitude: type: string longitude: type: string geoIdV4: type: object additionalProperties: type: string summary: type: object additionalProperties: true building: type: object additionalProperties: true assessment: type: object additionalProperties: true avm: type: object additionalProperties: true sale: type: object additionalProperties: true mortgage: type: object additionalProperties: true owner: type: object additionalProperties: true Status: type: object description: The status block returned on every ATTOM response. properties: version: type: string code: type: integer msg: type: string total: type: integer page: type: integer pagesize: type: integer PropertyResponse: type: object properties: status: $ref: '#/components/schemas/Status' property: type: array items: $ref: '#/components/schemas/Property' StatusEnvelope: type: object properties: status: $ref: '#/components/schemas/Status' parameters: Radius: name: radius in: query schema: type: number format: double default: 5 maximum: 20 description: Search radius in miles (default 5, maximum 20). Address2: name: address2 in: query schema: type: string description: Second line of the address (city, state). Longitude: name: longitude in: query schema: type: number format: double description: Longitude of the search center. Latitude: name: latitude in: query schema: type: number format: double description: Latitude of the search center. Address1: name: address1 in: query schema: type: string description: First line of the street address (house number and street). AttomId: name: attomid in: query schema: type: string description: ATTOM-assigned property identifier. PostalCode: name: postalcode in: query schema: type: string description: 5-digit ZIP / postal code to scope the search. securitySchemes: apiKeyAuth: type: apiKey in: header name: apikey description: 'Your unique ATTOM API key, assigned by ATTOM and passed in the `apikey` request header. Also send `Accept: application/json` (or application/xml).'