Products
Use this reference for exact request attributes, response envelopes, object shape, and examples. For catalog modeling, product-price relationships, media, lifecycle behavior, and selling patterns, start with Manage your product catalog.
Product and price IDs from another application are treated as unavailable. Use the response error code rather than the HTTP status alone when choosing a recovery path.
The product object
A product object contains everything needed to list, sell, and fulfill an item: core identification fields (name, description, reference), pricing information, prices attached to the product, categorization for reporting and filtering, media assets for customer-facing displays, physical dimensions for shipping calculations, and extensible custom data for application-specific needs. Products live in your catalog and can be referenced in order line items.
Properties
- Name
about- Type
string | null- Description
Full product description with marketing copy, features, specifications, and any details customers need before purchase. Can include multiple paragraphs. Shown on product pages and detailed order views.
- Name
active- Type
boolean- Description
Whether the product is currently published. This is catalog state, not a guarantee that every purchase path will accept or reject the product.
attributesProductAttribute[] | nullOrdered name/value facts about this product. The list does not create selectable variants.Click or tap to expand- Name
archivedAt- Type
Date | null- Description
When this product was archived. Omitted for unarchived products. There is no public unarchive endpoint; use Lookup a product when you need the canonical state of an archived record.
- Name
category- Type
string | null- Description
Product category for grouping, filtering, and reporting. Categories are application-specific and reflect your business structure. Examples:
clothing,software,consulting,electronics.
- Name
createdAt- Type
Date- Description
When this product was first created. Set automatically and never changes. Use for audit trails and chronological sorting.
customDataCustomData | nullClick or tap to expandString key-value metadata. Keys can contain up to 256 characters, and the serialized object can contain up to 25 KB.
- Name
description- Type
string | null- Description
Short description or tagline for the product. Appears in condensed views like order line items. Keep under 100 characters for best display. Max 200 characters.
dimensionsProductDimensions | nullStored dimension payload. The object shape depends on whether the product uses physical, digital, or custom sizing.Click or tap to expand- Name
custom- Type
ProductCustomDimensions
View custom detailsClick or tap to expand
Custom sizing payload with optionaldimensions.custom.details,dimensions.custom.size, anddimensions.custom.sizeUnit.- Name
digital- Type
ProductDigitalDimensions
View digital detailsClick or tap to expand
Digital sizing payload with optionaldimensions.digital.bytes,dimensions.digital.size, anddimensions.digital.sizeUnit.View physical detailsClick or tap to expand
Physical sizing payload with optionaldimensions.physical.height,dimensions.physical.length,dimensions.physical.volume,dimensions.physical.volumeUnit,dimensions.physical.weight,dimensions.physical.weightUnit, anddimensions.physical.width.
- Name
id- Type
string- Description
Unique identifier for this product. Generated automatically during creation. Used for lookups, order line items, and inventory tracking.
mediaProductMedia | nullProduct media assets displayed to customers during browsing and checkout. Values can be Inttegro file references or plain remote URLs.Click or tap to expand- Name
brandLogo- Type
string- Description
- Brand logo reference or URL.
- Name
demoVideo- Type
string- Description
- Demo video reference or URL.
- Name
downloads- Type
string[]- Description
- Array of downloadable asset references or URLs.
- Name
gallery- Type
string[]- Description
- Array of additional image references or URLs. Order matters.
- Name
heroImage- Type
string- Description
- Primary image reference or URL.
- Name
infographic- Type
string- Description
- Infographic reference or URL.
- Name
promoVideo- Type
string- Description
- Promotional video reference or URL.
- Name
thumbnail- Type
string- Description
- Thumbnail reference or URL.
- Name
webPageUrl- Type
string- Description
- Canonical product landing page URL.
- Name
name- Type
string- Description
Customer-facing product title shown in order summaries, invoices, and receipts. Keep concise and descriptive. Between 1-100 characters. Examples:
Premium Cotton T-Shirt,Annual Subscription,Video Editing Service.
pricesProductPriceSummary[] | nullNon-archived prices attached to this product. Useprices[].activeto tell whether each one is currently usable in new flows.Click or tap to expand- Name
active- Type
boolean- Description
- Whether the price is active and can be used in new flows.
- Name
id- Type
string- Description
- Unique price identifier with the
pr_prefix.
- Name
label- Type
string | null- Description
- Optional short label such as
retail,wholesale, orsubscriber.
View nominal detailsClick or tap to expand
Price amount object containing lowercaseprices[].nominal.currencyand smallest-unitprices[].nominal.value.
- Name
reference- Type
string | null- Description
Optional external reference or SKU from your internal systems. Map products to inventory management, ERP, or catalog system. Examples:
SKU-12345,PROD-SHIRT-BLUE-M,SERVICE-CONSULTING-HR.
- Name
publishedAt- Type
Date | null- Description
When the product was published. Omitted while the product is unpublished.
shipmentProductShipment | nullFulfillment method for the product when one is configured.Click or tap to expand- Name
taxCode- Type
string | null- Description
Tax classification code for calculating sales tax, VAT, or regional taxes.
- Name
type- Type
ProductType- Description
Permanent product classification:
Inttegro.ProductTypes.Physical,Inttegro.ProductTypes.Digital,Inttegro.ProductTypes.Service,Inttegro.ProductTypes.Voucher,Inttegro.ProductTypes.Custom, orInttegro.ProductTypes.Cause. Shipment and dimensions have their own request validation; the API does not infer them from this field.
- Name
unitDim- Type
string | null- Description
Measurement unit stored with the product when quantities or dimensions need units. Examples:
kg,lbs,liters,meters,sq_ft.
- Name
updatedAt- Type
Date | null- Description
Last time this product was modified. Omitted if it has not been updated since creation.
Product media fields can store either Inttegro file references or plain remote URLs. Prefer File API IDs when you want ownership and file-purpose validation. Keep media.webPageUrl for the product's canonical landing page only; it is not validated as a file reference.
Create a product
Create a product record with a required name and type. Product creation does not accept inline price data: create the product first, then use Add a price to a product or Create a price.
New products are unpublished unless publish is true. type is permanent after creation. The API accepts one dimensions branch (dimensions.custom, dimensions.digital, or dimensions.physical) and one shipment shipment.type (Inttegro.ProductShipmentInputTypes.Delivery, Inttegro.ProductShipmentInputTypes.Download, Inttegro.ProductShipmentInputTypes.Render, or Inttegro.ProductShipmentInputTypes.Stream); negative dimension values are rejected and zero-valued dimensions are omitted from storage.
AI clients can use create_product for this operation. Confirmed MCP actions still require explicit form confirmation before Inttegro changes state.
Request attributes
- Name
about- Type
string- Description
Full product description with features and specifications. Max 5000 characters.
attributesProductAttribute[]Ordered name/value facts about this product. These do not create selectable variants.Click or tap to expand- Name
category- Type
string- Description
Product category for grouping and filtering. Max 100 characters.
customDataCustomDataClick or tap to expandArbitrary string key-value pairs for application-specific needs. Attach internal catalog IDs, supplier references, merchandising metadata, or any data your system requires. Maximum size when serialized: 25 KB. See the Custom Data guide for best practices.
- Name
description- Type
string- Description
Short product tagline. Max 200 characters.
dimensionsProductDimensionsOptional dimensions payload. Provide only one ofdimensions.custom,dimensions.digital, ordimensions.physical; numeric values cannot be negative.Click or tap to expand- Name
custom- Type
ProductCustomDimensions
View custom detailsClick or tap to expand
Custom sizing payload with optionaldimensions.custom.details,dimensions.custom.size, anddimensions.custom.sizeUnit.- Name
digital- Type
ProductDigitalDimensions
View digital detailsClick or tap to expand
Digital sizing payload with optionaldimensions.digital.bytes,dimensions.digital.size, anddimensions.digital.sizeUnit.View physical detailsClick or tap to expand
Physical sizing payload with optionaldimensions.physical.height,dimensions.physical.length,dimensions.physical.volume,dimensions.physical.volumeUnit,dimensions.physical.weight,dimensions.physical.weightUnit, anddimensions.physical.width.
mediaProductMediaMedia assets. Values can be Inttegro file references or plain remote URLs.Click or tap to expand- Name
brandLogo- Type
string- Description
- Brand logo reference or URL.
- Name
demoVideo- Type
string- Description
- Demo video reference or URL.
- Name
downloads- Type
string[]- Description
- Array of downloadable asset references or URLs.
- Name
gallery- Type
string[]- Description
- Array of additional image references or URLs.
- Name
heroImage- Type
string- Description
- Primary image reference or URL.
- Name
infographic- Type
string- Description
- Infographic reference or URL.
- Name
promoVideo- Type
string- Description
- Promotional video reference or URL.
- Name
thumbnail- Type
string- Description
- Thumbnail image reference or URL.
- Name
webPageUrl- Type
string- Description
- Product landing page URL.
- Name
name- Type
string- Required
- required
- Description
Product name shown to customers. Between 1-100 characters.
- Name
publish- Type
boolean- Description
Publish the product as part of creation. Defaults to
falsewhen omitted.
- Name
reference- Type
string- Description
External reference or SKU from your systems. Max 100 characters.
shipmentProductShipmentInputOptional fulfillment method. The current request shape contains onlyshipment.type.Click or tap to expand- Name
taxCode- Type
string- Description
Tax classification code. Max 50 characters.
- Name
type- Type
ProductType- Required
- required
- Description
Product type:
Inttegro.ProductTypes.Physical,Inttegro.ProductTypes.Digital,Inttegro.ProductTypes.Service,Inttegro.ProductTypes.Voucher,Inttegro.ProductTypes.Custom, orInttegro.ProductTypes.Cause.
- Name
unitDimension- Type
string- Description
Measurement unit for quantities. Max 20 characters. Examples:
kg,lbs,liters.
Request
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const result = await inttegro.products.create({
name: "Premium Cotton T-Shirt",
type: Inttegro.ProductTypes.Physical,
description: "Comfortable everyday wear",
about: "Our premium cotton t-shirt is made from 100% organic cotton...",
category: "clothing",
attributes: [
{
name: "Size",
value: "Medium",
},
{
name: "Color",
value: "Blue",
},
],
media: {
heroImage: "file_abc123",
gallery: [
"file_def456",
"file_ghi789",
],
},
customData: {
season: "summer",
material: "organic_cotton",
},
})
Response
- Object
- JSON
ProductResponse {
product: { … },
}
{
"product": {
"id": "prod_abc123xyz789",
"name": "Premium Cotton T-Shirt",
"type": "physical",
"active": false,
"description": "Comfortable everyday wear",
"category": "clothing",
"reference": "SKU-SHIRT-BLUE-M-2024",
"created_at": "2026-02-08T23:45:00Z"
}
}
Search products
Search products by catalog text or exact category, status, and type constraints. Results are discovery summaries: use the returned product ID with Lookup a product before displaying current pricing or changing catalog state.
Request attributes
- Name
cursor- Type
string- Description
Opaque continuation cursor returned by the previous page. Replay the same request and add this value for the next page.
facetsResourceSearchFacet[]Fields to group and count: category, status, or type.Click or tap to expandfiltersResourceSearchFilter[]Exact category, status, or type constraints.Click or tap to expand- Name
field- Type
string- Required
- required
- Description
- Route-local filter field.
- Name
operator- Type
ResourceSearchOperator- Required
- required
- Description
- eq for one value or in for any supplied value.
- Name
values- Type
string[]- Required
- required
- Description
- One value for eq; one through 20 values for in.
- Name
pageSize- Type
number- Description
Results per page, from
1through100. Defaults to20.
sortResourceSearchSortResult ordering.Click or tap to expand- Name
direction- Type
ResourceSearchSortDirection- Required
- required
- Description
- asc or desc. Relevance supports desc only.
- Name
field- Type
ResourceSearchSortField- Required
- required
- Description
- published_at, relevance, or updated_at.
- Name
text- Type
string- Description
Search text, from 1 through 512 characters. Supply search text, exact filters, or both.
Response
Returns a typed search page with discovery summaries, requested facet
counts, page and total counts, an optional nextCursor,
and freshness metadata. Read the canonical product
before acting on a result.
Request
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const request: Inttegro.ResourceSearchRequest = {
text: "utility sneakers",
}
const page = await inttegro.products.search(request)
Lookup a product
Retrieve a product by ID, including its catalog fields and non-archived attached prices. Use lookup when you need the current product record before selecting a price or replacing list-shaped fields such as attributes and media.
Archived products remain available through this endpoint for historical and administrative reads; inspect archivedAt rather than treating a successful lookup as proof that the product is currently offered.
AI clients can use get_product for this operation. MCP read tools return minimized business data and do not change Inttegro state.
Request attributes
- Name
productId- Type
string- Required
- required
- Description
Unique product identifier returned when you created the product.
Request
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const result = await inttegro.products.lookup({
productId: "prod_abc123xyz789",
})
Response
- Object
- JSON
ProductResponse {
product: { … },
}
{
"product": {
"id": "prod_abc123xyz789",
"name": "Premium Cotton T-Shirt",
"type": "physical",
"active": false,
"description": "Comfortable everyday wear",
"category": "clothing",
"reference": "SKU-SHIRT-BLUE-M-2024",
"attributes": [ … ],
"prices": [ … ],
"created_at": "2026-02-08T23:45:00Z",
"updated_at": "2026-02-08T23:50:15Z"
}
}
Add a price to a product
Create an active price attached to an existing, unarchived product in your catalog. The operation returns the created price; the product object has no default-price field or default-price mutation.
The response's productId currently uses the product ID value without the prod_ type prefix; both forms are accepted when you send a product ID back to the API.
AI clients can use create_product_price for this operation. Confirmed MCP actions still require explicit form confirmation before Inttegro changes state.
Request attributes
customerSelectedAmountCustomerSelectedAmountParamsSelection policy required whentypeis"customer_selected_amount".Click or tap to expand- Name
currency- Type
AmountParams['currency']- Required
- required
- Description
- Currency accepted from the customer.
- Name
minimum- Type
number- Required
- required
- Description
- Smallest amount the customer may enter. Must be at least 1.
- Name
maximum- Type
number- Description
- Optional largest amount the customer may enter. Must be at least the minimum.
- Name
suggestedAmounts- Type
SuggestedAmountParams[]- Description
- Optional convenient choices. IDs and values must be unique, and at most one suggestion may be recommended.
fixedAmountAmountParamsAmount required whentypeis"fixed_amount".Click or tap to expand- Name
about- Type
string- Description
Optional internal description for the new price. Maximum length: 500 characters.
- Name
label- Type
string- Description
Optional short label for the new price, such as
retail,wholesale, orsubscriber. Maximum length: 100 characters.
- Name
productId- Type
string- Required
- required
- Description
Unique identifier for a product in your catalog.
- Name
type- Type
'fixed_amount' | 'customer_selected_amount'- Required
- required
- Description
Price definition. Use
"fixed_amount"or"customer_selected_amount". Send only the matching definition object.
Request
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const result = await inttegro.products.addPrice({
productId: "prod_abc123xyz789",
label: "Wholesale",
about: "Preferred rate for repeat buyers",
type: "fixed_amount",
fixedAmount: {
currency: "ghs",
value: 85000,
},
})
Update a product
Modify an existing product's details by providing only the fields you want to change. Any field you omit remains unchanged. Update or create prices through the Prices API; this endpoint rejects inline price data.
Only productId is required. A request with no changed fields succeeds without advancing updatedAt. type may be sent only when it matches the existing type. name, about, category, and taxCode cannot be cleared once populated; description can be replaced with an empty string.
For media changes, send the full media object you want stored. The legacy images array is still accepted and maps to media.gallery; do not send images and media together. The update response is a reduced product projection and omits active, archived_at, attributes, media, and shipment. Its id currently omits the prod_ type prefix. Call Lookup a product when you need the canonical complete representation.
Archived products are currently accepted by this endpoint. Treat archival as catalog state and enforce any stricter selling policy in the flow that selects products for checkout.
Request attributes
- Name
about- Type
string- Description
Full product description. Cannot be cleared once set—only updated to a new non-empty value.
attributesProductAttribute[]Product attributes. Replaces the existing attribute list when provided.Click or tap to expand- Name
category- Type
string- Description
Product category. Cannot be cleared once set—only changed to a different category.
customDataCustomDataClick or tap to expandApplication-specific metadata. Replaces the entire
customDataobject when provided—does not merge with existing values. Retrieve the product first if you need to preserve existing keys. Maximum size: 25 KB when serialized.- Name
description- Type
string- Description
Short product tagline. Can be updated or cleared.
dimensionsProductDimensionsOptional dimensions payload. Replaces the stored dimensions when provided. Send only one ofdimensions.custom,dimensions.digital, ordimensions.physical.Click or tap to expand- Name
custom- Type
ProductCustomDimensions
View custom detailsClick or tap to expand
Custom sizing payload with optionaldimensions.custom.details,dimensions.custom.size, anddimensions.custom.sizeUnit.- Name
digital- Type
ProductDigitalDimensions
View digital detailsClick or tap to expand
Digital sizing payload with optionaldimensions.digital.bytes,dimensions.digital.size, anddimensions.digital.sizeUnit.View physical detailsClick or tap to expand
Physical sizing payload with optionaldimensions.physical.height,dimensions.physical.length,dimensions.physical.volume,dimensions.physical.volumeUnit,dimensions.physical.weight,dimensions.physical.weightUnit, anddimensions.physical.width.
- Name
images- Type
string[]- Description
Legacy alias for
media.gallery. Replaces the gallery entries when provided.
mediaProductMediaMedia assets. Replaces the stored media object when provided. Values can be Inttegro file references or plain remote URLs.Click or tap to expand- Name
brandLogo- Type
string- Description
- Brand logo reference or URL.
- Name
demoVideo- Type
string- Description
- Demo video reference or URL.
- Name
downloads- Type
string[]- Description
- Array of downloadable asset references or URLs.
- Name
gallery- Type
string[]- Description
- Array of additional image references or URLs.
- Name
heroImage- Type
string- Description
- Primary image reference or URL.
- Name
infographic- Type
string- Description
- Infographic reference or URL.
- Name
promoVideo- Type
string- Description
- Promotional video reference or URL.
- Name
thumbnail- Type
string- Description
- Thumbnail image reference or URL.
- Name
webPageUrl- Type
string- Description
- Product landing page URL.
- Name
name- Type
string- Description
Product name. Cannot be cleared once set—only updated to a new non-empty value.
- Name
productId- Type
string- Required
- required
- Description
Unique product identifier.
- Name
taxCode- Type
string- Description
Tax classification code. Cannot be cleared once set—only changed to a different code.
- Name
type- Type
ProductType- Description
Must exactly match the existing product type. Product type cannot be changed after creation.
- Name
unitDimension- Type
string- Description
Measurement unit. Cannot exceed 20 characters.
Request
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const result = await inttegro.products.update({
productId: "prod_abc123xyz789",
description: "Premium everyday comfort",
category: "apparel",
})
Response
- Object
- JSON
ProductResponse {
product: { … },
}
{
"product": {
"id": "abc123xyz789",
"name": "Premium Cotton T-Shirt",
"type": "physical",
"description": "Premium everyday comfort",
"category": "apparel",
"reference": "SKU-SHIRT-BLUE-M-2024",
"created_at": "2026-02-08T23:45:00Z",
"updated_at": "2026-02-09T15:30:00Z"
}
}
Publish a product
Set the product's catalog state by setting active to true. Publishing does not create a checkout URL, choose a price, or authorize payment; create a purchase intent when you need a hosted Buy link.
publishedAt is set only on the first publish and remains unchanged after later unpublish and republish cycles. The endpoint returns a conflict when active is already true. The current operation does not reject an archived product, so check archivedAt before publishing.
Request attributes
- Name
productId- Type
string- Required
- required
- Description
Unique product identifier.
Request
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const result = await inttegro.products.publish({
productId: "prod_abc123xyz789",
})
Response
- Object
- JSON
ProductResponse {
product: { … },
}
{
"product": {
"id": "prod_abc123xyz789",
"name": "Premium Cotton T-Shirt",
"type": "physical",
"active": true,
"category": "apparel",
"created_at": "2026-02-08T23:45:00Z",
"published_at": "2026-02-09T16:30:00Z",
"updated_at": "2026-02-09T16:30:00Z"
}
}
Unpublish a product
Set active to false while preserving publishedAt. This is reversible: publish the same product again when you are ready to mark it active.
The endpoint returns a conflict when the product is already inactive. Unpublishing does not change attached prices or existing purchase intents, and current ID-based order creation does not use product publication as its price-eligibility check. Deactivate or archive prices and withdraw checkout entry points when you need to stop future sales.
Request attributes
- Name
productId- Type
string- Required
- required
- Description
Unique product identifier.
Request
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const result = await inttegro.products.unpublish({
productId: "prod_abc123xyz789",
})
Response
- Object
- JSON
ProductResponse {
product: { … },
}
{
"product": {
"id": "prod_abc123xyz789",
"name": "Premium Cotton T-Shirt",
"type": "physical",
"active": false,
"category": "apparel",
"created_at": "2026-02-08T23:45:00Z",
"published_at": "2026-02-09T16:30:00Z",
"updated_at": "2026-02-09T17:15:00Z"
}
}
Archive a product
Mark a product as retired. Archiving sets active to false, sets archivedAt, and advances updatedAt. There is no public unarchive endpoint, and Add a price to a product rejects archived products.
The endpoint returns a conflict when the product is already archived. It does not archive or deactivate prices that already belong to the product. Current lookup, update, publish, pagination, purchase-intent creation, and ID-based order paths can still resolve the product, so retire its prices and checkout entry points separately. Existing orders keep their recorded product snapshot.
Request attributes
- Name
productId- Type
string- Required
- required
- Description
Unique product identifier.
Request
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const result = await inttegro.products.archive({
productId: "prod_abc123xyz789",
})
Response
- Object
- JSON
ProductResponse {
product: { … },
}
{
"product": {
"id": "prod_abc123xyz789",
"name": "Premium Cotton T-Shirt",
"type": "physical",
"active": false,
"category": "apparel",
"created_at": "2026-02-08T23:45:00Z",
"archived_at": "2026-02-09T18:00:00Z",
"updated_at": "2026-02-09T18:00:00Z"
}
}
Page through products
Browse every product in your catalog, including published, unpublished, and archived records. Products are sorted by products[].createdAt in descending order—page 1 contains the newest entries and subsequent pages step back in time.
Each response returns the full product object, including all fields: media assets, attributes, dimensions, shipment details, and custom data. pageNumber is required; pageSize defaults to 256 if omitted.
AI clients can use list_products for this operation. MCP read tools return minimized business data and do not change Inttegro state.
Request attributes
- Name
pageNumber- Type
number- Required
- required
- Description
1-based page index. Must be between 1 and 10 inclusive. Start at 1 to retrieve the most recently created products and increment to walk backwards through your catalog.
- Name
pageSize- Type
number- Description
Number of products per page (1–256). Defaults to 256 when omitted. The response echoes the count actually returned, so the final page can be smaller than the value you requested.
Response shape
- Top-level
pageobject containingnumber,size, and aproductsarray. - Each entry is a full product object identical to what Lookup a product returns: all core fields, optional nested objects (
products[].media,products[].dimensions,products[].attributes,products[].shipment), and lifecycle timestamps. - Stop paginating when the response
sizeis less than thepageSizeyou requested, or whenproductsis an empty array.
Request
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const result = await inttegro.products.page({
pageNumber: 1,
pageSize: 50,
})