Ашық API & API кілттері
Жұмыс кеңістігіңізге бағдарламалық қолжетімділік — жобалар, сеанстар, арнайы оқиғалар мен сегменттерді оқу және сеанстарға тұтынушы ID-лерін қосу — жұмыс кеңістігімен шектелген API кілттерімен қорғалған.
1. Шолу
MousePlayer API жұмыс кеңістігіңізден деректерді өз басқару тақталарыңызға, деректер қоймасына немесе ішкі құралдарға алуға мүмкіндік береді. Сеанстарға тұтынушы ID-ін қосудан басқа (identify, жазу ауқымы бар кілт қажет, «Кілт ауқымдары» бөлімін қараңыз), ол тек оқуға арналған: API арқылы деректерді өзгерту не жою мүмкін емес.
- Негізгі URL:
https://www.mouseplayer.com/api/v1/ - Барлық жауап JSON түрінде.
- Әр сұрау API кілтімен расталып, сол кілт тиесілі жұмыс кеңістігімен автоматты шектеледі — бір жұмыс кеңістігінің кілті басқа кеңістіктің деректерін кездейсоқ та көре алмайды.
- Толық сеанс қайта ойнату жазбасы (тінтуір қозғалыстары, DOM суреттері) API арқылы берілмейді . Сеанс метадеректерін, бет қаралымдарын, арнайы оқиғалар мен сегменттерді аласыз — өңделмеген қайта ойнату деректерін тасымалдамай есептер мен тақталар жасауға жеткілікті.
2. Аутентификация
API кілттерін есептік жазба мәзіріндегі API кілттері бөлімінде жасаңыз және басқарыңыз (/api-keys). Кілттерді тек жұмыс кеңістігінің иелері мен әкімшілері жасай немесе күшін жоя алады.
Кілтті құпия сақтаңыз. Ол жұмыс кеңістігіңіздегі барлық дерекке оқу рұқсатын береді. Толық кілт жасалғаннан кейін дәл бір рет көрсетіледі — оны құпиясөз менеджерінде не құпиялар қоймасында сақтаңыз. Жоғалтсаңыз, күшін жойып, жаңасын жасаңыз.
Кілтті әр сұраудың мына тақырыбында Bearer токені ретінде жіберіңіз: Authorization :
Жоқ, қате пішімдегі немесе күші жойылған кілттер мына жауапты алады: 401 :
Жоспар талабы
REST API мына жоспарларға кіреді: Business және Enterprise . Жоспар жұмыс кеңістігінің иесінен алынады, сондықтан шақырылған топ мүшелеріне де қолданылады. Тексеру тек кілт жасалғанда емес, әр сұраудаорындалады — жұмыс кеңістігі төменгі жоспарға ауысса, бар кілттер тоқтап, мына жауапты қайтарады: 403.
Кілт ауқымдары
Әр кілттің ауқымы өз префиксінде бар. Сондықтан кілтке қарап-ақ не істейтінін білуге болады — мына файлда: .env, өтінімде немесе терминалда.
| Префикс | Мәні |
|---|---|
mp_ro_ | Тек оқу. Жобалар, сеанстар, оқиғалар және сегменттерді оқиды. Ештеңе өзгерте алмайды. |
mp_rw_ | Оқу және жазу. Жоғарыдағылардың бәрі және identify соңғы нүктесі арқылы тұтынушы ID-лерін қосу. |
403 және кілттің ауқымы мен соңғы нүктеге не керегін айтатын хабар. Ауқымды кейін өзгерту мүмкін емес — жаңа кілт жасап, ескісінің күшін жойыңыз.3. Сұрау жиілігінің шектері
Әр API кілті үшін шек — минутына 60 сұрау, жылжымалы тереземен есептеледі. Асқаннан кейін терезе босағанша сұраулар мына жауапты алады: 429 :
Жоғарырақ шек қажет нәрсе жасап жатырсыз ба? Мына бөлім арқылы хабарласыңыз: Қолдау және қолдану жағдайыңызды айтыңыз.
4. Соңғы нүктелер
GET/api/v1/projects
Жұмыс кеңістігіңіздегі әр жобаны (бақыланатын ресурсты) тізімдейді.
GET/api/v1/projects/{channelid}/sessions
Жоба үшін жазылған келуші сеанстарын ең жаңасынан бастап тізімдейді. Беттерге бөлінеді.
| Сұрау параметрі | Сипаттама |
|---|---|
page | Бет нөмірі, әдепкісі — 1. |
per_page | Әр беттегі нәтиже саны, әдепкісі — 25, ең көбі — 100. |
since | Тек осы күні не одан кейін басталған сеанстар (YYYY-MM-DD). |
until | Тек осы күні не одан бұрын басталған сеанстар. |
GET/api/v1/sessions/{session_id}
Бір сеанстың метадеректері және бет қаралымдары. Толық қайта ойнату деректері әдейі берілмейді — ол үшін басқару тақтасының ойнатқышын қолданыңыз.
GET/api/v1/sessions/{session_id}/events
Сеанс кезінде жіберілген арнайы оқиғалар (мына әдіспен жіберетін оқиғаларыңыз: mp('event', ...)), параметрлерімен бірге.
GET/api/v1/projects/{channelid}/segments
Жоба үшін анықталған келуші сегменттерін тізімдейді (жобаға тән және бүкіл жұмыс кеңістігінің сегменттері).
5. Серверіңізден тұтынушы ID-ін қосу
Браузер көбіне кім отырғанын білмейді. B2B өнімінде сәйкестік жүйеге кіргеннен кейін серверіңізде анықталады — ал дүкенде тапсырыс расталғанда. Осы соңғы нүкте дәл сол сәтке арналған.
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 сеанс тізімінде көрінеді және ізделеді, ал мына session_identified вебхук іске қосылады — CRM жүйеңізге осылай жетеді.
"changed": false және вебхук жіберілмейді. Қайталанған тапсырыс екінші әлеуетті тұтынушы жасамайды.| Күйі | Қашан |
|---|---|
400 | Өріс жоқ, user_id 128 таңбадан ұзын немесе басқару таңбалары бар. Біз қысқартпай, қабылдамаймыз — үнсіз қысқарған ID CRM ішінде ештеңемен сәйкес келмесе де, сәтті көрінеді. |
404 | Сеанс жоқ немесе жұмыс кеңістігіңізге тиесілі емес. Екеуіне әдейі бірдей жауап. |
403 | Жұмыс кеңістігінің жоспарына API кірмейді. |
6. Вебхуктар: қолтаңбаны тексеру
Вебхуктар әр жобаның Интеграцияларбөлімінде бапталады, қол қою құпиясы да сонда. Әр жеткізілімде мына тақырыптар бар:
| Тақырып | Мәні |
|---|---|
X-MousePlayer-Event | Оқиға атауы, мысалы session_identified |
X-MousePlayer-Timestamp | Unix секундтары — қол қойылатын мәтіннің бөлігі |
X-MousePlayer-Attempt | Алғашқы әрекетте 1, қайталауларда жоғарырақ |
X-MousePlayer-Signature | sha256=<hex> |
Қолтаңба — мына деректер бойынша есептелген HMAC-SHA256: timestamp + "." + raw body, кілт ретінде жобаның қолтаңба құпиясы қолданылады.
// 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');
Жеткізу және қайталап жіберу
Жеткізу сәтсіз болса, мына аралықтардан кейін қайталанады: 1 мин, 5 мин, 15 мин, 1 сағ және 6 сағ, содан кейін тоқтатылады. 4xx жауаптарының ішінен 408 және 429 жауаптарынан басқалары қайта жіберілмейді — олар "қазір емес" дегенді емес, "бұлай болмайды" дегенді білдіреді. Мына жауапты 2xx жылдам қайтарып, жұмысты кейін орындаңыз; жеткізу 10 секундтан кейін уақыт шегіне жетеді.
Қолжетімді оқиғалар
| Оқиға | Іске қосылуы |
|---|---|
session_identified | Сеанс браузерден немесе API арқылы алғаш рет клиент идентификаторын алғанда — бір рет |
session_ended | Сеанс жабылғанда бір рет |
goal_reached | Әр сеанста бір рет, теңшелетін оқиға мақсаттарыңыздың бірін орындағанда. Тек «оқиға» түріндегі мақсаттар — URL, ұзақтық, бет қаралымы және шұңқыр мақсаттары бағаланбайды. Мына деректер беріледі: goal_id, goal_name, goal_value және currency. |
high_value_session | Келуші белгілі бір күні осы жобаның құндылық шегінен алғаш рет асқанда. Шек өз бағаларыңыздың үлестірімінен есептеледі (соңғы 90 күннің 90-процентилі), тұрақты сан емес және кемінде 20 келуші бағаланғанға дейін болмайды. Мына деректер беріледі: visitor_id, value_score, threshold және сол күннің қарауға ең лайық сеансы. |
funnel_dropoff | Шұңқырларыңыздың біріне кіріп, оны аяқтамаған сеанстың соңында. Тоқтаған қадамды көрсетеді (dropped_at). Шығып кету — оқиғаның болмауы, сондықтан оны тек сеанс аяқталғаннан кейін білуге болады. Шұңқырға мүлде кірмеген сеанстар шығып кету болып саналмайды және бұл оқиғаны іске қоспайды. |
high_friction_session | Әр сеанста бір рет, кедергілер бағасы шекке алғаш жеткенде (әдепкіде 60, ең жоғары баға — 100). Мына деректер беріледі: friction_score, оның негізіндегі сигналдар (reasons) және шектен асырған сигнал (trigger). |
element_broken | Бақыланатын элемент бірнеше күн бойы тексерілген ешбір бет қаралымында табылмағанда бір рет — әдетте сайт қайта іске қосылғаннан кейін. Белгілеу қайтадан сәйкес келіп, тағы бұзылғаннан кейін ғана қайта іске қосылады. Бұл оқиға ешбір сеансқа тиесілі емес: session_id және session_url мәндері null, link_url оның орнына белгілеуді ашады, ал subject_id белгілеуді атайды — барлық нұсқада бірдей, сондықтан қайта бұзылған жаңа селектор ашық инцидентке қосылады. Мына деректер беріледі: rule_id, rule_name, selector, page, checked_page_views, window_days және last_matched. Келуші деректері жоқ. |
element_recovered | Мына оқиға үшін мәселенің шешілгені туралы хабарлама: element_broken: белгілеу қайтадан нақты элементті тапқанда — бет қаралымдарының аз болуы жеткіліксіз. Тек мына оқиға element_broken вебхук арқылы жіберілсе ғана жіберіледі және жеке қосқышы жоқ: мына оқиғаға жазылу element_broken оны да қамтиды. Мына мән бірдей: subject_id, сондықтан PagerDuty инцидентті шешеді, ал Opsgenie ескертуді жабады. Қосымша мына деректер беріледі: matched_page_views және checked_page_views . |
anomaly_detected | Күніне бір рет, кешегі күн алдындағы 28 күннен айқын ерекшеленгенде: сеанстар едәуір азайса немесе көбейсе, мақсатқа жету үлесі төмендесе, кедергілері немесе JS қателері бар сеанстар көбейсе. Бірдей көрсеткіш пен бағыт бір апта бойы қайта хабарланбайды (өзгертуге болады). Бұл оқиға ешбір сеансқа тиесілі емес: session_id және session_url мәндері null, link_url жобаның шолуын ашады, ал subject_id көрсеткішті, бағытты және күнді атайды. Мына деректер беріледі: metric (sessions, goal_rate, friction_rate, js_error_rate, lcp_p75, inp_p75, cls_p75), direction, day, value, expected, sessions, robust_z, z_score және оқуға түсінікті summary және hint. Келуші деректері жоқ. Web Vitals үшін measurements мына өрісті алмастырады: sessions, ал page (бүкіл сайт үшін бос) және device (desktop немесе mobil) оқиғаның қайда болғанын көрсетеді; link_url содан кейін Web Vitals қойындысын ашады. |
rage_click | Ашулы басу анықталғанда |
error_detected | Интерфейсте ерекше жағдай туындағанда |
ce | Өзіңіздің теңшелетін оқиғаларыңызға ортақ жазылым. Ол жоғарыдағы оқиғаларды қамтымайды — олардың жеке қосқыштары бар. |
7. Қателер & күй кодтары
| Күй | Мағынасы |
|---|---|
200 | Сәтті. |
401 | API кілті жоқ, пішімі қате немесе қайтарып алынған. |
404 | Сұралған жоба немесе сеанс жоқ не сіздің жұмыс кеңістігіңізге тиесілі емес. |
429 | Жиілік шегі асқан — осы кілтпен минутына 60 сұраудан артық жіберіп жатырсыз. |
403 | Жұмыс кеңістігінің тарифіне REST API кірмейді. Хабарламада қажетті тариф те, ағымдағы тариф те аталады. |
8. Қауіпсіздік ескертпелері
- Тек оқуға арналған кілттер (mp_ro_) ештеңені өзгерте алмайды. Жазу кілттері (mp_rw_) тек клиент идентификаторларын тіркей алады; ешбір кілт деректерді жоя алмайды немесе бастапқы қайта ойнату деректерін экспорттай алмайды.
- Әр сұрау автоматты түрде кілттің өз жұмыс кеңістігімен шектеледі — басқа жұмыс кеңістігінің идентификаторын беріп, бөтен деректерді көру мүмкін емес.
- Кілтті кез келген уақытта мына жерден қайтарып алыңыз: /api-keys; қайтарып алу бірден күшіне енеді.
- API кілтін құпиясөздей сақтаңыз. Оны байқамай ашық репозиторийге коммиттесеңіз, бірден қайтарып алып, жаңасын жасаңыз.
Оқиғалардың шектелген беттері (API v1, 14 қазан 2026)
GET /api/v1/sessions/{session_id}/events әдепкіде 100 оқиғаға дейін қайтарады. per_page мәнін 1 мен 100 аралығындағы бүтін санға орнатыңыз. Келесі сұрауда cursor мәнін өзгертпей жіберіп, pagination.next_cursor бойынша өтіңіз; сеанс пен жұмыс кеңістігін өзгертпеңіз. Оқиғалар created_at және event_id бойынша реттеледі. Курсорларға қолтаңба қойылады және олар сол сеанс пен жұмыс кеңістігіне байланыстырылған. Жалпы сан немесе сандық бет нөмірі қайтарылмайды.
Қолданыстағы data массиві мен params картасы қолжетімді болып қалады. pagination.returned — нақты қайтарылған сан; pagination.has_more келесі бет бар екенін көрсетеді. Аяқталғанда next_cursor мәні null болады. Жауап 524288 байтпен шектеледі, сондықтан бетте per_page мәнінен аз оқиға болуы мүмкін. Әр оқиға үшін ең көбі 128 параметр жолы қайтарылады; көбірек болса, params_truncated мәні true болады. Жеке жолдық параметрлерде дерекқордың 255 таңбалық шегі сақталады. Қысқартылған параметрлер бұл эндпоинт арқылы қолжетімсіз. per_page мәнін азайту параметрлер шегін көтермейді.
Бет өлшемі жарамсыз болса, курсор өзгертілсе немесе басқа сеансқа/жұмыс кеңістігіне тиесілі болса, 400 қайтарылады. Жеке оқиға деректерінің көлемі тым үлкен болса, 413 қайтарылады. Қолданыстағы қолжетімділік тексерістері жағдайға қарай бұрынғыдай 401, 403, 404 немесе 409 қайтарады.
Шек өзгермейді: әр API кілтіне минутына 60 аутентификацияланған сұрау. Шек таусылғанда 429 (Retry-After: 60) қайтарылады. Redis немесе шектеу тетігі қолжетімсіз болса, сұраулар 503 (Retry-After: 5) қайтарады; сұраулар ешқашан шектеусіз қабылданбайды. Retry-After мәнін сақтап, кездейсоқ кідіріс қосыңыз; тығыз циклде қайта сұрамаңыз. Оқиғалар дерекқорының ақаулары да 503 қайтарады. Курсорлар деректердің өзгермейтін суретін бекітпейді: ескі уақыт белгілерімен қатар енгізілген жазбалар үшін қайтадан толық қарап шығу қажет болуы мүмкін.
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 — жергілікті SDK алдын ала қарауына арналған, тек Dev ортасында қолжетімді серверлік басқару маршруты. Өндірісте ол өшірулі қалады. Серверлік Bearer кілттеріне list/replay үшін read ауқымы, ал register/grant/delete/disable үшін write ауқымы қажет. Жергілікті алдын ала қараудың қолжетімділігіне қосымша тексерістер қолданылады. Тұрақты жұмыс кеңістігі API кілттерін мобильді қолданбаға ешқашан ендірмеңіз.