Opinbert API & API-lyklar

Forritanlegur aðgangur að vinnusvæðinu þínu — lestu verkefni, lotur, sérsniðna atburði og hluta og tengdu viðskiptavinaauðkenni við lotur — varinn með API-lyklum afmörkuðum við vinnusvæði.

1. Yfirlit

MousePlayer API gerir þér kleift að sækja gögn úr vinnusvæðinu í eigin stjórnborð, gagnavöruhús eða innri verkfæri. Fyrir utan tengingu viðskiptavinaauðkenna við lotur (identify, þarf lykil með skrifheimild, sjá Gildissvið lykla) er það aðeins til lestrar: ekki er hægt að breyta eða eyða gögnum með API.

  • Grunnvefslóð: https://www.mouseplayer.com/api/v1/
  • Öll svör eru JSON.
  • Hver beiðni er auðkennd með API-lykli og sjálfkrafa afmörkuð við vinnusvæði hans — lykill eins vinnusvæðis getur aldrei séð gögn annars, ekki einu sinni fyrir slysni.
  • Heildarendurspilun lotunnar (músarhreyfingar, DOM-skyndimyndir) er ekki aðgengileg í API. Þú færð lotulýsigögn, síðuskoðanir, sérsniðna atburði og hluta — nóg til að byggja skýrslur og stjórnborð án þess að flytja hráa endurspilunargagnahleðslu á milli.

2. Auðkenning

Búðu til og stjórnaðu API-lyklum undir API-lyklar í reikningsvalmyndinni (/api-keys). Aðeins eigendur og stjórnendur vinnusvæðis geta búið til eða afturkallað lykla.

Haltu lyklinum leyndum. Hann veitir lesaðgang að öllu á vinnusvæðinu. Allur lykillinn er sýndur nákvæmlega einu sinni, strax eftir stofnun — geymdu hann í lykilorðastjóra eða leyndarmálageymslu. Ef þú týnir honum skaltu afturkalla hann og búa til nýjan.

Sendu lykilinn sem Bearer-tákn í hausnum Authorization í hverri beiðni:

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

Lyklar sem vantar, eru rangt sniðnir eða afturkallaðir fá svarið 401 :

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

Áskriftarkrafa

REST API er hluti af Business og Enterprise áskriftum. Áskriftin er tekin frá eiganda vinnusvæðisins svo boðnir teymismeðlimir njóta hennar. Athugunin keyrir í hverri beiðnien ekki aðeins við stofnun lykils — ef áskrift vinnusvæðis lækkar hætta núverandi lyklar að virka og skila 403.

Gildissvið lykla

Hver lykill ber gildissvið í eigin forskeyti svo sjá má hlutverk hans beint af honum — í .env, í verkbeiðni eða í skjáhermi.

ForskeytiMerking
mp_ro_Aðeins lestur. Les verkefni, lotur, atburði og hluta. Getur engu breytt.
mp_rw_Lestur og skrif. Allt að ofan ásamt tengingu viðskiptavinaauðkenna með identify-endapunktinum.
Veldu gildissvið við stofnun lykils; sjálfgefið er aðeins lestur. Leslykill á skrifendapunkti skilar 403 með skilaboðum sem nefna gerð lykils og kröfu endapunkts. Gildissviðinu er ekki hægt að breyta síðar — búðu til nýjan lykil og afturkallaðu þann gamla.

3. Beiðnamörk

Hver API-lykill er takmarkaður við 60 beiðnir á mínútuí rúllandi tímaglugga. Þegar farið er yfir mörkin fá beiðnir svarið 429 þar til glugginn losnar:

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

Ertu að byggja eitthvað sem þarf hærri mörk? Hafðu samband í gegnum Aðstoð og segðu okkur frá notkuninni.

4. Endapunktar

GET/api/v1/projects

Listar öll verkefni (rakin vefsvæði) á vinnusvæðinu.

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

Listar gestalotur skráðar fyrir verkefni, nýjast fyrst. Síðuskipt.

FyrirspurnarviðfangLýsing
pageSíðunúmer, sjálfgefið 1.
per_pageNiðurstöður á síðu, sjálfgefið 25, mest 100.
sinceAðeins lotur sem hefjast þennan dag eða síðar (YYYY-MM-DD).
untilAðeins lotur sem hefjast þennan dag eða fyrr.
{ "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}

Lýsigögn einnar lotu ásamt síðuskoðunum hennar. Heildargagnahleðsla endurspilunar er vísvitandi undanskilin — notaðu spilarann í stjórnborðinu fyrir hana.

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

Sérsniðnir atburðir í lotu (sömu atburðir og þú sendir með mp('event', ...)), ásamt viðföngum þeirra.

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

Listar gestahluta skilgreinda fyrir verkefni (bæði verkefnisbundna og fyrir allt vinnusvæðið).

{ "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. Tengja viðskiptavinaauðkenni úr bakendanum

Vafrinn veit oft ekki hver situr þar. Í B2B-vöru er auðkennið ákveðið eftir innskráningu — í bakendanum þínum. Í verslun við pöntunarstaðfestingu. Endapunkturinn er fyrir nákvæmlega þá stund.

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

Auðkennið birtist þá í lotulistanum og er leitanlegt þar og vefkrókurinn session_identified virkjast — þannig berst það í CRM-kerfið.

Óhætt er að kalla tvisvar með sama auðkenni. Svarið kemur með "changed": false og enginn vefkrókur er sendur. Endurtekin pöntun býr ekki til annað viðskiptavinsefni.
StaðaHvenær
400Reit vantar, user_id er lengra en 128 stafir eða inniheldur stýristafi. Við höfnum í stað styttingar — hljóðlega stytt auðkenni samsvarar engu í CRM-kerfinu en lítur samt út sem árangur.
404Lotan er ekki til eða tilheyrir ekki vinnusvæðinu þínu. Viljandi sama svar við hvoru tveggja.
403Áskrift vinnusvæðisins inniheldur ekki API.

6. Vefkrókar: sannreyna undirskrift

Vefkrókar eru stilltir fyrir hvert verkefni undir Samþættingarþar sem þú finnur líka undirritunarleyndarmálið. Hver afhending ber þessa hausa:

HausMerking
X-MousePlayer-EventHeiti atburðar, t.d. session_identified
X-MousePlayer-TimestampUnix-sekúndur — hluti undirritaða textans
X-MousePlayer-Attempt1 í fyrstu tilraun, hærra við endurtekningar
X-MousePlayer-Signaturesha256=<hex>

Undirskriftin er HMAC-SHA256 af timestamp + "." + raw bodymeð undirritunarleyndarmáli verkefnisins sem lykli.

// 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');
Undirritaðu hrátt innihaldið áður en JSON er þáttað. Endurraðritun breytir lyklaröð og bilum og undirskriftin passar aldrei. Hafnaðu líka öllu með tímastimpil eldri en nokkrar mínútur — til þess er tímastimpillinn.

Afhending og endurtekningar

Misheppnuð afhending er endurtekin eftir 1 mín, 5 mín, 15 mín, 1 klst og 6 klstog síðan gefin upp. 4xx svör önnur en 408 og 429 eru ekki endurtekin — þau segja "ekki svona" en ekki "ekki núna". Svaraðu 2xx hratt og vinndu verkið eftir á; afhending rennur út eftir 10 sekúndur.

Tiltækir atburðir

AtburðurVirkjast
session_identifiedÞegar lota fær fyrst viðskiptavinaauðkenni — úr vafra eða API
session_endedEinu sinni þegar lotu lýkur
goal_reachedEinu sinni í lotu þegar sérsniðinn atburður uppfyllir eitt markmiða þinna. Aðeins markmið af tegundinni „event“ — vefslóðar-, lengdar-, síðuskoðunar- og trektarmarkmið eru ekki metin. Inniheldur goal_id, goal_name, goal_value og currency.
high_value_sessionÞegar gestur fer fyrst yfir gildisþröskuld þessa verkefnis á tilteknum degi. Þröskuldurinn er leiddur af þinni eigin stigadreifingu (90. hundraðshluti síðustu 90 daga), ekki föst tala og verður ekki til fyrr en að minnsta kosti 20 gestir hafa fengið stig. Inniheldur visitor_id, value_score, threshold og spilanlegustu lotu þess dags.
funnel_dropoffVið lok lotu sem fór inn í eina trektina þína en lauk henni ekki. Nefnir skrefið þar sem hún stöðvaðist (dropped_at). Brottfall er skortur á atburði svo það er aðeins vitað þegar lotu er lokið. Lotur sem fóru aldrei í trektina eru ekki brottfall og virkja ekki.
high_friction_sessionEinu sinni í lotu þegar núningsstig hennar nær fyrst þröskuldinum (sjálfgefið 60 af 100). Inniheldur friction_score, merkin að baki því (reasons) og merkið sem fór yfir mörkin (trigger).
element_brokenEinu sinni þegar rakið stak hefur ekki fundið neitt í neinni athugaðri síðuskoðun í nokkra daga — yfirleitt eftir endurútgáfu. Virkjast aðeins aftur eftir að merkingin hefur samsvarað og brotnað á ný. Þessi atburður tilheyrir engri lotu: session_id og session_url eru null, link_url opnar merkinguna í staðinn og subject_id nefnir merkinguna — sú sama fyrir allar útgáfur svo nýr valdi sem bilar aftur tengist opna atvikinu. Inniheldur rule_id, rule_name, selector, page, checked_page_views, window_days og last_matched. Engin gestagögn.
element_recoveredTilkynning um að allt sé í lagi fyrir element_broken: einu sinni þegar merkingin finnur í raun stak aftur — of fáar síðuskoðanir nægja ekki. Aðeins sent ef element_broken fór út með vefkróki og hefur engan eigin rofa: áskrift að element_broken inniheldur það. Sama subject_idsvo PagerDuty leysir atvikið og Opsgenie lokar viðvöruninni. Inniheldur matched_page_views og checked_page_views til viðbótar.
anomaly_detectedEinu sinni á dag þegar gærdagurinn vék skýrt frá 28 dögunum á undan: miklu færri eða fleiri lotur, lægra markmiðahlutfall, fleiri lotur með núningi eða JS-villum. Sami mælikvarði og stefna þegja í viku (stillanlegt). Þessi atburður tilheyrir engri lotu: session_id og session_url eru null, link_url opnar verkefnisyfirlitið og subject_id nefnir mælikvarða, stefnu og dag. Inniheldur metric (sessions, goal_rate, friction_rate, js_error_rate, lcp_p75, inp_p75, cls_p75), direction, day, value, expected, sessions, robust_z, z_score og læsilegt summary og hint. Engin gestagögn. Fyrir Web Vitals kemur measurements í stað sessionsog page (autt fyrir allt vefsvæðið) og device (desktop eða mobil) segja hvar þetta gerðist; link_url opnar þá Web Vitals-flipann.
rage_clickVið greindan reiðismell
error_detectedVið undantekningu viðmóts
ceSameiginleg áskrift að þínum eigin sérsniðnu atburðum. Hún inniheldur ekki atburðina hér að ofan — þeir hafa eigin rofa.

7. Villur & stöðukóðar

StaðaMerking
200Tókst.
401API-lykil vantar, hann er rangt sniðinn eða afturkallaður.
404Umbeðið verkefni eða lota er ekki til eða tilheyrir ekki vinnusvæðinu þínu.
429Beiðnamörkum náð — þú sendir fleiri en 60 beiðnir á mínútu með þessum lykli.
403Áskrift vinnusvæðis inniheldur ekki REST API. Skilaboðin nefna bæði nauðsynlega og núverandi áskrift.

8. Öryggisatriði

  • Leslyklar (mp_ro_) geta engu breytt. Skriflyklar (mp_rw_) geta aðeins tengt viðskiptavinaauðkenni; enginn lykill getur eytt gögnum eða flutt út hrá endurspilunargögn.
  • Hver beiðni er sjálfkrafa afmörkuð við eigið vinnusvæði lykilsins — engin leið er að senda annað vinnusvæðisauðkenni og sjá gögn annarra.
  • Afturkallaðu lykil hvenær sem er frá /api-keys; afturköllun tekur strax gildi.
  • Farðu með API-lykil eins og lykilorð. Ef þú setur hann óvart í opinbert kóðasafn skaltu afturkalla hann strax og búa til nýjan.

Afmarkaðar atburðasíður (API v1, 14. október 2026)

GET /api/v1/sessions/{session_id}/events skilar sjálfgefið allt að 100 atburðum. Stilltu per_page á heiltölu frá 1 til 100. Fylgdu pagination.next_cursor með því að senda cursor óbreytt í næstu beiðni; haltu sömu lotu og vinnusvæði. Atburðum er raðað eftir created_at og event_id. Bendlar eru undirritaðir og bundnir við þá lotu og vinnusvæði. Enginn heildarfjöldi eða töluleg síða er skilað.

Núverandi data-fylki og params-vörpun eru áfram tiltæk. pagination.returned er raunverulegur skilafjöldi; pagination.has_more merkir að önnur síða sé til. next_cursor er null þegar lokið er. Svar er takmarkað við 524288 bæti svo síða getur haft færri atburði en per_page. Mest 128 viðfangalínur eru skilaðar fyrir hvern atburð; params_truncated er true ef fleiri eru til. Einstök strengjaviðföng halda gagnagrunnsmörkunum 255 stöfum. Afskorin viðföng eru ekki tiltæk í þessum endapunkti. Lækkun per_page hækkar ekki viðfangamörkin.

Ógildar síðustærðir, breyttir bendlar og bendlar annarrar lotu/vinnusvæðis skila 400. Of stór gögn einstaks atburðar skila 413. Núverandi aðgangsathuganir skila áfram 401, 403, 404 eða 409 eftir því sem við á.

Mörkin eru áfram 60 auðkenndar beiðnir á API-lykil á mínútu. Fullnýting skilar 429 með Retry-After: 60. Ef Redis eða takmörkunarkerfið er ekki tiltækt skila beiðnir 503 með Retry-After: 5; þær eru aldrei samþykktar án marka. Virtu Retry-After og bættu við slembinni bið; ekki endurtaka í þéttri lykkju. Bilanir atburðagagnagrunns skila líka 503. Bendlar frysta ekki skyndimynd: samtímis innsetningar með eldri tímastimplum geta krafist nýrrar skönnunar.

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 er bakendastýringarleið aðeins í Dev fyrir SDK-forskoðun appa. Hún er áfram óvirk í framleiðslu. Bearer-lyklar bakenda þurfa lesheimild fyrir list/replay og skrifheimild fyrir register/grant/delete/disable. Frekari athuganir á tiltækileika appforskoðunar gilda. Aldrei fella varanlega API-lykla vinnusvæðis inn í farsímaapp.