Avalik API & API võtmed
Programmiline juurdepääs teie tööruumile — projektide, seansside, kohandatud sündmuste ja segmentide lugemine ning kliendi-ID-de lisamine seanssidele — kaitstud tööruumiga piiratud API võtmetega.
1. Ülevaade
MousePlayeri API võimaldab tuua andmeid tööruumist teie enda töölaudadele, andmelattu või sisemistesse tööriistadesse. Peale kliendi-ID-de lisamise seanssidele (identify, vajab kirjutusõigusega võtit, vt võtmete õigusi) on see kirjutuskaitstud: API kaudu ei saa andmeid muuta ega kustutada.
- Baas-URL:
https://www.mouseplayer.com/api/v1/ - Kõik vastused on JSON-vormingus.
- Iga päring autenditakse API võtmega ja piiratakse automaatselt tööruumiga, millele võti kuulub — ühe tööruumi võti ei saa kunagi näha teise tööruumi andmeid, isegi kogemata.
- Täielikku seansi taasesituse salvestist (hiireliigutusi, DOM-i hetktõmmiseid) ei avaldata API kaudu. Saate seansi metaandmed, lehevaatamised, kohandatud sündmused ja segmendid — piisavalt aruannete ja töölaudade loomiseks ilma taasesituse toorandmeid ringi saatmata.
2. Autentimine
Looge ja hallake API võtmeid oma konto menüü jaotises API võtmed (/api-keys). Võtmeid saavad luua ja tühistada ainult tööruumi omanikud ja administraatorid.
Hoidke võti saladuses. See annab lugemisõiguse kõigele teie tööruumis. Täielikku võtit näidatakse täpselt üks kord, kohe pärast loomist — talletage see paroolihalduris või saladuste hoidlas. Kadumise korral tühistage võti ja looge uus.
Saatke võti Bearer-pääsutõendina iga päringu päises Authorization:
Puuduva, vigase või tühistatud võtme korral tagastatakse vastus 401:
Nõutav pakett
REST API kuulub pakettidesse Business ja Enterprise. Arvesse läheb tööruumi omaniku pakett, seega pärivad selle ka kutsutud meeskonnaliikmed. Kontroll tehakse iga päringu korral, mitte ainult võtme loomisel — kui tööruum viiakse madalamasse paketti, lakkavad olemasolevad võtmed töötamast ja tagastavad vastuse 403.
Võtmete õigused
Iga võtme õigused kajastuvad selle prefiksis, mistõttu piisab võtmele pilguheitmisest — kas .env, pöördumise või terminali sees.
| Prefiks | Tähendus |
|---|---|
mp_ro_ | Ainult lugemine. Loeb projekte, seansse, sündmusi ja segmente. Ei saa midagi muuta. |
mp_rw_ | Lugemine ja kirjutamine. Kõik eelnev ning lisaks kliendi-ID-de lisamine identify-lõpp-punkti kaudu. |
403 koos sõnumiga, mis nimetab võtme õigused ja lõpp-punkti nõuded. Õigusi ei saa hiljem muuta — looge uus võti ja tühistage vana.3. Päringusageduse piirangud
Iga API võtme piirang on 60 päringut minutis, arvestatuna libisevas ajaaknas. Piiri ületamisel saavad päringud vastuse 429 kuni ajaaken vabaneb:
Kas ehitate midagi, mis vajab kõrgemat piirangut? Võtke ühendust kasutajatoega ja kirjeldage oma kasutusjuhtu.
4. Lõpp-punktid
GET/api/v1/projects
Loetleb kõik teie tööruumi projektid (jälgitavad ressursid).
GET/api/v1/projects/{channelid}/sessions
Loetleb projekti salvestatud külastajaseansid, uusimad eespool. Toetab lehekülgedeks jaotamist.
| Päringuparameeter | Kirjeldus |
|---|---|
page | Lehekülje number, vaikimisi 1. |
per_page | Tulemuste arv lehel, vaikimisi 25, maksimaalselt 100. |
since | Ainult seansid, mis algavad sellel kuupäeval või hiljem (YYYY-MM-DD). |
until | Ainult seansid, mis algavad sellel kuupäeval või varem. |
GET/api/v1/sessions/{session_id}
Ühe seansi metaandmed koos lehevaatamistega. Täielikud taasesituse andmed on teadlikult välja jäetud — kasutage nende vaatamiseks töölaua mängijat.
GET/api/v1/sessions/{session_id}/events
Seansi jooksul käivitunud kohandatud sündmused (samad, mille saadate kutsega mp('event', ...)) koos nende parameetritega.
GET/api/v1/projects/{channelid}/segments
Loetleb projekti jaoks määratud külastajasegmendid (nii projektipõhised kui ka kogu tööruumi segmendid).
5. Kliendi-ID lisamine teie taustasüsteemist
Brauser ei tea sageli, kes seda kasutab. B2B-tootes selgub identiteet pärast sisselogimist — teie taustasüsteemis. Poes selgub see tellimuse kinnitamisel. See lõpp-punkt on mõeldud täpselt selleks hetkeks.
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 ilmub seejärel seansside loendisse, on seal otsitav ning käivitub session_identified veebihaak — nii jõuab see teie CRM-i.
"changed": false ning veebihaaki ei saadeta. Korduv tellimus ei loo teist müügivihjet.| Olek | Millal |
|---|---|
400 | Puuduv väli, user_id pikkus üle 128 märgi või juhtmärgid selle sees. Lükkame tagasi, mitte ei kärbi — vaikselt lühendatud ID ei vasta teie CRM-is millelegi, kuid näib siiski õnnestumisena. |
404 | Seanssi pole olemas või see ei kuulu teie tööruumi. Mõlemal juhul on vastus teadlikult sama. |
403 | Tööruumi pakett ei sisalda API-t. |
6. Veebihaagid: allkirja kontrollimine
Veebihaagid seadistatakse iga projekti jaotises Integratsioonid, kust leiate ka allkirjastamissaladuse. Iga edastus sisaldab järgmisi päiseid:
| Päis | Tähendus |
|---|---|
X-MousePlayer-Event | Sündmuse nimi, näiteks session_identified |
X-MousePlayer-Timestamp | Unixi sekundid — osa allkirjastatud tekstist |
X-MousePlayer-Attempt | Esimesel katsel 1, korduskatsetel suurem |
X-MousePlayer-Signature | sha256=<hex> |
Allkiri on HMAC-SHA256, mille sisend on timestamp + "." + raw body ja võti teie projekti allkirjastamissaladus.
// 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');
Edastus ja korduskatsed
Ebaõnnestunud edastust proovitakse uuesti pärast 1 minutit, 5 minutit, 15 minutit, 1 tundi ja 6 tundi, seejärel loobutakse. 4xx vastuseid, välja arvatud 408 ja 429, ei proovita uuesti — need ütlevad "mitte sel viisil", mitte "mitte praegu". Vastake koodiga 2xx kiiresti ja tehke töö hiljem; edastus aegub 10 sekundi pärast.
Saadaolevad sündmused
| Sündmus | Käivitub |
|---|---|
session_identified | Kui seanss saab esimest korda kliendi-ID — brauserist või API kaudu |
session_ended | Üks kord, kui seanss sulgub |
goal_reached | Üks kord seansi jooksul, kui kohandatud sündmus täidab mõne teie eesmärgi. Ainult tüüpi "event" eesmärgid — URL-i, kestuse, lehevaatamiste ja lehtri eesmärke ei hinnata. Sisaldab välju goal_id, goal_name, goal_value ja currency. |
high_value_session | Kui külastaja ületab sellel päeval esimest korda selle projekti väärtuslävendi. Lävend tuletatakse teie enda skooride jaotusest (viimase 90 päeva 90. protsentiil), mitte fikseeritud arvust, ning seda pole olemas enne, kui vähemalt 20 külastajat on hinnatud. Sisaldab välju visitor_id, value_score, threshold ja selle päeva kõige vaatamisväärsemat seanssi. |
funnel_dropoff | Seansi lõpus, kui see sisenes mõnda teie lehtrisse, kuid ei lõpetanud seda. Nimetab sammu, kus teekond katkes (dropped_at). Katkestamine tähendab sündmuse puudumist, seega saab selle tuvastada alles seansi lõppedes. Seansid, mis lehtrisse ei sisenenud, pole katkestamised ega käivita sündmust. |
high_friction_session | Üks kord seansi jooksul, kui hõõrdumisskoor jõuab esimest korda lävendini (vaikimisi 60 võimalikust 100-st). Sisaldab skoori friction_score, selle aluseks olevaid signaale (reasons) ja lävendi ületanud signaali (trigger). |
element_broken | Üks kord, kui jälgitav element pole mitme päeva jooksul üheski kontrollitud lehevaatamises vastet leidnud — tavaliselt pärast saidi uuendamist. Käivitub uuesti alles siis, kui märgistus on vahepeal vaste leidnud ja taas katki läinud. See sündmus ei kuulu ühelegi seansile: session_id ja session_url on null, link_url avab selle asemel märgistuse ning subject_id nimetab märgistuse — kõigi versioonide puhul sama, et uus uuesti katki läinud valija liituks avatud intsidendiga. Sisaldab välju rule_id, rule_name, selector, page, checked_page_views, window_days ja last_matched. Külastajaandmeid pole. |
element_recovered | Taastumisteade sündmusele element_broken: üks kord, kui märgistus leiab päriselt taas elemendi — liiga vähestest lehevaatamistest ei piisa. Saadetakse ainult siis, kui element_broken saadeti veebihaagiga, ning sellel pole oma lülitit: sündmuse element_broken tellimine hõlmab ka seda. Sama subject_id, nii et PagerDuty lahendab intsidendi ja Opsgenie sulgeb hoiatuse. Sisaldab lisaks välju matched_page_views ja checked_page_views. |
anomaly_detected | Üks kord päevas, kui eilne päev erines selgelt eelnenud 28 päevast: palju vähem või rohkem seansse, langenud eesmärgimäär, rohkem hõõrdumise või JS-vigadega seansse. Sama mõõdik ja suund vaikivad nädal aega (muudetav). See sündmus ei kuulu ühelegi seansile: session_id ja session_url on null, link_url avab projekti ülevaate ning subject_id nimetab mõõdiku, suuna ja päeva. Sisaldab välju metric (sessions, goal_rate, friction_rate, js_error_rate, lcp_p75, inp_p75, cls_p75), direction, day, value, expected, sessions, robust_z, z_score ning loetavaid välju summary ja hint. Külastajaandmeid pole. Web Vitalsi korral measurements asendab välja sessions ning page (kogu saidi puhul tühi) ja device (desktop või mobil) ütlevad, kus see juhtus; link_url avab siis Web Vitalsi vahekaardi. |
rage_click | Tuvastatud raevuklõpsu korral |
error_detected | Esiliidese erindi korral |
ce | Kõigi teie enda kohandatud sündmuste ühine tellimus. See ei hõlma ülaltoodud sündmusi — neil on oma lülitid. |
7. Vead & olekukoodid
| Olek | Tähendus |
|---|---|
200 | Õnnestus. |
401 | Puuduv, vigane või tühistatud API võti. |
404 | Soovitud projekti või seanssi pole olemas või see ei kuulu teie tööruumi. |
429 | Päringusageduse piirang ületatud — saadate selle võtmega üle 60 päringu minutis. |
403 | Tööruumi pakett ei sisalda REST API-t. Sõnum nimetab nii nõutava kui ka praeguse paketi. |
8. Turvamärkused
- Ainult lugemiseks mõeldud võtmed (mp_ro_) ei saa midagi muuta. Kirjutusõigusega võtmed (mp_rw_) saavad ainult kliendi-ID-sid lisada; ükski võti ei saa andmeid kustutada ega taasesituse toorandmeid eksportida.
- Iga päring piiratakse automaatselt võtme enda tööruumiga — teise tööruumi ID edastamisega pole võimalik kellegi teise andmeid näha.
- Võtme saate igal ajal tühistada lehel /api-keys; tühistamine jõustub kohe.
- Käsitlege API võtit nagu parooli. Kui lisate selle kogemata avalikku repositooriumi, tühistage see kohe ja looge uus.
Piiratud mahuga sündmuselehed (API v1, 14. oktoober 2026)
GET /api/v1/sessions/{session_id}/events tagastab vaikimisi kuni 100 sündmust. Määrake per_page täisarvuks vahemikus 1 kuni 100. Järgige välja pagination.next_cursor, saates cursor järgmises päringus muutmata kujul; säilitage sama seanss ja tööruum. Sündmused järjestatakse väljade created_at ja event_id järgi. Kursorid on allkirjastatud ning seotud selle seansi ja tööruumiga. Koguarvu ega arvulist leheküljenumbrit ei tagastata.
Olemasolev data massiiv ja params vastendus jäävad kättesaadavaks. pagination.returned on tegelikult tagastatud kirjete arv; pagination.has_more näitab järgmise lehe olemasolu. next_cursor on lõpetamisel null. Vastuse ülempiir on 524288 baiti, seega võib lehel olla vähem sündmusi kui per_page. Sündmuse kohta tagastatakse kuni 128 parameetririda; params_truncated on true, kui neid on rohkem. Üksikute stringiparameetrite andmebaasipiir jääb 255 märgiks. Kärbitud parameetrid pole selle lõpp-punkti kaudu saadaval. per_page vähendamine ei suurenda parameetrite ülempiiri.
Vigased lehesuurused, muudetud kursorid ja teise seansi või tööruumi kursorid tagastavad 400. Liiga mahukad üksiku sündmuse andmed tagastavad 413. Olemasolevad juurdepääsukontrollid tagastavad vastavalt olukorrale endiselt 401, 403, 404 või 409.
Piirang jääb 60 autenditud päringule API võtme kohta minutis. Selle ammendumisel tagastatakse 429 päisega Retry-After: 60. Kui Redis või piiraja pole saadaval, tagastatakse 503 päisega Retry-After: 5; päringuid ei lasta kunagi läbi ilma piiranguta. Järgige Retry-After väärtust ja lisage juhuslikult pikenev ooteaeg; ärge korrake päringuid tihedas tsüklis. Sündmuste andmebaasi tõrked tagastavad samuti 503. Kursorid ei külmuta hetktõmmist: samaaegsed lisamised vanemate ajatemplitega võivad nõuda uut läbivaatust.
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 on ainult arenduskeskkonna taustasüsteemi juhtmarsruut natiivse SDK eelvaate jaoks. Tootmiskeskkonnas jääb see keelatuks. Taustasüsteemi Bearer-võtmed vajavad loendi ja taasesituse jaoks lugemisõigust ning registreerimise, lubamise, kustutamise ja keelamise jaoks kirjutusõigust. Kehtivad täiendavad natiivse eelvaate saadavuse kontrollid. Ärge kunagi paigutage püsivaid tööruumi API võtmeid mobiilirakendusse.