API Cyhoeddus & Allweddi API

Mynediad rhaglennol at eich gweithle — darllen prosiectau, sesiynau, digwyddiadau personol a segmentau, ac atodi IDs cwsmeriaid at sesiynau — wedi’i ddiogelu gan allweddi API â chwmpas gweithle.

1. Trosolwg

Mae API MousePlayer yn gadael i chi dynnu data o’ch gweithle i’ch dangosfyrddau, warws data neu offer mewnol eich hun. Ar wahân i atodi IDs cwsmeriaid at sesiynau (identify, angen allwedd â chwmpas ysgrifennu, gweler Cwmpas Allweddi), mae’n ddarllen yn unig: ni ellir addasu na dileu data drwy’r API.

  • URL Sylfaenol: https://www.mouseplayer.com/api/v1/
  • JSON yw pob ymateb.
  • Dilysir pob cais gydag allwedd API a’i gwmpasu’n awtomatig i’r gweithle y mae’r allwedd yn perthyn iddo — ni all allwedd o un gweithle byth weld data gweithle arall, hyd yn oed ar ddamwain.
  • Nid yw’r recordiad ailchwarae sesiwn llawn (symudiadau llygoden, cipluniau DOM) yn cael ei ddarparu drwy’r API. Rydych yn cael metadata sesiwn, golygon tudalen, digwyddiadau personol a segmentau — digon i adeiladu adroddiadau a dangosfyrddau heb gludo llwyth crai’r ailchwarae o gwmpas.

2. Dilysu

Crëwch a rheolwch eich allweddi API o dan Allweddi API yn newislen eich cyfrif (/api-keys). Dim ond perchnogion a gweinyddwyr gweithleoedd sy’n gallu creu neu ddirymu allweddi.

Cadwch eich allwedd yn gyfrinachol. Mae’n rhoi mynediad darllen at bopeth yn eich gweithle. Dangosir yr allwedd lawn unwaith yn union, yn syth ar ôl i chi ei chreu — storiwch hi mewn rheolwr cyfrineiriau neu gladdgell gyfrinachau. Os collwch hi, dirymwch hi a chreu un newydd.

Anfonwch yr allwedd fel tocyn Bearer ym mhennyn Authorization pob cais:

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

Mae allweddi coll, camffurfiedig neu wedi’u dirymu yn cael ymateb 401:

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

Gofyniad Cynllun

Mae’r REST API yn rhan o gynlluniau Business ac Enterprise. Cymerir y cynllun oddi wrth berchennog y gweithle, felly mae aelodau tîm a wahoddwyd yn ei etifeddu. Mae’r gwiriad yn rhedeg ar bob cais, nid dim ond pan grëir allwedd — os caiff gweithle ei israddio, mae allweddi presennol yn peidio â gweithio ac yn dychwelyd 403.

Cwmpas Allweddi

Mae pob allwedd yn cario ei chwmpas yn ei rhagddodiad ei hun, felly gallwch ddweud beth mae allwedd yn ei wneud drwy edrych arni — mewn .env, mewn tocyn, mewn terfynell.

RhagddodiadYstyr
mp_ro_Darllen yn unig. Yn darllen prosiectau, sesiynau, digwyddiadau a segmentau. Ni all newid dim.
mp_rw_Darllen ac ysgrifennu. Popeth uchod, ynghyd ag atodi IDs cwsmeriaid drwy’r pwynt terfyn identify.
Dewiswch y cwmpas wrth greu’r allwedd; darllen yn unig yw’r rhagosodiad. Mae defnyddio allwedd darllen yn unig ar bwynt terfyn ysgrifennu yn dychwelyd 403 gyda neges sy’n enwi beth yw’r allwedd a beth sydd ei angen ar y pwynt terfyn. Ni ellir newid y cwmpas wedyn — crëwch allwedd newydd a dirymu’r hen un.

3. Terfynau Cyfradd

Mae pob allwedd API wedi’i chyfyngu i 60 cais y funud, wedi’u tracio ar ffenestr dreigl. Unwaith y byddwch yn mynd dros hynny, mae ceisiadau’n cael ymateb 429 nes bod y ffenestr yn clirio:

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

Yn adeiladu rhywbeth sydd angen terfyn uwch? Cysylltwch drwy Gymorth a dywedwch wrthym am eich achos defnydd.

4. Pwyntiau Terfyn

GET/api/v1/projects

Yn rhestru pob prosiect (gwefan wedi’i thracio) yn eich gweithle.

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

Yn rhestru sesiynau ymwelwyr a recordiwyd ar gyfer prosiect, y diweddaraf yn gyntaf. Wedi’u rhannu’n dudalennau.

Paramedr ymholiadDisgrifiad
pageRhif tudalen, yn ddiofyn 1.
per_pageCanlyniadau fesul tudalen, yn ddiofyn 25, uchafswm 100.
sinceDim ond sesiynau sy’n dechrau ar/ar ôl y dyddiad hwn (YYYY-MM-DD).
untilDim ond sesiynau sy’n dechrau ar/cyn y dyddiad hwn.
{ "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 un sesiwn, ynghyd â’i golygon tudalen. Yn fwriadol nid yw’n cynnwys llwyth ailchwarae llawn — defnyddiwch Chwaraewr y dangosfwrdd ar gyfer hynny.

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

Digwyddiadau personol a sbardunwyd yn ystod sesiwn (yr un digwyddiadau rydych yn eu hanfon gyda mp('event', ...)), gan gynnwys eu paramedrau.

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

Yn rhestru’r segmentau ymwelwyr a ddiffiniwyd ar gyfer prosiect (segmentau penodol i’r prosiect ac ar draws y gweithle).

{ "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. Atodi ID Cwsmer o’ch Pen Ôl

Yn aml nid yw’r porwr yn gwybod pwy sy’n eistedd yno. Mewn cynnyrch B2B pennir yr hunaniaeth ar ôl mewngofnodi — yn eich pen ôl. Mewn siop fe’i pennir gyda’r cadarnhad archeb. Mae’r pwynt terfyn hwn ar gyfer yr union foment honno.

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

Yna mae’r ID yn ymddangos yn y rhestr sesiynau, gellir chwilio amdano yno, ac mae’r webhook session_identified yn tanio — dyna sut mae’n cyrraedd eich CRM.

Mae galw ddwywaith gyda’r un ID yn ddiogel. Daw’r ymateb yn ôl gyda "changed": false ac ni anfonir webhook. Nid yw archeb ailadroddus yn creu ail ddarpar gwsmer.
StatwsPryd
400Maes coll, user_id dros 128 nod neu â nodau rheoli ynddo. Rydym yn gwrthod yn hytrach na chwtogi — nid yw ID wedi’i fyrhau’n dawel yn paru â dim yn eich CRM ac mae’n dal i edrych fel llwyddiant.
404Nid yw’r sesiwn yn bodoli neu nid yw’n perthyn i’ch gweithle. Yr un ateb yn fwriadol ar gyfer y ddau.
403Nid yw cynllun y gweithle yn cynnwys yr API.

6. Webhooks: Dilysu’r Llofnod

Ffurfweddir webhooks fesul prosiect o dan Integreiddiadau, lle cewch hefyd y gyfrinach lofnodi. Mae pob danfoniad yn cynnwys y penynnau hyn:

PennynYstyr
X-MousePlayer-EventEnw’r digwyddiad, e.e. session_identified
X-MousePlayer-TimestampEiliadau Unix — rhan o’r testun wedi’i lofnodi
X-MousePlayer-Attempt1 ar y cynnig cyntaf, yn uwch ar ailgeisiadau
X-MousePlayer-Signaturesha256=<hex>

Mae’r llofnod yn HMAC-SHA256 dros timestamp + "." + raw body, gyda chyfrinach lofnodi eich prosiect fel allwedd.

// 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');
Llofnodwch dros y corff crai, cyn unrhyw ddosrannu JSON. Mae ailgyfresoli’n newid trefn allweddi a gofod gwyn, ac ni fydd y llofnod byth yn cyfateb. Gwrthodwch hefyd unrhyw beth y mae ei stamp amser yn fwy nag ychydig funudau oed — dyna ddiben y stamp amser.

Danfon ac Ailgeisiadau

Ailgeisir danfoniad aflwyddiannus ar ôl 1 munud, 5 munud, 15 munud, 1 awr a 6 awr, yna rhoddir y gorau iddo. 4xx yw’r ymatebion, ac eithrio 408 a 429, nad ydynt yn cael eu hailgeisio — maent yn dweud "nid fel hyn", nid "nid ar hyn o bryd". Ymatebwch gyda 2xx yn gyflym a gwnewch y gwaith wedyn; daw amser danfon i ben ar ôl 10 eiliad.

Digwyddiadau Sydd ar Gael

DigwyddiadYn tanio
session_identifiedPan fydd sesiwn yn cael ID cwsmer am y tro cyntaf — o’r porwr neu o’r API
session_endedUnwaith, pan fydd y sesiwn yn cau
goal_reachedUnwaith fesul sesiwn, pan fydd digwyddiad personol yn cyflawni un o’ch nodau. Dim ond nodau o’r math ‘event’ — ni werthusir nodau URL, hyd, golwg tudalen a thwndis. Yn cynnwys goal_id, goal_name, goal_value a currency.
high_value_sessionPan fydd ymwelydd yn croesi trothwy gwerth y prosiect hwn am y tro cyntaf ar ddiwrnod penodol. Mae’r trothwy wedi’i ddeillio o ddosbarthiad eich sgoriau eich hun (90fed canradd y 90 diwrnod diwethaf), nid yn rhif sefydlog, ac nid yw’n bodoli nes bod o leiaf 20 o ymwelwyr wedi’u sgorio. Yn cynnwys visitor_id, value_score, threshold a’r sesiwn fwyaf gwerth ei gwylio o’r diwrnod hwnnw.
funnel_dropoffAr ddiwedd sesiwn a aeth i mewn i un o’ch twndisau ond na’i gorffennodd. Yn enwi’r cam y stopiodd arno (dropped_at). Absenoldeb digwyddiad yw ymadawiad, felly dim ond ar ôl i’r sesiwn ddod i ben y gellir ei wybod. Nid yw sesiynau na aethant i mewn i’r twndis erioed yn ymadawiadau ac nid ydynt yn tanio.
high_friction_sessionUnwaith fesul sesiwn, pan fydd ei sgôr ffrithiant yn cyrraedd y trothwy am y tro cyntaf (60 o 100 yn ddiofyn). Yn cynnwys friction_score, y signalau y tu ôl iddo (reasons) a’r signal a groesodd y llinell (trigger).
element_brokenUnwaith, pan nad yw elfen wedi’i thracio wedi canfod dim mewn unrhyw olwg tudalen wedi’i gwirio ers sawl diwrnod — ar ôl ail-lansio fel arfer. Dim ond ar ôl i’r marc gyfateb a thorri unwaith eto y mae’n tanio eto. Nid yw’r digwyddiad hwn yn perthyn i unrhyw sesiwn: mae session_id a session_url yn null, mae link_url yn agor y marc yn lle hynny, ac mae subject_id yn enwi’r marc — yr un fath ar gyfer pob fersiwn, felly mae detholwr newydd sy’n torri eto yn ymuno â’r digwyddiad agored. Yn cynnwys rule_id, rule_name, selector, page, checked_page_views, window_days a last_matched. Dim data ymwelwyr.
element_recoveredYr hysbysiad bod popeth yn iawn ar gyfer element_broken: unwaith y bydd y marc yn canfod elfen eto mewn gwirionedd — nid yw rhy ychydig o olygon tudalen yn ddigon. Dim ond os aeth element_broken allan drwy webhook y’i hanfonir, ac nid oes ganddo switsh ei hun: mae tanysgrifio i element_broken yn ei gynnwys. Yr un subject_id, felly mae PagerDuty yn datrys y digwyddiad ac Opsgenie yn cau’r rhybudd. Yn cynnwys matched_page_views ac checked_page_views yn ychwanegol.
anomaly_detectedUnwaith y dydd, pan oedd ddoe’n amlwg yn wahanol i’r 28 diwrnod blaenorol: llawer llai neu lawer mwy o sesiynau, cyfradd nod wedi gostwng, mwy o sesiynau â ffrithiant neu wallau JS. Mae’r un metrig a chyfeiriad yn aros yn dawel am wythnos (addasadwy). Nid yw’r digwyddiad hwn yn perthyn i unrhyw sesiwn: mae session_id a session_url yn null, mae link_url yn agor trosolwg y prosiect, ac mae subject_id yn enwi metrig, cyfeiriad a diwrnod. Yn cynnwys metric (sessions, goal_rate, friction_rate, js_error_rate, lcp_p75, inp_p75, cls_p75), direction, day, value, expected, sessions, robust_z, z_score a summary darllenadwy ac hint. Dim data ymwelwyr. Ar gyfer Web Vitals, mae measurements yn disodli sessions, ac mae page (gwag ar gyfer y wefan gyfan) a device (desktop neu mobil) yn dweud ble y digwyddodd; link_url wedyn yn agor y tab Web Vitals.
rage_clickAr glic dicter wedi’i ganfod
error_detectedAr eithriad pen blaen
ceTanysgrifiad cyfunol ar gyfer eich digwyddiadau personol eich hun. Nid yw’n cynnwys y digwyddiadau uchod — mae gan y rheini eu switshis eu hunain.

7. Gwallau & Codau Statws

StatwsYstyr
200Llwyddiant.
401Allwedd API ar goll, wedi’i chamffurfio neu wedi’i dirymu.
404Nid yw’r prosiect neu’r sesiwn y gofynnwyd amdano yn bodoli, neu nid yw’n perthyn i’ch gweithle.
429Wedi mynd dros y terfyn cyfradd — rydych yn anfon mwy na 60 cais/munud gyda’r allwedd hon.
403Nid yw cynllun y gweithle yn cynnwys y REST API. Mae’r neges yn enwi’r cynllun gofynnol a’r un presennol.

8. Nodiadau Diogelwch

  • Ni all allweddi darllen yn unig (mp_ro_) newid dim. Dim ond atodi IDs cwsmeriaid y gall allweddi ysgrifennu (mp_rw_) ei wneud; ni all unrhyw allwedd ddileu data nac allforio data ailchwarae crai.
  • Caiff pob cais ei gwmpasu’n awtomatig i weithle’r allwedd ei hun — nid oes ffordd i drosglwyddo ID gweithle gwahanol a gweld data rhywun arall.
  • Dirymwch allwedd ar unrhyw adeg o /api-keys; daw dirymu i rym ar unwaith.
  • Triniwch eich allwedd API fel cyfrinair. Os gwnewch ei chynnwys ar ddamwain mewn commit i ystorfa gyhoeddus, dirymwch hi ar unwaith a chreu un newydd.

Tudalennau Digwyddiadau Cyfyngedig (API v1, 14 Hydref 2026)

Mae GET /api/v1/sessions/{session_id}/events yn dychwelyd hyd at 100 o ddigwyddiadau yn ddiofyn. Gosodwch per_page i gyfanrif o 1 i 100. Dilynwch pagination.next_cursor drwy anfon cursor heb ei newid ar y cais nesaf; cadwch yr un sesiwn a gweithle. Trefnir digwyddiadau yn ôl created_at ac event_id. Mae cyrchwyr wedi’u llofnodi a’u rhwymo i’r sesiwn a’r gweithle hynny. Ni ddychwelir cyfanswm cyfrif na thudalen rifol.

Mae’r arae data a’r map params presennol yn aros ar gael. pagination.returned yw’r gwir nifer a ddychwelwyd; mae pagination.has_more yn nodi tudalen arall. Mae next_cursor yn null ar ôl gorffen. Mae ymateb wedi’i gapio ar 524288 beit, felly gall tudalen gynnwys llai o ddigwyddiadau na per_page. Fesul digwyddiad, dychwelir hyd at 128 o resi paramedrau; mae params_truncated yn true os oes mwy. Mae paramedrau llinynnol unigol yn cadw terfyn cronfa ddata o 255 nod. Nid yw paramedrau wedi’u cwtogi ar gael drwy’r pwynt terfyn hwn. Nid yw lleihau per_page yn codi cap y paramedrau.

Mae meintiau tudalen annilys, cyrchwyr wedi’u newid a chyrchwyr ar gyfer sesiwn/gweithle arall yn dychwelyd 400. Mae data digwyddiad unigol rhy fawr yn dychwelyd 413. Mae gwiriadau mynediad presennol yn dal i ddychwelyd 401, 403, 404 neu 409 fel y bo’n briodol.

Mae’r terfyn yn aros yn 60 cais wedi’i ddilysu fesul allwedd API y funud. Mae dihysbyddu’n dychwelyd 429 gyda Retry-After: 60. Os nad yw Redis neu’r cyfyngwr ar gael, mae ceisiadau’n dychwelyd 503 gyda Retry-After: 5; ni chânt eu derbyn heb derfyn byth. Parchwch Retry-After ac ychwanegwch oedi ar hap; peidiwch ag ailgeisio mewn dolen dynn. Mae methiannau cronfa ddata digwyddiadau hefyd yn dychwelyd 503. Nid yw cyrchwyr yn rhewi ciplun: gall mewnosodiadau cydamserol â stampiau amser hŷn ofyn am sgan newydd.

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

Mae /api/v1/native yn llwybr rheoli pen ôl ar gyfer rhagolwg SDK brodorol yn Dev yn unig. Mae’n aros wedi’i analluogi mewn cynhyrchu. Mae angen cwmpas darllen ar allweddi Bearer y pen ôl ar gyfer list/replay a chwmpas ysgrifennu ar gyfer register/grant/delete/disable. Mae gwiriadau argaeledd rhagolwg brodorol ychwanegol yn berthnasol. Peidiwch byth â mewnosod allweddi API gweithle parhaol mewn ap symudol.