---
title: "Obtener producto por ID"
method: GET
path: "/api/v1/products/{product_id}"
tags: ["API"]
---

# Obtener producto por ID

`GET /api/v1/products/{product_id}`

Devuelve el detalle persistido del producto.

## Path parameters

- `product_id` string, uuid, required

## Response `200`

Producto obtenido exitosamente

- ApiProductDetailResponse
  - `request_id` string, required
  - `data` ApiSharedObjectc99e480838, 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
    - `variant_group_id` string, uuid, required
    - `variant_options` object, nullable, required
    - `is_exempt` boolean, required
    - `metafields` ApiSharedObject0347948139[], required
      - `key` string, required
      - `value` string, required
    - `stock_summary` ApiSharedObjecta9f7340006, required
      - `total_quantity` number, required
      - `warehouse_count` integer, required
      - `by_warehouse` ApiSharedObjectf20bf16616[], required
        - `warehouse_id` string, uuid, required
        - `warehouse_name` string, required
        - `quantity` number, required
        - `on_hand` number, required
        - `reserved_quantity` number, required
        - `incoming_quantity` number, required

## Other responses

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

---

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