DOCUMENTACIÓN / API REST / TIENDAS
API de Tiendas
Administra el catálogo de una tienda individual: consulta productos, crea borradores, añade imágenes y publica cuando todo esté listo.
Antes de empezar
Crea un token desde la sección API / Integraciones de la tienda. Cada token pertenece a una sola tienda y solo puede acceder a esa tienda.
Base URL: https://<tu-tienda>.covaly.store/api/v1
Authorization: Bearer cvly_<tu_token> El token se muestra una sola vez. Guárdalo en un gestor de secretos.
Descubre versión y URLs públicas.
GET /openapi.yamlDescarga el contrato desde cada tienda.
GET /meComprueba token, scopes y tienda.
GET /productsLista productos, filtra y pagina.
POST /productsCrea un borrador.
POST /products/bulkCrea hasta 50 borradores.
GET /products/{product}Consulta un producto.
PATCH /products/{product}Edita los campos enviados.
DELETE /products/{product}Elimina un producto.
POST /products/{product}/publishPublica un producto.
POST /products/{product}/unpublishLo devuelve a borrador.
POST /products/{product}/imagesSube una imagen.
DELETE /products/{product}/images/{image}Elimina una imagen.
GET /categoriesLista categorías.
GET /categories/{category}Consulta una categoría.
GET /
Descubrir la API
La raíz pública devuelve la versión y las URLs del contrato y del health check. No requiere token. Sirve para comprobar qué API estás consultando antes de enviar credenciales.
curl https://<tu-tienda>.covaly.store/api/v1/GET /me
Verificar la conexión
Usa este endpoint antes de cualquier operación para validar que el token pertenece a la tienda esperada.
curl https://<tu-tienda>.covaly.store/api/v1/me \
-H "Authorization: Bearer cvly_<tu_token>"GET /products
Listar productos
Requiere products:read o products:write. Puedes filtrar por estado, categoría o búsqueda.
curl "https://<tu-tienda>.covaly.store/api/v1/products?status=draft" \
-H "Authorization: Bearer cvly_<tu_token>"POST /products · PATCH /products/{product}
Crear o editar un borrador
Requiere products:write. La moneda se guarda como PEN. En una actualización parcial, solo se cambian los campos enviados.
curl -X POST "https://<tu-tienda>.covaly.store/api/v1/products" \
-H "Authorization: Bearer cvly_<tu_token>" \
-H "Content-Type: application/json" \
-d '{"name":"Taza","description":"Cerámica","unit_price":39.90,"stock":12}'POST /products/bulk
Crear productos por lote
Requiere products:write. Envía entre 1 y 50 productos. La respuesta informa por cada elemento si se creó o falló; revisa el contrato OpenAPI para el formato completo y los errores por elemento.
curl -X POST "https://<tu-tienda>.covaly.store/api/v1/products/bulk" \
-H "Authorization: Bearer cvly_<tu_token>" \
-H "Content-Type: application/json" \
-d '{"products":[{"client_reference":"A-1","name":"Taza","description":"Cerámica","unit_price":39.90}]}'POST /products/{product}/publish · POST /products/{product}/unpublish
Publicar u ocultar
Requiere products:publish. Ambas operaciones son idempotentes. Publicar hace visible el producto; ocultarlo lo devuelve a estado draft. DELETE /products/{product} requiere products:write y no se puede deshacer.
POST /products/{product}/images · DELETE /products/{product}/images/{image}
Administrar imágenes
Requiere products:write. Para subir, envía multipart/form-data en el campo image; se aceptan JPG, PNG o WebP de hasta 5 MB.
GET /categories · GET /categories/{category}
Consultar categorías
Requiere categories:read. Los endpoints listan o consultan las categorías configuradas para la tienda; no existe una ruta de escritura en este contrato.
La API publica su contrato OpenAPI. Úsalo para generar clientes, validar solicitudes o explorar todos los endpoints disponibles.
https://<tu-tienda>.covaly.store/api/v1/openapi.yaml