Products

List all products

List products in your catalog with cursor-based pagination.

get/companies/{company}/products

Request

  • Base URL: https://api.factuarea.com/v1
  • URL: https://api.factuarea.com/v1/companies/{company}/products
  • Auth: one of:
    • HTTP bearer
    • API key in header X-API-Key

Path parameters

companystring uuid required

Public identifier (UUID v7) of the company. Get it from GET /v1/me (data.scope[].id).

Query parameters

limitinteger

Number of objects to return, between 1 and 100 (default 25).

starting_afterstring uuid

Cursor for forward pagination: pass the id of the last object on the previous page (the next_cursor of the previous response).

ending_beforestring uuid

Cursor for backward pagination: pass the id of the first object on the current page.

skustring

Product SKU. Exact match on sku.

sku[in]string

Comma-separated list of values (CSV).

Product SKU. Comma-separated list. Any of the values matches.

sku[contains]string

Product SKU. Partial case-insensitive match (LIKE %term%) on sku.

namestring

Product name. Exact match on name.

name[contains]string

Product name. Partial case-insensitive match (LIKE %term%) on name.

is_activeboolean

Filter by active / inactive products. Exact match on is_active.

created[gte]string date-time

Creation date (ISO 8601). Greater than or equal to the given value.

created[lte]string date-time

Creation date (ISO 8601). Less than or equal to the given value.

created[gt]string date-time

Creation date (ISO 8601). Strictly greater than the given value.

created[lt]string date-time

Creation date (ISO 8601). Strictly less than the given value.

price[gte]number

Unit price. Greater than or equal to the given value.

price[lte]number

Unit price. Less than or equal to the given value.

price[gt]number

Unit price. Strictly greater than the given value.

price[lt]number

Unit price. Strictly less than the given value.

in_stockboolean

Filter by products with available stock (true → stock > 0) or out of stock (false → stock = 0). Exact match on in_stock.

low_stockboolean

Filter by products with low stock (true → 0 < stock ≤ configured threshold) or with ample stock (false → stock > threshold). Exact match on low_stock.

tagstring

Filter by classification tag. Supports multiple values with tag[in]. Exact match on tag.

tag[in]string

Comma-separated list of values (CSV).

Filter by classification tag. Supports multiple values with tag[in]. Comma-separated list. Any of the values matches.

searchstring

Free-text search. Escaped LIKE %term% (case-insensitive, max 80 chars) across the resource's key text columns, combined with the other filters (AND) and compatible with the cursor.

metadataobject

Metadata filter as metadata[key]=value (deepObject): pairs combine with AND, up to 50, keys matching [A-Za-z0-9_.-]{1,64}.

Headers

Factuarea-Versionstring date
Example:2026-06-01

Pin the API version (YYYY-MM-DD, Stripe-style date versioning) for this request; omit to use the key's pinned version, or the latest if none. Unsupported version → 400 unsupported_api_version; malformed → 400 parameter_invalid_format. The effective version is echoed in the Factuarea-Version response header. See the Versioning guide.

Response

has_moreboolean required

Whether more pages are available after this one.

next_cursorstring nullable required

Opaque cursor for the next page, or null when has_more is false. The example below shows the shape used by most listings; others return a different one, so pass the value back verbatim instead of validating it.

Example response

{
  "data": [
    {
      "id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a09",
      "object": "product",
      "name": "Vino tinto D.O. Rioja",
      "sku": "VINO-RIOJA",
      "price": "1234.56",
      "currency": "EUR",
      "tax_rate": {
        "id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a0f",
        "rate": 21
      },
      "stock": "120.0000",
      "gross_weight_kg": "0.9200",
      "gallery": [
        {
          "index": 0,
          "url": "https://files.factuarea.com/products/vino-rioja-garrafa.jpg",
          "content_type": "image/jpeg"
        }
      ],
      "video": {
        "url": "https://files.factuarea.com/products/vino-rioja-bodega.mp4",
        "content_type": "video/mp4"
      },
      "is_active": true,
      "description": "Vino tinto con Denominación de Origen Rioja, servido a granel en garrafa de 5 o 15 litros.",
      "tags": [
        "bodega",
        "granel"
      ],
      "low_stock_threshold": "10.0000",
      "presentation_count": 1,
      "variant_count": 1,
      "supplier_offer_count": 1,
      "option_group_count": 1,
      "configuration_count": 1,
      "preferred_supplier_offer_id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8b20",
      "presentations": [
        {
          "id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8b21",
          "object": "product_presentation",
          "product_id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a09",
          "name": "Garrafa de 5 L",
          "mode": "fixed",
          "unit": "LTR",
          "conversion_factor": "5.000000",
          "nominal_base_quantity": "5.0000",
          "barcode": "8437012345678",
          "gross_weight_kg": "4.8500",
          "commercial_price_override": "18.5000",
          "specifications": {
            "envase": "PET alimentario",
            "tapon": "Con grifo dosificador"
          },
          "active": true
        }
      ],
      "variants": [
        {
          "id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8b22",
          "object": "product_variant",
          "product_id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a09",
          "name": "Superior",
          "sku": "VINO-RIOJA-SUP",
          "barcode": "8437012345685",
          "base_price_override": "3.90",
          "unit_cost_override": "2.40",
          "gross_weight_kg": "0.9500",
          "manage_stock": true,
          "stock": "25.0000",
          "low_stock_threshold": "5.0000",
          "specifications": {
            "crianza": "12 meses en barrica"
          },
          "active": true
        }
      ],
      "supplier_offers": [
        {
          "id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8b20",
          "object": "supplier_product_offer",
          "product_id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a09",
          "supplier_id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a02",
          "variant_id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8b22",
          "supplier_sku": "BOD-RIOJA-SUP",
          "purchase_unit": "LTR",
          "conversion_factor": "1.000000",
          "unit_cost": "2.40",
          "currency": "EUR",
          "availability": "in_stock",
          "minimum_quantity": "50.0000",
          "lead_time_days": 3,
          "preferred": true,
          "active": true
        }
      ],
      "option_groups": [
        {
          "id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8c30",
          "object": "product_option_group",
          "product_id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a09",
          "name": "Calidad",
          "required": true,
          "active": true,
          "values": [
            {
              "id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8c31",
              "object": "product_option_value",
              "name": "Superior",
              "position": 1,
              "price_adjustment": "2.0000",
              "active": true
            }
          ]
        }
      ],
      "configurations": [
        {
          "id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8c40",
          "object": "product_configuration",
          "product_id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a09",
          "name": "Superior · Garrafa de 5 L · Calidad: Superior",
          "variant_id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8b22",
          "variant_name": "Superior",
          "presentation_id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8b21",
          "presentation_name": "Garrafa de 5 L",
          "signature": "b1f0c3d2e4a5968778695a4b3c2d1e0fb1f0c3d2e4a5968778695a4b3c2d1e0f",
          "commercial_price": "21.5000",
          "active": true,
          "options": [
            {
              "object": "product_configuration_option",
              "group_id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8c30",
              "group_name": "Calidad",
              "value_id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8c31",
              "value_name": "Superior",
              "price_adjustment": "2.0000"
            }
          ]
        }
      ],
      "is_in_stock": true,
      "specifications": {
        "origen": "España",
        "denominacion": "D.O. Rioja",
        "graduacion": "13,5 %"
      },
      "metadata": {
        "erp_code": "IVA-GEN",
        "ledger_account": "477000"
      },
      "external_id": "SHOP-42",
      "created_at": "2026-01-02T08:30:00Z",
      "updated_at": "2026-01-02T08:30:00Z",
      "base_unit_change": {
        "mode": "replacement",
        "blockers": [
          {
            "code": "stock",
            "quantity": "5",
            "unit": "KGM"
          },
          {
            "code": "movements",
            "quantity": "22",
            "unit": null
          }
        ]
      },
      "replaces": {
        "id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a10",
        "name": "Jamón ibérico al corte",
        "base_unit": "GRM",
        "replaced_at": "2026-10-15T09:30:00Z",
        "equivalence": "0.001000",
        "stock_transferred": "5000.0000"
      },
      "replaced_by": {
        "id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a10",
        "name": "Jamón ibérico al corte",
        "base_unit": "GRM",
        "replaced_at": "2026-10-15T09:30:00Z",
        "equivalence": "0.001000",
        "stock_transferred": "5000.0000"
      }
    }
  ],
  "has_more": true,
  "next_cursor": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a0c"
}

Changes

No recorded changes to this operation across all 1 revision of this API.