curl -X PUT "https://api.shortkit.dev/v1/surveys/d4e5f6a7-b8c9-4d0e-1f2a-3b4c5d6e7f8a" \
-H "Authorization: Bearer sk_live_your_secret_key" \
-H "Content-Type: application/json" \
-d '{
"question": "Where did you first hear about us?",
"status": "active",
"options": [
{ "text": "Social media", "position": 0 },
{ "text": "Search engine", "position": 1 },
{ "text": "Word of mouth", "position": 2 },
{ "text": "Other", "position": 3 }
]
}'
import requests
resp = requests.put(
"https://api.shortkit.dev/v1/surveys/d4e5f6a7-b8c9-4d0e-1f2a-3b4c5d6e7f8a",
headers={
"Authorization": "Bearer sk_live_your_secret_key",
"Content-Type": "application/json",
},
json={
"question": "Where did you first hear about us?",
"status": "active",
"options": [
{"text": "Social media", "position": 0},
{"text": "Search engine", "position": 1},
{"text": "Word of mouth", "position": 2},
{"text": "Other", "position": 3},
],
},
)
survey = resp.json()["data"]
const resp = await fetch(
"https://api.shortkit.dev/v1/surveys/d4e5f6a7-b8c9-4d0e-1f2a-3b4c5d6e7f8a",
{
method: "PUT",
headers: {
Authorization: "Bearer sk_live_your_secret_key",
"Content-Type": "application/json",
},
body: JSON.stringify({
question: "Where did you first hear about us?",
status: "active",
options: [
{ text: "Social media", position: 0 },
{ text: "Search engine", position: 1 },
{ text: "Word of mouth", position: 2 },
{ text: "Other", position: 3 },
],
}),
}
);
const { data: survey } = await resp.json();
{
"data": {
"id": "d4e5f6a7-b8c9-4d0e-1f2a-3b4c5d6e7f8a",
"title": "Content Discovery",
"question": "Where did you first hear about us?",
"status": "active",
"priority": 10,
"autoAdvanceDelay": 3.0,
"options": [
{ "id": "new-uuid-1", "text": "Social media", "position": 0, "responseCount": 0, "createdAt": "2026-02-12T14:30:00Z" },
{ "id": "new-uuid-2", "text": "Search engine", "position": 1, "responseCount": 0, "createdAt": "2026-02-12T14:30:00Z" },
{ "id": "new-uuid-3", "text": "Word of mouth", "position": 2, "responseCount": 0, "createdAt": "2026-02-12T14:30:00Z" },
{ "id": "new-uuid-4", "text": "Other", "position": 3, "responseCount": 0, "createdAt": "2026-02-12T14:30:00Z" }
],
"placementRules": [
{ "id": "e5f6a7b8-...", "ruleType": "min_videos_before", "ruleValue": { "n": 3 }, "createdAt": "2026-02-10T09:00:00Z" },
{ "id": "f6a7b8c9-...", "ruleType": "once_per_user", "ruleValue": {}, "createdAt": "2026-02-10T09:00:00Z" }
],
"totalResponses": 0,
"createdAt": "2026-02-10T09:00:00Z",
"updatedAt": "2026-02-12T14:30:00Z"
},
"meta": {
"request_id": "req_srv004"
}
}
Surveys
Update Survey
Update a survey’s fields. Options and placement rules are replaced entirely when provided.
PUT
/
v1
/
surveys
/
{id}
curl -X PUT "https://api.shortkit.dev/v1/surveys/d4e5f6a7-b8c9-4d0e-1f2a-3b4c5d6e7f8a" \
-H "Authorization: Bearer sk_live_your_secret_key" \
-H "Content-Type: application/json" \
-d '{
"question": "Where did you first hear about us?",
"status": "active",
"options": [
{ "text": "Social media", "position": 0 },
{ "text": "Search engine", "position": 1 },
{ "text": "Word of mouth", "position": 2 },
{ "text": "Other", "position": 3 }
]
}'
import requests
resp = requests.put(
"https://api.shortkit.dev/v1/surveys/d4e5f6a7-b8c9-4d0e-1f2a-3b4c5d6e7f8a",
headers={
"Authorization": "Bearer sk_live_your_secret_key",
"Content-Type": "application/json",
},
json={
"question": "Where did you first hear about us?",
"status": "active",
"options": [
{"text": "Social media", "position": 0},
{"text": "Search engine", "position": 1},
{"text": "Word of mouth", "position": 2},
{"text": "Other", "position": 3},
],
},
)
survey = resp.json()["data"]
const resp = await fetch(
"https://api.shortkit.dev/v1/surveys/d4e5f6a7-b8c9-4d0e-1f2a-3b4c5d6e7f8a",
{
method: "PUT",
headers: {
Authorization: "Bearer sk_live_your_secret_key",
"Content-Type": "application/json",
},
body: JSON.stringify({
question: "Where did you first hear about us?",
status: "active",
options: [
{ text: "Social media", position: 0 },
{ text: "Search engine", position: 1 },
{ text: "Word of mouth", position: 2 },
{ text: "Other", position: 3 },
],
}),
}
);
const { data: survey } = await resp.json();
{
"data": {
"id": "d4e5f6a7-b8c9-4d0e-1f2a-3b4c5d6e7f8a",
"title": "Content Discovery",
"question": "Where did you first hear about us?",
"status": "active",
"priority": 10,
"autoAdvanceDelay": 3.0,
"options": [
{ "id": "new-uuid-1", "text": "Social media", "position": 0, "responseCount": 0, "createdAt": "2026-02-12T14:30:00Z" },
{ "id": "new-uuid-2", "text": "Search engine", "position": 1, "responseCount": 0, "createdAt": "2026-02-12T14:30:00Z" },
{ "id": "new-uuid-3", "text": "Word of mouth", "position": 2, "responseCount": 0, "createdAt": "2026-02-12T14:30:00Z" },
{ "id": "new-uuid-4", "text": "Other", "position": 3, "responseCount": 0, "createdAt": "2026-02-12T14:30:00Z" }
],
"placementRules": [
{ "id": "e5f6a7b8-...", "ruleType": "min_videos_before", "ruleValue": { "n": 3 }, "createdAt": "2026-02-10T09:00:00Z" },
{ "id": "f6a7b8c9-...", "ruleType": "once_per_user", "ruleValue": {}, "createdAt": "2026-02-10T09:00:00Z" }
],
"totalResponses": 0,
"createdAt": "2026-02-10T09:00:00Z",
"updatedAt": "2026-02-12T14:30:00Z"
},
"meta": {
"request_id": "req_srv004"
}
}
Path parameters
string
required
Survey UUID.
Request body
All fields are optional — include only the fields you want to change.string
Updated title (max 200 characters).
string
Updated question text (max 500 characters).
string
New status:
draft, active, paused, or archived.integer
Updated priority value.
number
Updated auto-advance delay in seconds.
object[]
Replaces all existing options. Each must include
text and position.object[]
Replaces all existing placement rules. Each must include
ruleType and ruleValue.When you provide
options or placementRules, the entire set is replaced — not merged. Omit these fields to leave them unchanged.curl -X PUT "https://api.shortkit.dev/v1/surveys/d4e5f6a7-b8c9-4d0e-1f2a-3b4c5d6e7f8a" \
-H "Authorization: Bearer sk_live_your_secret_key" \
-H "Content-Type: application/json" \
-d '{
"question": "Where did you first hear about us?",
"status": "active",
"options": [
{ "text": "Social media", "position": 0 },
{ "text": "Search engine", "position": 1 },
{ "text": "Word of mouth", "position": 2 },
{ "text": "Other", "position": 3 }
]
}'
import requests
resp = requests.put(
"https://api.shortkit.dev/v1/surveys/d4e5f6a7-b8c9-4d0e-1f2a-3b4c5d6e7f8a",
headers={
"Authorization": "Bearer sk_live_your_secret_key",
"Content-Type": "application/json",
},
json={
"question": "Where did you first hear about us?",
"status": "active",
"options": [
{"text": "Social media", "position": 0},
{"text": "Search engine", "position": 1},
{"text": "Word of mouth", "position": 2},
{"text": "Other", "position": 3},
],
},
)
survey = resp.json()["data"]
const resp = await fetch(
"https://api.shortkit.dev/v1/surveys/d4e5f6a7-b8c9-4d0e-1f2a-3b4c5d6e7f8a",
{
method: "PUT",
headers: {
Authorization: "Bearer sk_live_your_secret_key",
"Content-Type": "application/json",
},
body: JSON.stringify({
question: "Where did you first hear about us?",
status: "active",
options: [
{ text: "Social media", position: 0 },
{ text: "Search engine", position: 1 },
{ text: "Word of mouth", position: 2 },
{ text: "Other", position: 3 },
],
}),
}
);
const { data: survey } = await resp.json();
{
"data": {
"id": "d4e5f6a7-b8c9-4d0e-1f2a-3b4c5d6e7f8a",
"title": "Content Discovery",
"question": "Where did you first hear about us?",
"status": "active",
"priority": 10,
"autoAdvanceDelay": 3.0,
"options": [
{ "id": "new-uuid-1", "text": "Social media", "position": 0, "responseCount": 0, "createdAt": "2026-02-12T14:30:00Z" },
{ "id": "new-uuid-2", "text": "Search engine", "position": 1, "responseCount": 0, "createdAt": "2026-02-12T14:30:00Z" },
{ "id": "new-uuid-3", "text": "Word of mouth", "position": 2, "responseCount": 0, "createdAt": "2026-02-12T14:30:00Z" },
{ "id": "new-uuid-4", "text": "Other", "position": 3, "responseCount": 0, "createdAt": "2026-02-12T14:30:00Z" }
],
"placementRules": [
{ "id": "e5f6a7b8-...", "ruleType": "min_videos_before", "ruleValue": { "n": 3 }, "createdAt": "2026-02-10T09:00:00Z" },
{ "id": "f6a7b8c9-...", "ruleType": "once_per_user", "ruleValue": {}, "createdAt": "2026-02-10T09:00:00Z" }
],
"totalResponses": 0,
"createdAt": "2026-02-10T09:00:00Z",
"updatedAt": "2026-02-12T14:30:00Z"
},
"meta": {
"request_id": "req_srv004"
}
}