I-API yomphakathi & okhiye be-API

Ukufinyelela ngokohlelo endaweni yakho yokusebenzela — funda amaphrojekthi, amaseshini, izehlakalo zangokwezifiso nezingxenye, unamathisele nama-ID amakhasimende kumaseshini — kuvikelwe ngokhiye be-API abanobubanzi bendawo yokusebenzela.

1. Ukubuka konke

I-API ye-MousePlayer ikuvumela ukhiphe idatha endaweni yakho yokusebenzela uye kumadeshibhodi akho, enqolobaneni yedatha noma kumathuluzi angaphakathi. Ngaphandle kokunamathisela ama-ID amakhasimende kumaseshini (identify, kudinga ukhiye onobubanzi bokubhala, bheka Ububanzi Bokhiye), ingeyokuthi kufundwe kuphela: ayikho idatha engashintshwa noma isuswe nge-API.

  • I-URL eyisisekelo: https://www.mouseplayer.com/api/v1/
  • Zonke izimpendulo ziyi-JSON.
  • Zonke izicelo ziqinisekiswa ngokhiye we-API futhi zikhawulelwa ngokuzenzakalela endaweni yokusebenzela lowo khiye ongowayo — ukhiye wendawo yokusebenzela eyodwa awukwazi neze ukubona idatha yenye, ngisho nangephutha.
  • Okurekhodiwe okuphelele kokudlala kabusha kweseshini (ukunyakaza kwegundane, izithombe ze-DOM) akuvezwa nge-API. Uthola imethadatha yeseshini, ukubukwa kwamakhasi, izehlakalo zangokwezifiso nezingxenye — kwanele ukwakha imibiko namadeshibhodi ngaphandle kokuhambisa umthwalo wedatha wokudlala kabusha oluhlaza.

2. Ukuqinisekisa

Dala futhi uphathe okhiye bakho be-API ngaphansi kokuthi Okhiye Be-API kumenyu ye-akhawunti yakho (/api-keys). Abanikazi nabaphathi bendawo yokusebenzela kuphela abangadala noma bahoxise okhiye.

Gcina ukhiye wakho uyimfihlo. Unikeza ukufinyelela kokufunda kuyo yonke into esendaweni yakho yokusebenzela. Ukhiye ophelele uboniswa kanye kuphela, ngemva nje kokuwudala — wugcine kumphathi wamaphasiwedi noma endaweni yokugcina izimfihlo. Uma uwulahla, wuhoxise udale omusha.

Thumela ukhiye njengethokheni ye-Bearer esihlokweni esithi Authorization sazo zonke izicelo:

# List projects in your workspace curl -H "Authorization: Bearer mp_live_..." \ https://www.mouseplayer.com/api/v1/projects

Okhiye abangekho, abakheke kabi noma abahoxisiwe bathola impendulo ethi 401 :

{ "error": "Invalid or missing API key. Use: Authorization: Bearer <key>" }

Uhlelo oludingekayo

I-REST API iyingxenye yezinhlelo ze- Business ne- Enterprise . Uhlelo luthathwa kumnikazi wendawo yokusebenzela, ngakho amalungu eqembu amenyiwe ayaluzuza. Ukuhlola kwenzeka kuzo zonke izicelo, hhayi kuphela lapho kudalwa ukhiye — uma indawo yokusebenzela yehliselwa ohlelweni oluphansi, okhiye abakhona bayayeka ukusebenza babuyise 403.

Ububanzi bokhiye

Wonke ukhiye uqukethe ububanzi bawo esiqalweni sawo, ukuze ubone ukuthi wenzani ngokuwubuka nje — ku- .env, ethikithini, kutheminali.

IsiqaloIncazelo
mp_ro_Ukufunda kuphela. Ufunda amaphrojekthi, amaseshini, izehlakalo nezingxenye. Awukwazi ukushintsha lutho.
mp_rw_Ukufunda nokubhala. Konke okungenhla, kanye nokunamathisela ama-ID amakhasimende ngesiphetho sokuhlonza.
Khetha ububanzi lapho udala ukhiye; okuzenzakalelayo ukufunda kuphela. Ukusebenzisa ukhiye wokufunda kuphela esiphethweni sokubhala kubuyisa 403 nomlayezo osho ukuthi ukhiye unjani nokuthi isiphetho sidingani. Ububanzi abukwazi ukushintshwa kamuva — dala ukhiye omusha uhoxise omdala.

3. Imikhawulo yezinga

Ukhiye ngamunye we-API ukhawulelwe ezicelweni ezingu-60 ngomzuzu, zibalwa efasiteleni lesikhathi elihambayo. Uma wedlula lokho, izicelo zithola impendulo ethi 429 kuze kuphele iwindi lesikhathi:

{ "error": "Rate limit exceeded. Max 60 requests per minute." }

Wakha okuthile okudinga umkhawulo ophakeme? Xhumana Nabasekeli usitshele ngenhloso yokusebenzisa.

4. Iziphetho

GET/api/v1/projects

Ibala zonke iziphrojekthi (amasayithi alandelelwayo) endaweni yakho yokusebenzela.

{ "data": [ { "channelid": "955a45df5ee842cb", "domain": "yourdomain.com", "status": "active", "total_traffic_bytes": 27304765, "created_at": "2026-07-19 22:06:39", "last_used": "2026-08-05 01:12:55" } ] }

GET/api/v1/projects/{channelid}/sessions

Ibala amaseshini ezivakashi arekhodelwe iphrojekthi, amasha kuqala. Ihlukaniswe ngamakhasi.

Ipharamitha yombuzoIncazelo
pageInombolo yekhasi, okuzenzakalelayo 1.
per_pageImiphumela ngekhasi, okuzenzakalelayo 25, okuphezulu 100.
sinceAmaseshini aqala ngalolu suku noma ngemva kwalo kuphela (YYYY-MM-DD).
untilAmaseshini aqala ngalolu suku noma ngaphambi kwalo kuphela.
{ "data": [ { "session_id": "s_kfmist058_1785795295504", "visitor_id": "v_sv90jdpzo_1785795296042", "custom_user_id": null, "country": "DE", "device_type": "desktop", "is_bot": 0, "start_time": "2026-08-04 00:14:56", "end_time": "2026-08-04 00:16:41", "duration_seconds": 105 } ], "pagination": { "page": 1, "per_page": 25, "total": 142, "total_pages": 6 } }

GET/api/v1/sessions/{session_id}

Imethadatha yeseshini eyodwa, kanye nokubukwa kwamakhasi kwayo. Ikhetha ukungafaki umthwalo wedatha wokudlala kabusha ophelele — sebenzisa isidlali sedeshibhodi kulokho.

{ "data": { "session_id": "s_kfmist058_1785795295504", "channelid": "955a45df5ee842cb", "visitor_id": "v_sv90jdpzo_1785795296042", "country": "DE", "asn_org": "Deutsche Telekom AG", "referrer": "https://duckduckgo.com/", "device_type": "desktop", "start_time": "2026-08-04 00:14:56", "end_time": "2026-08-04 00:16:41", "duration_seconds": 105, "pageviews": [ { "pageview_id": 1199, "url": "https://yourdomain.com/pricing", "page_title": "Pricing", "start_time": "2026-08-04 00:14:56", "end_time": "2026-08-04 00:16:41" } ] } }

GET/api/v1/sessions/{session_id}/events

Izehlakalo zangokwezifiso ezenzeke phakathi neseshini (zona lezo ozithumela nge- mp('event', ...)), kuhlanganise namapharamitha azo.

{ "data": [ { "event_id": 61, "pageview_id": 1199, "event_name": "add_to_cart", "created_at": "2026-08-04 00:14:59", "params": { "item_id": "SKU_98765", "price": 299.99 } } ] }

GET/api/v1/projects/{channelid}/segments

Ibala izingxenye zezivakashi ezichazwe kuphrojekthi (zombili izingxenye zephrojekthi nezahlukaniswa kuyo yonke indawo yokusebenzela).

{ "data": [ { "segment_id": 4, "name": "High Intent Visitors", "description": "Pageviews > 5", "badge_color": "cyan", "is_global": 0, "created_at": "2026-08-03 00:00:43" } ] }

5. Ukunamathisela i-ID yekhasimende engxenyeni yakho yeseva

Isiphequluli sivame ukungazi ukuthi ubani ohlezi lapho. Kumkhiqizo we-B2B ubunikazi buqinisekiswa ngemva kokungena — engxenyeni yakho yeseva. Esitolo buqinisekiswa ngokuvuma i-oda. Lesi siphetho singaleso sikhathi ngqo.

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}}

I-ID ibe isivela ohlwini lwamaseshini, iyasesheka lapho, futhi i-webhook ethi session_identified iyasebenza — okuyindlela efika ngayo ku-CRM yakho.

Ukubiza kabili nge-ID efanayo kuphephile. Impendulo ibuya no- "changed": false futhi ayithunyelwa i-webhook. I-oda eliphindiwe alidali ikhasimende elingaba khona lesibili.
IsimoNini
400Inkambu engekho, user_id engaphezu kwezinhlamvu ezingu-128, noma enezinhlamvu zokulawula. Siyenqaba kunokunqamula — i-ID efushaniswe buthule ayifani nalutho ku-CRM yakho futhi isabukeka njengempumelelo.
404Iseshini ayikho noma ayiyona eyendawo yakho yokusebenzela. Impendulo efanayo ngamabomu kuzo zombili.
403Uhlelo lwendawo yokusebenzela aluyihlanganisi i-API.

6. Ama-webhook: ukuqinisekisa isiginesha

Ama-webhook asethwa ngephrojekthi ngaphansi kokuthi Ukuhlanganisa, lapho uthola nemfihlo yokusayina. Konke ukuthunyelwa kuqukethe lezi zihloko:

IsihlokoIncazelo
X-MousePlayer-EventIgama lesehlakalo, isib. session_identified
X-MousePlayer-TimestampImizuzwana ye-Unix — ingxenye yombhalo osayiniwe
X-MousePlayer-Attempt1 emzamweni wokuqala, kuphakeme lapho kuphindwa kuzanywa
X-MousePlayer-Signaturesha256=<hex>

Isiginesha iyi-HMAC-SHA256 yombhalo othi timestamp + "." + raw body, kusetshenziswa imfihlo yokusayina yephrojekthi yakho njengokhiye.

// 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');
Sayina umzimba oluhlaza ngaphambi kwanoma yikuphi ukufunda i-JSON. Ukubhala kabusha ngendlela ehleliwe kushintsha ukulandelana kokhiye nezikhala, bese isiginesha ingafani neze. Yenqaba nokunye okunesitembu sesikhathi esidala ngemizuzu engaphezu kwembalwa — yilokho isitembu sesikhathi esenzelwe kona.

Ukuthumela nokuphinda kuzanywe

Ukuthumela okwehlulekile kuphindwa ngemva kuka- 1 min, 5 min, 15 min, 1 h no-6 h, bese kuyekwa. 4xx izimpendulo ngaphandle kwe- 408 ne- 429 aziphinde zizanywe — zithi "hhayi ngale ndlela", hhayi "hhayi njengamanje". Phendula ngo- 2xx ngokushesha bese wenza umsebenzi kamuva; ukuthumela kuphelelwa isikhathi ngemva kwemizuzwana engu-10.

Izehlakalo ezitholakalayo

IsehlakaloSiqala
session_identifiedLapho iseshini iqala ukuthola i-ID yekhasimende — esipheqululini noma nge-API
session_endedKanye, lapho iseshini ivalwa
goal_reachedKanye ngeseshini, lapho isehlakalo sangokwezifiso sifeza omunye wemigomo yakho. Imigomo yohlobo lwe-“event” kuphela — imigomo ye-URL, yesikhathi, yokubukwa kwamakhasi neyefaneli ayihlaziywa. Kuqukethe goal_id, goal_name, goal_value ne- currency.
high_value_sessionLapho isivakashi siqala ukudlula umkhawulo wenani wale phrojekthi ngosuku oluthile. Umkhawulo utholakala ekwahlukanisweni kwamaphuzu akho (iphesenti lokuhlukanisa lama-90 lezinsuku ezingu-90 ezedlule), hhayi inombolo engashintshi, futhi awukho kuze kube okungenani izivakashi ezingu-20 sezinikezwe amaphuzu. Kuqukethe visitor_id, value_score, threshold neseshini yalolo suku efanele ukubukwa kakhulu.
funnel_dropoffEkupheleni kweseshini engene kwelinye lamafaneli akho kodwa yangaliqeda. Kubiza isinyathelo egcine kuso (dropped_at). Ukushiya kusho ukungabikho kwesehlakalo, ngakho kungaziwa kuphela lapho iseshini isiphelile. Amaseshini angakaze angene kufaneli awabalwa njengokushiya futhi awasiqalisi lesi sehlakalo.
high_friction_sessionKanye ngeseshini, lapho amaphuzu ayo ezithiyo eqala ukufinyelela emkhawulweni (ngokuzenzakalela angu-60 kwangu-100). Kuqukethe friction_score, izimpawu eziwabangela (reasons) nophawu oludlule umkhawulo (trigger).
element_brokenKanye, lapho isici esilandelelwayo singatholanga lutho kukho konke ukubukwa kwamakhasi okuhloliwe izinsuku eziningana — ngokuvamile ngemva kokwethulwa kabusha. Siphinde sisebenze kuphela ngemva kokuba uphawu luphinde lwafana lwabe seluphuka futhi. Lesi sehlakalo asisona eseseshini: session_id ne- session_url kuba null, link_url ivula uphawu esikhundleni salokho, futhi subject_id ibiza uphawu — okufanayo kuzo zonke izinguqulo, ukuze isikhethi esisha esiphuka futhi sijoyine udaba oluvuliwe. Kuqukethe rule_id, rule_name, selector, page, checked_page_views, window_days ne- last_matched. Ayikho idatha yezivakashi.
element_recoveredIsaziso sokulungiseka se- element_broken: kanye lapho uphawu luphinda luthola isici ngempela — ukubukwa kwamakhasi okumbalwa kakhulu akwanele. Sithunyelwa kuphela uma element_broken kuthunyelwe nge-webhook, futhi asinaswishi yaso: ukubhalisela element_broken kuyasihlanganisa. Kuyafana i- subject_id, ukuze i-PagerDuty ixazulule udaba ne-Opsgenie ivale isaziso. Kuqukethe matched_page_views ne- checked_page_views ngaphezu kwalokho.
anomaly_detectedKanye ngosuku, lapho izolo kwehluke ngokusobala ezinsukwini ezingu-28 zangaphambili: amaseshini ambalwa kakhulu noma amaningi kakhulu, izinga lomgomo elehlile, amaseshini amaningi anezithiyo noma amaphutha e-JS. Imethrikhi nesiqondiso esifanayo kuhlala kuthule isonto (kuyalungiseka). Lesi sehlakalo asisona eseseshini: session_id ne- session_url kuba null, link_url ivula ukubuka konke kwephrojekthi, futhi subject_id ibiza imethrikhi, isiqondiso nosuku. Kuqukethe metric (sessions, goal_rate, friction_rate, js_error_rate, lcp_p75, inp_p75, cls_p75), direction, day, value, expected, sessions, robust_z, z_score nokufundekayo okuthi summary ne- hint. Ayikho idatha yezivakashi. Nge-Web Vitals, measurements ithatha indawo ye- sessions, futhi page (akunalutho kusayithi lonke) ne- device (desktop noma mobil) kusho lapho kwenzeke khona; link_url ibe isivula ithebhu ye-Web Vitals.
rage_clickLapho kutholwa ukuchofoza ngentukuthelo
error_detectedLapho kwenzeka okuhlukile engxenyeni yesiphequluli
ceUkubhalisa okuhlanganisiwe kwezehlakalo zakho zangokwezifiso. Akuzihlanganisi izehlakalo ezingenhla — lezo zineziswishi zazo.

7. Amaphutha & amakhodi esimo

IsimoIncazelo
200Impumelelo.
401Ukhiye we-API ongekho, owakheke kabi noma ohoxisiwe.
404Iphrojekthi noma iseshini eceliwe ayikho, noma ayiyona eyendawo yakho yokusebenzela.
429Umkhawulo wezinga udluliwe — uthumela izicelo ezingaphezu kuka-60/ngomzuzu ngalo khiye.
403Uhlelo lwendawo yokusebenzela aluyihlanganisi i-REST API. Umlayezo ubiza uhlelo oludingekayo nolwamanje.

8. Amanothi okuphepha

  • Okhiye bokufunda kuphela (mp_ro_) abakwazi ukushintsha lutho. Okhiye bokubhala (mp_rw_) banganamathisela ama-ID amakhasimende kuphela; awukho ukhiye ongasusa idatha noma uthekelise idatha yokudlala kabusha eluhlaza.
  • Zonke izicelo zikhawulelwa ngokuzenzakalela endaweni yokusebenzela yokhiye uqobo — ayikho indlela yokudlulisa i-ID yendawo ehlukile ubone idatha yomunye umuntu.
  • Hoxisa ukhiye noma nini kokuthi /api-keys; ukuhoxisa kusebenza ngokushesha.
  • Phatha ukhiye wakho we-API njengephasiwedi. Uma uwufaka ngephutha kunqolobane yekhodi yomphakathi, wuhoxise ngokushesha udale omusha.

Amakhasi ezehlakalo anemikhawulo (API v1, 14 Okthoba 2026)

I-GET /api/v1/sessions/{session_id}/events ibuyisa izehlakalo ezifinyelela kwezingu-100 ngokuzenzakalela. Setha i-per_page ibe inombolo ephelele kusukela ku-1 kuya ku-100. Landela i-pagination.next_cursor ngokuthumela i-cursor ingashintshi esicelweni esilandelayo; gcina iseshini nendawo yokusebenzela efanayo. Izehlakalo zihlelwa nge-created_at ne-event_id. Ama-cursor asayinwe futhi axhunywe kuleyo seshini nendawo yokusebenzela. Akubuyiswa isamba senani noma ikhasi lenombolo.

Uhlu lwe-data olukhona nemephu ye-params kuhlala kutholakala. I-pagination.returned iyinani langempela elibuyisiwe; i-pagination.has_more ikhomba elinye ikhasi. I-next_cursor iba null lapho kuphelele. Impendulo ikhawulelwe kumabhayithi angu-524288, ngakho ikhasi lingaqukatha izehlakalo ezimbalwa kune-per_page. Ngesehlakalo, kubuyiswa imigqa yamapharamitha engu-128 kakhulu; i-params_truncated iba true uma ikhona eyengeziwe. Amapharamitha ombhalo ngamanye agcina umkhawulo wesizindalwazi wezinhlamvu ezingu-255. Amapharamitha anqanyuliwe awatholakali ngalesi siphetho. Ukunciphisa i-per_page akuwukhuphuli umkhawulo wamapharamitha.

Osayizi bamakhasi abangavumelekile, ama-cursor ashintshiwe nama-cursor wenye iseshini/indawo yokusebenzela kubuyisa u-400. Idatha yesehlakalo esisodwa enkulu kakhulu ibuyisa u-413. Ukuhlolwa kokufinyelela okukhona kusabuyisa u-401, 403, 404 noma 409 ngokufanele.

Umkhawulo uhlala uyizicelo eziqinisekisiwe ezingu-60 ngokhiye we-API ngomzuzu. Ukuphela komkhawulo kubuyisa u-429 no-Retry-After: 60. Uma i-Redis noma isikhawuleli singatholakali, izicelo zibuyisa u-503 no-Retry-After: 5; azivunyelwa neze ngaphandle komkhawulo. Hlonipha i-Retry-After bese wengeza ukubambezeleka okungahleliwe; ungaphindi uzame kulayini osheshayo ongayeki. Ukwehluleka kwesizindalwazi sezehlakalo nakho kubuyisa u-503. Ama-cursor awaqandi isithombe sedatha: okufakwa kanyekanye okunezitembu zesikhathi ezindala kungadinga ukuskena okusha.

GET /api/v1/sessions/s_example/events?per_page=25
GET /api/v1/sessions/s_example/events?per_page=25&cursor=SIGNED_CURSOR

I-/api/v1/native iyindlela yokulawula yengxenye yeseva ye-Dev kuphela yokubuka kuqala i-SDK yendabuko. Ihlala ivaliwe ohlelweni olusebenzayo. Okhiye be-Bearer bengxenye yeseva badinga ububanzi bokufunda be-list/replay nobubanzi bokubhala be-register/grant/delete/disable. Kusebenza nokuhlolwa okwengeziwe kokutholakala kokubuka kuqala kwendabuko. Ungalokothi ufake okhiye be-API bendawo yokusebenzela abangaphelelwa isikhathi ohlelweni lweselula.