Kanorio

API リファレンス

Products

Content Delivery API: GET /products, GET /products/{slug}

このページは英語のみです。API リファレンス、Webhook イベント、変更履歴は、コード内のフィールド名やエラーコードと揃えるため英語で提供しています。
Base URL https://{site}/api/v1ErrorsPagination

Parameters

  • limitinteger · query

    Maximum number of items to return, 1-100. Defaults to 20.

  • cursorstring · query

    Opaque cursor from the previous page's nextCursor. Omit for the first page.

  • categorystring · query
  • authorstring · query

    Author/instructor slug (system collection authors). Returns only products linked to an active deliverable this person teaches; use it to list a person's courses on an instructor page.

  • localestring · query

    Locale for product names, descriptions, options and the category record, and for promotion badge text. One of the site's locales from /site (a code such as `en-US` or the URL prefix such as `en`); omit it for the primary locale. Other values, including locales that are still translating, return 400 UNSUPPORTED_LOCALE. Untranslated fields fall back to the primary locale.

Response 200

  • dataobject[]required
  • data[].resolvedLocalestring

    Multilingual sites only: the locale this product was delivered in (the requested locale when it has a published translation, otherwise the primary locale).

  • data[].availableLocalesstring[]

    Multilingual sites only: locales with a published translation of this product (the primary locale is not listed). Use it for hreflang and canonical.

  • data[].localePathsobject

    Multilingual sites only: this product's path in every live locale, keyed by locale code, without the locale prefix (each locale can have its own translated slug). Use it for hreflang, a language switcher and sitemap alternates.

  • data[].idstringrequired
  • data[].slugstringrequired
  • data[].titlestringrequired
  • data[].descriptionstring | null
  • data[].typestring
  • data[].currencystringrequired
  • data[].imagesobject[]
  • data[].optionsobject[]

    Option dimensions (0–3). Each pricing tier's `optionValues` lists one value per option, in this order. With `locale`, `name` and `values` are translated and tier `optionValues` use the same translated strings.

  • data[].options[].idstring

    Stable option id (the key for option translations)

  • data[].options[].namestringrequired
  • data[].options[].valuesstring[]required
  • data[].pricingTiersobject[]required
  • data[].allowCustomAmountboolean
  • data[].canPurchasebooleanrequired
  • data[].deliverablesobject[]
  • data[].deliverables[].idstringrequired

    Deliverable id. Pass it to <kanorio-curriculum deliverable> or the Customer API.

  • data[].deliverables[].titlestringrequired
  • data[].deliverables[].descriptionstring | nullrequired
  • data[].deliverables[].structure"COURSE" | "DOWNLOAD"required
  • data[].deliverables[].coverAssetIdstring | nullrequired
  • data[].deliverables[].coverobject | null

    Cover image of the deliverable (null when unset or the image is in the trash).

  • data[].deliverables[].authorsobject[]

    Authors/instructors in the owner's order (shared site author list). Older servers omit it.

  • data[].deliverables[].unitCountintegerrequired
  • data[].deliverables[].totalDurationSecondsnumber | nullrequired
  • data[].deliverables[].unitsobject[]required
  • data[].updatedAtstring
  • data[].seoobject | null

    Product SEO (title, description, Open Graph, robots). Null when unset.

  • data[].pageSeoobject | null

    Alias of seo, kept for the hosted storefront.

  • hasMorebooleanrequired

    True when another page exists; pass nextCursor to fetch it.

  • nextCursorstring | nullrequired

    Cursor for the next page, or null on the last page.

Errors

  • UNSUPPORTED_LOCALE 400
  • INVALID_CURSOR 400
curl -X GET "https://{site}/api/v1/products"

Parameters

  • slugstring · pathrequired
  • localestring · query

    Locale for the product name, description, SEO fields, options and deliverable outline, and for promotion badge text. One of the site's locales from /site (a code such as `en-US` or the URL prefix such as `en`); omit it for the primary locale. Other values, including locales that are still translating, return 400 UNSUPPORTED_LOCALE. Untranslated fields fall back to the primary locale. On multilingual sites the product carries resolvedLocale and availableLocales.

Response 200

  • productobjectrequired
  • product.resolvedLocalestring

    Multilingual sites only: the locale this product was delivered in (the requested locale when it has a published translation, otherwise the primary locale).

  • product.availableLocalesstring[]

    Multilingual sites only: locales with a published translation of this product (the primary locale is not listed). Use it for hreflang and canonical.

  • product.localePathsobject

    Multilingual sites only: this product's path in every live locale, keyed by locale code, without the locale prefix (each locale can have its own translated slug). Use it for hreflang, a language switcher and sitemap alternates.

  • product.idstringrequired
  • product.slugstringrequired
  • product.titlestringrequired
  • product.descriptionstring | null
  • product.typestring
  • product.currencystringrequired
  • product.imagesobject[]
  • product.optionsobject[]

    Option dimensions (0–3). Each pricing tier's `optionValues` lists one value per option, in this order. With `locale`, `name` and `values` are translated and tier `optionValues` use the same translated strings.

  • product.options[].idstring

    Stable option id (the key for option translations)

  • product.options[].namestringrequired
  • product.options[].valuesstring[]required
  • product.pricingTiersobject[]required
  • product.allowCustomAmountboolean
  • product.canPurchasebooleanrequired
  • product.deliverablesobject[]
  • product.deliverables[].idstringrequired

    Deliverable id. Pass it to <kanorio-curriculum deliverable> or the Customer API.

  • product.deliverables[].titlestringrequired
  • product.deliverables[].descriptionstring | nullrequired
  • product.deliverables[].structure"COURSE" | "DOWNLOAD"required
  • product.deliverables[].coverAssetIdstring | nullrequired
  • product.deliverables[].coverobject | null

    Cover image of the deliverable (null when unset or the image is in the trash).

  • product.deliverables[].authorsobject[]

    Authors/instructors in the owner's order (shared site author list). Older servers omit it.

  • product.deliverables[].unitCountintegerrequired
  • product.deliverables[].totalDurationSecondsnumber | nullrequired
  • product.deliverables[].unitsobject[]required
  • product.updatedAtstring
  • product.seoobject | null

    Product SEO (title, description, Open Graph, robots). Null when unset.

  • product.pageSeoobject | null

    Alias of seo, kept for the hosted storefront.

Errors

  • PRODUCT_NOT_FOUND 404
  • UNSUPPORTED_LOCALE 400
curl -X GET "https://{site}/api/v1/products/{slug}"