API ọha & igodo API

Ohere site na mmemme n'ime oghere ọrụ gị — gụọ ọrụ ngo, nnọkọ, ihe omume nke gị na ngalaba, tinyekwa ID ndị ahịa na nnọkọ — nke igodo API nwere oke oghere ọrụ na-echekwa.

1. Nchịkọta

API MousePlayer na-ahapụ gị ịdọrọ data n'oghere ọrụ gị banye na bọọdụ nchịkwa nke gị, ụlọ nkwakọba data ma ọ bụ ngwa ime. Ewezuga itinye ID ndị ahịa na nnọkọ (identify, chọrọ igodo nwere ikike ide, lee Oke igodo), ọ bụ naanị maka ịgụ: a pụghị ịgbanwe ma ọ bụ hichapụ data site na API.

  • URL ntọala: https://www.mouseplayer.com/api/v1/
  • Nzaghachi niile bụ JSON.
  • A na-eji igodo API nyochaa arịrịọ ọ bụla, a na-etinyekwa ya na oke oghere ọrụ nke igodo ahụ bụ na-akpaghị aka — igodo sitere n'otu oghere ọrụ enweghị ike ịhụ data oghere ọrụ ọzọ, ọbụna site na mberede.
  • Ndekọ ịkpọgharị nnọkọ zuru ezu (mmegharị òké, onyonyo DOM) adịghị na API. Ị na-enweta metadata nnọkọ, nlele ibe, ihe omume nke gị na ngalaba — nke zuru iji wuo akụkọ na bọọdụ nchịkwa n'ebufeghị data ịkpọgharị mbụ gburugburu.

2. Nyocha njirimara

Mepụta ma jikwaa igodo API gị n'okpuru Igodo API n'ime menu akaụntụ gị (/api-keys). Naanị ndị nwe oghere ọrụ na ndị nchịkwa nwere ike ịmepụta ma ọ bụ kagbuo igodo.

Debe igodo gị na nzuzo. Ọ na-enye ohere ịgụ ihe niile n'oghere ọrụ gị. A na-egosi igodo zuru ezu kpọmkwem otu ugboro, ozugbo ị mepụtara ya — chekwaa ya na njikwa okwuntughe ma ọ bụ ebe nchekwa ihe nzuzo. Ọ bụrụ na i tufuo ya, kagbuo ya ma mepụta nke ọhụrụ.

Ziga igodo ahụ dịka token Bearer n'ime nkụnye Authorization nke arịrịọ ọ bụla:

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

Igodo na-adịghị, nke usoro ya ezighi ezi ma ọ bụ nke akagbuola na-enweta nzaghachi 401 :

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

Ihe atụmatụ chọrọ

REST API bụ akụkụ atụmatụ Business na Enterprise . A na-ewere atụmatụ site n'aka onye nwe oghere ọrụ, ya mere ndị otu a kpọrọ òkù na-eketa ya. Nyocha ahụ na-arụ na arịrịọ ọ bụla, ọ bụghị naanị mgbe a na-emepụta igodo — ọ bụrụ na e belata ọkwa oghere ọrụ, igodo ndị dị adị na-akwụsị ịrụ ọrụ wee weghachite 403.

Oke igodo

Igodo ọ bụla na-ebu oke ya n'ime nganiihu nke ya, ka ị nwee ike ịmata ihe igodo na-eme site n'ile ya anya — n'ime .env, n'ime tiketi, n'ime terminal.

NganiihuIhe ọ pụtara
mp_ro_Naanị ịgụ. Ọ na-agụ ọrụ ngo, nnọkọ, ihe omume na ngalaba. Ọ pụghị ịgbanwe ihe ọ bụla.
mp_rw_Ịgụ na ide. Ihe niile dị n'elu, tinyere itinye ID ndị ahịa site na ebe njedebe identify.
Họrọ oke mgbe ị na-emepụta igodo; ndabara bụ naanị ịgụ. Iji igodo ịgụ naanị na ebe njedebe na-ede na-eweghachite 403 nwere ozi na-akpọ aha ihe igodo bụ na ihe ebe njedebe chọrọ. A pụghị ịgbanwe oke mgbe e mesịrị — mepụta igodo ọhụrụ ma kagbuo nke ochie.

3. Oke arịrịọ

Igodo API ọ bụla nwere oke arịrịọ 60 kwa nkeji, nke a na-agụ n'ime windo na-agagharị. Ozugbo ị gafere ya, arịrịọ na-enweta nzaghachi 429 ruo mgbe windo ahụ sachara:

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

Ị na-ewu ihe chọrọ oke ka elu? Kpọtụrụ anyị site na Enyemaka ma gwa anyị maka ụzọ ị chọrọ iji ya.

4. Ebe njedebe

GET/api/v1/projects

Na-edepụta ọrụ ngo ọ bụla (webụsaịtị a na-enyocha) dị n'oghere ọrụ gị.

{ "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

Na-edepụta nnọkọ ndị ọbịa e dekọrọ maka ọrụ ngo, nke kacha ọhụrụ na mbụ. E kewara n'ibe.

Paramita ajụjụNkọwa
pageNọmba ibe, ndabara 1.
per_pageNsonaazụ n'otu ibe, ndabara 25, kacha 100.
sinceNaanị nnọkọ malitere n'ụbọchị a ma ọ bụ mgbe ọ gachara (YYYY-MM-DD).
untilNaanị nnọkọ malitere n'ụbọchị a ma ọ bụ tupu ya.
{ "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}

Metadata maka otu nnọkọ, tinyere nlele ibe ya. E kpachapụrụ anya wepụ data ịkpọgharị zuru ezu — jiri ihe ọkpụkpọ bọọdụ nchịkwa maka nke ahụ.

{ "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

Ihe omume nke gị a kpalitere n'oge nnọkọ (otu ihe omume ị na-eziga site na mp('event', ...)), tinyere paramita ha.

{ "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

Na-edepụta ngalaba ndị ọbịa akọwara maka ọrụ ngo (ngalaba ọrụ ngo kpọmkwem na ndị oghere ọrụ dum).

{ "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. Itinye ID onye ahịa site na sava gị

Ihe nchọgharị anaghị amakarị onye nọ ebe ahụ. N'ime ngwaahịa B2B, a na-ekpebi njirimara mgbe nbanye gachara — n'akụkụ sava gị. N'ime ụlọ ahịa, a na-ekpebi ya site na nkwenye iwu. Ebe njedebe a bụ maka kpọmkwem oge ahụ.

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

ID ahụ na-apụta mgbe ahụ na ndepụta nnọkọ, a pụrụ ịchọ ya ebe ahụ, webhook session_identified na-arụkwa ọrụ — nke bụ otu o si erute CRM gị.

Ịkpọ ya ugboro abụọ na otu ID ahụ dị nchebe. Nzaghachi ahụ na-alọghachi na "changed": false a naghịkwa eziga webhook. Iwu e megharịrị anaghị emepụta onye ahịa nwere mmasị nke abụọ.
ỌnọdụMgbe
400Oghere na-adịghị, user_id gafere mkpụrụedemede 128, ma ọ bụ nwere mkpụrụedemede njikwa. Anyị na-ajụ kama ibipụ — ID e mere ka ọ dị mkpụmkpụ na nzuzo anaghị adaba ihe ọ bụla na CRM gị ma ka dị ka ihe ịga nke ọma.
404Nnọkọ ahụ adịghị ma ọ bụ ọ bụghị nke oghere ọrụ gị. E kpachapụrụ anya nye otu azịza maka ha abụọ.
403Atụmatụ oghere ọrụ anaghị agụnye API.

6. Webhook: inyocha mbinye aka

A na-ahazi webhook n'otu ọrụ ngo n'okpuru Njikọ, ebe ị na-ahụkwa ihe nzuzo mbinye aka. Nnyefe ọ bụla na-ebu nkụnye ndị a:

NkụnyeIhe ọ pụtara
X-MousePlayer-EventAha ihe omume, dịka session_identified
X-MousePlayer-TimestampSekọnd Unix — akụkụ ederede a binyere aka
X-MousePlayer-Attempt1 na mgbalị mbụ, ka elu na mgbalị ọzọ
X-MousePlayer-Signaturesha256=<hex>

Mbinye aka bụ HMAC-SHA256 nke timestamp + "." + raw body, jiri ihe nzuzo mbinye aka ọrụ ngo gị dịka igodo.

// 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');
Binyere aka na ọdịnaya mbụ , tupu ịkọwa JSON ọ bụla. Ịtụgharị ya ọzọ na-agbanwe usoro igodo na oghere, mbinye aka agaghịkwa adaba. Jụkwa ihe ọ bụla akara oge ya karịrị nkeji ole na ole — nke ahụ bụ ihe akara oge bụ maka ya.

Nnyefe na mgbalị ọzọ

A na-anwale nnyefe dara ọzọ mgbe nkeji 1, nkeji 5, nkeji 15, awa 1 na awa 6gachara, a hapụzie ya. 4xx Nzaghachi ndị na-abụghị 408 na 429 bụ ndị a naghị anwale ọzọ — ha na-ekwu "ọ bụghị otú a", ọ bụghị "ọ bụghị ugbu a". Zaa 2xx ngwa ngwa ma rụọ ọrụ mgbe nke ahụ gasịrị; nnyefe na-agwụ oge mgbe sekọnd 10 gachara.

Ihe omume dị

Ihe omumeỌ na-arụ ọrụ
session_identifiedMgbe nnọkọ nwetara ID onye ahịa na nke mbụ — site na ihe nchọgharị ma ọ bụ API
session_endedOtu ugboro, mgbe nnọkọ na-emechi
goal_reachedOtu ugboro n'otu nnọkọ, mgbe ihe omume nke gị mezuru otu ebumnuche gị. Naanị ebumnuche nke ụdị “event” — a naghị atụle ebumnuche URL, oge, nlele ibe na ọwara. Ọ na-ebu goal_id, goal_name, goal_value na currency.
high_value_sessionMgbe onye ọbịa gafere oke uru ọrụ ngo a na nke mbụ n'otu ụbọchị. Oke ahụ bụ nke e nwetara site na nkesa akara nke gị (pasentịl 90 nke ụbọchị 90 gara aga), ọ bụghị nọmba a kapịrị ọnụ, ọ dịghịkwa ruo mgbe e nyere opekata mpe ndị ọbịa 20 akara. Ọ na-ebu visitor_id, value_score, threshold na nnọkọ ụbọchị ahụ kacha baa uru ile.
funnel_dropoffNa ngwụcha nnọkọ banyere n'otu ọwara gị ma emecharaghị ya. Ọ na-akpọ aha nzọụkwụ ọ kwụsịrị na ya (dropped_at). Ịpụ n'ọwara bụ enweghị ihe omume, ya mere a pụrụ ịma ya naanị mgbe nnọkọ gwụchara. Nnọkọ na-abanyeghị n'ọwara abụghị ndị si na ya pụọ, ha anaghịkwa akpalite ihe omume.
high_friction_sessionOtu ugboro n'otu nnọkọ, mgbe akara ihe mgbochi ya ruru oke na nke mbụ (ndabara 60 n'ime 100). Ọ na-ebu friction_score, ihe ngosi kpatara ya (reasons) na ihe ngosi gafere ahịrị ahụ (trigger).
element_brokenOtu ugboro, mgbe ihe a na-enyocha ahụghị ihe ọ bụla n'ime nlele ibe ọ bụla enyochara ruo ọtụtụ ụbọchị — na-abụkarị mgbe e wepụtara webụsaịtị ọzọ. Ọ na-arụ ọrụ ọzọ naanị mgbe akara ahụ dakọtara ma mebie ọzọ. Ihe omume a abụghị nke nnọkọ ọ bụla: session_id na session_url bụ null, link_url na-emepe akara ahụ kama ya, na subject_id na-akpọ aha akara ahụ — otu maka ụdị ọ bụla, ya mere ihe nhọpụta ọhụrụ mebiri ọzọ na-esonyere nsogbu mepere emepe. Ọ na-ebu rule_id, rule_name, selector, page, checked_page_views, window_days na last_matched. Enweghị data ndị ọbịa.
element_recoveredOzi na ihe dịzi mma maka element_broken: mgbe akara ahụ chọtara ihe ọzọ n'ezie — nlele ibe dị ole na ole ezughị. A na-eziga ya naanị ma ọ bụrụ na element_broken esila na webhook pụta, ọ nweghịkwa mgba ọkụ nke ya: ịdenye aha na element_broken na-agụnye ya. Otu subject_id, ya mere PagerDuty na-edozi nsogbu ahụ, Opsgenie na-emechikwa ọkwa ahụ. Ọ na-ebu matched_page_views na checked_page_views na mgbakwunye.
anomaly_detectedOtu ugboro kwa ụbọchị, mgbe ụnyaahụ dị iche nke ọma na ụbọchị 28 gara aga: nnọkọ pere nnọọ mpe ma ọ bụ karịrị nnọọ akarị, ọnụego ebumnuche dara, nnọkọ nwere ihe mgbochi ma ọ bụ njehie JS karịrị. Otu nha na ụzọ mgbanwe ahụ anaghị ekwu ọzọ ruo otu izu (a pụrụ ịgbanwe ya). Ihe omume a abụghị nke nnọkọ ọ bụla: session_id na session_url bụ null, link_url na-emepe nchịkọta ọrụ ngo, na subject_id na-akpọ aha nha, ụzọ mgbanwe na ụbọchị. Ọ na-ebu metric (sessions, goal_rate, friction_rate, js_error_rate, lcp_p75, inp_p75, cls_p75), direction, day, value, expected, sessions, robust_z, z_score na nke a pụrụ ịgụ summary na hint. Enweghị data ndị ọbịa. Maka Web Vitals, measurements na-anọchi sessions, na page (tọgbọ chakoo maka webụsaịtị dum) na device (desktop ma ọ bụ mobil) na-ekwu ebe o mere; link_url na-emepe taabụ Web Vitals mgbe ahụ.
rage_clickMgbe a chọpụtara ọpịpị iwe
error_detectedMgbe e nwere njehie n'akụkụ ihu
ceNdenye aha mkpokọta maka ihe omume nke gị. Ọ naghị agụnye ihe omume dị n'elu — ndị ahụ nwere mgba ọkụ nke ha.

7. Njehie & koodu ọnọdụ

ỌnọdụIhe ọ pụtara
200Ihe ịga nke ọma.
401Igodo API na-adịghị, nke usoro ya ezighi ezi ma ọ bụ nke akagbuola.
404Ọrụ ngo ma ọ bụ nnọkọ a rịọrọ adịghị, ma ọ bụ ọ bụghị nke oghere ọrụ gị.
429E gafere oke arịrịọ — ị na-eziga ihe karịrị arịrịọ 60/nkeji site na igodo a.
403Atụmatụ oghere ọrụ anaghị agụnye REST API. Ozi ahụ na-akpọ aha atụmatụ achọrọ na nke dị ugbu a.

8. Ndetu nchekwa

  • Igodo ịgụ naanị (mp_ro_) enweghị ike ịgbanwe ihe ọ bụla. Igodo ide (mp_rw_) nwere ike naanị itinye ID ndị ahịa; ọ dịghị igodo nwere ike ihichapụ data ma ọ bụ ibupụ data ịkpọgharị mbụ.
  • A na-etinye arịrịọ ọ bụla na oke oghere ọrụ igodo ahụ n'onwe ya na-akpaghị aka — ụzọ ịnyefe ID oghere ọrụ ọzọ wee hụ data onye ọzọ adịghị.
  • Kagbuo igodo mgbe ọ bụla site na /api-keys; nkagbu na-amalite ịrụ ọrụ ozugbo.
  • Were igodo API gị dịka okwuntughe. Ọ bụrụ na i tinye otu na mberede na ebe nchekwa koodu ọha, kagbuo ya ozugbo ma mepụta nke ọhụrụ.

Ibe ihe omume nwere oke (API v1, 14 Ọktoba 2026)

GET /api/v1/sessions/{session_id}/events na-eweghachite ihe omume ruru 100 site na ndabara. Setịpụ per_page ka ọ bụrụ integer site na 1 ruo 100. Soro pagination.next_cursor site n'iziga cursor n'agbanweghị ya n'arịrịọ ọzọ; debe otu nnọkọ na oghere ọrụ ahụ. A na-ahazi ihe omume site na created_at na event_id. A na-abịanye cursor aka ma kee ha na nnọkọ na oghere ọrụ ahụ. A naghị eweghachite mkpokọta ọnụ ọgụgụ ma ọ bụ nọmba ibe.

Array data na map params ndị dị adị ka dị. pagination.returned bụ ọnụ ọgụgụ e weghachitere n'ezie; pagination.has_more na-egosi ibe ọzọ. next_cursor bụ null mgbe e mechara. Nzaghachi nwere oke byte 524288, ya mere ibe nwere ike ịnwe ihe omume pere mpe karịa per_page. N'otu ihe omume, a na-eweghachite ahịrị paramita kacha 128; params_truncated bụ true ma ọ bụrụ na ndị ọzọ dị. Paramita string n'otu n'otu na-edebe oke ebe nchekwa data nke mkpụrụedemede 255. Paramita e bipụrụ adịghị site na ebe njedebe a. Ibelata per_page anaghị ebuli oke paramita.

Nha ibe na-ezighi ezi, cursor agbanwere na cursor maka nnọkọ/oghere ọrụ ọzọ na-eweghachite 400. Data otu ihe omume karịrị oke na-eweghachite 413. Nyocha ohere ndị dị adị ka na-eweghachite 401, 403, 404 ma ọ bụ 409 dịka o kwesịrị.

Oke ka bụ arịrịọ 60 e nyochara njirimara kwa igodo API kwa nkeji. Ịgwụ ya na-eweghachite 429 na Retry-After: 60. Ọ bụrụ na Redis ma ọ bụ ihe mmachi adịghị, arịrịọ na-eweghachite 503 na Retry-After: 5; a naghị anabata ha n'enweghị oke mgbe ọ bụla. Rubere Retry-After isi ma tinye oge ichere na-abawanye nke nwere ihe ndabara; anwalela ọzọ n'ahịrị na-enweghị ichere. Ọdịda ebe nchekwa data ihe omume na-eweghachikwa 503. Cursor anaghị ajụ oyi onyonyo otu oge: ntinye n'otu oge nke nwere akara oge ochie nwere ike ịchọ nyocha ọhụrụ.

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 bụ ụzọ njikwa sava dị naanị na Dev maka nlele mbụ SDK ngwa arụnyere. Ọ ka agbanyụrụ na mmepụta. Igodo Bearer sava chọrọ ikike ịgụ maka list/replay na ikike ide maka register/grant/delete/disable. Nyocha ọzọ maka nnweta nlele mbụ ngwa arụnyere dịkwa. Etinyela igodo API oghere ọrụ na-adịgide adịgide n'ime ngwa mkpanaka mgbe ọ bụla.