Anketler ve NPS
Anketler ve NPS — 7 işlem (GET /v1/apps/{appId}/surveys, POST /v1/apps/{appId}/surveys, GET /v1/apps/{appId}/surveys/{surveyId}, …). OpenAPI 3.1.0 sözleşmesinden üretilir.
Anket ve NPS/CSAT: tanım, durum, yanıtlar, rapor ve sunucu tarafı yanıt; NPS puanı kullanıcı özelliğine yazılır ve segmentte kullanılabilir.
Taban adres: https://api.pushizo.com · Etiket: surveys · Etkileşimli belge (Scalar)
İşlemler
| Yöntem | Yol | İşlem |
|---|---|---|
GET | /v1/apps/{appId}/surveys | Anketler |
POST | /v1/apps/{appId}/surveys | Anket oluştur (taslak) |
GET | /v1/apps/{appId}/surveys/{surveyId} | Anket detayı |
POST | /v1/apps/{appId}/surveys/{surveyId}/status | Etkinleştir / kapat |
GET | /v1/apps/{appId}/surveys/{surveyId}/report | NPS / CSAT raporu |
GET | /v1/apps/{appId}/surveys/{surveyId}/responses | Anket yanıtları |
POST | /v1/apps/{appId}/surveys/{surveyId}/responses | Sunucu tarafı anket yanıtı (external_id ile kullanıcıya bağlanır) |
Ayrıntılar
Anketler
Kimlik doğrulama: API anahtarı — kapsam analytics:read (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
limit | sorgu | integer | Hayır | Varsayılan: 50; Aralık: 1–200 | 50 |
cursor | sorgu | string | Hayır | Uzunluk: 1–∞ | "eyJpZCI6Im1zZ18wMUpE…" |
status | sorgu | enum | Hayır | Değerler: "draft", "active", "closed" | "draft" |
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
Yanıtlar
200 — Başarılı.
Şema: SurveyPage
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
data | array<object> | Evet | |
data[].id | string | Evet | |
data[].app_id | string | Evet | |
data[].name | string | Evet | |
data[].status | enum | Evet | Değerler: "draft", "active", "closed" |
data[].questions | array<object> | Evet | Öğe: 1–10 |
data[].questions[].id | string | Evet | |
data[].questions[].type | enum | Evet | Değerler: "nps", "csat", "single_choice", "multiple_choice", "text" |
data[].questions[].text | map<string, string> | Evet | |
data[].questions[].required | boolean | Hayır | |
data[].questions[].options | array<object> | Hayır | Öğe: 0–30 |
data[].questions[].low_label | map<string, string> | Hayır | |
data[].questions[].high_label | map<string, string> | Hayır | |
data[].questions[].placeholder | map<string, string> | Hayır | |
data[].settings | object | Evet | |
data[].settings.thank_you | map<string, string> | Hayır | |
data[].settings.submit_label | map<string, string> | Hayır | |
data[].settings.write_properties | boolean | Hayır | |
data[].settings.allow_multiple | boolean | Hayır | |
data[].settings.default_language | string | Hayır | Uzunluk: 2–10 |
data[].in_app_message_id | string | null | Evet | |
data[].stats | object | Evet | |
data[].stats.responses | integer | Evet | |
data[].stats.nps | number | null | Evet | |
data[].stats.last_response_at | string | null | Evet | |
data[].created_at | string | Evet | |
data[].updated_at | string | Evet | |
next_cursor | string | null | Evet | |
has_more | boolean | Evet |
Örnek yanıt:
{
"data": [
{
"name": "Sipariş bildirimleri",
"status": "draft",
"id": "srv_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"questions": [
{
"type": "nps",
"id": "srv_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"text": {},
"required": true,
"options": []
}
],
"settings": {
"thank_you": {
"tr": "Siparişiniz yola çıktı",
"en": "Your order has shipped"
},
"submit_label": {
"tr": "Siparişiniz yola çıktı",
"en": "Your order has shipped"
}
},
"in_app_message_id": "msg_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"stats": {
"responses": 1,
"nps": 1.5,
"last_response_at": "örnek"
},
"created_at": "örnek",
"updated_at": "örnek"
}
],
"next_cursor": "eyJpZCI6Im1zZ18wMUpE…",
"has_more": true
}Hata yanıtları ortak zarfla döner (error.code, message, details, request_id): hata kataloğu. Tüm yanıtlar X-RateLimit-* başlıklarını taşır (hız sınırları).
Örnekler
curl -X GET "https://api.pushizo.com/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/surveys?limit=50" \
-H "Authorization: Bearer $PUSHIZO_API_KEY"Anket oluştur (taslak)
Kimlik doğrulama: API anahtarı — kapsam admin (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
İstek gövdesi (zorunlu)
Şema: CreateSurveyDto
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
name | string | Evet | Uzunluk: 2–100 |
questions | array<object> | Evet | Öğe: 1–10 |
questions[].id | string | Evet | |
questions[].type | enum | Evet | Değerler: "nps", "csat", "single_choice", "multiple_choice", "text" |
questions[].text | map<string, string> | Evet | |
questions[].required | boolean | Hayır | |
questions[].options | array<object> | Hayır | Öğe: 0–30 |
questions[].options[].value | string | Evet | Uzunluk: 1–100 |
questions[].options[].label | map<string, string> | Evet | |
questions[].low_label | map<string, string> | Hayır | |
questions[].high_label | map<string, string> | Hayır | |
questions[].placeholder | map<string, string> | Hayır | |
settings | object | Hayır | |
settings.thank_you | map<string, string> | Hayır | |
settings.submit_label | map<string, string> | Hayır | |
settings.write_properties | boolean | Hayır | |
settings.allow_multiple | boolean | Hayır | |
settings.default_language | string | Hayır | Uzunluk: 2–10 |
Örnek:
{
"name": "Sipariş bildirimleri",
"questions": [
{
"type": "nps",
"id": "srv_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"text": {
"tr": "Siparişiniz yola çıktı",
"en": "Your order has shipped"
},
"required": true,
"options": [
{
"value": "user_42",
"label": {}
}
],
"low_label": {
"tr": "Siparişiniz yola çıktı",
"en": "Your order has shipped"
}
}
],
"settings": {
"thank_you": {
"tr": "Siparişiniz yola çıktı",
"en": "Your order has shipped"
},
"submit_label": {
"tr": "Siparişiniz yola çıktı",
"en": "Your order has shipped"
},
"write_properties": true
}
}Yanıtlar
201 — Başarılı.
Şema: Survey
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | string | Evet | |
app_id | string | Evet | |
name | string | Evet | |
status | enum | Evet | Değerler: "draft", "active", "closed" |
questions | array<object> | Evet | Öğe: 1–10 |
questions[].id | string | Evet | |
questions[].type | enum | Evet | Değerler: "nps", "csat", "single_choice", "multiple_choice", "text" |
questions[].text | map<string, string> | Evet | |
questions[].required | boolean | Hayır | |
questions[].options | array<object> | Hayır | Öğe: 0–30 |
questions[].options[].value | string | Evet | Uzunluk: 1–100 |
questions[].options[].label | map<string, string> | Evet | |
questions[].low_label | map<string, string> | Hayır | |
questions[].high_label | map<string, string> | Hayır | |
questions[].placeholder | map<string, string> | Hayır | |
settings | object | Evet | |
settings.thank_you | map<string, string> | Hayır | |
settings.submit_label | map<string, string> | Hayır | |
settings.write_properties | boolean | Hayır | |
settings.allow_multiple | boolean | Hayır | |
settings.default_language | string | Hayır | Uzunluk: 2–10 |
in_app_message_id | string | null | Evet | |
stats | object | Evet | |
stats.responses | integer | Evet | |
stats.nps | number | null | Evet | |
stats.last_response_at | string | null | Evet | |
created_at | string | Evet | |
updated_at | string | Evet |
Örnek yanıt:
{
"name": "Sipariş bildirimleri",
"status": "draft",
"id": "srv_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"questions": [
{
"type": "nps",
"id": "srv_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"text": {
"tr": "Siparişiniz yola çıktı",
"en": "Your order has shipped"
},
"required": true,
"options": [
{
"value": "user_42",
"label": {}
}
],
"low_label": {
"tr": "Siparişiniz yola çıktı",
"en": "Your order has shipped"
},
"high_label": {
"tr": "Siparişiniz yola çıktı",
"en": "Your order has shipped"
}
}
],
"settings": {
"thank_you": {
"tr": "Siparişiniz yola çıktı",
"en": "Your order has shipped"
},
"submit_label": {
"tr": "Siparişiniz yola çıktı",
"en": "Your order has shipped"
},
"write_properties": true,
"allow_multiple": false
},
"in_app_message_id": "msg_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"stats": {
"responses": 1,
"nps": 1.5,
"last_response_at": "örnek"
},
"created_at": "örnek",
"updated_at": "örnek"
}Hata yanıtları ortak zarfla döner (error.code, message, details, request_id): hata kataloğu. Tüm yanıtlar X-RateLimit-* başlıklarını taşır (hız sınırları).
Örnekler
curl -X POST "https://api.pushizo.com/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/surveys" \
-H "Authorization: Bearer $PUSHIZO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Sipariş bildirimleri",
"questions": [
{
"type": "nps",
"id": "srv_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"text": {
"tr": "Siparişiniz yola çıktı",
"en": "Your order has shipped"
},
"required": true,
"options": [
{
"value": "user_42",
"label": {}
}
],
"low_label": {
"tr": "Siparişiniz yola çıktı",
"en": "Your order has shipped"
}
}
],
"settings": {
"thank_you": {
"tr": "Siparişiniz yola çıktı",
"en": "Your order has shipped"
},
"submit_label": {
"tr": "Siparişiniz yola çıktı",
"en": "Your order has shipped"
},
"write_properties": true
}
}'Anket detayı
Kimlik doğrulama: API anahtarı — kapsam analytics:read (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
surveyId | yol | string | Evet | "srv_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
Yanıtlar
200 — Başarılı.
Şema: Survey
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | string | Evet | |
app_id | string | Evet | |
name | string | Evet | |
status | enum | Evet | Değerler: "draft", "active", "closed" |
questions | array<object> | Evet | Öğe: 1–10 |
questions[].id | string | Evet | |
questions[].type | enum | Evet | Değerler: "nps", "csat", "single_choice", "multiple_choice", "text" |
questions[].text | map<string, string> | Evet | |
questions[].required | boolean | Hayır | |
questions[].options | array<object> | Hayır | Öğe: 0–30 |
questions[].options[].value | string | Evet | Uzunluk: 1–100 |
questions[].options[].label | map<string, string> | Evet | |
questions[].low_label | map<string, string> | Hayır | |
questions[].high_label | map<string, string> | Hayır | |
questions[].placeholder | map<string, string> | Hayır | |
settings | object | Evet | |
settings.thank_you | map<string, string> | Hayır | |
settings.submit_label | map<string, string> | Hayır | |
settings.write_properties | boolean | Hayır | |
settings.allow_multiple | boolean | Hayır | |
settings.default_language | string | Hayır | Uzunluk: 2–10 |
in_app_message_id | string | null | Evet | |
stats | object | Evet | |
stats.responses | integer | Evet | |
stats.nps | number | null | Evet | |
stats.last_response_at | string | null | Evet | |
created_at | string | Evet | |
updated_at | string | Evet |
Örnek yanıt:
{
"name": "Sipariş bildirimleri",
"status": "draft",
"id": "srv_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"questions": [
{
"type": "nps",
"id": "srv_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"text": {
"tr": "Siparişiniz yola çıktı",
"en": "Your order has shipped"
},
"required": true,
"options": [
{
"value": "user_42",
"label": {}
}
],
"low_label": {
"tr": "Siparişiniz yola çıktı",
"en": "Your order has shipped"
},
"high_label": {
"tr": "Siparişiniz yola çıktı",
"en": "Your order has shipped"
}
}
],
"settings": {
"thank_you": {
"tr": "Siparişiniz yola çıktı",
"en": "Your order has shipped"
},
"submit_label": {
"tr": "Siparişiniz yola çıktı",
"en": "Your order has shipped"
},
"write_properties": true,
"allow_multiple": false
},
"in_app_message_id": "msg_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"stats": {
"responses": 1,
"nps": 1.5,
"last_response_at": "örnek"
},
"created_at": "örnek",
"updated_at": "örnek"
}Hata yanıtları ortak zarfla döner (error.code, message, details, request_id): hata kataloğu. Tüm yanıtlar X-RateLimit-* başlıklarını taşır (hız sınırları).
Örnekler
curl -X GET "https://api.pushizo.com/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/surveys/srv_01JD3W5Q7X9K2M4N6P8R0T1V3W" \
-H "Authorization: Bearer $PUSHIZO_API_KEY"Etkinleştir / kapat
Kimlik doğrulama: API anahtarı — kapsam admin (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
surveyId | yol | string | Evet | "srv_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
İstek gövdesi (zorunlu)
Şema: SurveyStatusDto
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
status | enum | Evet | Değerler: "draft", "active", "closed" |
Örnek:
{
"status": "draft"
}Yanıtlar
200 — Başarılı.
Şema: Survey
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | string | Evet | |
app_id | string | Evet | |
name | string | Evet | |
status | enum | Evet | Değerler: "draft", "active", "closed" |
questions | array<object> | Evet | Öğe: 1–10 |
questions[].id | string | Evet | |
questions[].type | enum | Evet | Değerler: "nps", "csat", "single_choice", "multiple_choice", "text" |
questions[].text | map<string, string> | Evet | |
questions[].required | boolean | Hayır | |
questions[].options | array<object> | Hayır | Öğe: 0–30 |
questions[].options[].value | string | Evet | Uzunluk: 1–100 |
questions[].options[].label | map<string, string> | Evet | |
questions[].low_label | map<string, string> | Hayır | |
questions[].high_label | map<string, string> | Hayır | |
questions[].placeholder | map<string, string> | Hayır | |
settings | object | Evet | |
settings.thank_you | map<string, string> | Hayır | |
settings.submit_label | map<string, string> | Hayır | |
settings.write_properties | boolean | Hayır | |
settings.allow_multiple | boolean | Hayır | |
settings.default_language | string | Hayır | Uzunluk: 2–10 |
in_app_message_id | string | null | Evet | |
stats | object | Evet | |
stats.responses | integer | Evet | |
stats.nps | number | null | Evet | |
stats.last_response_at | string | null | Evet | |
created_at | string | Evet | |
updated_at | string | Evet |
Örnek yanıt:
{
"name": "Sipariş bildirimleri",
"status": "draft",
"id": "srv_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"questions": [
{
"type": "nps",
"id": "srv_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"text": {
"tr": "Siparişiniz yola çıktı",
"en": "Your order has shipped"
},
"required": true,
"options": [
{
"value": "user_42",
"label": {}
}
],
"low_label": {
"tr": "Siparişiniz yola çıktı",
"en": "Your order has shipped"
},
"high_label": {
"tr": "Siparişiniz yola çıktı",
"en": "Your order has shipped"
}
}
],
"settings": {
"thank_you": {
"tr": "Siparişiniz yola çıktı",
"en": "Your order has shipped"
},
"submit_label": {
"tr": "Siparişiniz yola çıktı",
"en": "Your order has shipped"
},
"write_properties": true,
"allow_multiple": false
},
"in_app_message_id": "msg_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"stats": {
"responses": 1,
"nps": 1.5,
"last_response_at": "örnek"
},
"created_at": "örnek",
"updated_at": "örnek"
}Hata yanıtları ortak zarfla döner (error.code, message, details, request_id): hata kataloğu. Tüm yanıtlar X-RateLimit-* başlıklarını taşır (hız sınırları).
Örnekler
curl -X POST "https://api.pushizo.com/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/surveys/srv_01JD3W5Q7X9K2M4N6P8R0T1V3W/status" \
-H "Authorization: Bearer $PUSHIZO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"status": "draft"
}'NPS / CSAT raporu
Kimlik doğrulama: API anahtarı — kapsam analytics:read (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
surveyId | yol | string | Evet | "srv_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
days | sorgu | integer | Hayır | Aralık: 1–365 | 1 |
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
Yanıtlar
200 — Başarılı.
Şema: SurveyReport
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
survey_id | string | Evet | |
days | integer | Evet | |
responses | integer | Evet | |
nps | object | Evet | |
nps.responses | integer | Evet | |
nps.promoters | integer | Evet | |
nps.passives | integer | Evet | |
nps.detractors | integer | Evet | |
nps.nps | number | null | Evet | |
csat | object | Evet | |
csat.responses | integer | Evet | |
csat.average | number | null | Evet | |
csat.distribution | map<string, integer> | Evet | |
trend | array<object> | Evet | |
trend[].date | string | Evet | |
trend[].responses | integer | Evet | |
trend[].promoters | integer | Evet | |
trend[].passives | integer | Evet | |
trend[].detractors | integer | Evet | |
trend[].nps | number | null | Evet | |
channels | map<string, integer> | Evet | |
questions | array<object> | Evet | |
questions[].id | string | Evet | |
questions[].type | enum | Evet | Değerler: "nps", "csat", "single_choice", "multiple_choice", "text" |
questions[].counts | map<string, integer> | Evet |
Örnek yanıt:
{
"channels": {
"key": 150
},
"survey_id": "srv_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"days": 1,
"responses": 1,
"nps": {
"responses": 1,
"promoters": 1,
"passives": 1,
"detractors": 1,
"nps": 1.5
},
"csat": {
"responses": 1,
"average": 1.5,
"distribution": {
"key": 150
}
},
"trend": [
{
"date": "örnek",
"responses": 1,
"promoters": 1,
"passives": 1,
"detractors": 1,
"nps": 1.5
}
],
"questions": [
{
"type": "nps",
"id": "srv_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"counts": {
"key": 150
}
}
]
}Hata yanıtları ortak zarfla döner (error.code, message, details, request_id): hata kataloğu. Tüm yanıtlar X-RateLimit-* başlıklarını taşır (hız sınırları).
Örnekler
curl -X GET "https://api.pushizo.com/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/surveys/srv_01JD3W5Q7X9K2M4N6P8R0T1V3W/report" \
-H "Authorization: Bearer $PUSHIZO_API_KEY"Anket yanıtları
Kimlik doğrulama: API anahtarı — kapsam users:read (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
surveyId | yol | string | Evet | "srv_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
limit | sorgu | integer | Hayır | Varsayılan: 50; Aralık: 1–200 | 50 |
cursor | sorgu | string | Hayır | Uzunluk: 1–∞ | "eyJpZCI6Im1zZ18wMUpE…" |
text_question | sorgu | string | Hayır | Uzunluk: 0–40 | "örnek" |
nps_category | sorgu | enum | Hayır | Değerler: "promoter", "passive", "detractor" | "promoter" |
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
Yanıtlar
200 — Başarılı.
Şema: SurveyResponsePage
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
data | array<object> | Evet | |
data[].id | string | Evet | |
data[].survey_id | string | Evet | |
data[].user_id | string | null | Evet | |
data[].visitor_id | string | null | Evet | |
data[].channel | enum | Evet | Değerler: "in_app", "web", "email", "api", "sdk" |
data[].answers | map<string, number | string | array<string>> | Evet | |
data[].nps_score | integer | null | Evet | |
data[].nps_category | enum | null | Evet | |
data[].csat_score | integer | null | Evet | |
data[].created_at | string | Evet | |
next_cursor | string | null | Evet | |
has_more | boolean | Evet |
Örnek yanıt:
{
"data": [
{
"channel": "in_app",
"id": "srv_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"survey_id": "srv_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"user_id": "usr_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"visitor_id": "srv_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"answers": {
"key": 149.9
},
"nps_score": 1,
"nps_category": "promoter",
"csat_score": 1,
"created_at": "örnek"
}
],
"next_cursor": "eyJpZCI6Im1zZ18wMUpE…",
"has_more": true
}Hata yanıtları ortak zarfla döner (error.code, message, details, request_id): hata kataloğu. Tüm yanıtlar X-RateLimit-* başlıklarını taşır (hız sınırları).
Örnekler
curl -X GET "https://api.pushizo.com/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/surveys/srv_01JD3W5Q7X9K2M4N6P8R0T1V3W/responses?limit=50" \
-H "Authorization: Bearer $PUSHIZO_API_KEY"Sunucu tarafı anket yanıtı (external_id ile kullanıcıya bağlanır)
Kimlik doğrulama: API anahtarı — kapsam users:write (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
surveyId | yol | string | Evet | "srv_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
İstek gövdesi (zorunlu)
Şema: PublicSurveyResponseDto
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
answers | map<string, string | boolean | number | array<string>> | Evet | |
external_id | string | Hayır | Uzunluk: 1–128 |
Örnek:
{
"answers": {
"key": "user_42"
},
"external_id": "user_42"
}Yanıtlar
201 — Başarılı.
Şema: SurveyResponseResult
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
ok | true | Evet | |
response_id | string | null | Evet | |
duplicate | boolean | Evet | |
thank_you | string | Evet |
Örnek yanıt:
{
"ok": true,
"response_id": "srs_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"duplicate": true,
"thank_you": "örnek"
}Hata yanıtları ortak zarfla döner (error.code, message, details, request_id): hata kataloğu. Tüm yanıtlar X-RateLimit-* başlıklarını taşır (hız sınırları).
Örnekler
curl -X POST "https://api.pushizo.com/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/surveys/srv_01JD3W5Q7X9K2M4N6P8R0T1V3W/responses" \
-H "Authorization: Bearer $PUSHIZO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"answers": {
"key": "user_42"
},
"external_id": "user_42"
}'Formlar
Formlar — 5 işlem (GET /v1/apps/{appId}/forms, POST /v1/apps/{appId}/forms, GET /v1/apps/{appId}/forms/{formId}, …). OpenAPI 3.1.0 sözleşmesinden üretilir.
Landing sayfaları
Landing sayfaları — 4 işlem (GET /v1/apps/{appId}/landing-pages, GET /v1/apps/{appId}/landing-pages/{pageId}, POST /v1/apps/{appId}/landing-pages/{pageId}/publish, …). OpenAPI 3.1.0 sözleşmesinden üretilir.