Catalog JSON Schema

Modified on Tue, Jun 23 at 4:20 PM

GPA Catalog Export — JSON Schema Reference

This article documents the structure of the JSON file produced when a catalog is exported from Global Product Access. Use this reference when building integrations that consume GPA catalog export data.

Root Object

{
  "Catalog": { ... },
  "Products": [ ... ]
}

The root object contains two top-level keys: Catalog, which describes the catalog itself, and Products, which is an array of individual product records.


Catalog Object

FieldTypeDescription
Idstring (UUID)Unique catalog identifier
CompanyIdstring (UUID)ID of the publishing company
CompanyNamestringDisplay name of the publishing company
CategoryIdstring (UUID)ID of the catalog's product category
CategoryNamestringDisplay name of the product category
NamestringCatalog name
DescriptionstringCatalog description
IsPriceVisiblebooleanWhether prices are visible to subscribers
ThumbnailUrlobjectCatalog thumbnail image. See Image Object.
StatusstringCatalog status (Draft, Active, etc.)
TypestringCatalog visibility (Public, Private)
ProductCountintegerTotal number of products in the catalog
ActiveProductCountintegerNumber of active products in the catalog
SubscriberCountintegerNumber of active subscribers
ComplianceEngineIdsarray (UUID)IDs of compliance engines applied to this catalog
ExternalCatalogNumberstring / nullExternal reference number, if applicable
TagFiltersarray (string)Tags used for dynamic product filtering
IntegrationsarrayMarketplace or EDI integrations connected to this catalog
CanDownloadbooleanWhether the catalog can be downloaded
CreatedAtstring (ISO 8601)Catalog creation timestamp
UpdatedAtstring (ISO 8601)Catalog last updated timestamp

Product Object

Each item in the Products array represents a single product record (one SKU / size-color combination).

Note on dual field naming: Several fields appear twice in each product record — once in snake_case (e.g. sku_internal_identifier) and once in camelCase (e.g. sku). Both represent the same value. The dual naming is maintained for backwards compatibility with integrations built on earlier versions of the GPA export format.

Identifiers

FieldTypeDescription
idstring (UUID)Unique product identifier
company_idstring (UUID)ID of the owning company
sku / sku_internal_identifierstringInternal SKU — conditionally required
upc / upc_12_digit_barcodestring / null12-digit UPC barcode — conditionally required
ean / ean_13_digit_barcodestring / null13-digit EAN barcode — conditionally required
gtin / gtin_global_trade_item_numberstring / nullGlobal Trade Item Number — conditionally required
isbn / isbn_book_identifierstring / nullISBN (books only)
styleNumber / style_number_manufacturer_referencestringManufacturer style or reference number
additionalPartNumber / additional_identifier_supplier_part_numberstring / nullSupplementary supplier part number
Identifier rule: At least one of sku, upc, ean, or gtin must be present on every product.

Core Product Fields

FieldTypeDescription
name / product_name_consumer_facingstringConsumer-facing product name
description / product_description / description_textstringProduct description (may contain HTML entities)
featuresBenefitsMarketingMessages / features_benefits_marketing_messagesstring / nullMarketing feature copy
category / product_category_internalstringInternal product category label
statusstringProduct status (Active, Inactive, etc.)
startDate / pricing_effective_start_datestring (ISO 8601) / nullDate product becomes active
endDate / pricing_effective_end_datestring (ISO 8601) / nullDate product is automatically archived

Pricing

FieldTypeDescription
price / selling_price_per_unitnumber / nullSelling price per unit
wholesalePrice / net_cost_wholesalenumber / nullWholesale / net cost
msrp / list_price_msrpnumber / nullManufacturer's suggested retail price
netPrice / promotional_pricenumber / nullPromotional or net price
currency / currency_code_isoobjectCurrency. See Lookup Object.
canViewPrice / can_view_pricebooleanWhether the subscriber can see prices

Inventory

FieldTypeDescription
inventory / available_quantitynumber / nullAvailable inventory quantity
unitOfMeasure / unit_of_measure_uomobjectUnit of measure. See Lookup Object.

Images

FieldTypeDescription
thumbnailUrl / product_image_primaryobjectPrimary product image. See Image Object.
galleryUrls / product_images_additionalarrayAdditional product images. Array of Image Objects.

Classification

FieldTypeDescription
type / product_category_globalobjectGlobal product type. See Lookup Object.
family / product_family_global_classificationobjectGlobal product family. See Lookup Object.
subType / product_sub_category_globalobjectGlobal product sub-category. See Lookup Object.

Catalog Membership

Each product includes a catalogs / published_catalogs array listing every catalog the product belongs to.

FieldTypeDescription
catalogId / catalog_idstring (UUID)ID of the catalog
catalogName / catalog_namestringName of the catalog
unitPrice / selling_price_per_unitnumber / nullPer-catalog unit price override
inventoryAllocation / inventory_allocationnumber / nullPer-catalog inventory allocation
typestringHow the product was added (Manual, Tag, etc.)

Attributes

Each product includes an attributes array of custom and system-defined fields.

FieldTypeDescription
idstring (UUID)Attribute definition ID
namestringAttribute name (e.g. Fabric or Material Description)
valuestringAttribute value
mandatorybooleanWhether the attribute is required at the company level
is_compliance_requiredbooleanWhether the attribute is required by a compliance engine
typestringData type (Text, Number, Boolean, etc.)
optionsarrayPredefined value options (for list-type attributes)
default_valuestring / nullDefault value if none is provided
company_idstring (UUID) / nullOwning company ID (null = system attribute)
ref_idstring / nullExternal reference ID

Properties

Nested object containing physical, packaging, and ordering details.

Dimensions (product_dimensions / dimensions)

FieldTypeDescription
product_length / lengthnumber / nullProduct length
product_width / widthnumber / nullProduct width
product_height / heightnumber / nullProduct height
dimension_unit_of_measure / unitstringUnit of measure (Millimeter, Inch, etc.)

Weight (product_weight_measure / weight)

FieldTypeDescription
product_weight / weightnumber / nullProduct weight
weight_unit_of_measure / unitstringUnit of measure (Kilogram, Pound, etc.)

Packaging (product_packaging / packaging)

FieldTypeDescription
pack_quantity / quantityPerPacknumber / nullUnits per pack
package_length / PackLengthnumber / nullPackage length
package_width / PackWidthnumber / nullPackage width
package_height / PackHeightnumber / nullPackage height
package_dimension_unit_of_measure / dimensionUnitstringPackage dimension unit
packaged_product_weight / packagedWeightnumber / nullPackaged product weight
packaged_weight_unit_of_measure / weightUnitstringPackaged weight unit

Ordering Info (ordering_info / orderingInfo)

FieldTypeDescription
minimum_order_quantity / minimumQuantitynumber / nullMinimum order quantity
maximum_order_quantity / maximumQuantitynumber / nullMaximum order quantity
gs1_standard_color / colorobjectGS1 standard color. See Lookup Object.
gs1_standard_size / sizeobjectGS1 standard size. See Lookup Object.
supplier_color_name / customColorstringSupplier's custom color name
supplier_size_name / customSizestringSupplier's custom size name

Tags

FieldTypeDescription
product_tags / productTagsarray (string)Tags applied to the product for dynamic catalog assignment

Variants

FieldTypeDescription
variantsarrayChild variant products grouped under this parent
variant_attributes_grouparrayAttribute groupings used to define variant dimensions
optionsarraySelectable option values (e.g. size, color dropdowns)

Reusable Object Definitions

Lookup Object

Used for color, size, currency, unit of measure, and classification fields.

{
  "id":   "string (UUID)",
  "code": "string",
  "name": "string"
}

Image Object

Used for primary and additional product images.

{
  "altText": "string",
  "versions": {
    "original": "string (URL)",
    "thumb":    "string (URL)",
    "small":    "string (URL)",
    "medium":   "string (URL)",
    "large":    "string (URL)"
  }
}

Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article