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

# List public catalog CMS categories

> Referencia detallada para GET /v1/catalog/categories.

## Uso

Usalo para leer catalogo publico y construir experiencias de discovery sin duplicar datos de productos o categorias.

## Antes de llamar

| Tema             | Detalle                                           |
| ---------------- | ------------------------------------------------- |
| Metodo           | `GET`                                             |
| Ruta             | `/v1/catalog/categories`                          |
| Auth             | Bearer API key del ambiente correcto.             |
| Scope            | `catalog:read`                                    |
| Idempotencia     | No aplica para lecturas.                          |
| Guia relacionada | [API Reference overview](/api-reference/overview) |

## Patron recomendado

* Ejecuta esta lectura desde backend cuando incluya datos privados del tenant.
* Consulta el bloque OpenAPI de esta pagina para el shape exacto de parametros, body y respuestas.

## Ejemplo minimo

```bash terminal theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl -sS "https://api.simplepay.mx/v1/catalog/categories" \
  -H "Authorization: Bearer $SIMPLEPAY_API_KEY"
```

## Errores a manejar

* `400` indica payload, parametros o estado invalido.
* `401` o `403` indican API key, ambiente o scopes incorrectos.
* `429` y `5xx` se pueden reintentar con backoff; en writes conserva la misma idempotency key.

## Contrato OpenAPI

El playground, parametros, body y respuestas de abajo salen de `/openapi.json`. Si el contrato cambia, actualiza la spec y regenera esta pagina.


## OpenAPI

````yaml openapi.json GET /v1/catalog/categories
openapi: 3.1.0
info:
  title: SimplePay API
  version: '2026-06-13'
servers:
  - url: https://api.simplepay.mx
security:
  - SimplePayApiKey: []
paths:
  /v1/catalog/categories:
    get:
      summary: List public catalog CMS categories
      operationId: listCatalogCategories
      parameters:
        - name: locale
          in: query
          schema:
            enum:
              - es
              - en
              - pt
              - de
              - fr
              - zh-Hans
              - zh
              - zh-hans
      responses:
        '200':
          description: Public catalog CMS categories
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CatalogCategoryListResponse'
components:
  schemas:
    CatalogCategoryListResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/CatalogCategory'
        object:
          const: list
    CatalogCategory:
      type: object
      properties:
        active:
          type: boolean
        description:
          type: string
        fallback:
          $ref: '#/components/schemas/CatalogFieldFallback'
        id:
          type: string
          format: uuid
        locale:
          enum:
            - es
            - en
            - pt
            - de
            - fr
            - zh-Hans
        name:
          type: string
        object:
          const: catalog_category
        parentCategoryId:
          type: string
          format: uuid
        slug:
          type: string
        sortOrder:
          type: integer
        updatedAt:
          type: string
          format: date-time
    CatalogFieldFallback:
      type: object
      additionalProperties:
        type:
          - string
          - 'null'
        enum:
          - es
          - en
          - pt
          - de
          - fr
          - zh-Hans
          - base
          - id
          - null
  securitySchemes:
    SimplePayApiKey:
      type: http
      scheme: bearer

````