ATTOM Area API

Area and boundary lookup for state, county, CBSA, neighborhood, school zone, ZIP, and other geographic units. Resources include /area/boundary/detail (GeoJSON boundary polygons), /area/hierarchy/lookup (geographic hierarchy for a lat/lon), /area/state/lookup, /area/county/lookup, /area/cbsa/lookup, /area/geoid/lookup, /area/geoId/legacyLookup, and the v4 /v4/location/lookup that resolves any geoIdV4 to its location metadata.

ATTOM Area API is one of 5 APIs that ATTOM publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 1 machine-runnable capability that can be deployed as REST, MCP, or Agent Skill surfaces via Naftiko and 1 JSON Schema definition.

Tagged areas include Geography, Boundary, Parcel, GeoID, and CBSA. The published artifact set on APIs.io includes API documentation, an OpenAPI specification, sample payloads, 1 Naftiko capability spec, and 1 JSON Schema.

OpenAPI Specification

attom-area-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: ATTOM Area API
  description: |
    ATTOM Area API provides geographic boundary and hierarchy lookup for U.S.
    states, counties, CBSAs, ZIPs, neighborhoods, and school zones. Resolve a
    latitude/longitude to a geographic hierarchy, list counties within a state,
    fetch GeoJSON parcel/area boundaries, and resolve any ATTOM v4 geography
    identifier (geoIdV4) to its location metadata.
  version: v1.0.0
  contact:
    name: ATTOM Data Customer Care
    email: [email protected]
    url: https://api.developer.attomdata.com/
  license:
    name: ATTOM Data Terms of Use
    url: https://www.attomdata.com/terms-of-use/
servers:
  - url: https://api.gateway.attomdata.com
    description: ATTOM API Production Gateway
security:
  - ApiKeyAuth: []
tags:
  - name: Boundary
    description: GeoJSON boundary polygons by geography identifier.
  - name: Hierarchy
    description: Geographic hierarchy lookup from coordinates.
  - name: Lookup
    description: Lookup of state, county, CBSA, and geoID metadata.
paths:
  /areaapi/area/boundary/detail:
    get:
      summary: Get Boundary Detail
      description: Return GeoJSON boundary polygons for the requested geography identifier.
      operationId: getBoundaryDetail
      tags: [Boundary]
      parameters:
        - name: geoIdV4
          in: query
          required: true
          description: ATTOM v4 geography identifier.
          schema:
            type: string
        - name: format
          in: query
          required: false
          description: Boundary serialization format.
          schema:
            type: string
            enum: [geojson, wkt]
            default: geojson
        - name: mime
          in: query
          required: false
          description: Response media type.
          schema:
            type: string
            enum: [json, xml]
            default: json
      responses:
        '200':
          description: GeoJSON boundary envelope.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoundaryEnvelope'
        '400': { $ref: '#/components/responses/ErrorResponse' }
        '401': { $ref: '#/components/responses/ErrorResponse' }
  /areaapi/area/hierarchy/lookup:
    get:
      summary: Lookup Geographic Hierarchy
      description: Return the geographic hierarchy (state, county, CBSA, ZIP, neighborhood) for a latitude/longitude.
      operationId: getHierarchyLookup
      tags: [Hierarchy]
      parameters:
        - name: latitude
          in: query
          required: true
          description: Latitude of the location.
          schema:
            type: number
            format: float
        - name: longitude
          in: query
          required: true
          description: Longitude of the location.
          schema:
            type: number
            format: float
      responses:
        '200':
          description: Geographic hierarchy envelope.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HierarchyEnvelope'
  /areaapi/area/state/lookup:
    get:
      summary: Lookup State
      description: Return state metadata for the requested geography identifier.
      operationId: getStateLookup
      tags: [Lookup]
      parameters:
        - name: geoIdV4
          in: query
          required: true
          description: ATTOM v4 geography identifier.
          schema:
            type: string
        - name: mime
          in: query
          required: false
          schema:
            type: string
            default: json
      responses:
        '200':
          description: State lookup envelope.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AreaEnvelope'
  /areaapi/area/county/lookup:
    get:
      summary: Lookup Counties By State
      description: Return all counties within the requested state.
      operationId: getCountyLookup
      tags: [Lookup]
      parameters:
        - name: stateId
          in: query
          required: true
          description: ATTOM state identifier or FIPS state code.
          schema:
            type: string
      responses:
        '200':
          description: County lookup envelope.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AreaEnvelope'
  /areaapi/area/cbsa/lookup:
    get:
      summary: Lookup CBSAs
      description: Return Core-Based Statistical Areas (CBSAs) for a state geography identifier.
      operationId: getCbsaLookup
      tags: [Lookup]
      parameters:
        - name: geoIdV4
          in: query
          required: true
          description: ATTOM v4 state geography identifier.
          schema:
            type: string
      responses:
        '200':
          description: CBSA lookup envelope.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AreaEnvelope'
  /areaapi/area/geoid/lookup:
    get:
      summary: Lookup By GeoID
      description: Resolve an ATTOM legacy or v4 geoID with optional geography type and pagination.
      operationId: getGeoIdLookup
      tags: [Lookup]
      parameters:
        - name: geoId
          in: query
          required: true
          description: ATTOM geoID.
          schema:
            type: string
        - name: geoType
          in: query
          required: false
          description: Geography-type abbreviation (e.g., ST state, CO county, ND neighborhood, ZI ZIP).
          schema:
            type: string
        - name: page
          in: query
          required: false
          schema:
            type: integer
            default: 1
        - name: pageSize
          in: query
          required: false
          schema:
            type: integer
            default: 100
      responses:
        '200':
          description: GeoID lookup envelope.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AreaEnvelope'
  /areaapi/area/geoId/legacyLookup:
    get:
      summary: Lookup Legacy GeoCode
      description: Resolve a legacy ATTOM geoID (numeric county or state code) to area metadata.
      operationId: getGeoCodeLegacyLookup
      tags: [Lookup]
      parameters:
        - name: geoId
          in: query
          required: true
          description: Legacy ATTOM geoID.
          schema:
            type: string
      responses:
        '200':
          description: Legacy GeoCode envelope.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AreaEnvelope'
  /v4/location/lookup:
    get:
      summary: Lookup Location By GeoIdV4
      description: Resolve any geoIdV4 (with optional geography-type abbreviation) to its location metadata.
      operationId: getLocationLookupV4
      tags: [Lookup]
      parameters:
        - name: geoidv4
          in: query
          required: false
          description: ATTOM v4 geography identifier.
          schema:
            type: string
        - name: geographyTypeAbbreviation
          in: query
          required: false
          description: Two-letter geography-type abbreviation (CO county, ST state, ND neighborhood, ZI ZIP, etc.).
          schema:
            type: string
            enum: [CO, ST, ND, ZI, MS, NB, SC]
      responses:
        '200':
          description: V4 location envelope.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AreaEnvelope'
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: apikey
      description: ATTOM-issued API key. Pass on every request via the `apikey` header.
  schemas:
    Status:
      type: object
      properties:
        version:
          type: string
        code:
          type: integer
        msg:
          type: string
        total:
          type: integer
    Boundary:
      type: object
      properties:
        geoIdV4:
          type: string
        type:
          type: string
        geometry:
          type: object
          description: GeoJSON geometry.
          properties:
            type:
              type: string
              enum: [Polygon, MultiPolygon]
            coordinates:
              type: array
              items:
                type: array
        properties:
          type: object
    BoundaryEnvelope:
      type: object
      properties:
        status:
          $ref: '#/components/schemas/Status'
        response:
          type: object
          properties:
            type:
              type: string
              enum: [FeatureCollection]
            features:
              type: array
              items:
                $ref: '#/components/schemas/Boundary'
    HierarchyLevel:
      type: object
      properties:
        geoIdV4:
          type: string
        geoTypeAbbreviation:
          type: string
        name:
          type: string
    HierarchyEnvelope:
      type: object
      properties:
        status:
          $ref: '#/components/schemas/Status'
        response:
          type: object
          properties:
            hierarchy:
              type: array
              items:
                $ref: '#/components/schemas/HierarchyLevel'
    Area:
      type: object
      properties:
        geoIdV4:
          type: string
        geoId:
          type: string
        name:
          type: string
        type:
          type: string
        countrySubd:
          type: string
        country:
          type: string
        center:
          type: object
          properties:
            latitude:
              type: string
            longitude:
              type: string
    AreaEnvelope:
      type: object
      properties:
        status:
          $ref: '#/components/schemas/Status'
        response:
          type: object
          properties:
            results:
              type: array
              items:
                $ref: '#/components/schemas/Area'
    Error:
      type: object
      properties:
        Response:
          type: object
          properties:
            status:
              $ref: '#/components/schemas/Status'
  responses:
    ErrorResponse:
      description: ATTOM error envelope.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'