API ya giştî & mifteyên API
Gihîştina bi kodê ji qada xebata we re — proje, danişîn, bûyerên taybet û segmentan bixwînin û ID yên mişteriyan li danişînan zêde bikin — bi mifteyên API yên bi qada xebatê sînorkirî tê parastin.
1. Pêşdîtin
API ya MousePlayer dihêle hûn daneyan ji qada xebata xwe derxin û bixin panelên kontrolê, depoya daneyan an amûrên xwe yên navxweyî. Ji bilî zêdekirina ID yên mişteriyan li danişînan (identify, mifteyeke bi destûra nivîsandinê hewce dike, li Destûrên mifteyan binêrin), ew tenê ji bo xwendinê ye: bi rêya API tu dane nayên guhertin an rakirin.
- URL ya bingehîn:
https://www.mouseplayer.com/api/v1/ - Hemû bersiv JSON in.
- Her daxwaz bi mifteyeke API tê piştrastkirin û bixweber bi qada xebata ku mifte jê re ye tê sînorkirin — mifteyeke ji qadeke xebatê qet nikare daneyên qadeke din bibîne, heta bi xeletî jî.
- Tevahiya tomara ji nû ve lîstina danişînê (tevgerên mişkê, wêneyên DOM) bi rêya API nayê pêşkêşkirin. Hûn metadaneyên danişînê, dîtinên rûpelê, bûyerên taybet û segmentan werdigirin — têrê çêkirina rapor û panelên kontrolê dike, bê veguhastina barka xam a ji nû ve lîstinê.
2. Piştrastkirin
Mifteyên API yên xwe di beşa Mifteyên API ya pêşeka hesabê xwe de çêkin û bi rê ve bibin (/api-keys). Tenê xwedî û rêvebirên qada xebatê dikarin mifteyan çêkin an rakin.
Mifteya xwe veşartî bihêlin. Ew destûra xwendina her tiştê di qada xebata we de dide. Mifteya tevahî tam carekê, rasterast piştî çêkirinê tê nîşandan — wê di rêvebera şîfreyan an depoya neheniyan de biparêzin. Ger hûn wê winda bikin, wê rakin û ya nû çêkin.
Mifteyê wek tokena Bearer di sernavê Authorization yê her daxwazê de bişînin:
Mifteyên kêm, bi teşeya xelet an hatine rakirin bersiva 401 werdigirin:
Pêdiviya planê
REST API beşek ji planên Business û Enterprise e. Plan ji xwediyê qada xebatê tê standin, lewma endamên tîmê yên vexwendî wê werdigirin. Kontrol di her daxwazê de tê kirin, ne tenê dema mifte tê çêkirin — ger qada xebatê li plana nizmtir were xistin, mifteyên heyî êdî naxebitin û 403 vedigerînin.
Destûrên mifteyan
Her mifte destûra xwe di pêşgira xwe de digire, lewma hûn tenê bi lênihêrînê dikarin bizanin mifte çi dike — di .env de, di bilêtekê de, di termînalê de.
| Pêşgir | Wate |
|---|---|
mp_ro_ | Tenê xwendin. Proje, danişîn, bûyer û segmentan dixwîne. Nikare tiştekî biguherîne. |
mp_rw_ | Xwendin û nivîsandin. Her tiştê li jor, bi zêdekirina ID yên mişteriyan bi rêya xala dawî ya identify re. |
403 bi peyamekê vedigerîne ku dibêje mifte çi ye û xala dawî çi hewce dike. Destûr piştre nayê guhertin — mifteyeke nû çêkin û ya kevn rakin.3. Sînorên rêjeyê
Her mifteya API bi 60 daxwazan di deqeyekê de tê sînorkirin, di pencereyeke demê ya digere de tê şopandin. Dema hûn wê derbas bikin, daxwaz bersiva 429 werdigirin heta pencere vala bibe:
Hûn tiştekî ava dikin ku sînorekî bilindtir hewce dike? Bi rêya Alîkarî bi me re têkilî daynin û rewşa bikaranîna xwe ji me re bibêjin.
4. Xalên dawî
GET/api/v1/projects
Her projeya (malpera şopandî ya) di qada xebata we de lîste dike.
GET/api/v1/projects/{channelid}/sessions
Danişînên serdankeran ên ji bo projeyekê hatine tomarkirin lîste dike, yên herî nû pêşî. Bi rûpelan parvekirî.
| Parametreya pirsê | Rave |
|---|---|
page | Hejmara rûpelê, destpêkî 1. |
per_page | Encaman di her rûpelê de, destpêkî 25, herî zêde 100. |
since | Tenê danişînên ku di vê dîrokê de an piştî wê dest pê dikin (YYYY-MM-DD). |
until | Tenê danişînên ku di vê dîrokê de an berî wê dest pê dikin. |
GET/api/v1/sessions/{session_id}
Metadaneyên danişîneke tenê, bi dîtinên rûpelê yên wê re. Bi qestî barka tevahî ya ji nû ve lîstinê nagire — ji bo wê lêdara panela kontrolê bikar bînin.
GET/api/v1/sessions/{session_id}/events
Bûyerên taybet ên di danişînekê de hatine çalakkirin (heman bûyerên ku hûn bi mp('event', ...) dişînin), bi parametreyên wan re.
GET/api/v1/projects/{channelid}/segments
Segmentên serdankeran ên ji bo projeyekê hatine pênasekirin lîste dike (hem segmentên taybet ên projeyê hem yên tevahiya qada xebatê).
5. Zêdekirina ID ya mişterî ji backendê we
Gerok gelek caran nizane ka kî li wir rûniştiye. Di hilbereke B2B de nasname piştî têketinê diyar dibe — di backendê we de. Di dikanekê de ew bi piştrastkirina fermanê diyar dibe. Ev xala dawî tam ji bo wê kêliyê ye.
POST /api/v1/sessions/{session_id}/identify
Authorization: Bearer mp_live_xxxxxxxxxxxx
Content-Type: application/json
{"user_id": "customer-4711"}
// 200 OK
{"data": {"session_id": "s_a1b2c3", "user_id": "customer-4711",
"changed": true, "previous": null, "webhook_queued": true}}Paşê ID di lîsteya danişînan de xuya dibe, li wir tê lêgerîn û webhooka session_identified çalak dibe — bi vî awayî ew digihîje CRM ya we.
"changed": false vedigere û tu webhook nayê şandin. Fermaneke dubare kesekî eleqedar ê duyem çênake.| Rewş | Kengî |
|---|---|
400 | Qadeke kêm, user_id ji 128 tîpan dirêjtir an bi tîpên kontrolê. Em li şûna kurtkirinê red dikin — ID yeke bê deng kurtkirî bi tiştekî di CRM ya we de li hev nake û hê jî wek serkeftinê xuya dike. |
404 | Danişîn tune ye an ne ya qada xebata we ye. Bi qestî ji bo herduyan heman bersiv. |
403 | Plana qada xebatê API nagire. |
6. Webhook: piştrastkirina îmzayê
Webhook ji bo her projeyê di bin Girêdan de tên veavakirin; li wir hûn neheniya îmzekirinê jî dibînin. Her şandin van sernavan digire:
| Sernav | Wate |
|---|---|
X-MousePlayer-Event | Navê bûyerê, mînak session_identified |
X-MousePlayer-Timestamp | Çirkeyên Unix — beşek ji nivîsa îmzekirî |
X-MousePlayer-Attempt | Di hewla yekem de 1, di hewldanên ji nû ve de zêdetir |
X-MousePlayer-Signature | sha256=<hex> |
Îmze HMAC-SHA256 li ser timestamp + "." + raw body e, bi neheniya îmzekirinê ya projeya we wek mifte.
// PHP $erwartet = 'sha256=' . hash_hmac('sha256', $timestamp . '.' . $rawBody, $secret); if (!hash_equals($erwartet, $signature)) { http_response_code(401); exit; } // Node const expected = 'sha256=' + crypto.createHmac('sha256', secret) .update(timestamp + '.' + rawBody).digest('hex');
Şandin û hewldanên ji nû ve
Şandina têkçûyî piştî 1 deq, 5 deq, 15 deq, 1 saet û 6 saet ji nû ve tê ceribandin, paşê tê devjêberdan. 4xx bersivên ji bilî 408 û 429 ji nû ve nayên ceribandin — ew dibêjin "ne wisa", ne "ne niha". Bi 2xx zû bersiv bidin û karê xwe paşê bikin; şandin piştî 10 çirkeyan sînorê demê derbas dike.
Bûyerên berdest
| Bûyer | Çalak dibe |
|---|---|
session_identified | Dema danişînek cara yekem ID ya mişterî werdigire — ji gerokê an ji API |
session_ended | Carekê, dema danişîn tê girtin |
goal_reached | Carekê di her danişînê de, dema bûyereke taybet yek ji armancên we pêk tîne. Tenê armancên cureya “event” — armancên URL, demê, dîtina rûpelê û funelê nayên nirxandin. Van digire: goal_id, goal_name, goal_value û currency. |
high_value_session | Dema serdankerek di rojeke diyar de cara yekem sînorê nirxê yê vê projeyê derbas dike. Sînor ji belavbûna pûanên we bixwe tê derxistin (percentîla 90em a 90 rojên dawî), ne hejmareke sabît e û heta herî kêm 20 serdanker nehatibin pûankirin ew tune ye. Van digire: visitor_id, value_score, threshold û danişîna wê rojê ya herî guncaw ji bo temaşekirinê. |
funnel_dropoff | Di dawiya danişînekê de ku ketibe yek ji funelên we lê ew neqedandibe. Gava ku li wir rawestiye bi nav dike (dropped_at). Derketin nebûna bûyerekê ye, lewma tenê piştî qedandina danişînê dikare were zanîn. Danişînên ku qet neketine funelê ne derketin in û çalak nakin. |
high_friction_session | Carekê di her danişînê de, dema pûana astengiya wê cara yekem digihîje sînorê (destpêkî 60 ji 100). Van digire: friction_score, nîşanên li pişt wê (reasons) û nîşana ku sînor derbas kir (trigger). |
element_broken | Carekê, dema hêmaneke şopandî ji bo çend rojan di tu dîtina rûpelê ya kontrolkirî de tiştek nedîtibe — bi gelemperî piştî nûkirina malperê. Tenê piştî ku nîşankirin li hev kiribe û dîsa xerab bibûbe dîsa çalak dibe. Ev bûyer ne ya tu danişînê ye: session_id û session_url nirxa null digirin, link_url li şûna wê nîşankirinê vedike û subject_id nîşankirinê bi nav dike — ji bo her guhertoyê heman e, lewma hilbijêrekî nû yê dîsa xerab dibe bi bûyera vekirî ve tê zêdekirin. Van digire: rule_id, rule_name, selector, page, checked_page_views, window_days û last_matched. Tu daneyên serdankeran tune ne. |
element_recovered | Nîşana çareserbûnê ji bo element_broken: carekê dema nîşankirin bi rastî dîsa hêmanekê dibîne — dîtinên rûpelê yên pir kêm têrê nakin. Tenê tê şandin ger element_broken bi webhookê derketibe û guherîna wê ya serbixwe tune ye: abonetiya element_broken wê jî digire. Heman subject_id, lewma PagerDuty bûyerê çareser dike û Opsgenie hişyariyê digire. Wek zêde van digire: matched_page_views û checked_page_views . |
anomaly_detected | Rojê carekê, dema duh bi awayekî zelal ji 28 rojên berî xwe cuda bû: danişînên pir kêmtir an zêdetir, rêjeya armancê ya daketî, danişînên zêdetir bi astengî an çewtiyên JS. Heman pîvan û araste ji bo hefteyekê bê deng dimînin (tê mîhengkirin). Ev bûyer ne ya tu danişînê ye: session_id û session_url nirxa null digirin, link_url pêşdîtina projeyê vedike û subject_id pîvan, araste û rojê bi nav dike. Van digire: metric (sessions, goal_rate, friction_rate, js_error_rate, lcp_p75, inp_p75, cls_p75), direction, day, value, expected, sessions, robust_z, z_score û yên xwendinbar summary û hint. Tu daneyên serdankeran tune ne. Ji bo Web Vitals, measurements li şûna sessions tê û page (ji bo tevahiya malperê vala ye) û device (desktop an mobil) dibêjin ka ew li ku pêk hat; link_url paşê hilpekîna Web Vitals vedike. |
rage_click | Dema klîka hêrsê tê dîtin |
error_detected | Dema çewtiyeke navrûyê pêk tê |
ce | Abonetiya hevpar ji bo bûyerên taybet ên we bixwe. Bûyerên li jor nagire — guherînên wan yên serbixwe hene. |
7. Çewtî & kodên rewşê
| Rewş | Wate |
|---|---|
200 | Serkeftin. |
401 | Mifteya API ya kêm, bi teşeya xelet an hatî rakirin. |
404 | Proje an danişîna daxwazkirî tune ye an ne ya qada xebata we ye. |
429 | Sînorê rêjeyê hatiye derbaskirin — hûn bi vê mifteyê di deqeyekê de ji 60 daxwazan zêdetir dişînin. |
403 | Plana qada xebatê REST API nagire. Peyam hem plana pêwîst hem ya heyî bi nav dike. |
8. Têbîniyên ewlehiyê
- Mifteyên tenê xwendinê (mp_ro_) nikarin tiştekî biguherînin. Mifteyên nivîsandinê (mp_rw_) tenê dikarin ID yên mişteriyan zêde bikin; tu mifte nikare daneyan rake an daneyên xam ên ji nû ve lîstinê derxe.
- Her daxwaz bixweber bi qada xebatê ya mifteyê bixwe tê sînorkirin — rêyek tune ye ku ID ya qadeke din derbas bikin û daneyên kesekî din bibînin.
- Hûn dikarin her dem mifteyê ji /api-keys rakin; rakirin tavilê bandor dike.
- Mifteya API wek şîfreyê bibînin. Ger hûn bi xeletî yekê di depoyeke giştî de commit bikin, wê tavilê rakin û ya nû çêkin.
Rûpelên bûyerê yên sînorkirî (API v1, 14 cotmeh 2026)
GET /api/v1/sessions/{session_id}/events di destpêkê de heta 100 bûyeran vedigerîne. per_page li hejmareke tam ji 1 heta 100 saz bikin. Bi şandina cursor bê guhertin di daxwaza din de pagination.next_cursor bişopînin; heman danişîn û qada xebatê biparêzin. Bûyer li gorî created_at û event_id tên rêzkirin. Cursor îmzekirî ne û bi wê danişîn û qada xebatê ve girêdayî ne. Ne hejmara tevahî ne jî rûpela hejmarî tê vegerandin.
Rêzika data û nexşeya params yên heyî berdest dimînin. pagination.returned hejmara rastîn a vegerandî ye; pagination.has_more rûpeleke din nîşan dide. next_cursor dema tevahî be null e. Bersiv bi 524288 baytan tê sînorkirin, lewma rûpelek dikare ji per_page kêmtir bûyeran bigire. Ji bo her bûyerê herî zêde 128 rêzên parametreyan tên vegerandin; ger zêdetir hebin params_truncated true e. Parametreyên rêzika nivîsê yên takekesî sînorê danegehê yê 255 tîpan diparêzin. Parametreyên kurtkirî bi vê xala dawî ne berdest in. Kêmkirina per_page sînorê parametreyan bilind nake.
Mezinahiyên rûpelê yên nederbasdar, cursorên guhertî û cursorên danişînê/qada xebatê ya din 400 vedigerînin. Daneyên take-bûyerê yên pir mezin 413 vedigerînin. Kontrolên gihîştinê yên heyî li gorî rewşê hê jî 401, 403, 404 an 409 vedigerînin.
Sînor di her deqeyekê de ji bo her mifteya API 60 daxwazên piştrastkirî dimîne. Xelasbûn 429 bi Retry-After: 60 vedigerîne. Ger Redis an sînorker ne berdest be, daxwaz 503 bi Retry-After: 5 vedigerînin; ew qet bê sînor nayên qebûlkirin. Retry-After biparêzin û navbereke bendê ya tesadufî zêde bikin; di çerxeke teng de ji nû ve hewl nedin. Têkçûnên danegeha bûyeran jî 503 vedigerînin. Cursor wêneyeke sabît nagirin: têxistinên hevdem bi nîşaneyên demê yên kevntir dibe ku lêgerîneke nû hewce bikin.
GET /api/v1/sessions/s_example/events?per_page=25 GET /api/v1/sessions/s_example/events?per_page=25&cursor=SIGNED_CURSOR
/api/v1/native rêya kontrolê ya backendê tenê ji bo Dev a pêşdîtina SDK ya xwemalî ye. Ew di hilberînê de neçalak dimîne. Mifteyên Bearer yên backendê ji bo list/replay destûra xwendinê û ji bo register/grant/delete/disable destûra nivîsandinê hewce dikin. Kontrolên zêde yên berdestbûna native-preview tên sepandin. Qet mifteyên API yên mayînde yên qada xebatê di sepaneke mobîl de tê nexin.