Factuarea API
Products

List product activity timeline

Return the audit timeline for a product combining its own domain events plus document events whose lines reference it. Paginated with page and per_page query params (default 50).

GET
/products/{product}/activities
AuthorizationBearer <token>

In: header

Path Parameters

product*string

Query Parameters

per_page?integer
Default50
page?integer
Default1

Response Body

application/json

application/json

application/json

application/json

application/json

import { Factuarea } from "@factuarea/sdk";const factuarea = new Factuarea({ apiKey: process.env.FACTUAREA_API_KEY! });const result = await factuarea.products.activities("01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a01");
{
  "data": [
    {
      "event_type": "product.updated",
      "description": "Se actualizó el precio base del producto.",
      "metadata": {
        "previous_price": "45.00",
        "new_price": "49.90"
      },
      "performed_by": {
        "type": "user",
        "id": "01928f12-1234-7abc-9def-0123456789ab",
        "name": "Ana García"
      },
      "created_at": "2026-05-15T10:34:21Z"
    }
  ],
  "total": 3,
  "current_page": 1,
  "per_page": 50,
  "from": 1,
  "to": 3,
  "last_page": 1
}

{
  "error": {
    "type": "authentication_error",
    "code": "missing_api_key",
    "message": "No se ha proporcionado una API key válida en el header Authorization.",
    "param": null,
    "doc_url": "https://docs.factuarea.com/guides/errors#missing_api_key",
    "request_id": "req_01HKQS5N8VR7QXJ9K3T6BWPMZA"
  }
}

{
  "error": {
    "type": "authorization_error",
    "code": "insufficient_scope",
    "message": "Esta API key no tiene el scope requerido para esta operación.",
    "param": null,
    "doc_url": "https://docs.factuarea.com/guides/errors#insufficient_scope",
    "request_id": "req_01HKQS5NBC3P8M1KX4V7SLNHQD"
  }
}

{
  "error": {
    "type": "rate_limit_error",
    "code": "rate_limit_exceeded",
    "message": "Has excedido el rate limit de 60 peticiones por minuto. Reintenta tras 30 segundos.",
    "param": null,
    "doc_url": "https://docs.factuarea.com/guides/errors#rate_limit_exceeded",
    "request_id": "req_01HKQS5NKW1C6W9T4G5H0JBZVL"
  }
}

{
  "error": {
    "type": "api_error",
    "code": "internal_error",
    "message": "Ha ocurrido un error inesperado. Si persiste, contacta con soporte adjuntando el request_id.",
    "param": null,
    "doc_url": "https://docs.factuarea.com/guides/errors#internal_error",
    "request_id": "req_01HKQS5NLX2D7X0U5H6J1KCAWM"
  }
}