Products and files
Product details
/ v1 / products / {product_id} One product in full:
- sales page texts (HTML), prices and installment plans, limited offer, variants and images
- content blocks: texts, images, videos, audio, files (with
file_idand name, but no download links), video links and buttons - linked course, bundle contents, checkout fields, stock and availability
- sales page URL, checkout URL (live products only) and admin link
A buyer of a variant gets the files of that variant. The files of the product itself then only reach buyers from before the variants existed.
Times are UTC. link_url and access_text_html are not shown. The fields have the same names and formats as in PATCH /v1/products/{product_id}.
Authorization
-
Authorizationstring header requiredBearer tnt_…· A personal API key (tnt_...). Create it in the Tentary app on the page AI & API. Introduction
Path parameters
-
product_idinteger requiredThe id from list_products.
min
1Example:101
Response
Fields of the answer with status 200. Errors always have the same format, see Errors.
-
idintegerThe ID.
-
namestringProduct name.
-
typestringThe type.
Allowed values:
downloadlinknewsletterbookingcoursebundleexternal -
statusstringarchived = deleted.
Allowed values:
livedraftarchived -
pricestringDecimal string, like "19.90". Normal price.
-
current_pricestringDecimal string, like "19.90". What buyers pay now: a running limited offer replaces the price.
-
price_is_frombooleantrue = the product has variants and price is the lowest variant price.
-
billingstringHow the buyer pays: one_time, subscription or installments.
Allowed values:
one_timesubscription -
billing_interval_monthsinteger can be nullSubscription: months between payments.
-
hide_in_shopbooleantrue = not shown on the shop page.
-
salesintegerPaid orders and orders in payment of all time, refunded and free orders included.
-
paid_salesintegerOrders with an amount above 0.
-
urlstring<uri>Sales page.
-
checkout_urlstring<uri> can be nullCheckout page. Only for live products.
-
admin_urlstring<uri>The product in the Tentary app.
-
description_htmlstringSales page text.
-
checkout_description_htmlstringExtra text on the checkout page.
-
checkout_banner_urlstring can be nullBanner image on the checkout page.
-
buy_button_textstringEmpty = default text.
-
imagesarray of stringThe first is the cover.
-
currencystringCurrency code, like EUR.
-
compare_at_pricestring can be nullDecimal string, like "19.90". Crossed-out old price.
-
intro_pricestring can be nullDecimal string, like "19.90". Subscription: price of the first period.
-
installment_plansarray of objectPayment plans that buyers can choose.
Show 2 fields Hide fields
-
countintegerNumber of payments.
-
amountstringDecimal string, like "19.90". Per payment.
-
-
limited_offerobject can be nullA lower price for a time. null = none.
Show 5 fields Hide fields
-
pricestring can be nullDecimal string, like "19.90".
-
starts_atstring<date-time> can be nullUTC, like 2026-01-31T14:05:00Z.
-
ends_atstring<date-time> can be nullUTC, like 2026-01-31T14:05:00Z.
-
runningbooleantrue = the offer price applies now.
-
countdownobject can be nullCountdown to the end of the offer. null = none.
Show 4 fields Hide fields
-
stylestringclassic, classic_sticky, slim, slim_sticky, card_classic, card_slim or card_special_1.
-
textstring can be nullThe text.
-
colorstringBackground color, hex.
-
secondary_colorstring can be nullText or card color, hex.
-
-
-
variantsarray of objectOptions that buyers choose at checkout.
Show 7 fields Hide fields
-
idintegerThe ID.
-
namestringThe name.
-
pricestring can be nullDecimal string, like "19.90".
-
stock_limitinteger can be nullnull = no limit.
-
courseobject can be left out can be nullcourse products only.
Show 2 fields Hide fields
-
idintegerThe ID.
-
namestringThe name.
-
-
course_idinteger can be left out can be nullcourse products only.
-
contentarray of object can be left outdownload products only.
One of these variants:
type: text· 3 fieldsFormatted text.
-
typestringThe block type.
Allowed values:
text -
htmlstringThe text as HTML.
-
folderstring can be nullFolder name. Blocks with the same folder show together.
type: image, video· 6 fieldsAn uploaded image or video.
-
typestringThe block type.
Allowed values:
imagevideo -
file_idintegerThe file ID (from upload_file).
-
namestringThe name.
-
file_typestringFile extension, like pdf.
-
size_bytesinteger can be nullFile size in bytes.
-
folderstring can be nullFolder name. Blocks with the same folder show together.
type: audio, file· 7 fieldsAn audio player or a download.
-
typestringThe block type.
Allowed values:
audiofile -
file_idintegerThe file ID (from upload_file).
-
namestringThe name.
-
descriptionstringfile: text under the download. audio: title above the player.
-
file_typestringFile extension, like pdf.
-
size_bytesinteger can be nullFile size in bytes.
-
folderstring can be nullFolder name. Blocks with the same folder show together.
type: video_embed· 3 fields-
typestringThe block type.
Allowed values:
video_embed -
urlstringYouTube, Vimeo or Loom link.
-
folderstring can be nullFolder name. Blocks with the same folder show together.
type: button· 4 fieldsA link button.
-
typestringThe block type.
Allowed values:
button -
labelstringThe text that buyers see.
-
urlstringThe link.
-
folderstring can be nullFolder name. Blocks with the same folder show together.
-
-
-
contentarray of objectdownload, link and booking: what buyers get, in order.
One of these variants:
type: text· 3 fieldsFormatted text.
-
typestringThe block type.
Allowed values:
text -
htmlstringThe text as HTML.
-
folderstring can be nullFolder name. Blocks with the same folder show together.
type: image, video· 6 fieldsAn uploaded image or video.
-
typestringThe block type.
Allowed values:
imagevideo -
file_idintegerThe file ID (from upload_file).
-
namestringThe name.
-
file_typestringFile extension, like pdf.
-
size_bytesinteger can be nullFile size in bytes.
-
folderstring can be nullFolder name. Blocks with the same folder show together.
type: audio, file· 7 fieldsAn audio player or a download.
-
typestringThe block type.
Allowed values:
audiofile -
file_idintegerThe file ID (from upload_file).
-
namestringThe name.
-
descriptionstringfile: text under the download. audio: title above the player.
-
file_typestringFile extension, like pdf.
-
size_bytesinteger can be nullFile size in bytes.
-
folderstring can be nullFolder name. Blocks with the same folder show together.
type: video_embed· 3 fields-
typestringThe block type.
Allowed values:
video_embed -
urlstringYouTube, Vimeo or Loom link.
-
folderstring can be nullFolder name. Blocks with the same folder show together.
type: button· 4 fieldsA link button.
-
typestringThe block type.
Allowed values:
button -
labelstringThe text that buyers see.
-
urlstringThe link.
-
folderstring can be nullFolder name. Blocks with the same folder show together.
-
-
courseobject can be nullThe course that buyers get.
Show 2 fields Hide fields
-
idintegerThe ID.
-
namestringThe name.
-
-
bundle_itemsarray of objectbundle products only.
Show 4 fields Hide fields
-
product_idintegerThe product ID.
-
variant_idinteger can be nullThe variant ID, if any.
-
namestringThe name.
-
variantstring can be nullThe variant name, if any.
-
-
custom_fieldsarray of objectExtra fields at checkout.
Show 3 fields Hide fields
-
labelstringThe text that buyers see.
-
typestringThe type.
-
requiredbooleantrue = buyers must fill it.
-
-
stock_limitinteger can be nullnull = no limit.
-
available_fromstring<date> can be nullLike 2026-01-31.
-
available_untilstring<date> can be nullLike 2026-01-31.
-
access_daysinteger can be nullAccess ends this many days after purchase. null = no end.
-
access_starts_onstring<date> can be nullLike 2026-01-31. Buyers get access from this day at the earliest.
-
lead_magnetbooleantrue = a free product that grows the e-mail list.
-
withdrawal_daysintegerWithdrawal period shown at checkout, in days.
-
url_slugstring can be nullThe address part of the URL.
-
marketing_emailsbooleantrue = buyers are subscribed to the marketing e-mails.
-
ebookbooleantrue = taxed as an e-publication.
-
pdf_stampbooleantrue = PDFs are stamped with the buyer's e-mail address.
-
login_protectionbooleantrue = buyers must log in to open the product.
-
show_in_searchbooleantrue = search engines can show the sales page.
-
coupon_fieldbooleantrue = checkout shows the coupon field.
-
external_urlstring can be left outexternal products only.
-
course_idinteger can be left out can be nullcourse products only.