API Umum & Kunci API
Akses kanthi program dhateng ruang kerja panjenengan — maos proyek, sesi, prastawa khusus lan segmen, sarta masang ID pelanggan ing sesi — dipunayomi kunci API kanthi cakupan ruang kerja.
1. Ringkesan
API MousePlayer ngidinaken panjenengan njupuk data saking ruang kerja dhateng dasbor, data warehouse utawi piranti internal piyambak. Kajawi masang ID pelanggan ing sesi (identify, mbetahaken kunci kanthi cakupan nyerat, pirsani Cakupan kunci), API namung kanggé maos: boten wonten data ingkang saged dipunowahi utawi dipunbusak mawi API.
- URL Dhasar:
https://www.mouseplayer.com/api/v1/ - Sedaya tanggapan awujud JSON.
- Saben panyuwunan dipunotentikasi mawi kunci API lan otomatis dipunwatesi ing ruang kerja pamilik kunci — kunci saking satunggal ruang kerja boten nate saged mirsani data ruang kerja sanès, sanajan tanpa sengaja.
- Rekaman sesi pepak (gerakan panuding, gambar DOM) boten dipunbabar mawi API. Panjenengan pikantuk metadata sesi, tampilan kaca, prastawa khusus lan segmen — cekap kanggé damel laporan lan dasbor tanpa ngirim payload rekaman mentah mrana-mriki.
2. Otentikasi
Damel lan atur kunci API ing Kunci API ing menu akun panjenengan (/api-keys). Namung pamilik ruang kerja lan admin ingkang saged damel utawi nyabut kunci.
Jaga rahasia kunci panjenengan. Kunci maringi akses maos sedaya ing ruang kerja. Kunci pepak namung dipuntedahaken sapisan, sanalika dipundamel — simpen ing pangatur sandhi utawi brankas rahasia. Menawi ical, cabut lan damel énggal.
Kintun kunci minangka token Bearer ing header Authorization saben panyuwunan:
Kunci ingkang boten wonten, wujudipun salah utawi dipuncabut nampi tanggapan 401 :
Kabetahan paket
REST API kalebet ing paket Business lan Enterprise . Paket dipunjupuk saking pamilik ruang kerja, saéngga anggota tim undhangan marisi. Pamriksan lumampah ing saben panyuwunan, sanès namung nalika damel kunci — menawi ruang kerja dipunturunaken, kunci ingkang sampun wonten mandheg lan mangsuli 403.
Cakupan kunci
Saben kunci nggawa cakupan ing ater-ateripun, mila panjenengan saged mangertos pakaryan kunci namung kanthi mirsani — ing .env, ing tiket, ing terminal.
| Ater-ater | Teges |
|---|---|
mp_ro_ | Namung maos. Maos proyek, sesi, prastawa lan segmen. Boten saged ngowahi punapa kemawon. |
mp_rw_ | Maos lan nyerat. Sedaya ing nginggil, kaliyan masang ID pelanggan mawi endpoint identify. |
403 kanthi pesen ingkang nyebat jinis kunci lan kabetahan endpoint. Cakupan boten saged dipunowahi sasampunipun — damel kunci énggal lan cabut ingkang lawas.3. Wates Laju
Saben kunci API dipunwatesi 60 panyuwunan saben menit, dipunétang ing rentang lumampah. Menawi nglangkungi, panyuwunan nampi tanggapan 429 ngantos rentang rampung:
Damel piranti ingkang mbetahaken wates langkung inggil? Hubungi mawi Dhukungan lan andharaken kasus panggunaan panjenengan.
4. Endpoint
GET/api/v1/projects
Dhaptar sedaya proyek (situs ingkang dipunlacak) ing ruang kerja panjenengan.
GET/api/v1/projects/{channelid}/sessions
Dhaptar sesi pengunjung ingkang dipunrekam kanggé proyek, paling énggal rumiyin. Kanthi kaca.
| Parameter kueri | Andharan |
|---|---|
page | Nomer kaca, gawanipun 1. |
per_page | Asil saben kaca, gawanipun 25, paling kathah 100. |
since | Namung sesi ingkang wiwit ing/sasampunipun tanggal punika (YYYY-MM-DD). |
until | Namung sesi ingkang wiwit ing/sadèrèngipun tanggal punika. |
GET/api/v1/sessions/{session_id}
Metadata satunggal sesi, kaliyan tampilan kacanipun. Sengaja boten nyakup payload rekaman pepak — ginakaken Pamuter dasbor kanggé punika.
GET/api/v1/sessions/{session_id}/events
Prastawa khusus ingkang dipunpicu ing sesi (prastawa ingkang sami kaliyan ingkang panjenengan kintun mawi mp('event', ...)), kalebet parameteripun.
GET/api/v1/projects/{channelid}/segments
Dhaptar segmen pengunjung ingkang dipuntemtokaken kanggé proyek (segmen khusus proyek lan sedaya ruang kerja).
5. Masang ID pelanggan saking backend panjenengan
Browser asring boten mangertos sinten ingkang lenggah. Ing produk B2B, identitas dipuntemtokaken sasampunipun mlebet — ing backend panjenengan. Ing toko, dipuntemtokaken nalika konfirmasi pesenan. Endpoint punika kanggé wekdal punika.
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 lajeng medal ing dhaptar sesi, saged dipunpadosi ing ngriku, lan webhook session_identified dipunpicu — kanthi mekaten tekan CRM panjenengan.
"changed": false lan boten wonten webhook dipunkintun. Pesenan ulang boten damel lead kaping kalih.| Status | Nalika |
|---|---|
400 | Kolom boten wonten, user_id langkung saking 128 karakter utawi ngemot karakter kontrol. Kula nolak, sanès nyekak — ID ingkang dipuncekak tanpa kabar boten cocog ing CRM nanging tetep katon kasil. |
404 | Sesi boten wonten utawi boten kagungan ruang kerja panjenengan. Sengaja wangsulan ingkang sami kanggé kekalih kasus. |
403 | Paket ruang kerja boten nyakup API. |
6. Webhook: mriksa tandha tangan
Webhook dipunatur saben proyek ing Integrasi, ing ngriku ugi wonten rahasia tandha tangan. Saben pangiriman nggawa header punika:
| Header | Teges |
|---|---|
X-MousePlayer-Event | Jeneng prastawa, umpaminipun session_identified |
X-MousePlayer-Timestamp | Detik Unix — pérangan teks ingkang dipuntandhatangani |
X-MousePlayer-Attempt | 1 ing upaya kapisan, langkung inggil nalika nyobi malih |
X-MousePlayer-Signature | sha256=<hex> |
Tandha tangan punika HMAC-SHA256 tumrap timestamp + "." + raw body, kanthi rahasia tandha tangan proyek panjenengan minangka kunci.
// 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');
Pangiriman lan upaya malih
Pangiriman gagal dipuncobi malih sasampunipun 1 menit, 5 menit, 15 menit, 1 jam lan 6 jam, lajeng dipuntilar. 4xx Tanggapan 408 kajawi 429 lan boten dipuncobi malih — ateges "boten kanthi cara punika", sanès "boten sapunika". Wangsulana 2xx kanthi rikat lan tindakaken pakaryan sasampunipun; pangiriman entèk wekdal sasampunipun 10 detik.
Prastawa ingkang kasedhiya
| Prastawa | Dipunpicu |
|---|---|
session_identified | Nalika sesi sapisan pikantuk ID pelanggan — saking browser utawi API |
session_ended | Sapisan, nalika sesi katutup |
goal_reached | Sapisan saben sesi, nalika prastawa khusus nyukupi satunggal tujuan panjenengan. Namung tujuan kanthi jinis “event” — tujuan URL, durasi, tampilan kaca lan funnel boten dipunévaluasi. Nggawa goal_id, goal_name, goal_value lan currency. |
high_value_session | Nalika pengunjung sapisan nglangkungi ambang nilai proyek punika ing dinten tartamtu. Ambang dipunasilaken saking distribusi skor panjenengan piyambak (persentil 90 saking 90 dinten pungkasan), sanès angka tetep, lan dereng wonten ngantos sakirangipun 20 pengunjung dipunbiji. Nggawa visitor_id, value_score, threshold lan sesi ingkang paling pantes dipunpirsani ing dinten punika. |
funnel_dropoff | Ing pungkasan sesi ingkang mlebet satunggal funnel nanging boten ngrampungaken. Nyebat langkah mandheg (dropped_at). Medalipun pengunjung ateges boten wonten prastawa, mila namung saged dipunmangertosi nalika sesi rampung. Sesi ingkang boten nate mlebet funnel sanès medalipun pengunjung lan boten micu. |
high_friction_session | Sapisan saben sesi, nalika skor alangan sapisan nggayuh ambang (gawanipun 60 saking 100). Nggawa friction_score, sinyal panyebabipun (reasons) lan sinyal ingkang nglangkungi ambang (trigger). |
element_broken | Sapisan, nalika unsur ingkang dipunlacak boten manggih punapa kemawon ing saben tampilan kaca ingkang dipunpriksa sawetawis dinten — limrahipun sasampunipun peluncuran ulang. Namung dipunpicu malih sasampunipun tandha cocog lajeng rusak malih. Prastawa punika boten kagungan sesi punapa kemawon: session_id lan session_url punika null, link_url nanging mbikak tandha, lan subject_id nyebat tandha — sami kanggé saben versi, mila pamilih énggal ingkang rusak malih gabung ing insiden kabikak. Nggawa rule_id, rule_name, selector, page, checked_page_views, window_days lan last_matched. Tanpa data pengunjung. |
element_recovered | Tandha sampun saé kanggé element_broken: sapisan nalika tandha saèstu manggih unsur malih — tampilan kaca ingkang sakedhik sanget boten cekap. Namung dipunkintun menawi element_broken sampun medal mawi webhook, lan boten nggadhahi saklar piyambak: langganan element_broken nyakup punika. Sami subject_id, saéngga PagerDuty ngrampungaken insiden lan Opsgenie nutup tandha. Nggawa matched_page_views lan checked_page_views minangka tambahan. |
anomaly_detected | Sapisan saben dinten, nalika wingi cetha béda kaliyan 28 dinten sadèrèngipun: sesi langkung sakedhik utawi langkung kathah sanget, tingkat tujuan mandhap, langkung kathah sesi kanthi alangan utawi kesalahan JS. Metrik lan arah ingkang sami boten maringi kabar seminggu (saged dipunatur). Prastawa punika boten kagungan sesi punapa kemawon: session_id lan session_url punika null, link_url mbikak ringkesan proyek, lan subject_id nyebat metrik, arah lan dinten. Nggawa metric (sessions, goal_rate, friction_rate, js_error_rate, lcp_p75, inp_p75, cls_p75), direction, day, value, expected, sessions, robust_z, z_score lan summary ingkang saged dipunwaos sarta hint. Tanpa data pengunjung. Kanggé Web Vitals, measurements nggantos sessions, lan page (kosong kanggé sedaya situs) lan device (desktop utawi mobil) nedahaken papan kedadosan; link_url lajeng mbikak tab Web Vitals. |
rage_click | Nalika klik nesu dipundeteksi |
error_detected | Nalika wonten kesalahan front-end |
ce | Langganan bebarengan kanggé prastawa khusus panjenengan piyambak. Punika boten nyakup prastawa ing nginggil — prastawa punika nggadhahi saklar piyambak. |
7. Kesalahan & Kode Status
| Status | Teges |
|---|---|
200 | Kasil. |
401 | Kunci API boten wonten, wujudipun salah utawi dipuncabut. |
404 | Proyek utawi sesi ingkang dipunsuwun boten wonten, utawi boten kagungan ruang kerja panjenengan. |
429 | Wates laju dipunlangkungi — panjenengan ngintun langkung saking 60 panyuwunan/menit kanthi kunci punika. |
403 | Paket ruang kerja boten nyakup REST API. Pesen nyebat paket ingkang dipunbetahaken lan ingkang sapunika. |
8. Cathetan Keamanan
- Kunci namung maos (mp_ro_) boten saged ngowahi punapa kemawon. Kunci nyerat (mp_rw_) namung saged masang ID pelanggan; boten wonten kunci ingkang saged mbusak data utawi ngekspor data rekaman mentah.
- Saben panyuwunan otomatis dipunwatesi ing ruang kerja pamilik kunci — boten saged ngintun ID ruang kerja béda kanggé mirsani data tiyang sanès.
- Cabut kunci kapan kemawon saking /api-keys; pencabutan langsung lumampah.
- Anggep kunci API kados sandhi. Menawi tanpa sengaja dipuncommit ing repositori umum, langsung cabut lan damel énggal.
Kaca prastawa winates (API v1, 14 Oktober 2026)
GET /api/v1/sessions/{session_id}/events ngasilaken paling kathah 100 prastawa kanthi gawanipun. Atur per_page minangka wilangan bulat saking 1 ngantos 100. Tindakake pagination.next_cursor kanthi ngintun cursor tanpa owah ing panyuwunan salajengipun; jaga sesi lan ruang kerja ingkang sami. Prastawa dipunurutaken miturut created_at lan event_id. Cursor dipuntandhatangani lan dipuntalèkaken dhateng sesi lan ruang kerja punika. Boten wonten cacah total utawi kaca angka ingkang dipunasilaken.
Array data lan map params ingkang sampun wonten tetep kasedhiya. pagination.returned punika cacah nyata ingkang dipunasilaken; pagination.has_more nedahaken wonten kaca salajengipun. next_cursor punika null nalika rampung. Tanggapan dipunwatesi 524288 byte, mila kaca saged ngemot prastawa langkung sakedhik saking per_page. Saben prastawa ngasilaken paling kathah 128 larik parameter; params_truncated punika true menawi wonten langkung. Parameter string individu tetep nggadhahi wates basis data 255 karakter. Parameter ingkang dipunpotong boten kasedhiya mawi endpoint punika. Nyuda per_page boten nginggilaken wates parameter.
Ukuran kaca ingkang boten sah, cursor ingkang dipunowahi lan cursor kanggé sesi/ruang kerja sanès mangsuli 400. Data prastawa individu ingkang ageng sanget mangsuli 413. Pamriksan akses ingkang sampun wonten tetep mangsuli 401, 403, 404 utawi 409 manut kahanan.
Wates tetep 60 panyuwunan kanthi otentikasi saben kunci API saben menit. Menawi entèk, mangsuli 429 kanthi Retry-After: 60. Menawi Redis utawi pamwates boten kasedhiya, panyuwunan mangsuli 503 kanthi Retry-After: 5; boten nate dipunidinaken tanpa wates. Ajèni Retry-After lan tambahaken wekdal tundha acak; boten nyobi malih ing puteran rapet. Gagal basis data prastawa ugi mangsuli 503. Cursor boten mbeku gambar data: sisipan bebarengan kanthi cap wekdal langkung lawas saged mbetahaken pindai énggal.
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 punika rute kontrol backend namung Dev kanggé pratinjau SDK native. Tetep dipunpateni ing produksi. Kunci Bearer backend mbetahaken cakupan maos kanggé list/replay lan cakupan nyerat kanggé register/grant/delete/disable. Pamriksan kasedhiyan pratinjau native tambahan lumampah. Boten nate masang kunci API ruang kerja permanèn ing aplikasi seluler.