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

# Browse Catalog

> Browse one catalog type: filtered, sorted and paged server-side.

Paging every registry of a type separately and merging client-side cannot
be made correct -- a single offset has no meaning over the concatenation --
so the whole type is paged as one ordered result here instead.



## OpenAPI

````yaml /api-reference/openapi.json get /v1/registries/catalog/browse
openapi: 3.1.0
info:
  description: >-
    Modular and extensible framework for building AI agents. This API requires
    JWT Bearer token authentication for most endpoints. Include your JWT token
    in the Authorization header. Public endpoints include /, /health, /docs,
    /redoc, and /openapi.json.
  title: AgentArea API
  version: 0.1.0
servers: []
security:
  - bearer: []
paths:
  /v1/registries/catalog/browse:
    get:
      tags:
        - v1
        - protected
        - registries
      summary: Browse Catalog
      description: >-
        Browse one catalog type: filtered, sorted and paged server-side.


        Paging every registry of a type separately and merging client-side
        cannot

        be made correct -- a single offset has no meaning over the concatenation
        --

        so the whole type is paged as one ordered result here instead.
      operationId: browse_catalog_v1_registries_catalog_browse_get
      parameters:
        - description: Catalog type to browse
          in: query
          name: registry_type
          required: true
          schema:
            description: Catalog type to browse
            title: Registry Type
            type: string
        - description: Free-text filter over name and description
          in: query
          name: q
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: Free-text filter over name and description
            title: Q
        - description: Restrict to one category facet
          in: query
          name: category
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: Restrict to one category facet
            title: Category
        - description: '''featured'' (default) or ''name'''
          in: query
          name: sort
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: '''featured'' (default) or ''name'''
            title: Sort
        - in: query
          name: limit
          required: false
          schema:
            default: 50
            maximum: 500
            minimum: 1
            title: Limit
            type: integer
        - in: query
          name: offset
          required: false
          schema:
            default: 0
            minimum: 0
            title: Offset
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CatalogBrowseResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      security:
        - HTTPBearer: []
components:
  schemas:
    CatalogBrowseResponse:
      description: >-
        One page of a type's catalog plus the context needed to browse it.


        ``total`` and ``categories`` cover the whole filtered catalog, not the
        page:

        without them a page that happens to contain no visible matches is

        indistinguishable from the end of the catalog, and facet counts drift as

        more pages load.
      properties:
        categories:
          items:
            $ref: '#/components/schemas/CategoryFacet'
          title: Categories
          type: array
        items:
          items:
            $ref: '#/components/schemas/RegistryItemResponse'
          title: Items
          type: array
        total:
          title: Total
          type: integer
      required:
        - items
        - total
        - categories
      title: CatalogBrowseResponse
      type: object
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          title: Detail
          type: array
      title: HTTPValidationError
      type: object
    CategoryFacet:
      properties:
        count:
          title: Count
          type: integer
        value:
          title: Value
          type: string
      required:
        - value
        - count
      title: CategoryFacet
      type: object
    RegistryItemResponse:
      properties:
        category:
          anyOf:
            - type: string
            - type: 'null'
          title: Category
        created_at:
          title: Created At
          type: string
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
        external_id:
          title: External Id
          type: string
        featured:
          default: false
          title: Featured
          type: boolean
        id:
          format: uuid
          title: Id
          type: string
        installed_entity_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Installed Entity Id
        installed_version:
          anyOf:
            - type: string
            - type: 'null'
          title: Installed Version
        name:
          title: Name
          type: string
        registry_id:
          format: uuid
          title: Registry Id
          type: string
        spec:
          additionalProperties: true
          title: Spec
          type: object
        tags:
          items:
            type: string
          title: Tags
          type: array
        update_available:
          title: Update Available
          type: boolean
        updated_at:
          title: Updated At
          type: string
        version:
          anyOf:
            - type: string
            - type: 'null'
          title: Version
      required:
        - id
        - registry_id
        - external_id
        - name
        - description
        - version
        - spec
        - tags
        - installed_entity_id
        - update_available
        - installed_version
        - created_at
        - updated_at
      title: RegistryItemResponse
      type: object
    ValidationError:
      properties:
        ctx:
          title: Context
          type: object
        input:
          title: Input
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          title: Location
          type: array
        msg:
          title: Message
          type: string
        type:
          title: Error Type
          type: string
      required:
        - loc
        - msg
        - type
      title: ValidationError
      type: object
  securitySchemes:
    bearer:
      bearerFormat: JWT
      description: JWT Bearer token for authentication
      scheme: bearer
      type: http
    HTTPBearer:
      scheme: bearer
      type: http

````