StoreLyne API docs 2026-11

The store theme as the editor sees it: templates, widget library, settings and code

GET/admin/2026-11/theme

scope read_themes

Response 200

  • idID (thm_...) or nullrequired
  • namestringrequired
  • versionintegerrequired

    Goes up by one on every publish.

  • published_attimestamp or nullrequired
  • updated_attimestamp or nullrequired
  • has_unpublished_changesbooleanrequired
  • filesarray of objectrequired

    Every file of the draft theme.

  • files[].pathstringrequired
  • files[].sizeintegerrequired
  • files[].customizedbooleanrequired
  • files[].addedbooleanrequired
  • codeobjectrequired
  • code.cssstringrequired

    Extra CSS for every store page.

    Up to 200000 characters

  • code.head_htmlstringrequired

    HTML added at the end of <head> on store pages.

    Up to 50000 characters

  • code.body_htmlstringrequired

    HTML added at the end of <body> on store pages.

    Up to 50000 characters

  • code.allow_externalbooleanrequired

    Let custom code run inline scripts and load scripts, styles, fonts and frames from other sites.

    Default false

  • templatesobjectrequired

    The draft of each editable template.

  • sectionsarray of objectrequired

    Section types the draft theme has: the widget library.

  • sections[].typestringrequired
  • sections[].namestringrequired
  • sections[].categorystringrequired
  • sections[].descriptionstring or nullrequired
  • sections[].mainbooleanrequired

    The page content itself: always on its template, never removed.

  • sections[].templatesarray of string or nullrequired

    Templates that may use it; null for all.

  • sections[].settingsarray of objectrequired
  • sections[].settings[].typestringrequired
  • sections[].settings[].idstringrequired
  • sections[].settings[].labelstringrequired
  • sections[].settings[].defaultstring
  • sections[].settings[].optionsarray of object
  • sections[].settings[].options[].valuestringrequired
  • sections[].settings[].options[].labelstringrequired
  • sections[].settings[].minnumber
  • sections[].settings[].maxnumber
  • sections[].settings[].stepnumber
  • sections[].settings[].infostring
  • sections[].settings[].placeholderstring
  • sections[].blocksarray of objectrequired
  • sections[].blocks[].typestringrequired
  • sections[].blocks[].namestringrequired
  • sections[].blocks[].limitnumber or nullrequired
  • sections[].blocks[].settingsarray of objectrequired
  • sections[].blocks[].settings[].typestringrequired
  • sections[].blocks[].settings[].idstringrequired
  • sections[].blocks[].settings[].labelstringrequired
  • sections[].blocks[].settings[].defaultstring
  • sections[].blocks[].settings[].optionsarray of object
  • sections[].blocks[].settings[].options[].valuestringrequired
  • sections[].blocks[].settings[].options[].labelstringrequired
  • sections[].blocks[].settings[].minnumber
  • sections[].blocks[].settings[].maxnumber
  • sections[].blocks[].settings[].stepnumber
  • sections[].blocks[].settings[].infostring
  • sections[].blocks[].settings[].placeholderstring
  • sections[].max_blocksintegerrequired
  • sections[].presetsarray of objectrequired
  • sections[].presets[].namestringrequired
  • sections[].presets[].settingsobjectrequired
  • sections[].presets[].blocksarray of objectrequired
  • sections[].presets[].blocks[].typestringrequired
  • sections[].presets[].blocks[].settingsobjectrequired
  • settings_schemaarray of objectrequired
  • settings_schema[].namestringrequired
  • settings_schema[].settingsarray of objectrequired
  • settings_schema[].settings[].typestringrequired
  • settings_schema[].settings[].idstringrequired
  • settings_schema[].settings[].labelstringrequired
  • settings_schema[].settings[].defaultstring
  • settings_schema[].settings[].optionsarray of object
  • settings_schema[].settings[].options[].valuestringrequired
  • settings_schema[].settings[].options[].labelstringrequired
  • settings_schema[].settings[].minnumber
  • settings_schema[].settings[].maxnumber
  • settings_schema[].settings[].stepnumber
  • settings_schema[].settings[].infostring
  • settings_schema[].settings[].placeholderstring
  • settingsobjectrequired

    Theme setting values of the draft.

Errors

401authentication_requiredSend a valid access token or session.
403missing_scopeThe app token does not have the scope this endpoint needs.
429rate_limitedToo many requests. Wait for the time in RateLimit-Reset.
500internal_errorSomething went wrong on our side. Quote the trace_id to support.
curl https://api.storelyne.com/admin/2026-11/theme \
  -H "Authorization: Bearer pat_live_..."
Response 200
{
  "id": "thm_01JCG8ZQ5S7T0V4X8K2M3N6P9R",
  "name": "Festive saree",
  "version": 1,
  "published_at": "2026-11-04T10:00:00.000Z",
  "updated_at": "2026-11-04T10:00:00.000Z",
  "has_unpublished_changes": false,
  "files": [
    {
      "path": "string",
      "size": 1,
      "customized": false,
      "added": false
    }
  ],
  "code": {
    "css": "",
    "head_html": "",
    "body_html": "",
    "allow_external": false
  },
  "templates": {},
  "sections": [
    {
      "type": "string",
      "name": "Festive saree",
      "category": "string",
      "description": "Hand block printed cotton.",
      "main": false,
      "templates": [
        "string"
      ],
      "settings": [
        {
          "type": "string",
          "id": "string",
          "label": "string",
          "default": "string",
          "options": [],
          "min": 1,
          "max": 1,
          "step": 1,
          "info": "string",
          "placeholder": "string"
        }
      ],
      "blocks": [
        {
          "type": "string",
          "name": "Festive saree",
          "limit": 1,
          "settings": []
        }
      ],
      "max_blocks": 1,
      "presets": [
        {
          "name": "Festive saree",
          "settings": {},
          "blocks": []
        }
      ]
    }
  ],
  "settings_schema": [
    {
      "name": "Festive saree",
      "settings": [
        {
          "type": "string",
          "id": "string",
          "label": "string",
          "default": "string",
          "options": [],
          "min": 1,
          "max": 1,
          "step": 1,
          "info": "string",
          "placeholder": "string"
        }
      ]
    }
  ],
  "settings": {}
}

Change the draft: files (null puts the platform file back), templates, settings or code

PATCH/admin/2026-11/theme

The whole draft is checked as rendering would meet it (paths, sizes, Liquid syntax, section schemas, templates). Nothing is saved when a check fails; the error names the file.

scope write_themes

Headers

  • X-CSRF-Tokenstring

    Required with a seller session cookie: the value of the orb_csrf cookie.

Request body

  • filesobject

    Path to new source; null resets the file to the platform version or removes an added file.

  • templatesobject

    Shortcut for templates/<name>.json.

  • settingsobject

    Theme setting values; saved in config/settings_data.json.

  • codeobject
  • code.cssstring

    Extra CSS for every store page.

    Up to 200000 characters

  • code.head_htmlstring

    HTML added at the end of <head> on store pages.

    Up to 50000 characters

  • code.body_htmlstring

    HTML added at the end of <body> on store pages.

    Up to 50000 characters

  • code.allow_externalboolean

    Let custom code run inline scripts and load scripts, styles, fonts and frames from other sites.

    Default false

  • resetboolean

    Start over from the platform theme, dropping every change in the draft.

Response 200

  • idID (thm_...) or nullrequired
  • namestringrequired
  • versionintegerrequired

    Goes up by one on every publish.

  • published_attimestamp or nullrequired
  • updated_attimestamp or nullrequired
  • has_unpublished_changesbooleanrequired
  • filesarray of objectrequired

    Every file of the draft theme.

  • files[].pathstringrequired
  • files[].sizeintegerrequired
  • files[].customizedbooleanrequired
  • files[].addedbooleanrequired
  • codeobjectrequired
  • code.cssstringrequired

    Extra CSS for every store page.

    Up to 200000 characters

  • code.head_htmlstringrequired

    HTML added at the end of <head> on store pages.

    Up to 50000 characters

  • code.body_htmlstringrequired

    HTML added at the end of <body> on store pages.

    Up to 50000 characters

  • code.allow_externalbooleanrequired

    Let custom code run inline scripts and load scripts, styles, fonts and frames from other sites.

    Default false

  • templatesobjectrequired

    The draft of each editable template.

  • sectionsarray of objectrequired

    Section types the draft theme has: the widget library.

  • sections[].typestringrequired
  • sections[].namestringrequired
  • sections[].categorystringrequired
  • sections[].descriptionstring or nullrequired
  • sections[].mainbooleanrequired

    The page content itself: always on its template, never removed.

  • sections[].templatesarray of string or nullrequired

    Templates that may use it; null for all.

  • sections[].settingsarray of objectrequired
  • sections[].settings[].typestringrequired
  • sections[].settings[].idstringrequired
  • sections[].settings[].labelstringrequired
  • sections[].settings[].defaultstring
  • sections[].settings[].optionsarray of object
  • sections[].settings[].options[].valuestringrequired
  • sections[].settings[].options[].labelstringrequired
  • sections[].settings[].minnumber
  • sections[].settings[].maxnumber
  • sections[].settings[].stepnumber
  • sections[].settings[].infostring
  • sections[].settings[].placeholderstring
  • sections[].blocksarray of objectrequired
  • sections[].blocks[].typestringrequired
  • sections[].blocks[].namestringrequired
  • sections[].blocks[].limitnumber or nullrequired
  • sections[].blocks[].settingsarray of objectrequired
  • sections[].blocks[].settings[].typestringrequired
  • sections[].blocks[].settings[].idstringrequired
  • sections[].blocks[].settings[].labelstringrequired
  • sections[].blocks[].settings[].defaultstring
  • sections[].blocks[].settings[].optionsarray of object
  • sections[].blocks[].settings[].options[].valuestringrequired
  • sections[].blocks[].settings[].options[].labelstringrequired
  • sections[].blocks[].settings[].minnumber
  • sections[].blocks[].settings[].maxnumber
  • sections[].blocks[].settings[].stepnumber
  • sections[].blocks[].settings[].infostring
  • sections[].blocks[].settings[].placeholderstring
  • sections[].max_blocksintegerrequired
  • sections[].presetsarray of objectrequired
  • sections[].presets[].namestringrequired
  • sections[].presets[].settingsobjectrequired
  • sections[].presets[].blocksarray of objectrequired
  • sections[].presets[].blocks[].typestringrequired
  • sections[].presets[].blocks[].settingsobjectrequired
  • settings_schemaarray of objectrequired
  • settings_schema[].namestringrequired
  • settings_schema[].settingsarray of objectrequired
  • settings_schema[].settings[].typestringrequired
  • settings_schema[].settings[].idstringrequired
  • settings_schema[].settings[].labelstringrequired
  • settings_schema[].settings[].defaultstring
  • settings_schema[].settings[].optionsarray of object
  • settings_schema[].settings[].options[].valuestringrequired
  • settings_schema[].settings[].options[].labelstringrequired
  • settings_schema[].settings[].minnumber
  • settings_schema[].settings[].maxnumber
  • settings_schema[].settings[].stepnumber
  • settings_schema[].settings[].infostring
  • settings_schema[].settings[].placeholderstring
  • settingsobjectrequired

    Theme setting values of the draft.

Errors

400validation_failedA field in the request is missing or invalid. See param.
401authentication_requiredSend a valid access token or session.
403missing_scopeThe app token does not have the scope this endpoint needs.
429rate_limitedToo many requests. Wait for the time in RateLimit-Reset.
500internal_errorSomething went wrong on our side. Quote the trace_id to support.
curl -X PATCH https://api.storelyne.com/admin/2026-11/theme \
  -H "Authorization: Bearer pat_live_..." \
  -H "Content-Type: application/json" \
  -d '{
  "files": {},
  "templates": {},
  "settings": {}
}'
Response 200
{
  "id": "thm_01JCG8ZQ5S7T0V4X8K2M3N6P9R",
  "name": "Festive saree",
  "version": 1,
  "published_at": "2026-11-04T10:00:00.000Z",
  "updated_at": "2026-11-04T10:00:00.000Z",
  "has_unpublished_changes": false,
  "files": [
    {
      "path": "string",
      "size": 1,
      "customized": false,
      "added": false
    }
  ],
  "code": {
    "css": "",
    "head_html": "",
    "body_html": "",
    "allow_external": false
  },
  "templates": {},
  "sections": [
    {
      "type": "string",
      "name": "Festive saree",
      "category": "string",
      "description": "Hand block printed cotton.",
      "main": false,
      "templates": [
        "string"
      ],
      "settings": [
        {
          "type": "string",
          "id": "string",
          "label": "string",
          "default": "string",
          "options": [],
          "min": 1,
          "max": 1,
          "step": 1,
          "info": "string",
          "placeholder": "string"
        }
      ],
      "blocks": [
        {
          "type": "string",
          "name": "Festive saree",
          "limit": 1,
          "settings": []
        }
      ],
      "max_blocks": 1,
      "presets": [
        {
          "name": "Festive saree",
          "settings": {},
          "blocks": []
        }
      ]
    }
  ],
  "settings_schema": [
    {
      "name": "Festive saree",
      "settings": [
        {
          "type": "string",
          "id": "string",
          "label": "string",
          "default": "string",
          "options": [],
          "min": 1,
          "max": 1,
          "step": 1,
          "info": "string",
          "placeholder": "string"
        }
      ]
    }
  ],
  "settings": {}
}

Throw away the draft and go back to what buyers see

POST/admin/2026-11/theme/discard

scope write_themesIdempotency-Key required

Headers

  • Idempotency-Keystringrequired

    Unique key for this request. Retries with the same key return the first response.

    At least 1 characters · Up to 255 characters

  • X-CSRF-Tokenstring

    Required with a seller session cookie: the value of the orb_csrf cookie.

Response 200

  • idID (thm_...) or nullrequired
  • namestringrequired
  • versionintegerrequired

    Goes up by one on every publish.

  • published_attimestamp or nullrequired
  • updated_attimestamp or nullrequired
  • has_unpublished_changesbooleanrequired
  • filesarray of objectrequired

    Every file of the draft theme.

  • files[].pathstringrequired
  • files[].sizeintegerrequired
  • files[].customizedbooleanrequired
  • files[].addedbooleanrequired
  • codeobjectrequired
  • code.cssstringrequired

    Extra CSS for every store page.

    Up to 200000 characters

  • code.head_htmlstringrequired

    HTML added at the end of <head> on store pages.

    Up to 50000 characters

  • code.body_htmlstringrequired

    HTML added at the end of <body> on store pages.

    Up to 50000 characters

  • code.allow_externalbooleanrequired

    Let custom code run inline scripts and load scripts, styles, fonts and frames from other sites.

    Default false

  • templatesobjectrequired

    The draft of each editable template.

  • sectionsarray of objectrequired

    Section types the draft theme has: the widget library.

  • sections[].typestringrequired
  • sections[].namestringrequired
  • sections[].categorystringrequired
  • sections[].descriptionstring or nullrequired
  • sections[].mainbooleanrequired

    The page content itself: always on its template, never removed.

  • sections[].templatesarray of string or nullrequired

    Templates that may use it; null for all.

  • sections[].settingsarray of objectrequired
  • sections[].settings[].typestringrequired
  • sections[].settings[].idstringrequired
  • sections[].settings[].labelstringrequired
  • sections[].settings[].defaultstring
  • sections[].settings[].optionsarray of object
  • sections[].settings[].options[].valuestringrequired
  • sections[].settings[].options[].labelstringrequired
  • sections[].settings[].minnumber
  • sections[].settings[].maxnumber
  • sections[].settings[].stepnumber
  • sections[].settings[].infostring
  • sections[].settings[].placeholderstring
  • sections[].blocksarray of objectrequired
  • sections[].blocks[].typestringrequired
  • sections[].blocks[].namestringrequired
  • sections[].blocks[].limitnumber or nullrequired
  • sections[].blocks[].settingsarray of objectrequired
  • sections[].blocks[].settings[].typestringrequired
  • sections[].blocks[].settings[].idstringrequired
  • sections[].blocks[].settings[].labelstringrequired
  • sections[].blocks[].settings[].defaultstring
  • sections[].blocks[].settings[].optionsarray of object
  • sections[].blocks[].settings[].options[].valuestringrequired
  • sections[].blocks[].settings[].options[].labelstringrequired
  • sections[].blocks[].settings[].minnumber
  • sections[].blocks[].settings[].maxnumber
  • sections[].blocks[].settings[].stepnumber
  • sections[].blocks[].settings[].infostring
  • sections[].blocks[].settings[].placeholderstring
  • sections[].max_blocksintegerrequired
  • sections[].presetsarray of objectrequired
  • sections[].presets[].namestringrequired
  • sections[].presets[].settingsobjectrequired
  • sections[].presets[].blocksarray of objectrequired
  • sections[].presets[].blocks[].typestringrequired
  • sections[].presets[].blocks[].settingsobjectrequired
  • settings_schemaarray of objectrequired
  • settings_schema[].namestringrequired
  • settings_schema[].settingsarray of objectrequired
  • settings_schema[].settings[].typestringrequired
  • settings_schema[].settings[].idstringrequired
  • settings_schema[].settings[].labelstringrequired
  • settings_schema[].settings[].defaultstring
  • settings_schema[].settings[].optionsarray of object
  • settings_schema[].settings[].options[].valuestringrequired
  • settings_schema[].settings[].options[].labelstringrequired
  • settings_schema[].settings[].minnumber
  • settings_schema[].settings[].maxnumber
  • settings_schema[].settings[].stepnumber
  • settings_schema[].settings[].infostring
  • settings_schema[].settings[].placeholderstring
  • settingsobjectrequired

    Theme setting values of the draft.

Errors

400idempotency_key_requiredEvery POST needs an Idempotency-Key header.
401authentication_requiredSend a valid access token or session.
403missing_scopeThe app token does not have the scope this endpoint needs.
409idempotency_in_progressA request with this Idempotency-Key is still running.
422idempotency_key_reusedThis Idempotency-Key was used with a different request.
429rate_limitedToo many requests. Wait for the time in RateLimit-Reset.
500internal_errorSomething went wrong on our side. Quote the trace_id to support.
curl -X POST https://api.storelyne.com/admin/2026-11/theme/discard \
  -H "Authorization: Bearer pat_live_..." \
  -H "Idempotency-Key: $(uuidgen)"
Response 200
{
  "id": "thm_01JCG8ZQ5S7T0V4X8K2M3N6P9R",
  "name": "Festive saree",
  "version": 1,
  "published_at": "2026-11-04T10:00:00.000Z",
  "updated_at": "2026-11-04T10:00:00.000Z",
  "has_unpublished_changes": false,
  "files": [
    {
      "path": "string",
      "size": 1,
      "customized": false,
      "added": false
    }
  ],
  "code": {
    "css": "",
    "head_html": "",
    "body_html": "",
    "allow_external": false
  },
  "templates": {},
  "sections": [
    {
      "type": "string",
      "name": "Festive saree",
      "category": "string",
      "description": "Hand block printed cotton.",
      "main": false,
      "templates": [
        "string"
      ],
      "settings": [
        {
          "type": "string",
          "id": "string",
          "label": "string",
          "default": "string",
          "options": [],
          "min": 1,
          "max": 1,
          "step": 1,
          "info": "string",
          "placeholder": "string"
        }
      ],
      "blocks": [
        {
          "type": "string",
          "name": "Festive saree",
          "limit": 1,
          "settings": []
        }
      ],
      "max_blocks": 1,
      "presets": [
        {
          "name": "Festive saree",
          "settings": {},
          "blocks": []
        }
      ]
    }
  ],
  "settings_schema": [
    {
      "name": "Festive saree",
      "settings": [
        {
          "type": "string",
          "id": "string",
          "label": "string",
          "default": "string",
          "options": [],
          "min": 1,
          "max": 1,
          "step": 1,
          "info": "string",
          "placeholder": "string"
        }
      ]
    }
  ],
  "settings": {}
}

Every file of the draft theme and its custom code, to keep or move to another store

GET/admin/2026-11/theme/export

scope read_themes

Response 200

  • format"storelyne-theme"required
  • format_version"1"required
  • namestringrequired
  • exported_attimestamprequired
  • filesobjectrequired
  • codeobjectrequired
  • code.cssstringrequired

    Extra CSS for every store page.

    Up to 200000 characters

  • code.head_htmlstringrequired

    HTML added at the end of <head> on store pages.

    Up to 50000 characters

  • code.body_htmlstringrequired

    HTML added at the end of <body> on store pages.

    Up to 50000 characters

  • code.allow_externalbooleanrequired

    Let custom code run inline scripts and load scripts, styles, fonts and frames from other sites.

    Default false

Errors

401authentication_requiredSend a valid access token or session.
403missing_scopeThe app token does not have the scope this endpoint needs.
429rate_limitedToo many requests. Wait for the time in RateLimit-Reset.
500internal_errorSomething went wrong on our side. Quote the trace_id to support.
curl https://api.storelyne.com/admin/2026-11/theme/export \
  -H "Authorization: Bearer pat_live_..."
Response 200
{
  "format": "storelyne-theme",
  "format_version": 1,
  "name": "Festive saree",
  "exported_at": "2026-11-04T10:00:00.000Z",
  "files": {},
  "code": {
    "css": "",
    "head_html": "",
    "body_html": "",
    "allow_external": false
  }
}

One theme file of the draft, with the platform version when there is one

GET/admin/2026-11/theme/file

scope read_themes

Query parameters

  • pathstringrequired

Response 200

  • pathstringrequired
  • sourcestringrequired
  • default_sourcestring or nullrequired

Errors

400validation_failedA field in the request is missing or invalid. See param.
401authentication_requiredSend a valid access token or session.
403missing_scopeThe app token does not have the scope this endpoint needs.
404resource_not_foundThe object does not exist or belongs to another store.
429rate_limitedToo many requests. Wait for the time in RateLimit-Reset.
500internal_errorSomething went wrong on our side. Quote the trace_id to support.
curl https://api.storelyne.com/admin/2026-11/theme/file \
  -H "Authorization: Bearer pat_live_..."
Response 200
{
  "path": "string",
  "source": "string",
  "default_source": "string"
}

A short-lived token that shows the draft theme on the store (add ?orb_preview=<token>)

POST/admin/2026-11/theme/preview

scope read_themesIdempotency-Key required

Headers

  • Idempotency-Keystringrequired

    Unique key for this request. Retries with the same key return the first response.

    At least 1 characters · Up to 255 characters

  • X-CSRF-Tokenstring

    Required with a seller session cookie: the value of the orb_csrf cookie.

Response 201

  • tokenstringrequired
  • expires_attimestamprequired

Errors

400idempotency_key_requiredEvery POST needs an Idempotency-Key header.
401authentication_requiredSend a valid access token or session.
403missing_scopeThe app token does not have the scope this endpoint needs.
409idempotency_in_progressA request with this Idempotency-Key is still running.
422idempotency_key_reusedThis Idempotency-Key was used with a different request.
429rate_limitedToo many requests. Wait for the time in RateLimit-Reset.
500internal_errorSomething went wrong on our side. Quote the trace_id to support.
curl -X POST https://api.storelyne.com/admin/2026-11/theme/preview \
  -H "Authorization: Bearer pat_live_..." \
  -H "Idempotency-Key: $(uuidgen)"
Response 201
{
  "token": "string",
  "expires_at": "2026-11-04T10:00:00.000Z"
}

Publish the draft: buyers see it from now on

POST/admin/2026-11/theme/publish

scope write_themesIdempotency-Key required

Headers

  • Idempotency-Keystringrequired

    Unique key for this request. Retries with the same key return the first response.

    At least 1 characters · Up to 255 characters

  • X-CSRF-Tokenstring

    Required with a seller session cookie: the value of the orb_csrf cookie.

Response 200

  • idID (thm_...) or nullrequired
  • namestringrequired
  • versionintegerrequired

    Goes up by one on every publish.

  • published_attimestamp or nullrequired
  • updated_attimestamp or nullrequired
  • has_unpublished_changesbooleanrequired
  • filesarray of objectrequired

    Every file of the draft theme.

  • files[].pathstringrequired
  • files[].sizeintegerrequired
  • files[].customizedbooleanrequired
  • files[].addedbooleanrequired
  • codeobjectrequired
  • code.cssstringrequired

    Extra CSS for every store page.

    Up to 200000 characters

  • code.head_htmlstringrequired

    HTML added at the end of <head> on store pages.

    Up to 50000 characters

  • code.body_htmlstringrequired

    HTML added at the end of <body> on store pages.

    Up to 50000 characters

  • code.allow_externalbooleanrequired

    Let custom code run inline scripts and load scripts, styles, fonts and frames from other sites.

    Default false

  • templatesobjectrequired

    The draft of each editable template.

  • sectionsarray of objectrequired

    Section types the draft theme has: the widget library.

  • sections[].typestringrequired
  • sections[].namestringrequired
  • sections[].categorystringrequired
  • sections[].descriptionstring or nullrequired
  • sections[].mainbooleanrequired

    The page content itself: always on its template, never removed.

  • sections[].templatesarray of string or nullrequired

    Templates that may use it; null for all.

  • sections[].settingsarray of objectrequired
  • sections[].settings[].typestringrequired
  • sections[].settings[].idstringrequired
  • sections[].settings[].labelstringrequired
  • sections[].settings[].defaultstring
  • sections[].settings[].optionsarray of object
  • sections[].settings[].options[].valuestringrequired
  • sections[].settings[].options[].labelstringrequired
  • sections[].settings[].minnumber
  • sections[].settings[].maxnumber
  • sections[].settings[].stepnumber
  • sections[].settings[].infostring
  • sections[].settings[].placeholderstring
  • sections[].blocksarray of objectrequired
  • sections[].blocks[].typestringrequired
  • sections[].blocks[].namestringrequired
  • sections[].blocks[].limitnumber or nullrequired
  • sections[].blocks[].settingsarray of objectrequired
  • sections[].blocks[].settings[].typestringrequired
  • sections[].blocks[].settings[].idstringrequired
  • sections[].blocks[].settings[].labelstringrequired
  • sections[].blocks[].settings[].defaultstring
  • sections[].blocks[].settings[].optionsarray of object
  • sections[].blocks[].settings[].options[].valuestringrequired
  • sections[].blocks[].settings[].options[].labelstringrequired
  • sections[].blocks[].settings[].minnumber
  • sections[].blocks[].settings[].maxnumber
  • sections[].blocks[].settings[].stepnumber
  • sections[].blocks[].settings[].infostring
  • sections[].blocks[].settings[].placeholderstring
  • sections[].max_blocksintegerrequired
  • sections[].presetsarray of objectrequired
  • sections[].presets[].namestringrequired
  • sections[].presets[].settingsobjectrequired
  • sections[].presets[].blocksarray of objectrequired
  • sections[].presets[].blocks[].typestringrequired
  • sections[].presets[].blocks[].settingsobjectrequired
  • settings_schemaarray of objectrequired
  • settings_schema[].namestringrequired
  • settings_schema[].settingsarray of objectrequired
  • settings_schema[].settings[].typestringrequired
  • settings_schema[].settings[].idstringrequired
  • settings_schema[].settings[].labelstringrequired
  • settings_schema[].settings[].defaultstring
  • settings_schema[].settings[].optionsarray of object
  • settings_schema[].settings[].options[].valuestringrequired
  • settings_schema[].settings[].options[].labelstringrequired
  • settings_schema[].settings[].minnumber
  • settings_schema[].settings[].maxnumber
  • settings_schema[].settings[].stepnumber
  • settings_schema[].settings[].infostring
  • settings_schema[].settings[].placeholderstring
  • settingsobjectrequired

    Theme setting values of the draft.

Errors

400idempotency_key_requiredEvery POST needs an Idempotency-Key header.
400validation_failedA field in the request is missing or invalid. See param.
401authentication_requiredSend a valid access token or session.
403missing_scopeThe app token does not have the scope this endpoint needs.
409idempotency_in_progressA request with this Idempotency-Key is still running.
422idempotency_key_reusedThis Idempotency-Key was used with a different request.
429rate_limitedToo many requests. Wait for the time in RateLimit-Reset.
500internal_errorSomething went wrong on our side. Quote the trace_id to support.
curl -X POST https://api.storelyne.com/admin/2026-11/theme/publish \
  -H "Authorization: Bearer pat_live_..." \
  -H "Idempotency-Key: $(uuidgen)"
Response 200
{
  "id": "thm_01JCG8ZQ5S7T0V4X8K2M3N6P9R",
  "name": "Festive saree",
  "version": 1,
  "published_at": "2026-11-04T10:00:00.000Z",
  "updated_at": "2026-11-04T10:00:00.000Z",
  "has_unpublished_changes": false,
  "files": [
    {
      "path": "string",
      "size": 1,
      "customized": false,
      "added": false
    }
  ],
  "code": {
    "css": "",
    "head_html": "",
    "body_html": "",
    "allow_external": false
  },
  "templates": {},
  "sections": [
    {
      "type": "string",
      "name": "Festive saree",
      "category": "string",
      "description": "Hand block printed cotton.",
      "main": false,
      "templates": [
        "string"
      ],
      "settings": [
        {
          "type": "string",
          "id": "string",
          "label": "string",
          "default": "string",
          "options": [],
          "min": 1,
          "max": 1,
          "step": 1,
          "info": "string",
          "placeholder": "string"
        }
      ],
      "blocks": [
        {
          "type": "string",
          "name": "Festive saree",
          "limit": 1,
          "settings": []
        }
      ],
      "max_blocks": 1,
      "presets": [
        {
          "name": "Festive saree",
          "settings": {},
          "blocks": []
        }
      ]
    }
  ],
  "settings_schema": [
    {
      "name": "Festive saree",
      "settings": [
        {
          "type": "string",
          "id": "string",
          "label": "string",
          "default": "string",
          "options": [],
          "min": 1,
          "max": 1,
          "step": 1,
          "info": "string",
          "placeholder": "string"
        }
      ]
    }
  ],
  "settings": {}
}