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

# Crawled-pages list / crawler logs

> The complete per-URL list of URLs AI bots fetched — the public twin of GET /api/v1/me/brands/{slug}/agents/pages. EVERY crawled URL is included: static assets (`/_next/...`, images, CSS) and crawler-directive files (`/robots.txt`, `/llms.txt`) are reported alongside content pages, because what a crawler spends its budget on is the point of the report. Paginated, searchable, and filterable by status (`ok`, `error`, or one exact code such as `404`), bot, vendor, kind, and folder. Crawler filters are served from the (path x bot) rollup, which starts at the raw-hit retention horizon and grows from there — see retention_limited / coverage_from.



## OpenAPI

````yaml /api-reference/public-openapi.json get /api/public/v1/brands/{slug}/agents/pages
openapi: 3.1.0
info:
  title: FixAEO Customer API
  version: 2026.05.23
  description: >-
    Bearer-authed read API over your FixAEO workspace. Create a key in Settings,
    then send it as `Authorization: Bearer <key>`. Every route is scoped to the
    key's own account.


    Generated from the server's OpenAPI spec — see
    scripts/build-public-openapi.py.
servers:
  - url: https://api.fixaeo.com
security:
  - bearerAuth: []
paths:
  /api/public/v1/brands/{slug}/agents/pages:
    get:
      tags:
        - Public API
        - Agents
      summary: Crawled-pages list / crawler logs
      description: >-
        The complete per-URL list of URLs AI bots fetched — the public twin of
        GET /api/v1/me/brands/{slug}/agents/pages. EVERY crawled URL is
        included: static assets (`/_next/...`, images, CSS) and
        crawler-directive files (`/robots.txt`, `/llms.txt`) are reported
        alongside content pages, because what a crawler spends its budget on is
        the point of the report. Paginated, searchable, and filterable by status
        (`ok`, `error`, or one exact code such as `404`), bot, vendor, kind, and
        folder. Crawler filters are served from the (path x bot) rollup, which
        starts at the raw-hit retention horizon and grows from there — see
        retention_limited / coverage_from.
      parameters:
        - $ref: '#/components/parameters/BrandSlug'
        - $ref: '#/components/parameters/RangeQuery'
        - name: search
          in: query
          required: false
          schema:
            type: string
        - name: status
          in: query
          required: false
          schema:
            type: string
        - $ref: '#/components/parameters/AgentBotQuery'
        - $ref: '#/components/parameters/AgentVendorQuery'
        - $ref: '#/components/parameters/AgentKindQuery'
        - name: folder
          in: query
          required: false
          schema:
            type: string
          description: >
            Top-level folder to restrict to, e.g. `blogs` for `/blogs/*`, or `/`
            for pages at the site root.
        - name: sort
          in: query
          required: false
          schema:
            type: string
            enum:
              - hits
              - path
              - errors
              - uniques
          description: >
            Column to order by. Defaults to `hits`. Unrecognised values fall
            back to the default rather than erroring.
        - name: dir
          in: query
          required: false
          schema:
            type: string
            enum:
              - asc
              - desc
          description: >
            Sort direction. Only honoured alongside `sort`. Defaults per column:
            descending for the numeric columns, ascending for `path`.
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            default: 10
            maximum: 500
        - name: offset
          in: query
          required: false
          schema:
            type: integer
            default: 0
      responses:
        '200':
          description: A page of crawled content pages + the total distinct count.
      security:
        - bearerAuth: []
components:
  parameters:
    BrandSlug:
      name: slug
      in: path
      required: true
      schema:
        type: string
        pattern: ^[a-z0-9-]+$
      description: URL-safe brand identifier (lowercased, hyphenated).
      example: openai
    RangeQuery:
      name: range
      in: query
      schema:
        type: string
        enum:
          - 7d
          - 30d
          - 90d
        default: 30d
      description: Time window for time-series + aggregations.
    AgentBotQuery:
      name: bot
      in: query
      required: false
      schema:
        type: string
      description: >
        Exact bot name (e.g. GPTBot). Part of the page-wide crawler filter:
        every aggregate on the Agents dashboard honours it, so the KPIs, the
        trend, the breakdowns and the pages list always describe the same
        traffic. Combine with `vendor`/`kind` to narrow further (they AND).
    AgentVendorQuery:
      name: vendor
      in: query
      required: false
      schema:
        type: string
      description: |
        Exact vendor / platform (e.g. OpenAI) — every bot that company operates.
      example: OpenAI
    AgentKindQuery:
      name: kind
      in: query
      required: false
      schema:
        type: string
        enum:
          - training_crawler
          - search_crawler
          - browsing_agent
          - agentic_browser
          - mcp_client
      description: >
        Exact agent type, e.g. `training_crawler` for bots that collect data for
        model training vs `browsing_agent` for live answer-time fetches.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: fxa_
      description: |
        API keys generated via `POST /api/v1/me/api-keys`. Format:
        `Authorization: Bearer fxa_<32-char-secret>`. Only accepted on
        `/api/public/v1/*`. Cookie auth is rejected on that surface.

````