---
title: "Listar productos"
method: GET
path: "/api/v1/products"
tags: ["API"]
---

# Listar productos

`GET /api/v1/products`

Lista los productos de la organización con precios. Soporta búsqueda y filtros por categoría, tipo y estado.

## Query parameters

- `cursor` string
- `limit` integer
- `query` string
- `search` string
- `category_id` string, uuid
- `is_active` boolean
- `product_type` 'product' | 'service' | 'combo' | 'kit'

## Response `200`

Productos obtenidos exitosamente

- ApiProductListResponse
  - `request_id` string, required
  - `data` object[], required
    - `id` string, uuid, required
    - `name` string, required
    - `description` string, nullable, required
    - `category` ApiSharedObject8aeeceaf0f, required
      - `id` string, uuid, required
      - `name` string, required
    - `sku` string, required
    - `barcode` string, nullable, required
    - `currency` string, required
    - `cost` number, required
    - `price` number, required
    - `tax_rate` ApiSharedObjectee5eae48b0, required
      - `id` number, required
      - `value` number, required
    - `default_supplier` ApiSharedObject8aeeceaf0f, required
      - `id` string, uuid, required
      - `name` string, required
    - `product_type` 'product' | 'service' | 'combo' | 'kit', required
    - `is_active` boolean, required
    - `organization_slug` string, required
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
    - `effective_price` number
    - `price_source` 'automatic' | 'manual_override' | 'manual_fallback' | 'base'
    - `applied_price_list` ApiSharedObjectfc277c542a
      - `id` string, uuid, required
      - `name` string, required
      - `is_automatic` boolean, required
      - `automatic_pricing_mode` 'base_price_adjustment' | 'cost_markup', required
      - `adjustment_percentage` number, nullable, required
      - `tax_inclusive` boolean, required
    - `object` 'product', required
  - `has_more` boolean, required
  - `next_cursor` string, nullable, required
  - `object` 'list', required — List-envelope discriminator.
  - `url` string, required — Requested list path.

## Other responses

- `400` — Parámetros inválidos
- `401` — API key faltante o inválida
- `403` — Scopes insuficientes
- `429` — Límite de solicitudes excedido para la organización
- `500` — Error interno del servidor

---

[API](https://skmtc.net/lapyme/apis/la-pyme-api.md) · [All operations](https://skmtc.net/lapyme/apis/la-pyme-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lapyme/la-pyme-api/versions/414f57f28498/schema)
