Publiskais API & API atslēgas
Programmatiska piekļuve darbvietai — lasiet projektus, sesijas, pielāgotus notikumus un segmentus un piesaistiet sesijām klientu ID — ar darbvietas tvēruma API atslēgu aizsardzību.
1. Pārskats
MousePlayer API ļauj iegūt darbvietas datus saviem informācijas paneļiem, datu noliktavai vai iekšējiem rīkiem. Izņemot klientu ID piesaistīšanu sesijām (identify, vajadzīga atslēga ar rakstīšanas tvērumu, skatiet Atslēgu tvērumi), tas ir tikai lasāms: ar API nevar mainīt vai dzēst datus.
- Pamata URL:
https://www.mouseplayer.com/api/v1/ - Visas atbildes ir JSON.
- Katrs pieprasījums tiek autentificēts ar API atslēgu un automātiski ierobežots ar darbvietu, kurai atslēga pieder, — vienas darbvietas atslēga nekad nevar redzēt citas darbvietas datus, pat nejauši.
- Pilnais sesijas atskaņojuma ieraksts (peles kustības, DOM momentuzņēmumi) API nav pieejams. Saņemat sesiju metadatus, lapu skatījumus, pielāgotus notikumus un segmentus — pietiekami pārskatiem un informācijas paneļiem bez neapstrādāto atskaņojuma datu pārsūtīšanas.
2. Autentifikācija
Izveidojiet un pārvaldiet API atslēgas sava konta izvēlnes sadaļā API atslēgas (/api-keys). Atslēgas izveidot vai atsaukt drīkst tikai darbvietas īpašnieki un administratori.
Glabājiet atslēgu noslēpumā. Tā nodrošina lasīšanas piekļuvi visam jūsu darbvietā. Pilna atslēga tiek parādīta tieši vienu reizi, uzreiz pēc izveides, — glabājiet to paroļu pārvaldniekā vai noslēpumu glabātavā. Ja to pazaudējat, atsauciet un izveidojiet jaunu.
Sūtiet atslēgu kā Bearer žetonu katra pieprasījuma Authorization galvenē:
Trūkstošas, nepareizi veidotas vai atsauktas atslēgas saņem 401 atbildi:
Plāna prasība
REST API ir daļa no Business un Enterprise plāniem. Plāns tiek ņemts no darbvietas īpašnieka, tāpēc uzaicinātie komandas dalībnieki to pārmanto. Pārbaude notiek katrā pieprasījumā, ne tikai atslēgas izveides laikā, — ja darbvietas plāna līmenis tiek pazemināts, esošās atslēgas pārstāj darboties un atgriež 403.
Atslēgu tvērumi
Katras atslēgas tvērums ir tās prefiksā, lai pēc izskata vien varētu pateikt, ko tā dara, — .env, pieprasījumā vai terminālī.
| Prefikss | Nozīme |
|---|---|
mp_ro_ | Tikai lasīšana. Lasa projektus, sesijas, notikumus un segmentus. Neko nevar mainīt. |
mp_rw_ | Lasīšana un rakstīšana. Viss iepriekš minētais un klientu ID piesaistīšana ar identificēšanas galapunktu. |
403 ar paziņojumu, kas norāda atslēgas iespējas un galapunkta prasības. Tvērumu vēlāk mainīt nevar — izveidojiet jaunu atslēgu un atsauciet veco.3. Pieprasījumu biežuma ierobežojumi
Katrai API atslēgai ir ierobežojums: 60 pieprasījumi minūtē, kas uzskaitīti slīdošā laika logā. Pēc pārsniegšanas pieprasījumi saņem 429 atbildi, līdz logs atbrīvojas:
Veidojat kaut ko, kam nepieciešams lielāks limits? Sazinieties ar atbalsta dienestu un pastāstiet par savu lietojuma gadījumu.
4. Galapunkti
GET/api/v1/projects
Uzskaita visus projektus (izsekotos objektus) jūsu darbvietā.
GET/api/v1/projects/{channelid}/sessions
Uzskaita projektam ierakstītās apmeklētāju sesijas, vispirms jaunākās. Ar dalījumu lapās.
| Vaicājuma parametrs | Apraksts |
|---|---|
page | Lapas numurs, pēc noklusējuma 1. |
per_page | Rezultāti lapā, pēc noklusējuma 25, ne vairāk kā 100. |
since | Tikai sesijas, kas sākušās šajā datumā vai vēlāk (YYYY-MM-DD). |
until | Tikai sesijas, kas sākušās šajā datumā vai agrāk. |
GET/api/v1/sessions/{session_id}
Vienas sesijas metadati un tās lapu skatījumi. Apzināti neiekļauj pilnos atskaņojuma datus — tiem izmantojiet informācijas paneļa atskaņotāju.
GET/api/v1/sessions/{session_id}/events
Sesijas laikā aktivizētie pielāgotie notikumi (tie paši, ko sūtāt ar mp('event', ...)), ieskaitot parametrus.
GET/api/v1/projects/{channelid}/segments
Uzskaita projektam definētos apmeklētāju segmentus (gan projekta, gan visas darbvietas segmentus).
5. Klienta ID piesaistīšana no aizmugursistēmas
Pārlūks bieži nezina, kas pie tā sēž. B2B produktā identitāte tiek noteikta pēc pieteikšanās — jūsu aizmugursistēmā. Veikalā tas notiek ar pasūtījuma apstiprinājumu. Šis galapunkts ir paredzēts tieši tam brīdim.
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}}Pēc tam ID parādās sesiju sarakstā un ir tajā meklējams, un nostrādā session_identified tīmekļa aizķere — tā tas nonāk jūsu CRM.
"changed": false, un tīmekļa aizķere netiek nosūtīta. Atkārtots pasūtījums nerada otru potenciālo klientu.| Statuss | Kad |
|---|---|
400 | Trūkst lauka, user_id ir garāks par 128 rakstzīmēm vai satur vadības rakstzīmes. Mēs noraidām, nevis saīsinām — klusi saīsināts ID neatbilst nekam jūsu CRM un joprojām izskatās pēc panākuma. |
404 | Sesija nepastāv vai nepieder jūsu darbvietai. Apzināti viena atbilde abiem gadījumiem. |
403 | Darbvietas plānā API nav iekļauts. |
6. Tīmekļa aizķeres: paraksta pārbaude
Tīmekļa aizķeres konfigurē katram projektam sadaļā Integrācijas, kur atrodams arī parakstīšanas noslēpums. Katra piegāde ietver šīs galvenes:
| Galvene | Nozīme |
|---|---|
X-MousePlayer-Event | Notikuma nosaukums, piemēram, session_identified |
X-MousePlayer-Timestamp | Unix sekundes — parakstītā teksta daļa |
X-MousePlayer-Attempt | 1 pirmajā mēģinājumā, vairāk atkārtotos mēģinājumos |
X-MousePlayer-Signature | sha256=<hex> |
Paraksts ir HMAC-SHA256 vērtībai timestamp + "." + raw body ar jūsu projekta parakstīšanas noslēpumu kā atslēgu.
// 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');
Piegāde un atkārtoti mēģinājumi
Neveiksmīga piegāde tiek atkārtota pēc 1 min, 5 min, 15 min, 1 h un 6 h, pēc tam mēģinājumi tiek pārtraukti. 4xx atbildes, izņemot 408 un 429, netiek atkārtotas — tās saka "ne šādi", nevis "ne tagad". Ātri atbildiet ar 2xx un darbu veiciet pēc tam; piegādes noildze ir 10 sekundes.
Pieejamie notikumi
| Notikums | Nostrādā |
|---|---|
session_identified | Kad sesija pirmoreiz saņem klienta ID — no pārlūka vai API |
session_ended | Vienreiz, kad sesija beidzas |
goal_reached | Vienreiz sesijā, kad pielāgots notikums izpilda kādu no jūsu mērķiem. Tikai „notikuma“ tipa mērķi — URL, ilguma, lapu skatījumu un piltuves mērķi netiek vērtēti. Ietver goal_id, goal_name, goal_value un currency. |
high_value_session | Kad apmeklētājs konkrētā dienā pirmoreiz pārsniedz šā projekta vērtības slieksni. Slieksnis tiek atvasināts no jūsu pašu vērtējumu sadalījuma (pēdējo 90 dienu 90. procentile), nevis ir fiksēts skaitlis, un tas nepastāv, līdz ir novērtēti vismaz 20 apmeklētāji. Ietver visitor_id, value_score, threshold un tās dienas skatīšanai piemērotāko sesiju. |
funnel_dropoff | Sesijas beigās, ja tā iegājusi kādā piltuvē, bet nav to pabeigusi. Nosauc soli, kurā tā apstājusies (dropped_at). Atbirums ir notikuma neesamība, tāpēc to var zināt tikai pēc sesijas beigām. Sesijas, kas nekad nav iegājušas piltuvē, nav atbirums un to neaktivizē. |
high_friction_session | Vienreiz sesijā, kad tās berzes vērtējums pirmoreiz sasniedz slieksni (pēc noklusējuma 60 no 100). Ietver friction_score, signālus, kas to veido (reasons), un signālu, kas pārsniedza robežu (trigger). |
element_broken | Vienreiz, kad izsekots elements vairākas dienas nav atradis neko nevienā pārbaudītajā lapas skatījumā — parasti pēc atkārtotas palaišanas. Atkal nostrādā tikai pēc tam, kad marķējums ir sakritis un atkārtoti salūzis. Šis notikums nepieder nevienai sesijai: session_id un session_url ir null, link_url tā vietā atver marķējumu, un subject_id nosauc marķējumu — vienādi visām versijām, lai jauns selektors, kas atkal salūst, pievienotos atvērtajam incidentam. Ietver rule_id, rule_name, selector, page, checked_page_views, window_days un last_matched. Nav apmeklētāju datu. |
element_recovered | Paziņojums par problēmas novēršanu notikumam element_broken: vienreiz, kad marķējums patiešām atkal atrod elementu, — pārāk maz lapu skatījumu nepietiek. Sūta tikai tad, ja element_broken tika nosūtīts ar tīmekļa aizķeri, un tam nav sava slēdža: abonējot element_broken, tas tiek iekļauts. Tas pats subject_id, lai PagerDuty atrisinātu incidentu un Opsgenie aizvērtu brīdinājumu. Papildus ietver matched_page_views un checked_page_views. |
anomaly_detected | Vienreiz dienā, kad vakardiena skaidri atšķīrās no iepriekšējām 28 dienām: daudz mazāk vai vairāk sesiju, krities mērķu sasniegšanas rādītājs, vairāk sesiju ar berzi vai JS kļūdām. Tā pati metrika un virziens nedēļu klusē (pielāgojams). Šis notikums nepieder nevienai sesijai: session_id un session_url ir null, link_url atver projekta pārskatu, un subject_id nosauc metriku, virzienu un dienu. Ietver metric (sessions, goal_rate, friction_rate, js_error_rate, lcp_p75, inp_p75, cls_p75), direction, day, value, expected, sessions, robust_z, z_score un lasāmu summary un hint. Nav apmeklētāju datu. Web Vitals gadījumā measurements aizstāj sessions, un page (tukšs visai vietnei) un device (desktop vai mobil) norāda notikuma vietu; link_url tad atver Web Vitals cilni. |
rage_click | Kad konstatēts dusmu klikšķis |
error_detected | Kad rodas priekšgala izņēmums |
ce | Kopīgs abonements jūsu pielāgotajiem notikumiem. Tas neietver iepriekš minētos notikumus — tiem ir savi slēdži. |
7. Kļūdas & statusa kodi
| Statuss | Nozīme |
|---|---|
200 | Panākums. |
401 | Trūkstoša, nepareizi veidota vai atsaukta API atslēga. |
404 | Pieprasītais projekts vai sesija nepastāv vai nepieder jūsu darbvietai. |
429 | Pārsniegts pieprasījumu biežuma limits — ar šo atslēgu sūtāt vairāk nekā 60 pieprasījumus minūtē. |
403 | Darbvietas plānā REST API nav iekļauts. Paziņojums nosauc gan vajadzīgo, gan pašreizējo plānu. |
8. Drošības piezīmes
- Tikai lasīšanas atslēgas (mp_ro_) neko nevar mainīt. Rakstīšanas atslēgas (mp_rw_) var tikai piesaistīt klientu ID; neviena atslēga nevar dzēst datus vai eksportēt neapstrādātus atskaņojuma datus.
- Katrs pieprasījums automātiski ir ierobežots ar atslēgas darbvietu — nav iespējas nodot citu darbvietas ID un redzēt svešus datus.
- Atsauciet atslēgu jebkurā brīdī no /api-keys; atsaukšana stājas spēkā uzreiz.
- Izturieties pret API atslēgu kā pret paroli. Ja nejauši to komitējat publiskā repozitorijā, nekavējoties atsauciet un izveidojiet jaunu.
Ierobežotas notikumu lapas (API v1, 2026. gada 14. oktobris)
GET /api/v1/sessions/{session_id}/events pēc noklusējuma atgriež līdz 100 notikumiem. Iestatiet per_page kā veselu skaitli no 1 līdz 100. Sekojiet pagination.next_cursor, nākamajā pieprasījumā nosūtot cursor nemainītu; saglabājiet to pašu sesiju un darbvietu. Notikumi tiek kārtoti pēc created_at un event_id. Kursori ir parakstīti un piesaistīti šai sesijai un darbvietai. Netiek atgriezts kopskaits vai skaitlisks lapas numurs.
Esošais data masīvs un params karte paliek pieejami. pagination.returned ir faktiski atgrieztais skaits; pagination.has_more norāda uz vēl vienu lapu. Pēc pabeigšanas next_cursor ir null. Atbildes ierobežojums ir 524288 baiti, tāpēc lapā var būt mazāk notikumu nekā per_page. Katram notikumam atgriež ne vairāk kā 128 parametru rindas; params_truncated ir true, ja ir vairāk. Atsevišķiem virkņu parametriem saglabājas datubāzes 255 rakstzīmju limits. Saīsinātie parametri šajā galapunktā nav pieejami. per_page samazināšana nepalielina parametru limitu.
Nederīgi lapu izmēri, mainīti kursori un citas sesijas vai darbvietas kursori atgriež 400. Pārmērīgi lieli atsevišķa notikuma dati atgriež 413. Esošās piekļuves pārbaudes joprojām atbilstoši atgriež 401, 403, 404 vai 409.
Limits paliek 60 autentificēti pieprasījumi katrai API atslēgai minūtē. Izsmelšana atgriež 429 ar Retry-After: 60. Ja Redis vai ierobežotājs nav pieejams, pieprasījumi atgriež 503 ar Retry-After: 5; tie nekad netiek pielaisti bez limita. Ievērojiet Retry-After un pievienojiet nejaušu atkārtotā mēģinājuma aizturi; neatkārtojiet ciešā ciklā. Notikumu datubāzes kļūmes arī atgriež 503. Kursori nefiksē momentuzņēmumu: vienlaicīgi ievietoti dati ar vecākiem laikspiedoliem var prasīt jaunu skenēšanu.
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 ir tikai Dev videi paredzēts aizmugursistēmas vadības ceļš vietējā SDK priekšskatījumam. Ražošanas vidē tas paliek atspējots. Aizmugursistēmas Bearer atslēgām vajadzīgs lasīšanas tvērums list/replay un rakstīšanas tvērums register/grant/delete/disable. Piemēro papildu vietējā priekšskatījuma pieejamības pārbaudes. Nekad neiegulstiet mobilajā lietotnē pastāvīgas darbvietas API atslēgas.