Skip to content
ShopentlyLearn

Product models

Product models for lists, details, creation and updates. Inspect prices, availability, translations, field types and validation constraints.

Data schemas

ApiResponse_ProductFileListData_

ApiResponse_ProductFileListData_ · Fields, types and constraints of data accepted or returned by the API. Upload files as multipart/form-data after creating upload_id, then assign them to a product. Downloads require a Bearer token and permission for category; the response contains file bytes, without a public address or password. For mode=period choose days (1–3650) or the existing months, never both. Purchase terms are recorded at purchase; a refund revokes access only for the refunded line.
dataProductFileListData Required

Successful response payload.

Example: {"files":[{"category":"digital","created_at":"2026-01-01T12:00:00Z","current_version_id":"00000000-0000-4000-8000-000000000001","file_id":"00000000-0000-4000-8000-000000000001","filename":"manual.pdf","id":"00000000-0000-4000-8000-000000000001","label":"Manual","mime_type":"application/pdf","sha256":"5cd2f1cb0e5532b397e7ab1887baf6000c49450fd80ae279eb047c06e4545ecd","size_bytes":46,"state":"active","version_number":1}],"product_version":2}
metaContextPageMeta ContextMeta PageMeta RequestMeta Required

Response metadata.

Example: {"pagination":{"has_more":false,"limit":50,"next_cursor":null},"request_id":"example"}

Additional fields: No

ApiResponse_ReleaseListData_

ApiResponse_ReleaseListData_ · Fields, types and constraints of data accepted or returned by the API. Upload files as multipart/form-data after creating upload_id, then assign them to a product. Downloads require a Bearer token and permission for category; the response contains file bytes, without a public address or password. For mode=period choose days (1–3650) or the existing months, never both. Purchase terms are recorded at purchase; a refund revokes access only for the refunded line.
dataReleaseListData Required

Successful response payload.

Example: {"current_release_id":"00000000-0000-4000-8000-000000000001","product_version":2,"releases":[{"changelog":"Manual update","files":[{"file_id":"00000000-0000-4000-8000-000000000001","sort_order":0,"version_id":"00000000-0000-4000-8000-000000000001"}],"id":"00000000-0000-4000-8000-000000000001","manifest_sha256":"1111111111111111111111111111111111111111111111111111111111111111","published_at":null,"release_sequence":null,"state":"active","version_label":"1.0","withdrawn_at":null}],"update_days":365,"update_mode":"period","update_months":null}
metaContextPageMeta ContextMeta PageMeta RequestMeta Required

Response metadata.

Example: {"pagination":{"has_more":false,"limit":50,"next_cursor":null},"request_id":"example"}

Additional fields: No

ApiResponse_UploadData_

ApiResponse_UploadData_ · Fields, types and constraints of data accepted or returned by the API. Upload files as multipart/form-data after creating upload_id, then assign them to a product. Downloads require a Bearer token and permission for category; the response contains file bytes, without a public address or password. For mode=period choose days (1–3650) or the existing months, never both. Purchase terms are recorded at purchase; a refund revokes access only for the refunded line.
dataUploadData Required

Successful response payload.

Example: {"category":"digital","expires_at":"2026-01-01T12:00:00Z","filename":"manual.pdf","id":"00000000-0000-4000-8000-000000000001","product_id":"example","received_bytes":46,"sha256":"5cd2f1cb0e5532b397e7ab1887baf6000c49450fd80ae279eb047c06e4545ecd","size_bytes":46,"status":"ready"}
metaContextPageMeta ContextMeta PageMeta RequestMeta Required

Response metadata.

Example: {"request_id":"example"}

Additional fields: No

ApiResponse[AudienceData]

ApiResponse_AudienceData_ · Response containing published access rule, its first publication date and selected orders.
dataAudienceData Required

Successful response payload.

Example: {"anchor_at":"2026-11-03T12:00:00Z","effective_at":"2026-11-03T12:00:00Z","file_id":"00000000-0000-4000-8000-000000000007","file_version_id":"00000000-0000-4000-8000-000000000010","historical_access_preserved":true,"id":"00000000-0000-4000-8000-000000000009","lookback_days":null,"mode":"all_purchasers","next_cursor":null,"order_ids":[],"product_version":3,"revision":1}
metaContextPageMeta ContextMeta PageMeta RequestMeta Required

Response metadata.

Example: {"request_id":"example-request"}

Additional fields: No

List products — Response

ApiResponse_list_ProductSummaryData__ · Fields, types and constraints of data accepted or returned by the API.
dataArray <ProductSummaryData > Required

Response example · ApiResponse_list_ProductSummaryData__.

Example: [{"availability":{"available_from":null,"available_until":null,"is_available":true},"brand_id":null,"condition":"new","created_at":"2026-01-01T12:00:00Z","id":"example","name":"Example","number":"example","price":{"amount":"0.00","currency":"PLN","minor_units":2,"tax_included":true},"price_version":1,"primary_category_id":"example","primary_media_id":"example","published":false,"sku":"example","slug":"example","tax_category_id":"example","updated_at":"2026-01-01T12:00:00Z","variants_enabled":false,"version":1}]
metaContextPageMeta ContextMeta PageMeta RequestMeta Required

Response metadata.

Example: {"locale":"en","market_code":"PL","market_id":"example","pagination":{"has_more":false,"limit":20,"next_cursor":null},"request_id":"example"}

Additional fields: No

Get a product — Response

ApiResponse_ProductDetailData_ · Fields, types and constraints of data accepted or returned by the API.
dataProductDetailData Required

Response example · ProductDetailData.

Example: {"availability":{"available_from":null,"available_until":null,"is_available":true},"brand_id":null,"condition":"new","created_at":"2026-01-01T12:00:00Z","description":"example","features":[{"feature_id":"example","feature_name":"example","value":"example","value_id":"example"}],"id":"example","identifiers":{},"media":[{"alt_text":"example","id":"example","is_primary":true,"kind":"image","mime_type":"image/jpeg","position":1,"url":"https://example.invalid/product.jpg"}],"meta_description":"example","meta_keywords":["example"],"meta_title":"example","name":"Example","number":"example","price":{"amount":"0.00","currency":"PLN","minor_units":2,"tax_included":true},"price_version":1,"primary_category_id":"example","primary_media_id":"example","published":false,"sku":"example","slug":"example","tax_category_id":"example","updated_at":"2026-01-01T12:00:00Z","variants_enabled":false,"version":1}
metaContextPageMeta ContextMeta PageMeta RequestMeta Required

Response metadata.

Example: {"locale":"en","market_code":"PL","market_id":"example","request_id":"example"}

Additional fields: No

AudienceChange

AudienceChange · Change request for the access rule of one digital file.
audienceAudienceSelection Required

Explicit access rule for the uploaded shared digital file.

Example: {"mode":"all_purchasers"}
expected_versionIntegerRequired

Version read before the write; a mismatch rejects the update.

minimum: 1maximum: 9223372036854775807
Example: 1

Additional fields: No

AudienceData

AudienceData · Published access rule, its first publication date and selected orders.
anchor_atStringRequired

First publication time. Changing the audience does not reset this timestamp.

format: "date-time"
Example: "2026-11-03T12:00:00Z"
effective_atStringRequired

Time when this audience revision was published.

format: "date-time"
Example: "2026-11-03T12:00:00Z"
file_idStringRequired

Resource identifier; preserve it as returned. · file_id

Example: "00000000-0000-4000-8000-000000000007"
file_version_idStringRequired

ID of the particular immutable file content version covered by the rule.

Example: "00000000-0000-4000-8000-000000000010"
historical_access_preservedBooleanOptional

Previously granted access is preserved when the audience rule is narrowed.

Default: trueExample: true
idStringRequired

Resource identifier; preserve it as returned.

Example: "00000000-0000-4000-8000-000000000009"
lookback_daysInteger nullRequired

1–3650 days before first publication; required only for recent_and_new.

Example: null
modeStringRequired

Explicit access rule for the uploaded shared digital file. new_purchases / recent_and_new / selected / all_purchasers.

Example: "all_purchasers"
next_cursorString nullRequired

Continuation value for the next page, or null.

Example: null
order_idsArray <String> Required

Distinct eligible paid orders containing this product; required only for selected access.

Example: []
product_versionIntegerRequired

Current product version for concurrency control.

Example: 3
revisionIntegerRequired

Sequential revision of the file audience rule.

Example: 1

Additional fields: No

AudienceSelection

AudienceSelection · Who can receive this file: new purchases, recent and new purchases, selected orders or all purchasers.
lookback_daysInteger nullOptional

1–3650 days before first publication; required only for recent_and_new.

Integer:minimum: 1maximum: 3650
modeStringRequired

Explicit access rule for the uploaded shared digital file. new_purchases / recent_and_new / selected / all_purchasers.

Constraints
enum
["new_purchases", "recent_and_new", "selected", "all_purchasers"]
Example: "new_purchases"
order_idsArray <String> Optional

Distinct eligible paid orders containing this product; required only for selected access.

maxItems: 1000
Constraints · Array 1
pattern
"^[a-z0-9][a-z0-9_-]{0,62}$"
Default: []

Additional fields: No

Availability information for the selected context

AvailabilityData · Schema · Product models
available_fromString nullRequired

Start of availability.

String:format: "date-time"
Example: null
available_untilString nullRequired

End of availability.

String:format: "date-time"
Example: null
is_availableBooleanRequired

Whether the item is available in this context.

Example: true

Additional fields: No

FileAssign

FileAssign · Fields, types and constraints of data accepted or returned by the API. Upload files as multipart/form-data after creating upload_id, then assign them to a product. Downloads require a Bearer token and permission for category; the response contains file bytes, without a public address or password. For mode=period choose days (1–3650) or the existing months, never both. Purchase terms are recorded at purchase; a refund revokes access only for the refunded line.
audienceAudienceSelection nullOptional

Explicit access rule for the uploaded shared digital file.

Example: {"mode":"new_purchases"}
expected_versionIntegerRequired

Version read before the write; a mismatch rejects the update.

minimum: 1maximum: 9223372036854775807
Example: 1
labelStringOptional

Resource name in the relevant context.

maxLength: 300
Default: ""
upload_idStringRequired

Resource identifier; preserve it as returned. · upload_id

format: "uuid"
Example: "00000000-0000-4000-8000-000000000001"

Additional fields: No

FileCategory

FileCategory · Fields, types and constraints of data accepted or returned by the API. Upload files as multipart/form-data after creating upload_id, then assign them to a product. Downloads require a Bearer token and permission for category; the response contains file bytes, without a public address or password. For mode=period choose days (1–3650) or the existing months, never both. Purchase terms are recorded at purchase; a refund revokes access only for the refunded line.
String
Constraints
enum
["internal", "customer_document", "digital"]

Additional fields: Yes

Price information in the selected context

PriceData · Schema · Product models
amountStringRequired

Decimal amount encoded as a JSON string; null only where allowed.

Example: "0.00"
currencyStringRequired

Currency code for the amount.

Constraints
pattern
"^[A-Z]{3}$"
Example: "PLN"
minor_unitsIntegerRequired

Number of fractional digits used by the currency.

minimum: 0maximum: 4
Example: 2
tax_includedBooleanRequired

Whether the submitted price includes tax.

Example: true

Additional fields: No

Price-list information

PriceListData · Schema · Product models
currencyStringRequired

Currency code for the amount.

idStringRequired

Resource identifier; preserve it as returned. (PriceListData).

tax_includedBooleanRequired

Whether the submitted price includes tax.

versionIntegerRequired

Resource version used for concurrency control.

Additional fields: No

Create a product — Request body

ProductCreate · Fields, types and constraints of data accepted or returned by the API.
brand_idString nullOptional

Brand identifier.

String:minLength: 1maxLength: 63
conditionStringOptional

Product condition.

Constraints
enum
["new", "refurbished", "used", "returned", "display", "damaged"]
Default: "new"
descriptionString nullOptional

Description in the selected language.

String:maxLength: 100000
feature_value_idsArray <String> Optional

Identifiers of selected feature values.

maxItems: 1000
Array:minLength: 1maxLength: 63
identifiersProductIdentifiers nullOptional

Product identification codes.

market_idsArray <String> Optional

Identifiers of selected markets.

maxItems: 1000
Array:minLength: 1maxLength: 63
media_idsArray <String> Optional

Identifiers of already existing media assets.

maxItems: 30
Array:minLength: 1maxLength: 63
meta_descriptionString nullOptional

Search-engine description in the selected language.

String:maxLength: 160
meta_keywordsArray <String> nullOptional

Search-engine keywords in the selected language.

Array:maxItems: 20
Array / Array:maxLength: 50
meta_titleString nullOptional

Search-engine title in the selected language.

String:maxLength: 70
nameStringRequired

Resource name in the relevant context.

minLength: 1maxLength: 300
Example: "Example"
pricingProductPrice Optional

Price configuration and its concurrency versions.

primary_category_idString nullOptional

Primary category identifier.

String:minLength: 1maxLength: 63
publishedBooleanOptional

Whether the resource is published.

Default: false
skuStringRequired

Stock keeping unit code.

minLength: 1maxLength: 100
Constraints
pattern
"^\\S+$"
Example: "example"
slugString nullOptional

URL path segment in the selected language.

String:maxLength: 160
tax_category_idString nullOptional

Tax category identifier.

String:minLength: 1maxLength: 63
variant_value_idsArray <String> Optional

Identifiers of selected variant values.

maxItems: 250
Array:minLength: 1maxLength: 63
variants_enabledBooleanOptional

Whether the product uses variants.

Default: false

Additional fields: No

Get a product — Response

ProductDetailData · Fields, types and constraints of data accepted or returned by the API.
availabilityAvailabilityData Required

Availability information for the selected context.

Example: {"available_from":null,"available_until":null,"is_available":true}
brand_idString nullRequired

Brand identifier.

Example: null
conditionStringRequired

Product condition.

Constraints
enum
["new", "refurbished", "used", "returned", "display", "damaged"]
Example: "new"
created_atStringRequired

Creation time.

format: "date-time"
Example: "2026-01-01T12:00:00Z"
descriptionString nullRequired

Description in the selected language.

Example: "example"
featuresArray <FeatureSelectionData > Required

Product features.

Example: [{"feature_id":"example","feature_name":"example","value":"example","value_id":"example"}]
idStringRequired

Resource identifier; preserve it as returned. (ProductDetailData).

Example: "example"
identifiersObjectAdditional fields: StringRequired

Product identification codes.

Example: {}
mediaArray <ProductMediaData > Required

Attached media information.

Example: [{"alt_text":"example","id":"example","is_primary":true,"kind":"image","mime_type":"image/jpeg","position":1,"url":"https://example.invalid/product.jpg"}]
meta_descriptionString nullRequired

Search-engine description in the selected language.

Example: "example"
meta_keywordsArray <String> nullRequired

Search-engine keywords in the selected language.

Example: ["example"]
meta_titleString nullRequired

Search-engine title in the selected language.

Example: "example"
nameString nullRequired

Resource name in the relevant context.

Example: "Example"
numberStringRequired

Human-facing order or request number.

Example: "example"
pricePriceData nullRequired

Price information in the selected context.

Example: {"amount":"0.00","currency":"PLN","minor_units":2,"tax_included":true}
price_versionIntegerRequired

Current price version for concurrency control.

Example: 1
primary_category_idString nullRequired

Primary category identifier.

Example: "example"
primary_media_idString nullRequired

Primary media asset identifier.

Example: "example"
publishedBooleanRequired

Whether the resource is published.

Example: false
skuStringRequired

Stock keeping unit code.

Example: "example"
slugString nullRequired

URL path segment in the selected language.

Example: "example"
tax_category_idStringRequired

Tax category identifier.

Example: "example"
updated_atStringRequired

Most recent update time.

format: "date-time"
Example: "2026-01-01T12:00:00Z"
variants_enabledBooleanRequired

Whether the product uses variants.

Example: false
versionIntegerRequired

Resource version used for concurrency control.

Example: 1

Additional fields: No

ProductFileData

ProductFileData · Fields, types and constraints of data accepted or returned by the API. Upload files as multipart/form-data after creating upload_id, then assign them to a product. Downloads require a Bearer token and permission for category; the response contains file bytes, without a public address or password. For mode=period choose days (1–3650) or the existing months, never both. Purchase terms are recorded at purchase; a refund revokes access only for the refunded line.
categoryFileCategory Required

File category: internal / customer_document / digital

Example: "digital"
created_atStringRequired

Creation time.

format: "date-time"
Example: "2026-01-01T12:00:00Z"
current_version_idStringRequired

Resource identifier; preserve it as returned. · current_version_id

format: "uuid"
Example: "00000000-0000-4000-8000-000000000001"
file_idStringRequired

Resource identifier; preserve it as returned. · file_id

format: "uuid"
Example: "00000000-0000-4000-8000-000000000001"
filenameStringRequired

File

Example: "manual.pdf"
idStringRequired

Resource identifier; preserve it as returned.

format: "uuid"
Example: "00000000-0000-4000-8000-000000000001"
labelStringRequired

Resource name in the relevant context.

Example: "Manual"
mime_typeStringRequired

Media content type.

Example: "application/pdf"
sha256StringRequired

SHA-256 (hex, 64)

Example: "5cd2f1cb0e5532b397e7ab1887baf6000c49450fd80ae279eb047c06e4545ecd"
size_bytesIntegerRequired

Size in bytes

Example: 46
stateStringRequired

Status

Example: "active"
version_numberIntegerRequired

Version

Example: 1

Additional fields: No

ProductFileListData

ProductFileListData · Fields, types and constraints of data accepted or returned by the API. Upload files as multipart/form-data after creating upload_id, then assign them to a product. Downloads require a Bearer token and permission for category; the response contains file bytes, without a public address or password. For mode=period choose days (1–3650) or the existing months, never both. Purchase terms are recorded at purchase; a refund revokes access only for the refunded line.
filesArray <ProductFileData > Required

Product files

Example: [{"category":"digital","created_at":"2026-01-01T12:00:00Z","current_version_id":"00000000-0000-4000-8000-000000000001","file_id":"00000000-0000-4000-8000-000000000001","filename":"manual.pdf","id":"00000000-0000-4000-8000-000000000001","label":"Manual","mime_type":"application/pdf","sha256":"5cd2f1cb0e5532b397e7ab1887baf6000c49450fd80ae279eb047c06e4545ecd","size_bytes":46,"state":"active","version_number":1}]
product_versionIntegerRequired

Current product version for concurrency control.

Example: 2

Additional fields: No

Product identification codes

ProductIdentifiers · Schema · Product models
eanString nullOptional

EAN product identifier.

String:minLength: 1maxLength: 100
isbnString nullOptional

ISBN identifier.

String:minLength: 1maxLength: 100
mpnString nullOptional

Manufacturer part number.

String:minLength: 1maxLength: 100
upcString nullOptional

UPC product identifier.

String:minLength: 1maxLength: 100

Additional fields: No

Attached media information

ProductMediaData · Schema · Product models
alt_textString nullRequired

Alternative text for an image.

Example: "example"
idStringRequired

Resource identifier; preserve it as returned. (ProductMediaData).

Example: "example"
is_primaryBooleanRequired

Whether this is the primary item.

Example: true
kindStringRequired

Variant of the data structure described by its allowed values.

Constraints
enum
["image", "video", "model_3d"]
Example: "image"
mime_typeStringRequired

Media content type.

Example: "image/jpeg"
positionIntegerRequired

Position in the ordered collection.

Example: 1
urlString nullRequired

Resource URL.

Example: "https://example.invalid/product.jpg"

Additional fields: No

Price configuration and its concurrency versions

ProductPrice · Schema · Product models
amountString nullRequired

Decimal amount encoded as a JSON string; null only where allowed.

String:maxLength: 19
Constraints · String 1
pattern
"^(0|[1-9][0-9]{0,13})(\\.[0-9]{1,4})?$"
Example: "0.00"
currencyStringRequired

Currency code for the amount.

Constraints
pattern
"^[A-Z]{3}$"
Example: "PLN"
expected_price_list_versionIntegerRequired

Previously read price-list version required for this write.

minimum: 1maximum: 9223372036854775807
Example: 1
expected_versionIntegerRequired

Version read before the write; a mismatch rejects the update.

minimum: 0maximum: 9223372036854775807
Example: 0
kindStringRequired

Variant of the data structure described by its allowed values.

Constraints
enum
["base", "market_fixed"]
Example: "base"
price_list_idStringRequired

Price-list identifier.

minLength: 1maxLength: 63
Example: "example"
tax_includedBooleanRequired

Whether the submitted price includes tax.

Example: true

Additional fields: No

List products — Response

ProductSummaryData · Fields, types and constraints of data accepted or returned by the API.
availabilityAvailabilityData Required

Availability information for the selected context.

Example: {"available_from":null,"available_until":null,"is_available":true}
brand_idString nullRequired

Brand identifier.

Example: null
conditionStringRequired

Product condition.

Constraints
enum
["new", "refurbished", "used", "returned", "display", "damaged"]
Example: "new"
created_atStringRequired

Creation time.

format: "date-time"
Example: "2026-01-01T12:00:00Z"
idStringRequired

Resource identifier; preserve it as returned. (ProductSummaryData).

Example: "example"
nameString nullRequired

Resource name in the relevant context.

Example: "Example"
numberStringRequired

Human-facing order or request number.

Example: "example"
pricePriceData nullRequired

Price information in the selected context.

Example: {"amount":"0.00","currency":"PLN","minor_units":2,"tax_included":true}
price_versionIntegerRequired

Current price version for concurrency control.

Example: 1
primary_category_idString nullRequired

Primary category identifier.

Example: "example"
primary_media_idString nullRequired

Primary media asset identifier.

Example: "example"
publishedBooleanRequired

Whether the resource is published.

Example: false
skuStringRequired

Stock keeping unit code.

Example: "example"
slugString nullRequired

URL path segment in the selected language.

Example: "example"
tax_category_idStringRequired

Tax category identifier.

Example: "example"
updated_atStringRequired

Most recent update time.

format: "date-time"
Example: "2026-01-01T12:00:00Z"
variants_enabledBooleanRequired

Whether the product uses variants.

Example: false
versionIntegerRequired

Resource version used for concurrency control.

Example: 1

Additional fields: No

Update a product — Request body

ProductUpdate · Fields, types and constraints of data accepted or returned by the API.
brand_idString nullOptional

Brand identifier.

String:minLength: 1maxLength: 63
conditionStringOptional

Product condition.

Constraints
enum
["new", "refurbished", "used", "returned", "display", "damaged"]
descriptionString nullOptional

Description in the selected language.

String:maxLength: 100000
Example: null
expected_variant_price_versionsObjectAdditional fields: Integer
minimum: 0maximum: 9223372036854775807
Optional

Previously read price versions, keyed by variant identifier.

maxProperties: 250
Constraints
propertyNames
{"maxLength": 63, "minLength": 1}
expected_versionIntegerRequired

Version read before the write; a mismatch rejects the update.

minimum: 1maximum: 9223372036854775807
Example: 1
feature_value_idsArray <String> Optional

Identifiers of selected feature values.

maxItems: 1000
Array:minLength: 1maxLength: 63
identifiersProductIdentifiers nullOptional

Product identification codes.

market_idsArray <String> Optional

Identifiers of selected markets.

maxItems: 1000
Array:minLength: 1maxLength: 63
media_idsArray <String> Optional

Identifiers of already existing media assets.

maxItems: 30
Array:minLength: 1maxLength: 63
meta_descriptionString nullOptional

Search-engine description in the selected language.

String:maxLength: 160
meta_keywordsArray <String> nullOptional

Search-engine keywords in the selected language.

Array:maxItems: 20
Array / Array:maxLength: 50
meta_titleString nullOptional

Search-engine title in the selected language.

String:maxLength: 70
nameString nullOptional

Resource name in the relevant context.

String:maxLength: 300
pricingProductPrice Optional

Price configuration and its concurrency versions.

Example: {"amount":"0.00","currency":"PLN","expected_price_list_version":1,"expected_version":0,"kind":"base","price_list_id":"example","tax_included":true}
primary_category_idString nullOptional

Primary category identifier.

String:minLength: 1maxLength: 63
publishedBooleanOptional

Whether the resource is published.

skuStringOptional

Stock keeping unit code.

minLength: 1maxLength: 100
Constraints
pattern
"^\\S+$"
Example: "example"
slugString nullOptional

URL path segment in the selected language.

String:maxLength: 160
tax_category_idString nullOptional

Tax category identifier.

String:minLength: 1maxLength: 63
variant_value_idsArray <String> Optional

Identifiers of selected variant values.

maxItems: 250
Array:minLength: 1maxLength: 63
variants_enabledBooleanOptional

Whether the product uses variants.

Additional fields: No

ProductVersion

ProductVersion · This operation has been retired and returns 409 without changing data. Set access separately for each digital file using the audience operation.
expected_versionIntegerRequired

Version read before the write; a mismatch rejects the update.

minimum: 1maximum: 9223372036854775807
Example: 1

Additional fields: No

ReleaseData

ReleaseData · Fields, types and constraints of data accepted or returned by the API. Upload files as multipart/form-data after creating upload_id, then assign them to a product. Downloads require a Bearer token and permission for category; the response contains file bytes, without a public address or password. For mode=period choose days (1–3650) or the existing months, never both. Purchase terms are recorded at purchase; a refund revokes access only for the refunded line.
changelogStringRequired

Release notes

Example: "Manual update"
filesArray <ReleaseFileData > Required

Product files

Example: [{"file_id":"00000000-0000-4000-8000-000000000001","sort_order":0,"version_id":"00000000-0000-4000-8000-000000000001"}]
idStringRequired

Resource identifier; preserve it as returned.

format: "uuid"
Example: "00000000-0000-4000-8000-000000000001"
manifest_sha256String nullRequired

Digital releases · SHA-256

Example: "1111111111111111111111111111111111111111111111111111111111111111"
published_atString nullRequired

Publish release · UTC

String:format: "date-time"
Example: null
release_sequenceInteger nullRequired

Digital releases · Position in the ordered collection.

Example: null
stateStringRequired

Status

Example: "active"
version_labelStringRequired

Version

Example: "1.0"
withdrawn_atString nullRequired

Withdraw offer · UTC

String:format: "date-time"
Example: null

Additional fields: No

ReleaseDraft

ReleaseDraft · This operation has been retired and returns 409 without changing data. Set access separately for each digital file using the audience operation.
changelogStringOptional

Release notes

maxLength: 20000
Default: ""
expected_versionIntegerRequired

Version read before the write; a mismatch rejects the update.

minimum: 1maximum: 9223372036854775807
Example: 1
version_idsArray <String> Required

Version · UUID[]

minItems: 1maxItems: 20
Array:format: "uuid"
Example: ["00000000-0000-4000-8000-000000000001"]
version_labelStringRequired

Version

minLength: 1maxLength: 64
Example: "1.0"

Additional fields: No

ReleaseFileData

ReleaseFileData · Fields, types and constraints of data accepted or returned by the API. Upload files as multipart/form-data after creating upload_id, then assign them to a product. Downloads require a Bearer token and permission for category; the response contains file bytes, without a public address or password. For mode=period choose days (1–3650) or the existing months, never both. Purchase terms are recorded at purchase; a refund revokes access only for the refunded line.
file_idStringRequired

Resource identifier; preserve it as returned. · file_id

format: "uuid"
Example: "00000000-0000-4000-8000-000000000001"
sort_orderIntegerRequired

Position in the ordered collection.

Example: 0
version_idStringRequired

Resource identifier; preserve it as returned. · version_id

format: "uuid"
Example: "00000000-0000-4000-8000-000000000001"

Additional fields: No

ReleaseListData

ReleaseListData · Fields, types and constraints of data accepted or returned by the API. Upload files as multipart/form-data after creating upload_id, then assign them to a product. Downloads require a Bearer token and permission for category; the response contains file bytes, without a public address or password. For mode=period choose days (1–3650) or the existing months, never both. Purchase terms are recorded at purchase; a refund revokes access only for the refunded line.
current_release_idString nullRequired

Resource identifier; preserve it as returned. · current_release_id

String:format: "uuid"
Example: "00000000-0000-4000-8000-000000000001"
product_versionIntegerRequired

Current product version for concurrency control.

Example: 2
releasesArray <ReleaseData > Required

Digital releases

Example: [{"changelog":"Manual update","files":[{"file_id":"00000000-0000-4000-8000-000000000001","sort_order":0,"version_id":"00000000-0000-4000-8000-000000000001"}],"id":"00000000-0000-4000-8000-000000000001","manifest_sha256":"1111111111111111111111111111111111111111111111111111111111111111","published_at":null,"release_sequence":null,"state":"active","version_label":"1.0","withdrawn_at":null}]
update_daysInteger nullRequired

Number of days (days; null)

Example: 365
update_modeStringRequired

Access to future files after purchase: none / period / unlimited

Example: "period"
update_monthsInteger nullRequired

Months (months; null)

Example: null

Additional fields: No

UpdatePolicy

UpdatePolicy · This operation has been retired and returns 409 without changing data. Set access separately for each digital file using the audience operation.
daysInteger nullOptional

Number of days (1–3650; mode=period; months=null)

Integer:minimum: 1maximum: 3650
Example: 365
expected_versionIntegerRequired

Version read before the write; a mismatch rejects the update.

minimum: 1maximum: 9223372036854775807
Example: 1
modeStringRequired

Access to future files after purchase: none / period / unlimited

Constraints
enum
["none", "period", "unlimited"]
Example: "period"
monthsInteger nullOptional

Months (1–120; mode=period; days=null)

Integer:minimum: 1maximum: 120
Example: null

Additional fields: No

UploadCreate

UploadCreate · Fields, types and constraints of data accepted or returned by the API. Upload files as multipart/form-data after creating upload_id, then assign them to a product. Downloads require a Bearer token and permission for category; the response contains file bytes, without a public address or password. For mode=period choose days (1–3650) or the existing months, never both. Purchase terms are recorded at purchase; a refund revokes access only for the refunded line.
filenameStringRequired

File

minLength: 1maxLength: 255
Example: "manual.pdf"
product_idString nullOptional

Product identifier.

Constraints · String 1
pattern
"^[a-z0-9][a-z0-9_-]{0,62}$"
Example: "example"
sha256StringRequired

SHA-256 (hex, 64)

Constraints
pattern
"^[0-9a-f]{64}$"
Example: "5cd2f1cb0e5532b397e7ab1887baf6000c49450fd80ae279eb047c06e4545ecd"
size_bytesIntegerRequired

Size in bytes

minimum: 1maximum: 262144000
Example: 46

Additional fields: No

UploadData

UploadData · Fields, types and constraints of data accepted or returned by the API. Upload files as multipart/form-data after creating upload_id, then assign them to a product. Downloads require a Bearer token and permission for category; the response contains file bytes, without a public address or password. For mode=period choose days (1–3650) or the existing months, never both. Purchase terms are recorded at purchase; a refund revokes access only for the refunded line.
categoryFileCategory Required

File category: internal / customer_document / digital

Example: "digital"
expires_atStringRequired

Credential expiration date and time.

format: "date-time"
Example: "2026-01-01T12:00:00Z"
filenameStringRequired

File

Example: "manual.pdf"
idStringRequired

Resource identifier; preserve it as returned.

format: "uuid"
Example: "00000000-0000-4000-8000-000000000001"
product_idString nullRequired

Product identifier.

Example: "example"
received_bytesIntegerRequired

Uploading… · Size in bytes

Example: 46
sha256StringRequired

SHA-256 (hex, 64)

Example: "5cd2f1cb0e5532b397e7ab1887baf6000c49450fd80ae279eb047c06e4545ecd"
size_bytesIntegerRequired

Size in bytes

Example: 46
statusStringRequired

Status accepted by this specific operation.

Example: "ready"

Additional fields: No