Postlip Metrics Management API
Uygulama, kaynak ve olay şemasının otomasyonu (ör. CI'da şema senkronu, metrics pull) ve Query API (panelin metrik sorgusu, /v1/query). Kimlik: organizasyonun panelden oluşturduğu API anahtarı, Authorization: Bearer mk_…. Kapsamlar: management:read, management:write (okumayı da içerir), query:read (Query API: POST /v1/query, GET /v1/query/catalogue, huni sonuçları; reklam metrikleri dahil), leads:read (talep kutusu), ads:read (reklam hesapları, kampanyalar, bütçe, bağlantıların sağlığı), reports:read (kayıtlı raporlar, donmuş çıktıları ve PDF’leri, tahmin senaryoları), social:read (sosyal medya hesapları, özetin sayıları, gönderiler ve sayıları), messaging:read / messaging:write (Mailing & SMS listeleri, kampanyalar ve sonuçları; kişi, izin, bastırma), persons:read (analitik kişi ve hesap profilleri ve zaman çizelgeleri, panelin saklama kurallarıyla; dalga 16). Dalga 16’dan management:write ayrıca kaynakları ve anahtarlarını, olay tanımlarının durumunu ve silinmesini, kişi / hesap özellik tanımlarını yönetir ve üye davet eder (management:read: üyeler, roller, davetler). Hata gövdesi her uçta { "error": { "code", "message", "fields"?, "details"?, "traceId" } }; message isteğin dilinde (Accept-Language: tr, en). Liste uçları imleç sayfalamalıdır: ?cursor=&limit= (≤ 200), yanıt { items, nextCursor }.
Version 1.0.0OpenAPI 3.1.1Download the OpenAPI document
This page is generated at build time from docs/api/openapi/management.json in the repository.
Servers
Authentication
Sağlık
1 endpoint
Sürecin ve veritabanı bağlantısının durumu.
- Authentication
- No authentication
Responses
200Başarılı.
application/jsonobjectExample · JSON{ "status": "ok", "database": "ok" }500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
Organizasyon
4 endpoints
Organizasyon ayarları, üyeler, davetler, roller.
GET/v1/invitations
Davetler
Bekleyen, kabul edilen, süresi dolan ve iptal edilen davetler. Kapsam: management:read.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: management:read.
- Authentication
- apiKey
- Required scope
management:read
Parameters
Responses
200Başarılı.
application/jsonInvitationPageExample · JSON{ "items": [ { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "email": "string", "role": { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "key": "string", "name": "string", "builtIn": true }, "appScope": "all", "appIds": [ "01a1b249-9ed2-77e8-af53-0c99529e68cb" ], "status": "pending", "invitedBy": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "expiresAt": "2026-11-06T14:46:00+03:00", "acceptedAt": "2026-11-06T14:46:00+03:00", "revokedAt": "2026-11-06T14:46:00+03:00", "createdAt": "2026-11-06T14:46:00+03:00" } ], "nextCursor": "string" }400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
POST/v1/invitations
Üye davet et
Adrese yedi gün geçerli bir davet e-postası gider (davet edenin adı yazmaz). Anahtar yöneticinin (admin) haklarıyla davet eder: sahip rolü ve yöneticinin vermediği izinli rol verilemez (ROLE_NOT_GRANTABLE), uygulama kapsamı anahtarınkini aşamaz (APP_SCOPE_TOO_WIDE); etkin üye yeniden davet edilmez, adresin bekleyen davetleri yenisiyle değişir; planın üye sınırı (etkin üyeler ve bekleyen davetler) 403 PLAN_LIMIT_REACHED. Kapsam: management:write; denetim kaydıyla.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: management:write.
- Authentication
- apiKey
- Required scope
management:write
Request bodyBody required
application/jsonCreateInvitationRequest
{
"email": "string",
"roleId": "01a1b249-9ed2-77e8-af53-0c99529e68cb",
"appScope": "all",
"appIds": []
}Responses
201Oluşturuldu.
application/jsonInvitationExample · JSON{ "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "email": "string", "role": { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "key": "string", "name": "string", "builtIn": true }, "appScope": "all", "appIds": [ "01a1b249-9ed2-77e8-af53-0c99529e68cb" ], "status": "pending", "invitedBy": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "expiresAt": "2026-11-06T14:46:00+03:00", "acceptedAt": "2026-11-06T14:46:00+03:00", "revokedAt": "2026-11-06T14:46:00+03:00", "createdAt": "2026-11-06T14:46:00+03:00" }400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse409Kaydın güncel durumu bu işleme izin vermiyor ya da aynı kayıt zaten var (ör.
APP_SLUG_TAKEN,EVENT_NAME_TAKEN,LAST_OWNER).application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
GET/v1/members
Üyeler
Organizasyonun üyeleri (panelde members.manage ile görülen liste: ad, e-posta, rol, uygulama kapsamı, durum, son giriş, iki adımlı doğrulama). Kapsam: management:read.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: management:read.
- Authentication
- apiKey
- Required scope
management:read
Parameters
Responses
200Başarılı.
application/jsonMemberPageExample · JSON{ "items": [ { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "user": { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "email": "string", "name": "string" }, "role": { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "key": "string", "name": "string", "builtIn": true }, "appScope": "all", "appIds": [ "01a1b249-9ed2-77e8-af53-0c99529e68cb" ], "status": "active", "invitedBy": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "createdAt": "2026-11-06T14:46:00+03:00", "updatedAt": "2026-11-06T14:46:00+03:00" } ], "nextCursor": "string" }400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
GET/v1/roles
Roller
Yerleşik ve organizasyonun rolleri, izinleriyle (davet için roleId). Kapsam: management:read.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: management:read.
- Authentication
- apiKey
- Required scope
management:read
Responses
200Başarılı.
application/jsonRoleListExample · JSON{ "items": [ { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "key": "string", "name": "string", "description": "string", "permissions": [ "string" ], "builtIn": true, "createdAt": "2026-11-06T14:46:00+03:00", "updatedAt": "2026-11-06T14:46:00+03:00" } ] }401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
Uygulamalar
4 endpoints
Ölçülen ürünler: saat dilimi, para birimi, doğrulama kipi, atıf ve saklama ayarları; test, iç ve bot trafiği işaretleyen trafik filtresi kuralları.
GET/v1/apps
Uygulamalar
Anahtarın uygulama kapsamındakiler.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: management:read.
- Authentication
- apiKey
- Required scope
management:read
Parameters
Responses
200Başarılı.
application/jsonAppPageExample · JSON{ "items": [ { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "slug": "string", "name": "string", "description": "string", "websiteUrl": "string", "iconUrl": "string", "timezone": "string", "currency": "string", "schemaMode": "strict", "schemaRevision": 0, "attributionModel": "first_touch", "attributionWindowDays": 0, "conversionRoles": [ "signup" ], "leadContactClicks": true, "retention": { "eventsMonths": 0, "interactionsMonths": 0, "sessionsMonths": 0 }, "internalIpRanges": [ "string" ], "internalCookie": "string", "status": "active", "createdAt": "2026-11-06T14:46:00+03:00", "updatedAt": "2026-11-06T14:46:00+03:00" } ], "nextCursor": "string" }400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
POST/v1/apps
Uygulama ekle
Bütün uygulamalar kapsamlı anahtar gerekir.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: management:write.
- Authentication
- apiKey
- Required scope
management:write
Request bodyBody required
application/jsonCreateAppRequest
{
"slug": "string",
"name": "string",
"description": "string",
"websiteUrl": "string",
"iconUrl": "string",
"timezone": "string",
"currency": "string",
"schemaMode": "lenient",
"attributionModel": "last_non_direct",
"attributionWindowDays": 90,
"conversionRoles": [
"signup",
"trial_start",
"lead",
"demo_request",
"purchase"
],
"leadContactClicks": false,
"retention": {
"eventsMonths": 1,
"interactionsMonths": 1,
"sessionsMonths": 1
},
"internalIpRanges": [],
"internalCookie": "string",
"revenueBasis": "gross",
"pricesIncludeTax": true,
"overviewTiles": [],
"adsKpis": [],
"modules": [
"ads",
"social",
"messaging",
"content",
"leads",
"behavior"
],
"defaultAlertRecipients": {
"inApp": true,
"userIds": []
},
"searchBrandTerms": []
}Responses
201Oluşturuldu.
application/jsonAppExample · JSON{ "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "slug": "string", "name": "string", "description": "string", "websiteUrl": "string", "iconUrl": "string", "timezone": "string", "currency": "string", "schemaMode": "strict", "schemaRevision": 0, "attributionModel": "first_touch", "attributionWindowDays": 0, "conversionRoles": [ "signup" ], "leadContactClicks": true, "retention": { "eventsMonths": 0, "interactionsMonths": 0, "sessionsMonths": 0 }, "internalIpRanges": [ "string" ], "internalCookie": "string", "revenueBasis": "gross", "pricesIncludeTax": true, "overviewTiles": [ { "metric": "string", "breakdown": "string" } ], "adsKpis": [ "string" ], "modules": [ "ads" ], "defaultAlertRecipients": { "inApp": true, "userIds": [ "01a1b249-9ed2-77e8-af53-0c99529e68cb" ], "emails": [ "string" ], "channelIds": [ "01a1b249-9ed2-77e8-af53-0c99529e68cb" ] }, "searchBrandTerms": [ "string" ], "defaultOverviewTiles": [ { "metric": "string", "breakdown": "string" } ], "defaultAdsKpis": [ "string" ], "status": "active", "createdAt": "2026-11-06T14:46:00+03:00", "updatedAt": "2026-11-06T14:46:00+03:00" }400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse409Kaydın güncel durumu bu işleme izin vermiyor ya da aynı kayıt zaten var (ör.
APP_SLUG_TAKEN,EVENT_NAME_TAKEN,LAST_OWNER).application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
GET/v1/apps/{appId}
Uygulama
Uygulamanın ayarları. Tek uygulama okumasında (dalga 16) ayrıca, uygulama kendi setini kaydetmemişken Genel bakış ve Reklam özetinin gösterdiği varsayılan setler: defaultOverviewTiles (uygulamanın tanımlarının oynadığı dönüşüm rolleri, uygulamanın sırasıyla, en çok 5) ve defaultAdsKpis (harcama, gösterim, tıklama, ilk dört rolün reklamdan dönüşümü, ilk rolün dönüşüm başı maliyeti) — kural contracts defaultOverviewTiles / defaultAdsKpis. Kapsam: management:read.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: management:read.
- Authentication
- apiKey
- Required scope
management:read
Parameters
Responses
200Başarılı.
application/jsonAppExample · JSON{ "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "slug": "string", "name": "string", "description": "string", "websiteUrl": "string", "iconUrl": "string", "timezone": "string", "currency": "string", "schemaMode": "strict", "schemaRevision": 0, "attributionModel": "first_touch", "attributionWindowDays": 0, "conversionRoles": [ "signup" ], "leadContactClicks": true, "retention": { "eventsMonths": 0, "interactionsMonths": 0, "sessionsMonths": 0 }, "internalIpRanges": [ "string" ], "internalCookie": "string", "revenueBasis": "gross", "pricesIncludeTax": true, "overviewTiles": [ { "metric": "string", "breakdown": "string" } ], "adsKpis": [ "string" ], "modules": [ "ads" ], "defaultAlertRecipients": { "inApp": true, "userIds": [ "01a1b249-9ed2-77e8-af53-0c99529e68cb" ], "emails": [ "string" ], "channelIds": [ "01a1b249-9ed2-77e8-af53-0c99529e68cb" ] }, "searchBrandTerms": [ "string" ], "defaultOverviewTiles": [ { "metric": "string", "breakdown": "string" } ], "defaultAdsKpis": [ "string" ], "status": "active", "createdAt": "2026-11-06T14:46:00+03:00", "updatedAt": "2026-11-06T14:46:00+03:00" }401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
PATCH/v1/apps/{appId}
Uygulamayı güncelle
Ayarlar (13. dalga): revenueBasis (gross | net — başlık gelir), pricesIncludeTax (tutarlar KDV dahil mi; brüt para metriklerinin etiketi bunu söyler), overviewTiles (Genel bakış kutuları, en çok 12: katalog metriği ve isteğe bağlı kırılım — metrik ve boyut katalogla doğrulanır), adsKpis (Reklam KPI seti, en çok 12; boş: varsayılan), modules (açık modüller: ads, social, messaging, content, leads, behavior; kapalı modülün uçları 403 APP_MODULE_DISABLED), defaultAlertRecipients (alıcı vermeyen yeni uyarı kuralının alıcıları; üyeler ve kanallar doğrulanır), searchBrandTerms (Search Console marka ayrımı, küçük harfe çevrilir). Hatalı alan fields altında (ör. overviewTiles.0.metric).
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: management:write.
- Authentication
- apiKey
- Required scope
management:write
Parameters
Request bodyBody required
application/jsonUpdateAppRequest
{
"slug": "string",
"name": "string",
"description": "string",
"websiteUrl": "string",
"iconUrl": "string",
"timezone": "string",
"currency": "string",
"schemaMode": "strict",
"attributionModel": "first_touch",
"attributionWindowDays": 1,
"conversionRoles": [
"signup"
],
"leadContactClicks": true,
"retention": {
"eventsMonths": 1,
"interactionsMonths": 1,
"sessionsMonths": 1
},
"internalIpRanges": [
"string"
],
"internalCookie": "string",
"revenueBasis": "gross",
"pricesIncludeTax": true,
"overviewTiles": [
{
"metric": "string"
}
],
"adsKpis": [
"string"
],
"modules": [
"ads"
],
"defaultAlertRecipients": {
"inApp": true,
"userIds": []
},
"searchBrandTerms": [
"string"
]
}Responses
200Başarılı.
application/jsonAppExample · JSON{ "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "slug": "string", "name": "string", "description": "string", "websiteUrl": "string", "iconUrl": "string", "timezone": "string", "currency": "string", "schemaMode": "strict", "schemaRevision": 0, "attributionModel": "first_touch", "attributionWindowDays": 0, "conversionRoles": [ "signup" ], "leadContactClicks": true, "retention": { "eventsMonths": 0, "interactionsMonths": 0, "sessionsMonths": 0 }, "internalIpRanges": [ "string" ], "internalCookie": "string", "revenueBasis": "gross", "pricesIncludeTax": true, "overviewTiles": [ { "metric": "string", "breakdown": "string" } ], "adsKpis": [ "string" ], "modules": [ "ads" ], "defaultAlertRecipients": { "inApp": true, "userIds": [ "01a1b249-9ed2-77e8-af53-0c99529e68cb" ], "emails": [ "string" ], "channelIds": [ "01a1b249-9ed2-77e8-af53-0c99529e68cb" ] }, "searchBrandTerms": [ "string" ], "defaultOverviewTiles": [ { "metric": "string", "breakdown": "string" } ], "defaultAdsKpis": [ "string" ], "status": "active", "createdAt": "2026-11-06T14:46:00+03:00", "updatedAt": "2026-11-06T14:46:00+03:00" }400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse409Kaydın güncel durumu bu işleme izin vermiyor ya da aynı kayıt zaten var (ör.
APP_SLUG_TAKEN,EVENT_NAME_TAKEN,LAST_OWNER).application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
Kaynaklar
8 endpoints
Veri gönderen istemciler, yakalama ayarları, yazma anahtarları ve imza anahtarları, kaynak sağlığı.
GET/v1/apps/{appId}/sources
Kaynaklar
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: management:read.
- Authentication
- apiKey
- Required scope
management:read
Parameters
Responses
200Başarılı.
application/jsonSourcePageExample · JSON{ "items": [ { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "appId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "name": "string", "kind": "web", "environment": "production", "status": "active", "requireSignature": true, "allowedOrigins": [ "string" ], "consentMode": "required", "excludedPaths": [ "string" ], "maskSelectors": [ "string" ], "ignoreSelectors": [ "string" ], "stripQueryParams": [ "string" ], "sessionTimeoutMinutes": 0, "interactionSampleRate": 0, "autocapture": { "pageviews": true, "pageleave": true, "clicks": true, "rageClicks": true, "deadClicks": true, "scroll": true, "errors": true, "forms": true, "layout": true, "outboundLinks": true, "downloads": true, "webVitals": true }, "dataLayerEvents": [ "string" ], "createdAt": "2026-11-06T14:46:00+03:00", "updatedAt": "2026-11-06T14:46:00+03:00" } ], "nextCursor": "string" }400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
POST/v1/apps/{appId}/sources
Kaynak ekle
Tür (web, ios, android, server, other), ortam, rıza kipi ve yakalama ayarları. Planın kaynak sınırı organizasyonun bütün uygulamalarındaki kaynakları sayar; sınıra ulaşılmışsa 403 PLAN_LIMIT_REACHED. Anahtar ayrıca oluşturulur (POST …/keys). Kapsam: management:write; denetim kaydıyla (işlemi yapan anahtar).
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: management:write.
- Authentication
- apiKey
- Required scope
management:write
Parameters
Request bodyBody required
application/jsonCreateSourceRequest
{
"name": "string",
"kind": "web",
"environment": "production",
"requireSignature": false,
"allowedOrigins": [],
"consentMode": "required",
"excludedPaths": [],
"maskSelectors": [],
"ignoreSelectors": [],
"stripQueryParams": [],
"sessionTimeoutMinutes": 30,
"interactionSampleRate": 1,
"autocapture": {},
"dataLayerEvents": []
}Responses
201Oluşturuldu.
application/jsonSourceExample · JSON{ "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "appId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "name": "string", "kind": "web", "environment": "production", "status": "active", "requireSignature": true, "allowedOrigins": [ "string" ], "consentMode": "required", "excludedPaths": [ "string" ], "maskSelectors": [ "string" ], "ignoreSelectors": [ "string" ], "stripQueryParams": [ "string" ], "sessionTimeoutMinutes": 0, "interactionSampleRate": 0, "autocapture": { "pageviews": true, "pageleave": true, "clicks": true, "rageClicks": true, "deadClicks": true, "scroll": true, "errors": true, "forms": true, "layout": true, "outboundLinks": true, "downloads": true, "webVitals": true }, "dataLayerEvents": [ "string" ], "createdAt": "2026-11-06T14:46:00+03:00", "updatedAt": "2026-11-06T14:46:00+03:00" }400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse409Kaydın güncel durumu bu işleme izin vermiyor ya da aynı kayıt zaten var (ör.
APP_SLUG_TAKEN,EVENT_NAME_TAKEN,LAST_OWNER).application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
GET/v1/apps/{appId}/sources/{sourceId}
Kaynak
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: management:read.
- Authentication
- apiKey
- Required scope
management:read
Parameters
Responses
200Başarılı.
application/jsonSourceExample · JSON{ "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "appId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "name": "string", "kind": "web", "environment": "production", "status": "active", "requireSignature": true, "allowedOrigins": [ "string" ], "consentMode": "required", "excludedPaths": [ "string" ], "maskSelectors": [ "string" ], "ignoreSelectors": [ "string" ], "stripQueryParams": [ "string" ], "sessionTimeoutMinutes": 0, "interactionSampleRate": 0, "autocapture": { "pageviews": true, "pageleave": true, "clicks": true, "rageClicks": true, "deadClicks": true, "scroll": true, "errors": true, "forms": true, "layout": true, "outboundLinks": true, "downloads": true, "webVitals": true }, "dataLayerEvents": [ "string" ], "createdAt": "2026-11-06T14:46:00+03:00", "updatedAt": "2026-11-06T14:46:00+03:00" }401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
PATCH/v1/apps/{appId}/sources/{sourceId}
Kaynağı güncelle
Yakalama ayarları SDK'lara uzak yapılandırma olarak sunulur; autocapture gönderilen anahtarları kaynağın ayarlarıyla birleştirir. Kaynak Management API ile silinmez (panelde). Kapsam: management:write.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: management:write.
- Authentication
- apiKey
- Required scope
management:write
Parameters
Request bodyBody required
application/jsonUpdateSourceRequest
{
"name": "string",
"environment": "production",
"status": "active",
"requireSignature": true,
"allowedOrigins": [
"string"
],
"consentMode": "required",
"excludedPaths": [
"string"
],
"maskSelectors": [
"string"
],
"ignoreSelectors": [
"string"
],
"stripQueryParams": [
"string"
],
"sessionTimeoutMinutes": 5,
"interactionSampleRate": 0,
"autocapture": {
"pageviews": true,
"pageleave": true
},
"dataLayerEvents": [
"string"
]
}Responses
200Başarılı.
application/jsonSourceExample · JSON{ "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "appId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "name": "string", "kind": "web", "environment": "production", "status": "active", "requireSignature": true, "allowedOrigins": [ "string" ], "consentMode": "required", "excludedPaths": [ "string" ], "maskSelectors": [ "string" ], "ignoreSelectors": [ "string" ], "stripQueryParams": [ "string" ], "sessionTimeoutMinutes": 0, "interactionSampleRate": 0, "autocapture": { "pageviews": true, "pageleave": true, "clicks": true, "rageClicks": true, "deadClicks": true, "scroll": true, "errors": true, "forms": true, "layout": true, "outboundLinks": true, "downloads": true, "webVitals": true }, "dataLayerEvents": [ "string" ], "createdAt": "2026-11-06T14:46:00+03:00", "updatedAt": "2026-11-06T14:46:00+03:00" }400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse409Kaydın güncel durumu bu işleme izin vermiyor ya da aynı kayıt zaten var (ör.
APP_SLUG_TAKEN,EVENT_NAME_TAKEN,LAST_OWNER).application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
GET/v1/apps/{appId}/sources/{sourceId}/health
Kaynak sağlığı
Durum, son olay ve son ret, son kütüphane; son 24 saatte kabul edilen olay, ret, örneklenmiş uyarı ve ret oranı (Σ ret ÷ (Σ olay + Σ ret)). Kapsam: management:read.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: management:read.
- Authentication
- apiKey
- Required scope
management:read
Parameters
Responses
200Başarılı.
application/jsonSourceHealthExample · JSON{ "sourceId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "state": "no_data", "lastEventAt": "2026-11-06T14:46:00+03:00", "lastRejectionAt": "2026-11-06T14:46:00+03:00", "lastLibrary": "string", "rejectionsLast24h": 0, "eventsLast24h": 0, "warningsLast24h": 0, "rejectionRate": 0 }401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
GET/v1/apps/{appId}/sources/{sourceId}/keys
Kaynak anahtarları (maskeli)
Önek ve son dört karakter, kip, oluşturma, iptal ve geçiş süresi; anahtarın tamamı hiç dönmez. Kapsam: management:write (panelde de yalnız kaynak yöneticisi görür).
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: management:write.
- Authentication
- apiKey
- Required scope
management:write
Parameters
Responses
200Başarılı.
application/jsonSourceKeyListExample · JSON{ "items": [ { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "kind": "write", "mode": "live", "maskedKey": "string", "displayPrefix": "string", "last4": "string", "state": "active", "revokedAt": "2026-11-06T14:46:00+03:00", "createdBy": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "createdAt": "2026-11-06T14:46:00+03:00" } ] }401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
POST/v1/apps/{appId}/sources/{sourceId}/keys
Anahtar oluştur
Yazma anahtarı pk_live_…/pk_test_… (SHA-256 özetiyle saklanır) ya da imza anahtarı sk_live_…/sk_test_… (sır kutusunda mühürlü). Anahtarın tamamı yalnız bu yanıtta görünür. Kapsam: management:write; denetim kaydıyla.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: management:write.
- Authentication
- apiKey
- Required scope
management:write
Parameters
Request bodyBody required
application/jsonCreateSourceKeyRequest
{
"kind": "write",
"mode": "live"
}Responses
201Oluşturuldu.
application/jsonCreatedSourceKeyExample · JSON{ "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "kind": "write", "mode": "live", "maskedKey": "string", "displayPrefix": "string", "last4": "string", "state": "active", "revokedAt": "2026-11-06T14:46:00+03:00", "createdBy": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "createdAt": "2026-11-06T14:46:00+03:00", "key": "string" }400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse409Kaydın güncel durumu bu işleme izin vermiyor ya da aynı kayıt zaten var (ör.
APP_SLUG_TAKEN,EVENT_NAME_TAKEN,LAST_OWNER).application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
POST/v1/apps/{appId}/sources/{sourceId}/keys/{keyId}/revoke
Anahtarı iptal et
graceMinutes kadar daha geçerli kalır (anahtar yenilemede geçiş süresi, en çok 7 gün). Kapsam: management:write; denetim kaydıyla.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: management:write.
- Authentication
- apiKey
- Required scope
management:write
Parameters
Request body
application/jsonRevokeSourceKeyRequest
{
"graceMinutes": 0
}Responses
200Başarılı.
application/jsonSourceKeyExample · JSON{ "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "kind": "write", "mode": "live", "maskedKey": "string", "displayPrefix": "string", "last4": "string", "state": "active", "revokedAt": "2026-11-06T14:46:00+03:00", "createdBy": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "createdAt": "2026-11-06T14:46:00+03:00" }400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse409Kaydın güncel durumu bu işleme izin vermiyor ya da aynı kayıt zaten var (ör.
APP_SLUG_TAKEN,EVENT_NAME_TAKEN,LAST_OWNER).application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
Olay şeması
16 endpoints
Olay ve özellik tanımları, kişi/hesap özellikleri, değişiklik geçmişi, keşfedilen olaylar, şema paketi.
GET/v1/apps/{appId}/event-definitions
Olay tanımları
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: management:read.
- Authentication
- apiKey
- Required scope
management:read
Parameters
Responses
200Başarılı.
application/jsonEventDefinitionPageExample · JSON{ "items": [ { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "appId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "name": "string", "displayName": "string", "description": "string", "category": "string", "roles": [ "signup" ], "status": "draft", "aliases": [ "string" ], "version": 1, "propertyCount": 0, "createdAt": "2026-11-06T14:46:00+03:00", "updatedAt": "2026-11-06T14:46:00+03:00" } ], "nextCursor": "string" }400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
POST/v1/apps/{appId}/event-definitions
Olay tanımı ekle
Her değişiklik tanımın sürümünü bir artırır, uygulamanın şema revizyonunu ilerletir ve schema_changes geçmişine yazılır. $ ile başlayan adlar sistem olaylarına ayrılmıştır; seçenekli (enum) tip izinli değer ister; kişisel ve hassas veri allow ile saklanamaz.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: management:write.
- Authentication
- apiKey
- Required scope
management:write
Parameters
Request bodyBody required
application/jsonCreateEventDefinitionRequest
{
"name": "string",
"displayName": "string",
"description": "string",
"category": "string",
"roles": [],
"status": "active",
"aliases": [],
"properties": [
{
"key": "string",
"type": "string"
}
],
"displayNames": {
"tr": "string",
"en": "string"
}
}Responses
201Oluşturuldu.
application/jsonEventDefinitionRecordExample · JSON{ "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "appId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "name": "string", "displayName": "string", "displayNames": { "tr": "string", "en": "string" }, "description": "string", "category": "string", "roles": [ "signup" ], "status": "draft", "aliases": [ "string" ], "version": 1, "propertyCount": 0, "createdAt": "2026-11-06T14:46:00+03:00", "updatedAt": "2026-11-06T14:46:00+03:00", "properties": [ { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "scope": "event", "key": "string", "type": "string", "itemType": "string", "required": true, "description": "string", "piiClass": "none", "piiAction": "allow", "enumValues": [ "string" ], "maxLength": 0, "minimum": 0, "maximum": 0, "example": {}, "sortOrder": 0, "createdAt": "2026-11-06T14:46:00+03:00", "updatedAt": "2026-11-06T14:46:00+03:00" } ] }400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse409Kaydın güncel durumu bu işleme izin vermiyor ya da aynı kayıt zaten var (ör.
APP_SLUG_TAKEN,EVENT_NAME_TAKEN,LAST_OWNER).application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
GET/v1/apps/{appId}/event-definitions/{eventId}
Olay tanımı
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: management:read.
- Authentication
- apiKey
- Required scope
management:read
Parameters
Responses
200Başarılı.
application/jsonEventDefinitionRecordExample · JSON{ "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "appId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "name": "string", "displayName": "string", "displayNames": { "tr": "string", "en": "string" }, "description": "string", "category": "string", "roles": [ "signup" ], "status": "draft", "aliases": [ "string" ], "version": 1, "propertyCount": 0, "createdAt": "2026-11-06T14:46:00+03:00", "updatedAt": "2026-11-06T14:46:00+03:00", "properties": [ { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "scope": "event", "key": "string", "type": "string", "itemType": "string", "required": true, "description": "string", "piiClass": "none", "piiAction": "allow", "enumValues": [ "string" ], "maxLength": 0, "minimum": 0, "maximum": 0, "example": {}, "sortOrder": 0, "createdAt": "2026-11-06T14:46:00+03:00", "updatedAt": "2026-11-06T14:46:00+03:00" } ] }401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
PATCH/v1/apps/{appId}/event-definitions/{eventId}
Olay tanımını güncelle
properties gönderilirse listenin tamamını değiştirir (anahtarı korunan özelliğin kimliği kalır). Ad değişmez; eski adlar aliases ile eşlenir. Her değişiklik tanımın sürümünü bir artırır, uygulamanın şema revizyonunu ilerletir ve schema_changes geçmişine yazılır. $ ile başlayan adlar sistem olaylarına ayrılmıştır; seçenekli (enum) tip izinli değer ister; kişisel ve hassas veri allow ile saklanamaz.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: management:write.
- Authentication
- apiKey
- Required scope
management:write
Parameters
Request bodyBody required
application/jsonUpdateEventDefinitionRequest
{
"displayName": "string",
"description": "string",
"category": "string",
"roles": [
"signup"
],
"aliases": [
"string"
],
"properties": [
{
"key": "string",
"type": "string"
}
],
"displayNames": {
"tr": "string",
"en": "string"
}
}Responses
200Başarılı.
application/jsonEventDefinitionRecordExample · JSON{ "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "appId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "name": "string", "displayName": "string", "displayNames": { "tr": "string", "en": "string" }, "description": "string", "category": "string", "roles": [ "signup" ], "status": "draft", "aliases": [ "string" ], "version": 1, "propertyCount": 0, "createdAt": "2026-11-06T14:46:00+03:00", "updatedAt": "2026-11-06T14:46:00+03:00", "properties": [ { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "scope": "event", "key": "string", "type": "string", "itemType": "string", "required": true, "description": "string", "piiClass": "none", "piiAction": "allow", "enumValues": [ "string" ], "maxLength": 0, "minimum": 0, "maximum": 0, "example": {}, "sortOrder": 0, "createdAt": "2026-11-06T14:46:00+03:00", "updatedAt": "2026-11-06T14:46:00+03:00" } ] }400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse409Kaydın güncel durumu bu işleme izin vermiyor ya da aynı kayıt zaten var (ör.
APP_SLUG_TAKEN,EVENT_NAME_TAKEN,LAST_OWNER).application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
DELETE/v1/apps/{appId}/event-definitions/{eventId}
Olay tanımını sil
Geçmişe silme kaydı yazılır; saklanan olaylar kalır. Kapsam: management:write; panelle aynı kurallar ve denetim kaydı (işlemi yapan anahtar).
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: management:write.
- Authentication
- apiKey
- Required scope
management:write
Parameters
Responses
204Başarılı; yanıt gövdesi yok.
400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse409Kaydın güncel durumu bu işleme izin vermiyor ya da aynı kayıt zaten var (ör.
APP_SLUG_TAKEN,EVENT_NAME_TAKEN,LAST_OWNER).application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
GET/v1/apps/{appId}/event-definitions/{eventId}/json-schema
Olayın JSON Schema belgesi
Özellikler JSON Schema (draft 2020-12) olarak; katı kipte tanımsız özellik reddedilir (additionalProperties: false).
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: management:read.
- Authentication
- apiKey
- Required scope
management:read
Parameters
Responses
200Başarılı.
application/jsonJsonSchemaDocumentExample · JSON{}401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
POST/v1/apps/{appId}/event-definitions/{eventId}/status
Olay tanımının durumunu değiştir
draft, active, deprecated (uyarıyla kabul) ya da blocked (alımda reddedilir); geçmişe yazılır. Kapsam: management:write; panelle aynı kurallar ve denetim kaydı (işlemi yapan anahtar).
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: management:write.
- Authentication
- apiKey
- Required scope
management:write
Parameters
Request bodyBody required
application/jsonChangeEventStatusRequest
{
"status": "draft"
}Responses
200Başarılı.
application/jsonEventDefinitionRecordExample · JSON{ "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "appId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "name": "string", "displayName": "string", "displayNames": { "tr": "string", "en": "string" }, "description": "string", "category": "string", "roles": [ "signup" ], "status": "draft", "aliases": [ "string" ], "version": 1, "propertyCount": 0, "createdAt": "2026-11-06T14:46:00+03:00", "updatedAt": "2026-11-06T14:46:00+03:00", "properties": [ { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "scope": "event", "key": "string", "type": "string", "itemType": "string", "required": true, "description": "string", "piiClass": "none", "piiAction": "allow", "enumValues": [ "string" ], "maxLength": 0, "minimum": 0, "maximum": 0, "example": {}, "sortOrder": 0, "createdAt": "2026-11-06T14:46:00+03:00", "updatedAt": "2026-11-06T14:46:00+03:00" } ] }400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse409Kaydın güncel durumu bu işleme izin vermiyor ya da aynı kayıt zaten var (ör.
APP_SLUG_TAKEN,EVENT_NAME_TAKEN,LAST_OWNER).application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
GET/v1/apps/{appId}/group-traits
Hesap özelliği tanımları
Uygulamanın hesap (group) özellik tanımları (anahtar, tür, kişisel veri sınıfı ve eylemi, iki dilde ad). Kapsam: management:read.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: management:read.
- Authentication
- apiKey
- Required scope
management:read
Parameters
Responses
200Başarılı.
application/jsonTraitListExample · JSON{ "items": [ { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "scope": "event", "key": "string", "type": "string", "itemType": "string", "required": true, "description": "string", "piiClass": "none", "piiAction": "allow", "enumValues": [ "string" ], "maxLength": 0, "minimum": 0, "maximum": 0, "example": {}, "sortOrder": 0, "createdAt": "2026-11-06T14:46:00+03:00", "updatedAt": "2026-11-06T14:46:00+03:00" } ] }401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
POST/v1/apps/{appId}/group-traits
Hesap özelliği tanımı ekle
Kişisel veri sınıfı (piiClass) ve eylemi (piiAction: allow, hash, drop, reject) alımda ve profillerde uygulanır. Kapsam: management:write; panelle aynı kurallar ve denetim kaydı (işlemi yapan anahtar).
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: management:write.
- Authentication
- apiKey
- Required scope
management:write
Parameters
Request bodyBody required
application/jsonPropertyDefinitionInput
{
"key": "string",
"type": "string",
"itemType": "string",
"required": false,
"description": "string",
"piiClass": "none",
"piiAction": "allow",
"enumValues": [
"string"
],
"maxLength": 1,
"minimum": 0,
"maximum": 0,
"example": {},
"displayNames": {
"tr": "string",
"en": "string"
}
}Responses
201Oluşturuldu.
application/jsonPropertyDefinitionRecordExample · JSON{ "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "scope": "event", "key": "string", "type": "string", "itemType": "string", "required": true, "description": "string", "piiClass": "none", "piiAction": "allow", "enumValues": [ "string" ], "maxLength": 0, "minimum": 0, "maximum": 0, "example": {}, "sortOrder": 0, "displayNames": { "tr": "string", "en": "string" }, "createdAt": "2026-11-06T14:46:00+03:00", "updatedAt": "2026-11-06T14:46:00+03:00" }400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse409Kaydın güncel durumu bu işleme izin vermiyor ya da aynı kayıt zaten var (ör.
APP_SLUG_TAKEN,EVENT_NAME_TAKEN,LAST_OWNER).application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
PATCH/v1/apps/{appId}/group-traits/{propertyId}
Hesap özelliği tanımını güncelle
Anahtar değişmez. Kapsam: management:write; panelle aynı kurallar ve denetim kaydı (işlemi yapan anahtar).
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: management:write.
- Authentication
- apiKey
- Required scope
management:write
Parameters
Request bodyBody required
application/jsonUpdateTraitRequest
{
"type": "string",
"itemType": "string",
"required": true,
"description": "string",
"piiClass": "none",
"piiAction": "allow",
"enumValues": [
"string"
],
"maxLength": 1,
"minimum": 0,
"maximum": 0,
"example": {},
"displayNames": {
"tr": "string",
"en": "string"
}
}Responses
200Başarılı.
application/jsonPropertyDefinitionRecordExample · JSON{ "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "scope": "event", "key": "string", "type": "string", "itemType": "string", "required": true, "description": "string", "piiClass": "none", "piiAction": "allow", "enumValues": [ "string" ], "maxLength": 0, "minimum": 0, "maximum": 0, "example": {}, "sortOrder": 0, "displayNames": { "tr": "string", "en": "string" }, "createdAt": "2026-11-06T14:46:00+03:00", "updatedAt": "2026-11-06T14:46:00+03:00" }400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse409Kaydın güncel durumu bu işleme izin vermiyor ya da aynı kayıt zaten var (ör.
APP_SLUG_TAKEN,EVENT_NAME_TAKEN,LAST_OWNER).application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
DELETE/v1/apps/{appId}/group-traits/{propertyId}
Hesap özelliği tanımını sil
Saklanan değerler kalır; tanımsız özellik uygulamanın şema kipine göre işlenir. Kapsam: management:write; panelle aynı kurallar ve denetim kaydı (işlemi yapan anahtar).
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: management:write.
- Authentication
- apiKey
- Required scope
management:write
Parameters
Responses
204Başarılı; yanıt gövdesi yok.
400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse409Kaydın güncel durumu bu işleme izin vermiyor ya da aynı kayıt zaten var (ör.
APP_SLUG_TAKEN,EVENT_NAME_TAKEN,LAST_OWNER).application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
GET/v1/apps/{appId}/schema
Şema paketi
Uygulamanın bütün olay kataloğu (schemaBundleSchema, formatVersion 1): her durumdaki olay tanımı, özellikleri, kişi ve hesap özellikleri, revision. metrics pull TypeScript tiplerini, alım servisi şema önbelleğini bundan üretir.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: management:read.
- Authentication
- apiKey
- Required scope
management:read
Parameters
Responses
200Başarılı.
application/jsonSchemaBundleExample · JSON{ "formatVersion": 1, "app": { "id": "string", "slug": "string", "name": "string" }, "schemaMode": "strict", "revision": 0, "generatedAt": "2026-11-06T14:46:00+03:00", "events": [ { "name": "string", "displayName": "string", "roles": [ "signup" ], "status": "draft", "version": 1, "properties": [ { "key": "string", "type": "string", "required": true, "piiClass": "none", "piiAction": "allow" } ] } ], "traits": [ { "key": "string", "type": "string", "required": true, "piiClass": "none", "piiAction": "allow" } ], "groupTraits": [ { "key": "string", "type": "string", "required": true, "piiClass": "none", "piiAction": "allow" } ] }401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
GET/v1/apps/{appId}/traits
Kişi özelliği tanımları
Uygulamanın kişi (identify) özellik tanımları (anahtar, tür, kişisel veri sınıfı ve eylemi, iki dilde ad). Kapsam: management:read.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: management:read.
- Authentication
- apiKey
- Required scope
management:read
Parameters
Responses
200Başarılı.
application/jsonTraitListExample · JSON{ "items": [ { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "scope": "event", "key": "string", "type": "string", "itemType": "string", "required": true, "description": "string", "piiClass": "none", "piiAction": "allow", "enumValues": [ "string" ], "maxLength": 0, "minimum": 0, "maximum": 0, "example": {}, "sortOrder": 0, "createdAt": "2026-11-06T14:46:00+03:00", "updatedAt": "2026-11-06T14:46:00+03:00" } ] }401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
POST/v1/apps/{appId}/traits
Kişi özelliği tanımı ekle
Kişisel veri sınıfı (piiClass) ve eylemi (piiAction: allow, hash, drop, reject) alımda ve profillerde uygulanır. Kapsam: management:write; panelle aynı kurallar ve denetim kaydı (işlemi yapan anahtar).
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: management:write.
- Authentication
- apiKey
- Required scope
management:write
Parameters
Request bodyBody required
application/jsonPropertyDefinitionInput
{
"key": "string",
"type": "string",
"itemType": "string",
"required": false,
"description": "string",
"piiClass": "none",
"piiAction": "allow",
"enumValues": [
"string"
],
"maxLength": 1,
"minimum": 0,
"maximum": 0,
"example": {},
"displayNames": {
"tr": "string",
"en": "string"
}
}Responses
201Oluşturuldu.
application/jsonPropertyDefinitionRecordExample · JSON{ "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "scope": "event", "key": "string", "type": "string", "itemType": "string", "required": true, "description": "string", "piiClass": "none", "piiAction": "allow", "enumValues": [ "string" ], "maxLength": 0, "minimum": 0, "maximum": 0, "example": {}, "sortOrder": 0, "displayNames": { "tr": "string", "en": "string" }, "createdAt": "2026-11-06T14:46:00+03:00", "updatedAt": "2026-11-06T14:46:00+03:00" }400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse409Kaydın güncel durumu bu işleme izin vermiyor ya da aynı kayıt zaten var (ör.
APP_SLUG_TAKEN,EVENT_NAME_TAKEN,LAST_OWNER).application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
PATCH/v1/apps/{appId}/traits/{propertyId}
Kişi özelliği tanımını güncelle
Anahtar değişmez. Kapsam: management:write; panelle aynı kurallar ve denetim kaydı (işlemi yapan anahtar).
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: management:write.
- Authentication
- apiKey
- Required scope
management:write
Parameters
Request bodyBody required
application/jsonUpdateTraitRequest
{
"type": "string",
"itemType": "string",
"required": true,
"description": "string",
"piiClass": "none",
"piiAction": "allow",
"enumValues": [
"string"
],
"maxLength": 1,
"minimum": 0,
"maximum": 0,
"example": {},
"displayNames": {
"tr": "string",
"en": "string"
}
}Responses
200Başarılı.
application/jsonPropertyDefinitionRecordExample · JSON{ "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "scope": "event", "key": "string", "type": "string", "itemType": "string", "required": true, "description": "string", "piiClass": "none", "piiAction": "allow", "enumValues": [ "string" ], "maxLength": 0, "minimum": 0, "maximum": 0, "example": {}, "sortOrder": 0, "displayNames": { "tr": "string", "en": "string" }, "createdAt": "2026-11-06T14:46:00+03:00", "updatedAt": "2026-11-06T14:46:00+03:00" }400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse409Kaydın güncel durumu bu işleme izin vermiyor ya da aynı kayıt zaten var (ör.
APP_SLUG_TAKEN,EVENT_NAME_TAKEN,LAST_OWNER).application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
DELETE/v1/apps/{appId}/traits/{propertyId}
Kişi özelliği tanımını sil
Saklanan değerler kalır; tanımsız özellik uygulamanın şema kipine göre işlenir. Kapsam: management:write; panelle aynı kurallar ve denetim kaydı (işlemi yapan anahtar).
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: management:write.
- Authentication
- apiKey
- Required scope
management:write
Parameters
Responses
204Başarılı; yanıt gövdesi yok.
400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse409Kaydın güncel durumu bu işleme izin vermiyor ya da aynı kayıt zaten var (ör.
APP_SLUG_TAKEN,EVENT_NAME_TAKEN,LAST_OWNER).application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
Ölçüm
2 endpoints
Metrik kataloğu ve sorgu servisi: metrik sorgusu, katalog, Trafik ekranı, tüm uygulamalar, uygulamanın tanımladığı metrikler ve Query API.
POST/v1/query
Query API: metrik sorgusu
Panelin metrik sorgusu entegrasyonlar için: Authorization: Bearer mk_…, kapsam query:read, uygulama gövdede (appId); anahtarın uygulama kapsamı dışındaki uygulama bulunamaz (404). Tarih aralığı uygulamanın saat dilimindeki yerel tarihlerdir (iki uç dahil; günler yaz saati geçişinde 23 ya da 25 saat sürer). Test, iç ve bot trafiği include ile açıkça istenmedikçe dışarıdadır. Oranlar pay ve paydanın toplamından hesaplanır (oranların ortalaması alınmaz); tekil metrikler (ziyaretçi) her satır ve dönem için yeniden sayılır, toplanmaz. Paydası 0 olan oran ve ölçüm başlamadan önceki dönem null döner (0 değil). Karşılaştırma: previous_period eşit uzunlukta önceki dönem (tam takvim ayı → önceki ay, ay başından bugüne → önceki ayın aynı günleri), previous_year aynı tarihler bir yıl önce, custom + compareRange; zaman kovaları sırayla eşlenir. Değişim (deltas): önceki değer 0 ya da metriğin tabanının altındaysa yüzde verilmez (mode: "absolute", reason: "zero_base" | "small_base"), oranlarda puan (mode: "points"), ölçüm öncesi karşılaştırma comparable: false. meta: saat dilimi, veri tazeliği (işleme izleme noktası), her metriğin sayım modu (event_date) ve kaynağı (rollup | raw | none), uyarılar (desteklenmeyen boyut/filtre, kesilen satırlar). Özet tablolar ile ham tablolar aynı sayıyı verir; servis hangisini okuyacağına kendisi karar verir. Dalga 16: her metriğin katalog etiketi isteğin dilinde metrics[].label’da (rollü metrikte rolle: «Dönüşen kişi · Kayıt»; custom: için uygulamanın verdiği ad); definitions (en çok 5) kaydedilmemiş metrik tanımlarını taslak olarak taşır — custom:<anahtar> önce taslağa, sonra kayıtlı tanıma çözülür (önizleme; hiçbir şey saklanmaz, aynı anahtarlı kayıtlı tanımı gölgeler); türler kayıtlı tanımınkiler, artı unique_accounts (olayı yapan farklı hesap). segmentId uygulamanın bir kişi ya da hesap segmentini (…/analytics/segments) adlandırır: kişilerin olguları — oturum, olay, etkileşim, sayfa ayrılışı, kredili dönüşüm — segmentin üyelerine daralır (hesap segmentinde hesapların olayları ve üyelerinin oturumları); reklam, sosyal, Search Console, GA4, bütçe ve ileti metrikleri segment için FILTER_NOT_AVAILABLE der; segmentli sorgu her zaman ham tablolardan okunur, meta.segment segmentin adını taşır.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: query:read.
- Authentication
- apiKey
- Required scope
query:read
Request bodyBody required
application/jsonQueryApiRequest
{
"appId": "01a1b249-9ed2-77e8-af53-0c99529e68cb",
"metrics": [
"string"
],
"dimensions": [],
"filters": [],
"dateRange": {
"from": "string",
"to": "string"
},
"compare": "none",
"compareRange": {
"from": "string",
"to": "string"
},
"include": {
"test": false,
"internal": false
},
"granularity": "day",
"attributionModel": "first_touch",
"orderBy": {
"metric": "string"
},
"limit": 1000,
"segmentId": "01a1b249-9ed2-77e8-af53-0c99529e68cb",
"definitions": [
{
"key": "string",
"kind": "event_count"
}
]
}Responses
200Başarılı.
application/jsonAnalyticsQueryResultExample · JSON{ "metrics": [ { "key": "string", "unit": "count", "goodDirection": "higher", "aggregation": "sum", "countingMode": "event_date", "source": "rollup" } ], "dimensions": [ "string" ], "rows": [ { "dimensions": {}, "values": {}, "bucket": { "start": "string", "end": "string", "days": 0, "complete": true, "beforeTracking": true }, "previous": {}, "previousBucket": { "start": "string", "end": "string" }, "deltas": {} } ], "totals": { "values": {}, "deltas": {} }, "comparison": { "dateRange": { "from": "string", "to": "string" }, "comparable": true, "totals": {} }, "meta": { "appId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "timezone": "string", "currency": "string", "dateRange": { "from": "string", "to": "string" }, "compare": "none", "comparisonRange": { "from": "string", "to": "string" }, "include": { "test": true, "internal": true, "bot": true }, "trackingStartedOn": "string", "freshness": { "processedUntil": "2026-11-06T14:46:00+03:00", "lastEventReceivedAt": "2026-11-06T14:46:00+03:00", "upToDate": true, "updatedAt": "2026-11-06T14:46:00+03:00", "pendingRollupDays": 0 }, "countingModes": {}, "sources": {}, "conversionRoles": [ "signup" ], "attribution": { "model": "first_touch", "windowDays": 0 }, "warnings": [ { "code": "DIMENSION_NOT_AVAILABLE", "message": "string", "metric": "string", "dimension": "string" } ], "truncated": true, "generatedAt": "2026-11-06T14:46:00+03:00" } }400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse409Kaydın güncel durumu bu işleme izin vermiyor ya da aynı kayıt zaten var (ör.
APP_SLUG_TAKEN,EVENT_NAME_TAKEN,LAST_OWNER).application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
GET/v1/query/catalogue
Query API: metrik kataloğu
Uygulamanın metrik ve boyut kataloğu (Accept-Language dilinde etiketlerle). Kapsam query:read.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: query:read.
- Authentication
- apiKey
- Required scope
query:read
Parameters
Responses
200Başarılı.
application/jsonAnalyticsCatalogueExample · JSON{ "metrics": [ { "key": "string", "label": "string", "description": "string", "unit": "count", "goodDirection": "higher", "aggregation": "sum", "countingMode": "event_date", "formula": { "numerator": "string", "denominator": "string", "scale": 0 }, "tables": [ "string" ], "dimensions": [ "string" ], "parameter": { "name": "role", "values": [] }, "custom": true, "definitionId": "01a1b249-9ed2-77e8-af53-0c99529e68cb" } ], "dimensions": [ { "key": "string", "label": "string", "description": "string", "kind": "time", "values": [ { "key": "string", "label": "string" } ] } ], "roles": [ { "key": "string", "label": "string" } ], "conversionRoles": [ "signup" ], "compareModes": [ "none" ], "filterOperators": [ "eq" ], "attributionModels": [ { "key": "first_touch", "label": "string", "description": "string" } ], "defaultAttributionModel": "first_touch", "attributionWindowDays": 0, "revenueBasis": "gross", "pricesIncludeTax": true }400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
Davranış
7 endpoints
Oturumlar ve zaman çizelgesi, ısı haritası, takılma sinyalleri ve hızlı geri dönüş, JS hataları, ziyaretçi yolları ve sayfadan sayfaya geçişler, kişi ve hesap profilleri.
GET/v1/apps/{appId}/accounts
Hesaplar
Uygulamanın hesapları (group çağrıları ve context.groupId; B2B müşteri hesabı), son görülme, ilk görülme ya da üye sayısı sırasıyla, imleç sayfalı, toplamla. search hesap kimliğinin başı ya da name özelliğinin bir parçası. Management API (dalga 16; 07 YEN-13): kapsam persons:read; panelle aynı saklama kuralları — kişisel ya da hassas veri tanımlı ya da eylemi allow olmayan özellik özetiyle döner (hash) ya da hiç dönmez (drop, reject: yalnız adı withheldTraitste), kimlikler opak; profildeki talepler yalnız anahtarda leads:read de varsa.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: persons:read.
- Authentication
- apiKey
- Required scope
persons:read
Parameters
Responses
200Başarılı.
application/jsonAccountPageExample · JSON{ "items": [ { "groupId": "string", "name": "string", "traits": {}, "memberCount": 0, "firstSeenAt": "2026-11-06T14:46:00+03:00", "lastSeenAt": "2026-11-06T14:46:00+03:00" } ], "nextCursor": "string", "total": 0 }400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
GET/v1/apps/{appId}/accounts/{groupId}
Hesap profili
Hesabın özellikleri (olay zamanına göre en yeni değer; kişisel veri tanımlı olanlar özetlenir ya da gösterilmez), ilk ve son görülme (olay zamanı), üyeleri (en son görülen 20), üyelerin son oturumları, olayları, dönüşümleri, ulaşılan roller, summary (üye, oturum, olay, dönüşüm, brüt gelir, iade, net gelir; metrik kataloğunun kurallarıyla, bütün geçmiş), talepler (leads.read ile). Bir olay hesabındır: kendi groupIdsi, yoksa kişisinin tek hesabıysa (hunilerin group kuralı). Hesap kimliği uygulamanın opak kimliğidir (adreste URL kodlu). Management API (dalga 16; 07 YEN-13): kapsam persons:read; panelle aynı saklama kuralları — kişisel ya da hassas veri tanımlı ya da eylemi allow olmayan özellik özetiyle döner (hash) ya da hiç dönmez (drop, reject: yalnız adı withheldTraitste), kimlikler opak; profildeki talepler yalnız anahtarda leads:read de varsa.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: persons:read.
- Authentication
- apiKey
- Required scope
persons:read
Parameters
Responses
200Başarılı.
application/jsonAccountProfileExample · JSON{ "account": { "groupId": "string", "name": "string", "traits": {}, "memberCount": 0, "firstSeenAt": "2026-11-06T14:46:00+03:00", "lastSeenAt": "2026-11-06T14:46:00+03:00" }, "summary": { "members": 0, "sessions": 0, "events": 0, "conversions": 0, "revenue": 0, "refunds": 0, "netRevenue": 0, "currency": "string", "leads": 0 }, "roles": [ "string" ], "members": [ { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "userId": "string", "firstSeenAt": "2026-11-06T14:46:00+03:00", "lastSeenAt": "2026-11-06T14:46:00+03:00", "firstChannel": "string", "eventCount": 0, "sessionCount": 0, "isTest": true, "isInternal": true, "joinedAt": "2026-11-06T14:46:00+03:00" } ], "sessions": [ { "id": "string", "personId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "anonymousId": "string", "userId": "string", "startedAt": "2026-11-06T14:46:00+03:00", "endedAt": "2026-11-06T14:46:00+03:00", "durationMs": 0, "activeMs": 0, "pageviews": 0, "screenViews": 0, "events": 0, "interactions": 0, "rageClicks": 0, "deadClicks": 0, "errors": 0, "entryPath": "string", "exitPath": "string", "channel": "string", "source": "string", "medium": "string", "campaign": "string", "referrerHost": "string", "deviceType": "string", "os": "string", "browser": "string", "country": "string", "region": "string", "city": "string", "isEngaged": true, "isBounce": true, "roles": [ "string" ], "converted": true, "revenue": 0, "isTest": true, "isInternal": true, "isBot": true } ], "events": [ { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "at": "2026-11-06T14:46:00+03:00", "type": "track", "eventName": "string", "roles": [ "string" ], "conversion": true, "revenue": 0, "path": "string", "sessionId": "string", "properties": {}, "personId": "01a1b249-9ed2-77e8-af53-0c99529e68cb" } ], "conversions": [ { "eventId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "at": "2026-11-06T14:46:00+03:00", "eventName": "string", "roles": [ "string" ], "revenue": 0, "sessionId": "string", "channel": "string" } ], "leads": [ { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "kind": "demo_request", "status": "new", "eventName": "string", "eventAt": "2026-11-06T14:46:00+03:00" } ], "withheldTraits": [ "string" ] }401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
GET/v1/apps/{appId}/accounts/{groupId}/events
Hesabın olay zaman çizelgesi
Hesabın bütün olayları (kişisiyle), yeniden eskiye, imleç sayfalı; type, conversions=true süzgeçleri. Management API (dalga 16; 07 YEN-13): kapsam persons:read; panelle aynı saklama kuralları — kişisel ya da hassas veri tanımlı ya da eylemi allow olmayan özellik özetiyle döner (hash) ya da hiç dönmez (drop, reject: yalnız adı withheldTraitste), kimlikler opak; profildeki talepler yalnız anahtarda leads:read de varsa.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: persons:read.
- Authentication
- apiKey
- Required scope
persons:read
Parameters
Responses
200Başarılı.
application/jsonAccountEventPageExample · JSON{ "items": [ { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "at": "2026-11-06T14:46:00+03:00", "type": "track", "eventName": "string", "roles": [ "string" ], "conversion": true, "revenue": 0, "path": "string", "sessionId": "string", "properties": {}, "personId": "01a1b249-9ed2-77e8-af53-0c99529e68cb" } ], "nextCursor": "string" }400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
GET/v1/apps/{appId}/accounts/{groupId}/members
Hesabın üyeleri
Hesabın bütün kişileri, son görülme sırasıyla, imleç sayfalı, toplamla; joinedAt kişinin hesapta ilk görüldüğü olay zamanı. Management API (dalga 16; 07 YEN-13): kapsam persons:read; panelle aynı saklama kuralları — kişisel ya da hassas veri tanımlı ya da eylemi allow olmayan özellik özetiyle döner (hash) ya da hiç dönmez (drop, reject: yalnız adı withheldTraitste), kimlikler opak; profildeki talepler yalnız anahtarda leads:read de varsa.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: persons:read.
- Authentication
- apiKey
- Required scope
persons:read
Parameters
Responses
200Başarılı.
application/jsonAccountMemberPageExample · JSON{ "items": [ { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "userId": "string", "firstSeenAt": "2026-11-06T14:46:00+03:00", "lastSeenAt": "2026-11-06T14:46:00+03:00", "firstChannel": "string", "eventCount": 0, "sessionCount": 0, "isTest": true, "isInternal": true, "joinedAt": "2026-11-06T14:46:00+03:00" } ], "nextCursor": "string", "total": 0 }400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
GET/v1/apps/{appId}/persons
Kişiler
Uygulamanın kişileri (birleştirilmiş kişiler hariç), son görülme ya da ilk görülme sırasıyla, imleç sayfalı. search bir kullanıcı kimliği, anonim kimlik ya da kişi kimliğiyle tam eşleşir; searchMatch=prefix ile kişi kimliğinin başıyla da (en az 6 onaltılık karakter, tireler yok sayılır; birincil anahtarda kimlik aralığı) ve 16. dalgadan kullanıcı ya da anonim kimliğin başıyla (en az 3 karakter, büyük/küçük harf duyarlı, % ve _ harf olarak; desen dizini). Kimlikler opaktır; kişisel veri dönmez. Management API (dalga 16; 07 YEN-13): kapsam persons:read; panelle aynı saklama kuralları — kişisel ya da hassas veri tanımlı ya da eylemi allow olmayan özellik özetiyle döner (hash) ya da hiç dönmez (drop, reject: yalnız adı withheldTraitste), kimlikler opak; profildeki talepler yalnız anahtarda leads:read de varsa.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: persons:read.
- Authentication
- apiKey
- Required scope
persons:read
Parameters
Responses
200Başarılı.
application/jsonPersonPageExample · JSON{ "items": [ { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "userId": "string", "firstSeenAt": "2026-11-06T14:46:00+03:00", "lastSeenAt": "2026-11-06T14:46:00+03:00", "firstChannel": "string", "eventCount": 0, "sessionCount": 0, "isTest": true, "isInternal": true } ], "nextCursor": "string", "total": 0 }400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
GET/v1/apps/{appId}/persons/{personId}
Kişi profili
Kimlikler (anonim ve kullanıcı kimliği; kişisel veri değil; ilk görülme olay zamanına göre), özellikler (olay zamanına göre en yeni değer; kişisel veri tanımlı özellik özetlenir — hash — ya da gösterilmez — drop, reject: adı withheldTraitste), ilk ve son görülme olay zamanına göre, ilk ve son doğrudan olmayan temas, hesaplar, ulaşılan roller, birleşme geçmişi (merges), son oturumlar ve olaylar, dönüşümler, summary (oturum, olay, dönüşüm, brüt gelir, iade, net gelir — metrik kataloğunun kurallarıyla, bütün geçmiş, olay tarihine göre), talepler (yalnız leads.read ile; yoksa null). Birleştirilmiş bir kişi istenirse yaşayan kişi döner (requestedId isteneni söyler); birleşen kişilerin olayları arka planda yeniden yazılmadan önce de profildedir. Management API (dalga 16; 07 YEN-13): kapsam persons:read; panelle aynı saklama kuralları — kişisel ya da hassas veri tanımlı ya da eylemi allow olmayan özellik özetiyle döner (hash) ya da hiç dönmez (drop, reject: yalnız adı withheldTraitste), kimlikler opak; profildeki talepler yalnız anahtarda leads:read de varsa.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: persons:read.
- Authentication
- apiKey
- Required scope
persons:read
Parameters
Responses
200Başarılı.
application/jsonPersonProfileExample · JSON{ "requestedId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "person": { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "userId": "string", "traits": {}, "firstSeenAt": "2026-11-06T14:46:00+03:00", "lastSeenAt": "2026-11-06T14:46:00+03:00", "firstChannel": "string", "firstTouch": {}, "lastNonDirectTouch": {}, "eventCount": 0, "sessionCount": 0, "isTest": true, "isInternal": true, "mergedFrom": [ "01a1b249-9ed2-77e8-af53-0c99529e68cb" ] }, "identities": [ { "kind": "anonymous_id", "value": "string", "firstSeenAt": "2026-11-06T14:46:00+03:00" } ], "groups": [ { "groupId": "string", "traits": {}, "memberCount": 0, "firstSeenAt": "2026-11-06T14:46:00+03:00", "lastSeenAt": "2026-11-06T14:46:00+03:00" } ], "roles": [ "string" ], "sessions": [ { "id": "string", "personId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "anonymousId": "string", "userId": "string", "startedAt": "2026-11-06T14:46:00+03:00", "endedAt": "2026-11-06T14:46:00+03:00", "durationMs": 0, "activeMs": 0, "pageviews": 0, "screenViews": 0, "events": 0, "interactions": 0, "rageClicks": 0, "deadClicks": 0, "errors": 0, "entryPath": "string", "exitPath": "string", "channel": "string", "source": "string", "medium": "string", "campaign": "string", "referrerHost": "string", "deviceType": "string", "os": "string", "browser": "string", "country": "string", "region": "string", "city": "string", "isEngaged": true, "isBounce": true, "roles": [ "string" ], "converted": true, "revenue": 0, "isTest": true, "isInternal": true, "isBot": true } ], "events": [ { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "at": "2026-11-06T14:46:00+03:00", "type": "track", "eventName": "string", "roles": [ "string" ], "conversion": true, "revenue": 0, "path": "string", "sessionId": "string", "properties": {} } ], "summary": { "sessions": 0, "events": 0, "conversions": 0, "revenue": 0, "refunds": 0, "netRevenue": 0, "currency": "string", "leads": 0 }, "conversions": [ { "eventId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "at": "2026-11-06T14:46:00+03:00", "eventName": "string", "roles": [ "string" ], "revenue": 0, "sessionId": "string", "channel": "string" } ], "leads": [ { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "kind": "demo_request", "status": "new", "eventName": "string", "eventAt": "2026-11-06T14:46:00+03:00" } ], "merges": [ { "personId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "reason": "identify", "mergedAt": "2026-11-06T14:46:00+03:00", "rewritten": true } ], "withheldTraits": [ "string" ] }401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
GET/v1/apps/{appId}/persons/{personId}/events
Kişinin olay zaman çizelgesi
Kişinin (ve ona birleşen kişilerin) bütün olayları, yeniden eskiye, imleç sayfalı; type mesaj türü, conversions=true yalnız dönüşüm rolündeki olaylar. Management API (dalga 16; 07 YEN-13): kapsam persons:read; panelle aynı saklama kuralları — kişisel ya da hassas veri tanımlı ya da eylemi allow olmayan özellik özetiyle döner (hash) ya da hiç dönmez (drop, reject: yalnız adı withheldTraitste), kimlikler opak; profildeki talepler yalnız anahtarda leads:read de varsa.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: persons:read.
- Authentication
- apiKey
- Required scope
persons:read
Parameters
Responses
200Başarılı.
application/jsonPersonEventPageExample · JSON{ "items": [ { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "at": "2026-11-06T14:46:00+03:00", "type": "track", "eventName": "string", "roles": [ "string" ], "conversion": true, "revenue": 0, "path": "string", "sessionId": "string", "properties": {} } ], "nextCursor": "string" }400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
Veri hakları
4 endpoints
Kişisel veri silme talepleri (KVKK): kullanıcı kimliği, anonim kimlik ya da kişi kimliğiyle bir kişinin uygulamadaki bütün verisi silinir, talep kaydı ve silinenler kalır.
GET/v1/apps/{appId}/privacy/deletion-requests
Silme talepleri
Uygulamanın talepleri, yeniden eskiye, imleç sayfalı, toplamla; status süzgeci; kapsam management:read. result silinen satırları türüne göre sayar (sürerken o ana kadar).
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: management:read.
- Authentication
- apiKey
- Required scope
management:read
Parameters
Responses
200Başarılı.
application/jsonDeletionRequestPageExample · JSON{ "items": [ { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "appId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "subjectKind": "user_id", "subjectHint": "string", "status": "pending", "note": "string", "requestedVia": "panel", "requestedBy": { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "name": "string" }, "result": {}, "errorCode": "string", "createdAt": "2026-11-06T14:46:00+03:00", "startedAt": "2026-11-06T14:46:00+03:00", "completedAt": "2026-11-06T14:46:00+03:00", "nothingFound": true } ], "nextCursor": "string", "total": 0 }400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
POST/v1/apps/{appId}/privacy/deletion-requests
Silme talebi oluştur
Ürünün sunucusu, kullanıcısı unutulmak istediğinde (KVKK) talebi açar; kapsam management:write. Worker talebi dakikalar içinde yürütür: kişi ve ona birleşmiş bütün kişiler, kimlikleri, olayları (ve atıf satırları, webhook kopyaları), etkileşimleri, oturumları, hesap üyelikleri, talepleri, kilometre taşları ve aynı kullanıcı kimliğiyle bağlı Mailing & SMS kişisi (izin kanıtı yasa gereği kör dizinle kalır) silinir; özet tablolar kalan veriden yeniden hesaplanır. Talep başladıktan sonra alınan veri talebe girmez. Kimliğin değeri yalnız talep bitene kadar tutulur; listede son karakterleri (subjectHint) görünür. E-posta ya da telefon gibi görünen kimlik alımdaki gibi özetlenerek aranır. Açık talebi olan kimliğe yeni talep aynı talebi döndürür.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: management:write.
- Authentication
- apiKey
- Required scope
management:write
Parameters
Request bodyBody required
application/jsonCreateDeletionRequest
{
"subjectKind": "user_id",
"subjectValue": "string",
"note": "string"
}Responses
201Oluşturuldu.
application/jsonDeletionRequestExample · JSON{ "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "appId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "subjectKind": "user_id", "subjectHint": "string", "status": "pending", "note": "string", "requestedVia": "panel", "requestedBy": { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "name": "string" }, "result": {}, "errorCode": "string", "createdAt": "2026-11-06T14:46:00+03:00", "startedAt": "2026-11-06T14:46:00+03:00", "completedAt": "2026-11-06T14:46:00+03:00", "nothingFound": true }400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse409Kaydın güncel durumu bu işleme izin vermiyor ya da aynı kayıt zaten var (ör.
APP_SLUG_TAKEN,EVENT_NAME_TAKEN,LAST_OWNER).application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
GET/v1/apps/{appId}/privacy/deletion-requests/{requestId}
Silme talebi
Talebin durumu ve silinenler; kapsam management:read. nothingFound: talep tamamlandı ama kimliğe ait veri yoktu.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: management:read.
- Authentication
- apiKey
- Required scope
management:read
Parameters
Responses
200Başarılı.
application/jsonDeletionRequestExample · JSON{ "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "appId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "subjectKind": "user_id", "subjectHint": "string", "status": "pending", "note": "string", "requestedVia": "panel", "requestedBy": { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "name": "string" }, "result": {}, "errorCode": "string", "createdAt": "2026-11-06T14:46:00+03:00", "startedAt": "2026-11-06T14:46:00+03:00", "completedAt": "2026-11-06T14:46:00+03:00", "nothingFound": true }401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
POST/v1/apps/{appId}/privacy/deletion-requests/{requestId}/cancel
Silme talebini iptal et
Yalnız bekleyen talep (409 DELETION_REQUEST_NOT_CANCELLABLE); kimliğin değeri silinir; kapsam management:write. Denetim kaydına anahtarın adıyla yazılır.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: management:write.
- Authentication
- apiKey
- Required scope
management:write
Parameters
Responses
200Başarılı.
application/jsonDeletionRequestExample · JSON{ "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "appId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "subjectKind": "user_id", "subjectHint": "string", "status": "pending", "note": "string", "requestedVia": "panel", "requestedBy": { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "name": "string" }, "result": {}, "errorCode": "string", "createdAt": "2026-11-06T14:46:00+03:00", "startedAt": "2026-11-06T14:46:00+03:00", "completedAt": "2026-11-06T14:46:00+03:00", "nothingFound": true }400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse409Kaydın güncel durumu bu işleme izin vermiyor ya da aynı kayıt zaten var (ör.
APP_SLUG_TAKEN,EVENT_NAME_TAKEN,LAST_OWNER).application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
Dönüşüm
4 endpoints
Huniler (tanım, sonuç, dönüşüm süresi, kırılım, adımın kişileri) ve atıf servisinin modelleri.
GET/v1/apps/{appId}/funnels
Management API: huniler
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: management:read.
- Authentication
- apiKey
- Required scope
management:read
Parameters
Responses
200Başarılı.
application/jsonFunnelListExample · JSON{ "items": [ { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "name": "string", "description": "string", "steps": [ { "event": "string", "role": "signup", "filters": [], "label": "string" } ], "order": "ordered", "countBy": "person", "conversionWindow": { "value": 0, "unit": "minutes" }, "countingMode": "event_date", "isDefault": true, "createdBy": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "createdAt": "2026-11-06T14:46:00+03:00", "updatedAt": "2026-11-06T14:46:00+03:00" } ] }401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
GET/v1/apps/{appId}/funnels/{funnelId}
Management API: huni tanımı
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: management:read.
- Authentication
- apiKey
- Required scope
management:read
Parameters
Responses
200Başarılı.
application/jsonFunnelExample · JSON{ "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "name": "string", "description": "string", "steps": [ { "event": "string", "role": "signup", "filters": [ { "property": "string", "op": "eq", "value": "string" } ], "label": "string" } ], "order": "ordered", "countBy": "person", "conversionWindow": { "value": 0, "unit": "minutes" }, "countingMode": "event_date", "isDefault": true, "sideMetrics": [ { "event": "string", "role": "signup", "filters": [ { "property": "string", "op": "eq", "value": "string" } ], "label": "string", "without": { "event": "string", "role": "signup", "filters": [], "withinDays": 0 } } ], "createdBy": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "createdAt": "2026-11-06T14:46:00+03:00", "updatedAt": "2026-11-06T14:46:00+03:00" }401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
GET/v1/apps/{appId}/funnels/{funnelId}/results
Management API: huni sonucu
Panelin huni sonucu entegrasyonlar için (tazelik ve isteğe bağlı karşılaştırmayla); kapsam query:read. Adım: bir olay adı (event) ya da iş rolü (role) ve olay özelliği filtreleri (eq, neq, in, not_in, contains, not_contains, starts_with, is_empty, is_not_empty; sayısal gt, gte, lt, lte). Giriş: öznenin dönem içindeki ilk 1. adım olayı (uygulamanın yerel günleri). ordered: k. adım, (k−1). adımdan sonraki ilk k. adım olayıdır (zaman, sonra kimlik); any_order: girişten sonraki ilk k. adım olayıdır, diğerlerinin sırası aranmaz — yanıtta adım başına "ulaşan" verilir, kayıp verilmez (negatif kayıp çıkmaz). Pencere (conversionWindow) girişten itibaren sayılır; yoksa sınır yok. Sayım birimi: person (birleşmiş kimlikler tek kişi), session, group (olayın hesabı, yoksa kişinin tek hesabı). Sayım modu yanıtta açıkça yazar: cohort dönemde giren özneleri bugüne (ya da pencerenin sonuna) kadar izler (followedUntil); event_date bütün adımların dönem içinde olmasını ister. Test, iç ve bot trafiği istenmedikçe dışarıdadır. Dönüşüm süresi: adım başına önceki adımdan (yalnız ordered) ve girişten saniye olarak ortalama, medyan, p75, p90 ve dağılım (1 dk, 5 dk, 15 dk, 1 sa, 6 sa, 1 g, 3 g, 7 g, 14 g, 30 g, üstü). $pageview / $screen adımında path süzgeci olayın sayfa yolunu (page_path) okur (metin kuralları; sayısal işleçler eşleşmez). Yan göstergeler (sideMetrics, en çok 5): girenlerden girişte ya da sonrasında (pencere içinde; event_date'te dönem içinde) göstergenin olayı olan özne sayısı ve girenlere oranı; without ile yalnız ilk bu olaydan sonra withinDays gün içinde without olayı olmayanlar — süresi dolmamışlar pending.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: query:read.
- Authentication
- apiKey
- Required scope
query:read
Parameters
Responses
200Başarılı.
application/jsonFunnelScreenResultExample · JSON{ "funnel": { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "name": "string", "order": "ordered", "countBy": "person", "conversionWindow": { "value": 0, "unit": "minutes" } }, "countingMode": "event_date", "dateRange": { "from": "string", "to": "string" }, "timezone": "string", "followedUntil": "2026-11-06T14:46:00+03:00", "include": { "test": true, "internal": true, "bot": true }, "steps": [ { "index": 0, "label": "string", "event": "string", "role": "signup", "count": 0, "ofFirst": 0, "ofPrevious": 0, "dropOff": 0, "timeFromPrevious": { "count": 0, "averageSeconds": 0, "medianSeconds": 0, "p75Seconds": 0, "p90Seconds": 0, "histogram": [] }, "timeFromFirst": { "count": 0, "averageSeconds": 0, "medianSeconds": 0, "p75Seconds": 0, "p90Seconds": 0, "histogram": [] } } ], "breakdown": { "dimension": "channel", "attributionModel": "first_touch", "rows": [ { "value": "string", "steps": [] } ], "others": [ 0 ] }, "extraBreakdown": { "dimension": "channel", "attributionModel": null, "rows": [ { "value": "string", "steps": [] } ], "others": [ 0 ] }, "warnings": [ { "code": "ATTRIBUTION_NOT_CONVERSION", "message": "string" } ], "series": { "granularity": "day", "basis": "step_date", "points": [ { "date": "string", "start": "string", "end": "string", "steps": [] } ], "afterRange": [ 0 ] }, "sideMetrics": [ { "index": 0, "label": "string", "event": "string", "role": "signup", "count": 0, "ofEntered": 0, "pending": 0, "withinDays": 0 } ], "generatedAt": "2026-11-06T14:46:00+03:00", "freshness": { "processedUntil": "2026-11-06T14:46:00+03:00", "lastEventReceivedAt": "2026-11-06T14:46:00+03:00", "upToDate": true, "updatedAt": "2026-11-06T14:46:00+03:00", "pendingRollupDays": 0 }, "comparison": { "dateRange": { "from": "string", "to": "string" }, "comparable": true, "steps": [ { "index": 0, "count": 0, "ofFirst": 0, "ofPrevious": 0 } ] } }400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
GET/v1/apps/{appId}/funnels/{funnelId}/results/cohorts
Management API: huni kohort ısı haritası
Panelin kohort ısı haritası entegrasyonlar için; kapsam query:read. Haftalık giriş kohortları, girişten sonraki haftalara göre birikimli ulaşma, düşük örnek işareti.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: query:read.
- Authentication
- apiKey
- Required scope
query:read
Parameters
Responses
200Başarılı.
application/jsonFunnelCohortsExample · JSON{ "funnel": { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "name": "string", "countBy": "person" }, "basis": "entry_week", "countingMode": "cohort", "dateRange": { "from": "string", "to": "string" }, "timezone": "string", "followedUntil": "2026-11-06T14:46:00+03:00", "step": 0, "weeks": 0, "minSubjects": 0, "include": { "test": true, "internal": true, "bot": true }, "cohorts": [ { "week": "string", "start": "string", "end": "string", "entered": 0, "lowSample": true, "cells": [ { "week": 0, "reached": 0, "rate": 0, "complete": true } ] } ], "total": [ { "week": 0, "entered": 0, "reached": 0, "rate": 0 } ], "freshness": { "processedUntil": "2026-11-06T14:46:00+03:00", "lastEventReceivedAt": "2026-11-06T14:46:00+03:00", "upToDate": true, "updatedAt": "2026-11-06T14:46:00+03:00", "pendingRollupDays": 0 }, "generatedAt": "2026-11-06T14:46:00+03:00" }400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
Talepler
2 endpoints
Talep kutusu: durum, sorumlu, notlar, kaynak ve atıf anlık görüntüsü; kişisel veri yok.
GET/v1/apps/{appId}/leads
Management API: talepler
Ürünün kendi arka ofisi için talep kutusu; kapsam leads:read. Talep kişisel veri taşımaz: ad, telefon ve e-posta saklanmaz; olayın yalnız kişisel olmayan özellikleri (tanımı pii_class: none ya da tanımsız, anahtarı iletişim alanı olmayan) tutulur, kişi opak kimlikleriyle bağlanır.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: leads:read.
- Authentication
- apiKey
- Required scope
leads:read
Parameters
Responses
200Başarılı.
application/jsonLeadPageExample · JSON{ "items": [ { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "kind": "demo_request", "status": "new", "statusReason": "string", "assignee": { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "name": "string" }, "eventId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "eventName": "string", "occurredAt": "2026-11-06T14:46:00+03:00", "personId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "userId": "string", "groupId": "string", "source": { "sessionId": "string", "channel": "string", "source": "string", "medium": "string", "campaign": "string", "referrerHost": "string", "entryPath": "string", "pagePath": "string", "deviceType": "string", "country": "string" }, "attribution": { "model": "first_touch", "windowDays": 0, "firstTouch": { "sessionId": "string", "at": "string", "channel": "string", "source": "string", "medium": "string", "campaign": "string", "resolution": "click_id", "weight": 0 }, "lastTouch": { "sessionId": "string", "at": "string", "channel": "string", "source": "string", "medium": "string", "campaign": "string", "resolution": "click_id", "weight": 0 }, "lastNonDirect": { "sessionId": "string", "at": "string", "channel": "string", "source": "string", "medium": "string", "campaign": "string", "resolution": "click_id", "weight": 0 } }, "properties": {}, "isTest": true, "isInternal": true, "noteCount": 0, "statusChangedAt": "2026-11-06T14:46:00+03:00", "createdAt": "2026-11-06T14:46:00+03:00", "updatedAt": "2026-11-06T14:46:00+03:00" } ], "nextCursor": "string", "total": 0, "counts": {}, "stageCounts": {}, "overdue": 0 }400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
GET/v1/apps/{appId}/leads/{leadId}
Management API: talep
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: leads:read.
- Authentication
- apiKey
- Required scope
leads:read
Parameters
Responses
200Başarılı.
application/jsonLeadDetailExample · JSON{ "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "kind": "demo_request", "status": "new", "stage": "string", "dueAt": "2026-11-06T14:46:00+03:00", "overdue": true, "statusReason": "string", "assignee": { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "name": "string" }, "eventId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "eventName": "string", "occurredAt": "2026-11-06T14:46:00+03:00", "personId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "userId": "string", "groupId": "string", "source": { "sessionId": "string", "channel": "string", "source": "string", "medium": "string", "campaign": "string", "referrerHost": "string", "entryPath": "string", "pagePath": "string", "deviceType": "string", "country": "string" }, "attribution": { "model": "first_touch", "windowDays": 0, "firstTouch": { "sessionId": "string", "at": "string", "channel": "string", "source": "string", "medium": "string", "campaign": "string", "resolution": "click_id", "weight": 0 }, "lastTouch": { "sessionId": "string", "at": "string", "channel": "string", "source": "string", "medium": "string", "campaign": "string", "resolution": "click_id", "weight": 0 }, "lastNonDirect": { "sessionId": "string", "at": "string", "channel": "string", "source": "string", "medium": "string", "campaign": "string", "resolution": "click_id", "weight": 0 } }, "lastClick": { "at": "2026-11-06T14:46:00+03:00", "path": "string", "selector": "string", "label": "string", "kind": "string", "section": "string", "contact": "phone" }, "properties": {}, "isTest": true, "isInternal": true, "noteCount": 0, "statusChangedAt": "2026-11-06T14:46:00+03:00", "createdAt": "2026-11-06T14:46:00+03:00", "updatedAt": "2026-11-06T14:46:00+03:00", "notes": [ { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "body": "string", "author": { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "name": "string" }, "createdAt": "2026-11-06T14:46:00+03:00", "editedAt": "2026-11-06T14:46:00+03:00" } ], "statusHistory": [ { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "from": "new", "to": "new", "reason": "string", "changedBy": { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "name": "string" }, "changedAt": "2026-11-06T14:46:00+03:00" } ] }401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
Bağlantılar
1 endpoint
Reklam ve analytics platformlarına bağlantılar (OAuth 2.0 + PKCE, API anahtarı, CSV), hesap seçimi, senkron, çalışma günlüğü, sağlık.
GET/v1/apps/{appId}/connections
Management API: bağlantılar
Uygulamanın bağlantıları ve sağlıkları; kapsam ads:read. Erişim belirteçleri ve API anahtarları sır kutusunda (AES-GCM) saklanır, hiçbir yanıtta dönmez.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: ads:read.
- Authentication
- apiKey
- Required scope
ads:read
Parameters
Responses
200Başarılı.
application/jsonConnectionListExample · JSON{ "items": [ { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "provider": "google_ads", "kind": "ads", "authType": "oauth2", "mode": "live", "label": "string", "scopes": [ "string" ], "syncIntervalMinutes": 0, "lookbackDays": 0, "backfillDays": 0, "health": { "status": "active", "lastSuccessAt": "2026-11-06T14:46:00+03:00", "lastRunAt": "2026-11-06T14:46:00+03:00", "lastRunStatus": "running", "lastError": { "code": "auth_failed", "message": "string" }, "consecutiveFailures": 0, "nextRunAt": "2026-11-06T14:46:00+03:00", "syncedUntil": "string", "tokenExpiresAt": "2026-11-06T14:46:00+03:00" }, "accounts": [ { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "kind": "ad_account", "externalId": "string", "name": "string", "currency": "string", "timezone": "string", "platformStatus": "string", "selected": true } ], "createdAt": "2026-11-06T14:46:00+03:00", "updatedAt": "2026-11-06T14:46:00+03:00" } ] }401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
Reklam
4 endpoints
Reklam özeti, kampanyalar ve reklamlar, raporlar, kırılımlar, bütçe planı ve tempo, kampanya planları.
GET/v1/apps/{appId}/ads/accounts
Management API: reklam hesapları
Kapsam ads:read.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: ads:read.
- Authentication
- apiKey
- Required scope
ads:read
Parameters
Responses
200Başarılı.
application/jsonAdAccountListExample · JSON{ "items": [ { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "platform": "string", "externalId": "string", "name": "string", "currency": "string", "timezone": "string", "status": "active", "connectionId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "lastSyncedAt": "2026-11-06T14:46:00+03:00", "link": "string" } ] }401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
GET/v1/apps/{appId}/ads/budget
Management API: bütçe ve tempo
Kapsam ads:read.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: ads:read.
- Authentication
- apiKey
- Required scope
ads:read
Parameters
Responses
200Başarılı.
application/jsonAdsBudgetExample · JSON{ "month": "string", "currency": "string", "daysInMonth": 0, "daysElapsed": 0, "tolerance": 0, "total": { "platform": "string", "adAccountId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "budget": 0, "spent": 0, "remaining": 0, "used": 0, "expectedToDate": 0, "dailyAverage": 0, "requiredDaily": 0, "forecast": 0, "forecastRatio": 0, "activeDailyBudgets": 0, "state": "on_track" }, "lines": [ { "platform": "string", "adAccountId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "budget": 0, "spent": 0, "remaining": 0, "used": 0, "expectedToDate": 0, "dailyAverage": 0, "requiredDaily": 0, "forecast": 0, "forecastRatio": 0, "activeDailyBudgets": 0, "state": "on_track" } ], "plans": [ { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "month": "string", "platform": "string", "adAccountId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "amount": 0, "currency": "string", "note": "string", "createdAt": "2026-11-06T14:46:00+03:00", "createdBy": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "supersededAt": "2026-11-06T14:46:00+03:00" } ], "cumulative": [ { "day": "string", "spend": 0, "cumulative": 0, "plan": 0 } ], "campaigns": [ { "campaign": { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "platform": "string", "accountId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "accountName": "string", "externalId": "string", "name": "string", "status": "active", "platformStatus": "string", "objective": "awareness", "platformObjective": "string", "channelType": "string", "budget": { "amount": 0, "type": "daily", "level": "campaign", "currency": "string" }, "startDate": "string", "endDate": "string", "campaignGroup": { "externalId": "string", "name": "string" }, "hasVideo": true, "adGroups": 0, "ads": 0, "link": "string" }, "last7DaysSpend": 0, "dailyAverage": 0, "budgetUse": 0, "lastDataDay": "string" } ] }400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
GET/v1/apps/{appId}/ads/campaigns
Management API: kampanyalar
Kapsam ads:read. Her sayı metrik kataloğundandır (sorgu servisi): platformun sayıları (spend, impressions, ad_clicks, ctr, cpc, cpm, platform_conversions) ve Postlip Metrics’in atıf servisiyle reklama verdiği dönüşümler (ad_conversions, ad_conversions:<rol>, cpa, cpa:<rol>, ad_revenue, roas) yan yana, hiç karıştırılmaz. Harcama KDV hariç, günün kuruyla uygulamanın para biriminde; ROAS net gelir ÷ harcama. Hepsi olay tarihiyle sayılır (harcama harcandığı gün, dönüşüm gerçekleştiği gün). Aynı metrikler Query API'de (POST /v1/query, ad_* boyutları) de vardır.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: ads:read.
- Authentication
- apiKey
- Required scope
ads:read
Parameters
Responses
200Başarılı.
application/jsonAdsCampaignsExample · JSON{ "metrics": { "metrics": [ { "key": "string", "unit": "count", "goodDirection": "higher", "aggregation": "sum", "countingMode": "event_date", "source": "rollup" } ], "dimensions": [ "string" ], "rows": [ { "dimensions": {}, "values": {}, "bucket": { "start": "string", "end": "string", "days": 0, "complete": true, "beforeTracking": true }, "previous": {}, "previousBucket": { "start": "string", "end": "string" }, "deltas": {} } ], "totals": { "values": {}, "deltas": {} }, "comparison": { "dateRange": { "from": "string", "to": "string" }, "comparable": true, "totals": {} }, "meta": { "appId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "timezone": "string", "currency": "string", "dateRange": { "from": "string", "to": "string" }, "compare": "none", "comparisonRange": { "from": "string", "to": "string" }, "include": { "test": true, "internal": true, "bot": true }, "trackingStartedOn": "string", "freshness": { "processedUntil": "2026-11-06T14:46:00+03:00", "lastEventReceivedAt": "2026-11-06T14:46:00+03:00", "upToDate": true, "updatedAt": "2026-11-06T14:46:00+03:00", "pendingRollupDays": 0 }, "countingModes": {}, "sources": {}, "conversionRoles": [ "signup" ], "attribution": { "model": "first_touch", "windowDays": 0 }, "warnings": [ { "code": "DIMENSION_NOT_AVAILABLE", "message": "string", "metric": "string", "dimension": "string" } ], "truncated": true, "generatedAt": "2026-11-06T14:46:00+03:00" } }, "campaigns": [ { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "platform": "string", "accountId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "accountName": "string", "externalId": "string", "name": "string", "status": "active", "platformStatus": "string", "objective": "awareness", "platformObjective": "string", "channelType": "string", "budget": { "amount": 0, "type": "daily", "level": "campaign", "currency": "string" }, "startDate": "string", "endDate": "string", "campaignGroup": { "externalId": "string", "name": "string" }, "hasVideo": true, "adGroups": 0, "ads": 0, "link": "string" } ], "unmatched": { "metrics": [ { "key": "string", "unit": "count", "goodDirection": "higher", "aggregation": "sum", "countingMode": "event_date", "source": "rollup" } ], "dimensions": [ "string" ], "rows": [ { "dimensions": {}, "values": {}, "bucket": { "start": "string", "end": "string", "days": 0, "complete": true, "beforeTracking": true }, "previous": {}, "previousBucket": { "start": "string", "end": "string" }, "deltas": {} } ], "totals": { "values": {}, "deltas": {} }, "comparison": { "dateRange": { "from": "string", "to": "string" }, "comparable": true, "totals": {} }, "meta": { "appId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "timezone": "string", "currency": "string", "dateRange": { "from": "string", "to": "string" }, "compare": "none", "comparisonRange": { "from": "string", "to": "string" }, "include": { "test": true, "internal": true, "bot": true }, "trackingStartedOn": "string", "freshness": { "processedUntil": "2026-11-06T14:46:00+03:00", "lastEventReceivedAt": "2026-11-06T14:46:00+03:00", "upToDate": true, "updatedAt": "2026-11-06T14:46:00+03:00", "pendingRollupDays": 0 }, "countingModes": {}, "sources": {}, "conversionRoles": [ "signup" ], "attribution": { "model": "first_touch", "windowDays": 0 }, "warnings": [ { "code": "DIMENSION_NOT_AVAILABLE", "message": "string", "metric": "string", "dimension": "string" } ], "truncated": true, "generatedAt": "2026-11-06T14:46:00+03:00" } }, "counts": { "active": 0, "paused": 0, "ended": 0, "all": 0 }, "naming": { "hasTemplate": true, "offTemplate": 0, "followsTemplate": 0 }, "conversionRoles": [ "signup" ], "originalSpend": {}, "conversionRates": { "minClicks": 0, "items": [ { "campaignId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "adClicks": 0, "adConversions": 0, "rate": 0 } ] } }400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
GET/v1/apps/{appId}/ads/conversions
Management API: reklamdan gelen dönüşümler
Kapsam ads:read. Panelin listesiyle aynı (07 REK-38): reklama atfedilen dönüşümler, ulaşılan en ileri aşama, opak kimlikler; kişisel veri yoktur.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: ads:read.
- Authentication
- apiKey
- Required scope
ads:read
Parameters
Responses
200Başarılı.
application/jsonAdConversionPageExample · JSON{ "items": [ { "eventId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "occurredAt": "2026-11-06T14:46:00+03:00", "role": "signup", "furthestRole": "signup", "sold": true, "accountId": "string", "personId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "channel": "string", "source": "string", "medium": "string", "platform": "string", "adAccountId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "campaignId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "campaignName": "string", "utmCampaign": "string", "adId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "adName": "string", "landingPage": "string", "resolution": "click_id", "model": "first_touch", "weight": 0, "isTest": true } ], "nextCursor": "string", "total": 0, "conversions": 0, "sold": 0, "model": "first_touch", "conversionRoles": [ "signup" ], "countingMode": "event_date" }400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
Raporlar
7 endpoints
Bölüm kataloğu, raporlar ve şablonlar, donmuş çıktılar ve PDF, e-posta ve zamanlanmış gönderim, teslim günlüğü, paylaşım bağlantıları, AI özeti, tahmin.
GET/v1/apps/{appId}/forecast/scenarios
Tahmin senaryoları
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: reports:read.
- Authentication
- apiKey
- Required scope
reports:read
Parameters
Responses
200Başarılı.
application/jsonForecastScenarioListExample · JSON{ "items": [ { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "appId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "name": "string", "description": "string", "inputs": { "horizonMonths": 6, "basisDays": 90, "funnelId": null, "budgets": [], "elasticityMode": "estimate", "elasticity": 0.75, "scenarios": [ { "key": "bad", "label": null, "costMultiplier": 1.25, "conversionMultiplier": 0.85, "organicMultiplier": 0.5 }, { "key": "realistic", "label": null, "costMultiplier": 1, "conversionMultiplier": 1, "organicMultiplier": 1 }, { "key": "good", "label": null, "costMultiplier": 0.85, "conversionMultiplier": 1.12, "organicMultiplier": 1.4 } ], "includeOrganic": true }, "computedAt": "2026-11-06T14:46:00+03:00", "createdBy": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "createdAt": "2026-11-06T14:46:00+03:00", "updatedAt": "2026-11-06T14:46:00+03:00" } ] }401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
GET/v1/apps/{appId}/forecast/scenarios/{scenarioId}
Tahmin senaryosu
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: reports:read.
- Authentication
- apiKey
- Required scope
reports:read
Parameters
Responses
200Başarılı.
application/jsonForecastScenarioExample · JSON{ "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "appId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "name": "string", "description": "string", "inputs": { "horizonMonths": 6, "basisDays": 90, "funnelId": null, "budgets": [], "elasticityMode": "estimate", "elasticity": 0.75, "scenarios": [ { "key": "bad", "label": null, "costMultiplier": 1.25, "conversionMultiplier": 0.85, "organicMultiplier": 0.5 }, { "key": "realistic", "label": null, "costMultiplier": 1, "conversionMultiplier": 1, "organicMultiplier": 1 }, { "key": "good", "label": null, "costMultiplier": 0.85, "conversionMultiplier": 1.12, "organicMultiplier": 1.4 } ], "includeOrganic": true }, "result": { "appId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "currency": "string", "timezone": "string", "generatedAt": "2026-11-06T14:46:00+03:00", "method": { "key": "log_log_bootstrap", "description": "string", "assumptions": [ "string" ] }, "basis": { "from": "string", "to": "string", "days": 0, "role": "signup", "attributionModel": "first_touch", "countingModes": { "channels": "event_date", "steps": "event_date" }, "channels": [ { "platform": "string", "label": "string", "status": "ok", "reason": "string", "spend": 0, "conversions": 0, "spendPerDay": 0, "conversionsPerDay": 0, "cpa": 0, "elasticity": 0, "elasticitySource": "estimated", "rSquared": 0, "weeks": 0, "weeksWithSpend": 0, "maxSpendPerDay": 0, "plannedMonthlyBudget": 0, "marginalCpa": 0 } ], "organic": { "conversions": 0, "perDay": 0, "trendPerMonth": 0 }, "steps": [ { "role": "signup", "rate": 0, "lagDays": 0 } ], "revenuePerConversion": 0, "elasticityPrior": 0 }, "scenarios": [ { "key": "string", "label": "string", "costMultiplier": 0, "conversionMultiplier": 0, "organicMultiplier": 0, "months": [], "totals": { "budget": 0, "paid": { "p10": 0, "p50": 0, "p90": 0 }, "organic": { "p10": 0, "p50": 0, "p90": 0 }, "total": { "p10": 0, "p50": 0, "p90": 0 }, "steps": [], "revenue": { "p10": 0, "p50": 0, "p90": 0 } } } ], "goal": { "monthlyConversions": 0, "monthlyBudget": 0, "scale": 0 }, "warnings": [ { "code": "EXTRAPOLATION", "message": "string", "platform": "string" } ] }, "computedAt": "2026-11-06T14:46:00+03:00", "actuals": [ { "month": "string", "complete": true, "spend": 0, "paid": 0, "total": 0, "forecastPaid": 0 } ], "createdBy": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "createdAt": "2026-11-06T14:46:00+03:00", "updatedAt": "2026-11-06T14:46:00+03:00" }401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
GET/v1/reports
Raporlar
Anahtarın uygulama kapsamındaki raporlar. Kapsam: reports:read.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: reports:read.
- Authentication
- apiKey
- Required scope
reports:read
Parameters
Responses
200Başarılı.
application/jsonReportPageExample · JSON{ "items": [ { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "name": "string", "description": "string", "appIds": [ "01a1b249-9ed2-77e8-af53-0c99529e68cb" ], "apps": [ { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "slug": "string", "name": "string", "timezone": "string", "currency": "string" } ], "sections": [ { "type": "kpi", "metric": "string", "spark": true, "filters": [] } ], "period": { "kind": "relative", "preset": "yesterday" }, "compare": "none", "filters": [ { "dimension": "string", "op": "eq", "value": "string" } ], "include": { "test": true, "internal": true, "bot": true }, "attributionModel": "first_touch", "locale": "tr", "timezone": "string", "subtitle": "string", "templateKey": "string", "lastSnapshot": { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "generatedAt": "2026-11-06T14:46:00+03:00", "from": "string", "to": "string" }, "schedules": 0, "shareLinks": { "active": 0, "total": 0 }, "createdBy": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "createdAt": "2026-11-06T14:46:00+03:00", "updatedAt": "2026-11-06T14:46:00+03:00" } ], "nextCursor": "string", "total": 0 }400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
GET/v1/reports/{reportId}
Rapor
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: reports:read.
- Authentication
- apiKey
- Required scope
reports:read
Parameters
Responses
200Başarılı.
application/jsonReportExample · JSON{ "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "name": "string", "description": "string", "appIds": [ "01a1b249-9ed2-77e8-af53-0c99529e68cb" ], "apps": [ { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "slug": "string", "name": "string", "timezone": "string", "currency": "string" } ], "sections": [ { "type": "kpi", "metric": "string", "spark": true, "filters": [] } ], "period": { "kind": "relative", "preset": "yesterday" }, "compare": "none", "filters": [ { "dimension": "string", "op": "eq", "value": "string" } ], "segmentId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "include": { "test": true, "internal": true, "bot": true }, "attributionModel": "first_touch", "locale": "tr", "timezone": "string", "subtitle": "string", "templateKey": "string", "lastSnapshot": { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "generatedAt": "2026-11-06T14:46:00+03:00", "from": "string", "to": "string" }, "schedules": 0, "shareLinks": { "active": 0, "total": 0 }, "createdBy": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "createdAt": "2026-11-06T14:46:00+03:00", "updatedAt": "2026-11-06T14:46:00+03:00" }401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
GET/v1/reports/{reportId}/snapshots
Rapor çıktıları
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: reports:read.
- Authentication
- apiKey
- Required scope
reports:read
Parameters
Responses
200Başarılı.
application/jsonReportSnapshotPageExample · JSON{ "items": [ { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "reportId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "name": "string", "subtitle": "string", "trigger": "manual", "period": { "from": "string", "to": "string", "preset": "yesterday" }, "comparison": { "mode": "none", "from": "string", "to": "string" }, "timezone": "string", "locale": "tr", "generatedAt": "2026-11-06T14:46:00+03:00", "createdBy": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "scheduleId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "aiSummaryStatus": "disabled" } ], "nextCursor": "string" }400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
GET/v1/reports/{reportId}/snapshots/{snapshotId}
Rapor çıktısı
Donmuş sayılar: her bölümün sorgu servisi yanıtları, tazelik, AI özeti. Her sayı sorgu servisinin (metrik kataloğu) yanıtıdır: bölümün kendi formülü yoktur; oranlar pay ve paydanın toplamından, her sonuç sayım modunu (event_date / cohort) söyler.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: reports:read.
- Authentication
- apiKey
- Required scope
reports:read
Parameters
Responses
200Başarılı.
application/jsonReportSnapshotExample · JSON{ "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "reportId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "name": "string", "subtitle": "string", "trigger": "manual", "period": { "from": "string", "to": "string", "preset": "yesterday" }, "comparison": { "mode": "none", "from": "string", "to": "string" }, "timezone": "string", "locale": "tr", "generatedAt": "2026-11-06T14:46:00+03:00", "createdBy": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "scheduleId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "apps": [ { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "slug": "string", "name": "string", "timezone": "string", "currency": "string" } ], "filters": [ { "dimension": "string", "op": "eq", "value": "string" } ], "include": { "test": true, "internal": true, "bot": true }, "attributionModel": "first_touch", "freshness": [ { "appId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "processedUntil": "2026-11-06T14:46:00+03:00", "lastEventReceivedAt": "2026-11-06T14:46:00+03:00", "upToDate": true, "pendingRollupDays": 0, "adsSyncedAt": "2026-11-06T14:46:00+03:00" } ], "sections": [ { "id": "string", "type": "kpi", "title": "string", "subtitle": "string", "size": "kpi", "definition": { "type": "kpi", "metric": "string", "spark": true, "filters": [] }, "metrics": [ { "key": "string", "label": "string", "description": "string", "unit": "count", "goodDirection": "higher", "countingMode": "event_date" } ], "countingModes": [ "event_date" ], "text": "string", "apps": [ { "appId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "status": "ok", "message": "string", "results": {}, "funnel": { "funnel": { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "name": "string", "order": "ordered", "countBy": "person", "conversionWindow": { "value": 0, "unit": "minutes" } }, "countingMode": "event_date", "dateRange": { "from": "string", "to": "string" }, "timezone": "string", "followedUntil": "2026-11-06T14:46:00+03:00", "include": { "test": true, "internal": true, "bot": true }, "steps": [], "breakdown": { "dimension": "channel", "attributionModel": "first_touch", "rows": [], "others": [] }, "warnings": [], "generatedAt": "2026-11-06T14:46:00+03:00" }, "labels": {}, "lines": [], "derived": { "share": { "metric": "string", "total": 0, "rows": [] }, "steps": [], "stack": { "metric": "string", "dimension": "string", "buckets": [], "series": [], "others": [] } } } ] } ], "aiSummary": { "status": "disabled", "locale": "tr", "text": "string", "model": "string", "generatedAt": "2026-11-06T14:46:00+03:00", "error": "string" } }401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
GET/v1/reports/{reportId}/snapshots/{snapshotId}/pdf
PDF indir
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: reports:read.
- Authentication
- apiKey
- Required scope
reports:read
Parameters
Responses
200Rapor çıktısının PDF’i (sunucuda çizilir: kapak, içindekiler, vektör grafikler, sayfa numaraları).
Response headers
Content-Dispositionstringattachment; filename="…"
401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
Sosyal medya
4 endpoints
Instagram, Facebook sayfası ve LinkedIn şirket sayfası hesapları; özet, en iyi paylaşım zamanı, gönderiler ve sayıları; içerik takvimi, planlanan gönderiler, onay akışı, zamanlanmış yayın ve hatırlatmalar.
Segmentler
3 endpoints
Kural tabanlı kişi kümeleri: kişi alanları, izinler, listeler ve bağlı kişinin olayları (iş rolüyle); kullanıldıkları anda değerlendirilir.
GET/v1/apps/{appId}/analytics/segments
Kişi ve hesap segmentleri
Query API isteğinin segmentId ile adlandırabileceği segmentler (subject ile yalnız biri). Kapsam: query:read.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: query:read.
- Authentication
- apiKey
- Required scope
query:read
Parameters
Responses
200Başarılı.
application/jsonAnalyticsSegmentListExample · JSON{ "items": [ { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "name": "string", "description": "string", "subject": "person", "rules": { "match": "all", "conditions": [] }, "lastCount": 0, "lastCountedAt": "2026-11-06T14:46:00+03:00", "createdBy": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "createdAt": "2026-11-06T14:46:00+03:00", "updatedAt": "2026-11-06T14:46:00+03:00" } ] }400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
GET/v1/apps/{appId}/analytics/segments/{segmentId}
Kişi ya da hesap segmenti
Analitik kişi (person) ya da hesap (account) segmenti (dalga 16; 07 YEN-18). Kurallar (en çok 20, all ya da any): özellik (trait: kişinin identify ya da hesabın group özelliği, olay zamanına göre en yeni değer — metin olarak büyük/küçük harf farksız eq, neq, in, contains, starts_with, is_empty, is_not_empty, yalnız JSON sayısına gt, gte, lt, lte), olay (event: iş rolü ya da olay adı, son N günde en az K kez — has: false ile yapmamış —, en çok 5 olay özelliği süzgeciyle; test ve bot trafiği sayılmaz, kişiye birleşen kişilerin olayları sayılır; hesapta kendi groupIdsi olan olaylar ve tek hesabı bu olan üyelerin hesapsız olayları) ve görülme (seen: ilk / son görülme son N günde ya da değil). Değerini profilde gizleyen özellik (kişisel ya da hassas veri sınıfı, allow dışı eylem) kural olamaz (trait_personal, property_personal). Segment kullanıldığı anda değerlendirilir, üye listesi saklanmaz. Kullanım: sorgunun, rapor ve bölümünün, eşik kuralının segmentId’si; 18. dalgadan Mailing kişi segmentinin analytics_segment kuralı ve Mailing metrikleri (alıcının kişisi, kullanıcı kimliğiyle) ile kampanya sonuçlarının segmentId’si. Kapsam: query:read.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: query:read.
- Authentication
- apiKey
- Required scope
query:read
Parameters
Responses
200Başarılı.
application/jsonAnalyticsSegmentExample · JSON{ "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "name": "string", "description": "string", "subject": "person", "rules": { "match": "all", "conditions": [ {} ] }, "lastCount": 0, "lastCountedAt": "2026-11-06T14:46:00+03:00", "createdBy": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "createdAt": "2026-11-06T14:46:00+03:00", "updatedAt": "2026-11-06T14:46:00+03:00" }401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
POST/v1/apps/{appId}/analytics/segments/{segmentId}/count
Kişi ya da hesap segmentini say
Segmentin şimdi eşleştiği kişi ya da hesap sayısı ve en son görülen ilk 10’unun opak kimliği; kişisel veri dönmez. Kapsam: query:read.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: query:read.
- Authentication
- apiKey
- Required scope
query:read
Parameters
Responses
200Başarılı.
application/jsonAnalyticsSegmentCountExample · JSON{ "subject": "person", "count": 0, "sample": [ "string" ], "readsEvents": true }400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse409Kaydın güncel durumu bu işleme izin vermiyor ya da aynı kayıt zaten var (ör.
APP_SLUG_TAKEN,EVENT_NAME_TAKEN,LAST_OWNER).application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
Mailing & SMS
12 endpoints
Kişiler (kimlik bilgileri yalnız şifreli), listeler, özel alanlar, izinler ve kanıtları, içe / dışa aktarma, şablonlar, kampanyalar (test, onay, zamanlama, sonuçlar), işlemsel tetikleyiciler, sağlayıcılar, gönderen kimlikleri; iletilerin herkese açık adresleri (açılma pikseli, tıklama yönlendirmesi, abonelikten çıkma) ve sağlayıcı webhook'ları.
GET/v1/apps/{appId}/messaging/campaigns
Kampanyalar
Kapsam: messaging:read. Sayılar metrik kataloğundandır (email.*, sms.*; raporlar, bildirim eşikleri ve Query API aynı tanımı okur). İletiler gönderildikleri zamana göre sayılır (kohort): sonradan gelen açılma gönderim gününe yazılır. Oranlar pay ve paydanın toplamından hesaplanır (açılma oranı = Σ açılan ÷ Σ teslim).
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: messaging:read.
- Authentication
- apiKey
- Required scope
messaging:read
Parameters
Responses
200Başarılı.
application/jsonMessageCampaignPageExample · JSON{ "items": [ { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "channel": "email", "name": "string", "slug": "string", "utm": { "source": "string", "medium": "string", "campaign": "string" }, "templateId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "subject": "string", "preheader": "string", "body": "string", "senderId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "audience": { "listIds": [], "segmentId": "01a1b249-9ed2-77e8-af53-0c99529e68cb" }, "locale": "tr", "status": "draft", "schedule": { "date": "string", "time": "string", "timezone": "string", "at": "2026-11-06T14:46:00+03:00" }, "start": { "at": "2026-11-06T14:46:00+03:00", "immediate": true }, "throttlePerMinute": 0, "confirmation": { "testSentAt": "2026-11-06T14:46:00+03:00", "testSentBy": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "testCurrent": true, "confirmedAt": "2026-11-06T14:46:00+03:00", "confirmedBy": "01a1b249-9ed2-77e8-af53-0c99529e68cb" }, "approval": { "status": "pending", "requestedBy": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "requestedAt": "2026-11-06T14:46:00+03:00", "decidedBy": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "decidedAt": "2026-11-06T14:46:00+03:00", "note": "string" }, "counts": { "recipients": 0, "queued": 0, "sending": 0, "sent": 0, "delivered": 0, "failed": 0, "bounced": 0, "unknown": 0, "skipped": 0, "opened": 0, "clicked": 0, "complained": 0, "unsubscribed": 0 }, "skippedByReason": {}, "progress": 0, "errorCode": "string", "createdBy": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "createdAt": "2026-11-06T14:46:00+03:00", "updatedAt": "2026-11-06T14:46:00+03:00", "startedAt": "2026-11-06T14:46:00+03:00", "finishedAt": "2026-11-06T14:46:00+03:00" } ], "nextCursor": "string", "total": 0 }400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
POST/v1/apps/{appId}/messaging/campaigns
Kampanya oluştur
17. dalga (D8): panelin kurallarıyla taslak kampanya — kanal, ad, şablon ya da içerik, kitle (liste / segment), gönderen. Kapsam: messaging:write; denetim kaydına anahtar işlemi yapan olarak yazılır. Yanıtta kişisel veri yok.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: messaging:write.
- Authentication
- apiKey
- Required scope
messaging:write
Parameters
Request bodyBody required
application/jsonCreateMessageCampaignRequest
{
"channel": "email",
"name": "string",
"templateId": "01a1b249-9ed2-77e8-af53-0c99529e68cb",
"templateKey": "string",
"subject": "string",
"preheader": "string",
"body": "string",
"senderId": "01a1b249-9ed2-77e8-af53-0c99529e68cb",
"audience": {
"listIds": [],
"segmentId": "01a1b249-9ed2-77e8-af53-0c99529e68cb"
},
"locale": "tr",
"throttlePerMinute": 1,
"utmSource": "string"
}Responses
201Oluşturuldu.
application/jsonMessageCampaignExample · JSON{ "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "channel": "email", "name": "string", "slug": "string", "utm": { "source": "string", "medium": "string", "campaign": "string" }, "templateId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "subject": "string", "preheader": "string", "body": "string", "senderId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "audience": { "listIds": [ "01a1b249-9ed2-77e8-af53-0c99529e68cb" ], "segmentId": "01a1b249-9ed2-77e8-af53-0c99529e68cb" }, "locale": "tr", "status": "draft", "schedule": { "date": "string", "time": "string", "timezone": "string", "at": "2026-11-06T14:46:00+03:00" }, "start": { "at": "2026-11-06T14:46:00+03:00", "immediate": true }, "throttlePerMinute": 0, "confirmation": { "testSentAt": "2026-11-06T14:46:00+03:00", "testSentBy": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "testCurrent": true, "confirmedAt": "2026-11-06T14:46:00+03:00", "confirmedBy": "01a1b249-9ed2-77e8-af53-0c99529e68cb" }, "approval": { "status": "pending", "requestedBy": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "requestedAt": "2026-11-06T14:46:00+03:00", "decidedBy": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "decidedAt": "2026-11-06T14:46:00+03:00", "note": "string" }, "counts": { "recipients": 0, "queued": 0, "sending": 0, "sent": 0, "delivered": 0, "failed": 0, "bounced": 0, "unknown": 0, "skipped": 0, "opened": 0, "clicked": 0, "complained": 0, "unsubscribed": 0 }, "skippedByReason": {}, "progress": 0, "errorCode": "string", "createdBy": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "createdAt": "2026-11-06T14:46:00+03:00", "updatedAt": "2026-11-06T14:46:00+03:00", "startedAt": "2026-11-06T14:46:00+03:00", "finishedAt": "2026-11-06T14:46:00+03:00" }400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse409Kaydın güncel durumu bu işleme izin vermiyor ya da aynı kayıt zaten var (ör.
APP_SLUG_TAKEN,EVENT_NAME_TAKEN,LAST_OWNER).application/jsonErrorResponse422İş kuralı ihlali.
error.messagekullanıcıya olduğu gibi gösterilebilir.application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
PATCH/v1/apps/{appId}/messaging/campaigns/{campaignId}
Kampanyayı düzenle
17. dalga (D8): yalnız taslak; içerik değişince önceki test geçersiz olur. Kapsam: messaging:write.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: messaging:write.
- Authentication
- apiKey
- Required scope
messaging:write
Parameters
Request bodyBody required
application/jsonUpdateMessageCampaignRequest
{
"name": "string",
"subject": "string",
"preheader": "string",
"body": "string",
"senderId": "01a1b249-9ed2-77e8-af53-0c99529e68cb",
"audience": {
"listIds": [],
"segmentId": "01a1b249-9ed2-77e8-af53-0c99529e68cb"
},
"locale": "tr",
"throttlePerMinute": 1,
"utmSource": "string"
}Responses
200Başarılı.
application/jsonMessageCampaignExample · JSON{ "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "channel": "email", "name": "string", "slug": "string", "utm": { "source": "string", "medium": "string", "campaign": "string" }, "templateId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "subject": "string", "preheader": "string", "body": "string", "senderId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "audience": { "listIds": [ "01a1b249-9ed2-77e8-af53-0c99529e68cb" ], "segmentId": "01a1b249-9ed2-77e8-af53-0c99529e68cb" }, "locale": "tr", "status": "draft", "schedule": { "date": "string", "time": "string", "timezone": "string", "at": "2026-11-06T14:46:00+03:00" }, "start": { "at": "2026-11-06T14:46:00+03:00", "immediate": true }, "throttlePerMinute": 0, "confirmation": { "testSentAt": "2026-11-06T14:46:00+03:00", "testSentBy": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "testCurrent": true, "confirmedAt": "2026-11-06T14:46:00+03:00", "confirmedBy": "01a1b249-9ed2-77e8-af53-0c99529e68cb" }, "approval": { "status": "pending", "requestedBy": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "requestedAt": "2026-11-06T14:46:00+03:00", "decidedBy": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "decidedAt": "2026-11-06T14:46:00+03:00", "note": "string" }, "counts": { "recipients": 0, "queued": 0, "sending": 0, "sent": 0, "delivered": 0, "failed": 0, "bounced": 0, "unknown": 0, "skipped": 0, "opened": 0, "clicked": 0, "complained": 0, "unsubscribed": 0 }, "skippedByReason": {}, "progress": 0, "errorCode": "string", "createdBy": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "createdAt": "2026-11-06T14:46:00+03:00", "updatedAt": "2026-11-06T14:46:00+03:00", "startedAt": "2026-11-06T14:46:00+03:00", "finishedAt": "2026-11-06T14:46:00+03:00" }400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse409Kaydın güncel durumu bu işleme izin vermiyor ya da aynı kayıt zaten var (ör.
APP_SLUG_TAKEN,EVENT_NAME_TAKEN,LAST_OWNER).application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
GET/v1/apps/{appId}/messaging/campaigns/{campaignId}/results
Kampanya sonuçları
Kapsam: messaging:read; isteğe bağlı segmentId (18. dalga). Sayılar metrik kataloğundandır (email.*, sms.*; raporlar, bildirim eşikleri ve Query API aynı tanımı okur). İletiler gönderildikleri zamana göre sayılır (kohort): sonradan gelen açılma gönderim gününe yazılır. Oranlar pay ve paydanın toplamından hesaplanır (açılma oranı = Σ açılan ÷ Σ teslim).
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: messaging:read.
- Authentication
- apiKey
- Required scope
messaging:read
Parameters
Responses
200Başarılı.
application/jsonCampaignResultsExample · JSON{ "campaignId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "channel": "email", "status": "draft", "counts": { "recipients": 0, "queued": 0, "sending": 0, "sent": 0, "delivered": 0, "failed": 0, "bounced": 0, "unknown": 0, "skipped": 0, "opened": 0, "clicked": 0, "complained": 0, "unsubscribed": 0 }, "metrics": {}, "progress": 0, "utm": { "source": "string", "medium": "string", "campaign": "string" }, "traffic": { "from": "string", "to": "string", "sessions": 0, "conversions": 0, "conversionsByRole": {}, "revenue": 0, "countingMode": "event_date" }, "countingMode": "cohort", "unavailable": {}, "segment": { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "name": "string" } }400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
POST/v1/apps/{appId}/messaging/campaigns/{campaignId}/send
Kampanyayı gönder
17. dalga (D8): şimdi ya da bir zamanda (schedule, uygulamanın saat diliminde); içeriğin gözden geçirildiği ve onay (contentReviewed, confirm) zorunlu. Uygulama onay istiyorsa kampanya onaya düşer — anahtar onaylayamaz, bir üyenin onayını bekler. Kapsam: messaging:write, denetim kaydıyla.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: messaging:write.
- Authentication
- apiKey
- Required scope
messaging:write
Parameters
Request bodyBody required
application/jsonSendCampaignRequest
{
"contentReviewed": true,
"confirm": true,
"schedule": {
"date": "string",
"time": "string"
},
"note": "string"
}Responses
200Başarılı.
application/jsonMessageCampaignExample · JSON{ "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "channel": "email", "name": "string", "slug": "string", "utm": { "source": "string", "medium": "string", "campaign": "string" }, "templateId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "subject": "string", "preheader": "string", "body": "string", "senderId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "audience": { "listIds": [ "01a1b249-9ed2-77e8-af53-0c99529e68cb" ], "segmentId": "01a1b249-9ed2-77e8-af53-0c99529e68cb" }, "locale": "tr", "status": "draft", "schedule": { "date": "string", "time": "string", "timezone": "string", "at": "2026-11-06T14:46:00+03:00" }, "start": { "at": "2026-11-06T14:46:00+03:00", "immediate": true }, "throttlePerMinute": 0, "confirmation": { "testSentAt": "2026-11-06T14:46:00+03:00", "testSentBy": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "testCurrent": true, "confirmedAt": "2026-11-06T14:46:00+03:00", "confirmedBy": "01a1b249-9ed2-77e8-af53-0c99529e68cb" }, "approval": { "status": "pending", "requestedBy": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "requestedAt": "2026-11-06T14:46:00+03:00", "decidedBy": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "decidedAt": "2026-11-06T14:46:00+03:00", "note": "string" }, "counts": { "recipients": 0, "queued": 0, "sending": 0, "sent": 0, "delivered": 0, "failed": 0, "bounced": 0, "unknown": 0, "skipped": 0, "opened": 0, "clicked": 0, "complained": 0, "unsubscribed": 0 }, "skippedByReason": {}, "progress": 0, "errorCode": "string", "createdBy": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "createdAt": "2026-11-06T14:46:00+03:00", "updatedAt": "2026-11-06T14:46:00+03:00", "startedAt": "2026-11-06T14:46:00+03:00", "finishedAt": "2026-11-06T14:46:00+03:00" }400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse409Kaydın güncel durumu bu işleme izin vermiyor ya da aynı kayıt zaten var (ör.
APP_SLUG_TAKEN,EVENT_NAME_TAKEN,LAST_OWNER).application/jsonErrorResponse422İş kuralı ihlali.
error.messagekullanıcıya olduğu gibi gösterilebilir.application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
POST/v1/apps/{appId}/messaging/campaigns/{campaignId}/test
Test gönder
17. dalga (D8): verilen adreslere (en çok birkaç) test iletisi; panelde olduğu gibi gönderimden önce gerekir. Kapsam: messaging:write.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: messaging:write.
- Authentication
- apiKey
- Required scope
messaging:write
Parameters
Request bodyBody required
application/jsonTestSendRequest
{
"recipients": [
"string"
],
"contactId": "01a1b249-9ed2-77e8-af53-0c99529e68cb"
}Responses
200Başarılı.
application/jsonTestSendResultExample · JSON{ "results": [ { "to": "string", "status": "sent", "errorCode": "string" } ], "sms": { "encoding": "gsm7", "characters": 0, "units": 0, "parts": 0, "perPart": 0, "remaining": 0, "credits": 0, "unsupported": [ "string" ] }, "campaign": { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "channel": "email", "name": "string", "slug": "string", "utm": { "source": "string", "medium": "string", "campaign": "string" }, "templateId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "subject": "string", "preheader": "string", "body": "string", "senderId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "audience": { "listIds": [ "01a1b249-9ed2-77e8-af53-0c99529e68cb" ], "segmentId": "01a1b249-9ed2-77e8-af53-0c99529e68cb" }, "locale": "tr", "status": "draft", "schedule": { "date": "string", "time": "string", "timezone": "string", "at": "2026-11-06T14:46:00+03:00" }, "start": { "at": "2026-11-06T14:46:00+03:00", "immediate": true }, "throttlePerMinute": 0, "confirmation": { "testSentAt": "2026-11-06T14:46:00+03:00", "testSentBy": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "testCurrent": true, "confirmedAt": "2026-11-06T14:46:00+03:00", "confirmedBy": "01a1b249-9ed2-77e8-af53-0c99529e68cb" }, "approval": { "status": "pending", "requestedBy": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "requestedAt": "2026-11-06T14:46:00+03:00", "decidedBy": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "decidedAt": "2026-11-06T14:46:00+03:00", "note": "string" }, "counts": { "recipients": 0, "queued": 0, "sending": 0, "sent": 0, "delivered": 0, "failed": 0, "bounced": 0, "unknown": 0, "skipped": 0, "opened": 0, "clicked": 0, "complained": 0, "unsubscribed": 0 }, "skippedByReason": {}, "progress": 0, "errorCode": "string", "createdBy": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "createdAt": "2026-11-06T14:46:00+03:00", "updatedAt": "2026-11-06T14:46:00+03:00", "startedAt": "2026-11-06T14:46:00+03:00", "finishedAt": "2026-11-06T14:46:00+03:00" } }400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse409Kaydın güncel durumu bu işleme izin vermiyor ya da aynı kayıt zaten var (ör.
APP_SLUG_TAKEN,EVENT_NAME_TAKEN,LAST_OWNER).application/jsonErrorResponse422İş kuralı ihlali.
error.messagekullanıcıya olduğu gibi gösterilebilir.application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
POST/v1/apps/{appId}/messaging/consents
İzni değiştir
Kişi kimliği, e-postası, telefonu ya da kullanıcı kimliğiyle. Hiçbir kişide olmayan bir adres için ret (opt_out) yine kaydedilir: adres bastırılır, kanıt kör dizinle saklanır. Kapsam: messaging:write.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: messaging:write.
- Authentication
- apiKey
- Required scope
messaging:write
Parameters
Request bodyBody required
application/jsonManagementConsentRequest
{
"contactId": "01a1b249-9ed2-77e8-af53-0c99529e68cb",
"email": "string",
"phone": "string",
"userId": "string",
"channel": "email",
"kind": "none",
"reason": "string",
"evidence": "string",
"form": "string",
"occurredAt": "2026-11-06T14:46:00+03:00"
}Responses
200Başarılı.
application/jsonConsentResultExample · JSON{ "contactId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "kind": "none" }400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse409Kaydın güncel durumu bu işleme izin vermiyor ya da aynı kayıt zaten var (ör.
APP_SLUG_TAKEN,EVENT_NAME_TAKEN,LAST_OWNER).application/jsonErrorResponse422İş kuralı ihlali.
error.messagekullanıcıya olduğu gibi gösterilebilir.application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
PUT/v1/apps/{appId}/messaging/contacts
Kişi ekle ya da güncelle
E-posta, telefon ya da uygulamanın kullanıcı kimliğiyle eşleşen kişi güncellenir, yoksa oluşturulur (kopya yok). İzinler kanıtıyla (formun adı, zaman, gerekçe). İzin kanal × uygulama başına: none (onay yok), merchant (tacir / esnaf), opt_in (onaylı), opt_out (ret). Gönderilebilir = merchant ya da opt_in, adres var, bastırma listesinde değil. Her değişiklik değiştirilemez bir kanıt kaydı yazar (kaynak, zaman, form / ekran, kim, istemci adresinin özeti — adresin kendisi değil); izin vermek (opt_in, merchant) kanıt ister. Yanıt kişisel veri yankılamaz. Kapsam: messaging:write.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: messaging:write.
- Authentication
- apiKey
- Required scope
messaging:write
Parameters
Request bodyBody required
application/jsonUpsertContactRequest
{
"name": "string",
"email": "string",
"phone": "string",
"mobile": "string",
"landline": "string",
"company": "string",
"title": "string",
"city": "string",
"district": "string",
"userId": "string",
"locale": "tr",
"tags": [
"string"
],
"consents": {
"email": {
"kind": "none"
},
"sms": {
"kind": "none"
}
},
"listIds": [
"01a1b249-9ed2-77e8-af53-0c99529e68cb"
]
}Responses
200Başarılı.
application/jsonUpsertContactResultExample · JSON{ "contactId": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "created": true, "consents": { "email": "none", "sms": "none" } }400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse409Kaydın güncel durumu bu işleme izin vermiyor ya da aynı kayıt zaten var (ör.
APP_SLUG_TAKEN,EVENT_NAME_TAKEN,LAST_OWNER).application/jsonErrorResponse422İş kuralı ihlali.
error.messagekullanıcıya olduğu gibi gösterilebilir.application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
POST/v1/apps/{appId}/messaging/contacts/erase
Kişiyi sil (KVKK)
Kişi ve şifreli değerleri silinir; izin kanıtı ve bastırma kör dizinle kalır. Kapsam: messaging:write.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: messaging:write.
- Authentication
- apiKey
- Required scope
messaging:write
Parameters
Request bodyBody required
application/jsonContactReference
{
"contactId": "01a1b249-9ed2-77e8-af53-0c99529e68cb",
"email": "string",
"phone": "string",
"userId": "string"
}Responses
200Başarılı.
application/jsonEraseContactResultExample · JSON{ "erased": 0 }400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse409Kaydın güncel durumu bu işleme izin vermiyor ya da aynı kayıt zaten var (ör.
APP_SLUG_TAKEN,EVENT_NAME_TAKEN,LAST_OWNER).application/jsonErrorResponse422İş kuralı ihlali.
error.messagekullanıcıya olduğu gibi gösterilebilir.application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
GET/v1/apps/{appId}/messaging/lists
Listeler
Kapsam: messaging:read.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: messaging:read.
- Authentication
- apiKey
- Required scope
messaging:read
Parameters
Responses
200Başarılı.
application/jsonContactListListExample · JSON{ "items": [ { "id": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "name": "string", "description": "string", "contacts": 0, "emailSendable": 0, "smsSendable": 0, "createdBy": "01a1b249-9ed2-77e8-af53-0c99529e68cb", "createdAt": "2026-11-06T14:46:00+03:00", "updatedAt": "2026-11-06T14:46:00+03:00" } ] }401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
POST/v1/apps/{appId}/messaging/lists/{listId}/members
Liste üyeliği
Kişiler kimlik, e-posta, telefon ya da kullanıcı kimliğiyle eklenir / çıkarılır; bulunamayanlar sayılır. Kapsam: messaging:write.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: messaging:write.
- Authentication
- apiKey
- Required scope
messaging:write
Parameters
Request bodyBody required
application/jsonManagementListMembersRequest
{
"add": [],
"remove": []
}Responses
200Başarılı.
application/jsonListMembersResultExample · JSON{ "added": 0, "removed": 0, "notFound": 0 }400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse409Kaydın güncel durumu bu işleme izin vermiyor ya da aynı kayıt zaten var (ör.
APP_SLUG_TAKEN,EVENT_NAME_TAKEN,LAST_OWNER).application/jsonErrorResponse422İş kuralı ihlali.
error.messagekullanıcıya olduğu gibi gösterilebilir.application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
POST/v1/apps/{appId}/messaging/suppressions
Bastırma listesi
Bir adresi ya da numarayı bastırma listesine ekle / çıkar. Kapsam: messaging:write.
Management API anahtarı gerekir (Authorization: Bearer mk_…); işlem anahtarın organizasyonunda ve uygulama kapsamında tek bir RLS işleminde çalışır.
Gerekli kapsam: messaging:write.
- Authentication
- apiKey
- Required scope
messaging:write
Parameters
Request bodyBody required
application/jsonManagementSuppressionRequest
{
"channel": "email",
"email": "string",
"phone": "string",
"action": "add",
"reason": "manual"
}Responses
200Başarılı.
application/jsonSuppressionResultExample · JSON{ "suppressed": true, "channel": "email", "changed": true }400İstek doğrulanamadı (
VALIDATION_FAILED).error.fieldsher hatalı alan için isteğin dilinde mesajları taşır; alan yolu noktayla yazılır (properties.2.enumValues), gövdenin bütünü için_. Okunamayan JSONINVALID_REQUEST, bozuk imleçCURSOR_INVALIDdöner.application/jsonErrorResponse401Kimlik yok ya da geçersiz: panelde oturum çerezi (
SESSION_REQUIRED, ikinci adım bekleyen oturumdaTWO_FACTOR_REQUIRED), Management API'deAuthorization: Bearer mk_…(API_KEY_INVALID: yok, bilinmiyor, iptal edilmiş ya da süresi dolmuş). Giriş uçlarında hatalı bilgiler de 401 döner (INVALID_CREDENTIALS,TOTP_CODE_INVALID).application/jsonErrorResponse403Yetki yok: rol gereken izni vermiyor (
PERMISSION_REQUIRED,error.details.permissions), API anahtarının kapsamı eksik (API_KEY_SCOPE_MISSING,error.details.scopes) ya da organizasyon askıda (ORGANIZATION_SUSPENDED).application/jsonErrorResponse404Kayıt bulunamadı ya da çağıranın kapsamında değil; ikisi bilerek ayırt edilmez (ör.
APP_NOT_FOUND,EVENT_DEFINITION_NOT_FOUND). Biçimi geçersiz kimlikler de 404 döner.application/jsonErrorResponse409Kaydın güncel durumu bu işleme izin vermiyor ya da aynı kayıt zaten var (ör.
APP_SLUG_TAKEN,EVENT_NAME_TAKEN,LAST_OWNER).application/jsonErrorResponse422İş kuralı ihlali.
error.messagekullanıcıya olduğu gibi gösterilebilir.application/jsonErrorResponse500Beklenmeyen hata (
INTERNAL_ERROR). Destek talebindeerror.traceIdiletilir.application/jsonErrorResponse
Schemas
Schemas that requests and responses refer to by name.