ATTOM POI API

Points of Interest search and category lookup across 120+ business categories — restaurants, banks, shopping, services, and more. Search by point (lat/lon + radius) or address; filter by category, line of business, and industry. Returns POIs with names, categories, distances, and addresses.

ATTOM POI 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.

Tagged areas include Points Of Interest, Neighborhood, Business, and Search. The published artifact set on APIs.io includes API documentation, an OpenAPI specification, sample payloads, and 1 Naftiko capability spec.

OpenAPI Specification

attom-poi-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: ATTOM POI API
  description: |
    ATTOM Points of Interest (POI) API returns businesses and points of interest
    by point (lat/lon + radius) or by address. Supports 120+ business categories
    including restaurants, banks, retail, services, and recreation, with optional
    filters by line of business, industry, and category name.
  version: v4
  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: POI Search
    description: Search points of interest by point or address.
  - name: POI Categories
    description: Lookup of POI categories, lines of business, and industries.
paths:
  /v4/neighborhood/poi:
    get:
      summary: Search POIs
      description: |
        Search points of interest. Provide either `point` (lat/lon) **or** `address`
        plus a `radius`. Optional filters narrow results to categories, lines of business,
        or specific industries.
      operationId: searchPois
      tags: [POI Search]
      parameters:
        - name: point
          in: query
          required: false
          description: Latitude,longitude pair (e.g., "39.7710,-104.9636").
          schema:
            type: string
        - name: address
          in: query
          required: false
          description: Postal address; combine with `radius` to search around it.
          schema:
            type: string
        - name: radius
          in: query
          required: true
          description: Search radius in miles.
          schema:
            type: number
            format: float
            minimum: 0
        - name: category
          in: query
          required: false
          description: Comma-separated category names.
          schema:
            type: string
        - name: lineofbusiness
          in: query
          required: false
          description: Comma-separated line-of-business codes.
          schema:
            type: string
        - name: industry
          in: query
          required: false
          description: Comma-separated industry codes.
          schema:
            type: string
      responses:
        '200':
          description: POI search envelope.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PoiEnvelope'
        '400': { $ref: '#/components/responses/ErrorResponse' }
        '401': { $ref: '#/components/responses/ErrorResponse' }
  /v4/neighborhood/poi/categorylookup:
    get:
      summary: Lookup POI Categories
      description: Look up POI category metadata by category name, line of business, or industry.
      operationId: lookupPoiCategories
      tags: [POI Categories]
      parameters:
        - name: category
          in: query
          required: false
          description: Category name to look up.
          schema:
            type: string
        - name: lineofbusiness
          in: query
          required: false
          description: Line-of-business code or name.
          schema:
            type: string
        - name: industry
          in: query
          required: false
          description: Industry code or name.
          schema:
            type: string
      responses:
        '200':
          description: Category lookup envelope.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoryEnvelope'
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: apikey
      description: ATTOM-issued API key.
  schemas:
    Status:
      type: object
      properties:
        version:
          type: string
        code:
          type: integer
        msg:
          type: string
        total:
          type: integer
    Poi:
      type: object
      properties:
        Id:
          type: string
        BusinessName:
          type: string
        Address:
          type: string
        City:
          type: string
        State:
          type: string
        ZipCode:
          type: string
        PhoneNumber:
          type: string
        Latitude:
          type: number
        Longitude:
          type: number
        Distance:
          type: number
          description: Distance from the search point, in miles.
        Category:
          type: string
        LineOfBusiness:
          type: string
        Industry:
          type: string
    PoiEnvelope:
      type: object
      properties:
        status:
          $ref: '#/components/schemas/Status'
        response:
          type: object
          properties:
            results:
              type: array
              items:
                $ref: '#/components/schemas/Poi'
    Category:
      type: object
      properties:
        category:
          type: string
        lineOfBusiness:
          type: string
        industry:
          type: string
        code:
          type: string
    CategoryEnvelope:
      type: object
      properties:
        status:
          $ref: '#/components/schemas/Status'
        response:
          type: object
          properties:
            categories:
              type: array
              items:
                $ref: '#/components/schemas/Category'
    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'