Produktly docs
Product toursId

Update a product tour

PATCH
/product-tours/{id}

Only the fields you send are changed. steps and targeting replace their stored values wholesale — fetch the tour first and send the full array back, preserving step ids. settings are merged. Live tours can be edited, but an update that would leave a live tour unpublishable (no steps or no targeting) returns 400; set active: false first to take it down.

Authorization

BearerAuth
AuthorizationBearer <token>

Use an API key from the Produktly dashboard → Settings → API keys.

In: header

Path Parameters

id*integer
Range0 < value

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X PATCH "https://example.com/product-tours/1" \  -H "Content-Type: application/json" \  -d '{    "name": "Onboarding tour (rewritten)",    "active": false  }'
{  "id": 0,  "name": "string",  "active": true,  "createdAt": "2019-08-24T14:15:22Z",  "updatedAt": "2019-08-24T14:15:22Z",  "folderId": 0,  "themeId": 0,  "steps": [    {      "type": "highlight",      "id": "string"    }  ],  "settings": {    "tourStart": "minified",    "startDelay": 0,    "trigger": "once",    "saveProgress": true,    "hideBeacon": true,    "beaconPosition": "bottom-right",    "multiPageEnabled": true,    "timeout": 1,    "allowClosingTour": true,    "closeOnOutsideClick": true,    "themeColor": "string",    "textColor": "string",    "nextBtnText": "string",    "backBtnText": "string",    "finishBtnText": "string",    "startTourBtnText": "string",    "continueTourBtnText": "string",    "filterType": "string"  },  "rules": [    {      "type": "string",      "comparisonOperator": "string",      "value": null,      "userSegmentId": 0    }  ],  "ruleLogicalOperator": "string",  "dashboardUrl": "string",  "note": "string"}