openapi: 3.0.3 info: title: ATTOM Area School 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: School description: Schools, school districts, and attendance zones. paths: /propertyapi/v1.0.0/property/detailwithschools: get: operationId: getPropertyDetailWithSchools tags: - School summary: Property detail with schools description: Property characteristics plus the school attendance zones and schools serving the property. 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/school/search: get: operationId: getSchoolSearch tags: - School summary: School search description: Search for schools within a radius of coordinates or within a school attendance area / geoIdV4. parameters: - $ref: '#/components/parameters/GeoIdV4' - $ref: '#/components/parameters/Latitude' - $ref: '#/components/parameters/Longitude' - $ref: '#/components/parameters/Radius' responses: '200': $ref: '#/components/responses/AreaResponse' '401': $ref: '#/components/responses/Unauthorized' /propertyapi/v1.0.0/school/profile: get: operationId: getSchoolProfile tags: - School summary: School profile description: Profile for an individual school - grades, enrollment, ratings, and location. parameters: - $ref: '#/components/parameters/GeoIdV4' responses: '200': $ref: '#/components/responses/AreaResponse' '401': $ref: '#/components/responses/Unauthorized' /propertyapi/v1.0.0/school/district: get: operationId: getSchoolDistrict tags: - School summary: School district description: Information about a school district, including boundaries and enrollment. parameters: - $ref: '#/components/parameters/GeoIdV4' responses: '200': $ref: '#/components/responses/AreaResponse' '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' AreaResponse: description: A status envelope plus an array of area, school, community, or POI records. content: application/json: schema: $ref: '#/components/schemas/GenericResponse' 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 GenericResponse: type: object description: Generic envelope for area, school, community, POI, and boundary responses. properties: status: $ref: '#/components/schemas/Status' 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. GeoIdV4: name: geoIdV4 in: query schema: type: string description: 32-character geoIdV4 area identifier (required by v4-and-above endpoints). 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).'