> ## Documentation Index
> Fetch the complete documentation index at: https://altostrat.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Search ARP Entries

> Performs a paginated search for ARP entries across one or more sites, with options for filtering and sorting. This is the primary endpoint for building an inventory of connected devices.



## OpenAPI

````yaml /api/en/monitoring-metrics.yaml post /metrics/arps
openapi: 3.0.3
info:
  title: Altostrat Monitoring & Metrics API
  version: 1.0.0
  description: >-
    Retrieve portal-facing metrics through the public `/metrics` gateway path,
    including dashboards, WAN tunnels, interfaces, ARP entries, syslogs, BGP,
    and DNS reports.
servers:
  - url: https://v1.api.altostrat.io
security:
  - bearerAuth: []
tags:
  - name: Dashboard
    description: High-level, aggregated metrics for network performance and data usage.
  - name: WAN Tunnels & Performance
    description: >-
      Endpoints for managing and retrieving performance data from SD-WAN
      tunnels.
  - name: Site Interfaces & Metrics
    description: >-
      Endpoints for listing network interfaces at a site and fetching their
      traffic metrics.
  - name: Device Health & Status
    description: Endpoints for monitoring the health and status of network devices.
  - name: ARP Inventory
    description: >-
      Endpoints for querying and managing the Address Resolution Protocol (ARP)
      table to discover devices on the network.
  - name: Network Logs
    description: Access to system, DNS, and BGP logs for diagnostics and security analysis.
  - name: Grafana Dashboards
    description: List Grafana dashboards, query dashboard panels, and export panel data.
  - name: Prometheus Querying
    description: >-
      Discover available metrics and labels, then execute Prometheus queries
      scoped to your workspace.
paths:
  /metrics/arps:
    post:
      tags:
        - ARP Inventory
      summary: Search ARP Entries
      description: >-
        Performs a paginated search for ARP entries across one or more sites,
        with options for filtering and sorting. This is the primary endpoint for
        building an inventory of connected devices.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                search:
                  type: string
                  description: >-
                    A search term to filter by IP address, MAC address,
                    hostname, or manufacturer.
                  example: 192.168.1.10
                sites:
                  type: array
                  description: >-
                    An array of Site UUIDs to include in the search. If omitted,
                    all accessible sites are searched.
                  items:
                    type: string
                    format: uuid
                  example:
                    - d8f8f8f8-f8f8-f8f8-f8f8-f8f8f8f8f8f8
                page:
                  type: integer
                  description: The page number for pagination.
                  default: 1
                per_page:
                  type: integer
                  description: The number of results to return per page.
                  default: 10
                sort:
                  type: string
                  description: The field to sort the results by.
                  enum:
                    - ip_address
                    - mac_address
                    - hostname
                    - manufacturer
                    - alias
                    - range
                  default: ip_address
                order:
                  type: string
                  description: The sort order.
                  enum:
                    - asc
                    - desc
                  default: asc
      responses:
        '200':
          description: A paginated list of ARP entries matching the search criteria.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ArpSearchResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/ServerError'
components:
  schemas:
    ArpSearchResponse:
      type: object
      properties:
        current_page:
          type: integer
        data:
          type: array
          items:
            $ref: '#/components/schemas/ArpEntry'
        first_page_url:
          type: string
          format: uri
        from:
          type: integer
        last_page:
          type: integer
        last_page_url:
          type: string
          format: uri
        links:
          type: array
          items:
            type: object
            properties:
              url:
                type: string
                format: uri
                nullable: true
              label:
                type: string
              active:
                type: boolean
        next_page_url:
          type: string
          format: uri
          nullable: true
        path:
          type: string
          format: uri
        per_page:
          type: integer
        prev_page_url:
          type: string
          format: uri
          nullable: true
        to:
          type: integer
        total:
          type: integer
    ArpEntry:
      type: object
      properties:
        id:
          type: string
          description: >-
            The unique identifier for the ARP entry (a SHA1 hash of site ID and
            MAC address).
          example: 0c8526584284b025f3c328904724cf48a1a3848b
        mac:
          type: string
          description: The MAC address of the device.
          example: 00:1A:2B:3C:4D:5E
        ip_address:
          type: string
          format: ipv4
          description: The IP address of the device.
          example: 192.168.88.254
        interface:
          type: string
          description: The network interface on which the device was seen.
          example: bridge
        last_seen:
          type: string
          description: Human-readable string indicating when the device was last seen.
          example: 5 minutes ago
        group:
          type: string
          description: The ARP group this device belongs to, if any.
          nullable: true
        hostname:
          type: string
          description: The device's hostname, if discovered.
          example: my-laptop.local
        manufacturer:
          type: string
          description: The manufacturer of the device, derived from the MAC address.
          example: Apple, Inc.
        site_id:
          type: string
          format: uuid
          description: The site where this device was discovered.
          example: d8f8f8f8-f8f8-f8f8-f8f8-f8f8f8f8f8f8
        range:
          type: string
          description: The IP subnet range the device belongs to.
          example: 192.168.88.0/24
          nullable: true
        alias:
          type: string
          description: A user-defined alias for the device.
          example: Main Server
          nullable: true
        serial:
          type: string
          description: The serial number of the device, if discovered via SNMP.
          nullable: true
    ErrorResponse:
      type: object
      properties:
        type:
          type: string
          description: A broad category for the error (e.g., 'invalid_request_error').
          example: invalid_request_error
        code:
          type: string
          description: A short, unique string identifying the specific error.
          example: parameter_invalid
        message:
          type: string
          description: A human-readable description of what went wrong.
          example: The provided 'siteId' is not a valid UUID.
        doc_url:
          type: string
          description: >-
            A direct link to the documentation page for this specific error
            code.
          example: https://docs.altostrat.io/errors/parameter_invalid
  responses:
    BadRequest:
      description: Bad Request - The request was malformed or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Unauthorized:
      description: Unauthorized - The request lacks valid authentication credentials.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    ServerError:
      description: Internal Server Error - An unexpected error occurred on the server.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````