Жалпы 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) түзүп, башкарыңыз. Ачкычтарды жумуш мейкиндигинин ээлери менен администраторлору гана түзүп же жокко чыгара алат.
Ачкычты сыр сактаңыз. Ал жумуш мейкиндигиңиздеги баарын окууга укук берет. Толук ачкыч түзүлгөндөн кийин так бир жолу көрсөтүлөт — аны сырсөз башкаргычында же сырлар сактагычында сактаңыз. Жоготсоңуз, жокко чыгарып, жаңысын түзүңүз.
Ар бир сурамдын Authorization аталышында ачкычты Bearer токени катары жөнөтүңүз:
Жок, туура эмес түзүлгөн же жокко чыгарылган ачкычтарга 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> |
Кол тамга — timestamp + "." + raw body боюнча долбооруңуздун кол коюу сыры менен түзүлгөн HMAC-SHA256.
// 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 | Сеанс биринчи жолу кардар IDсин алганда — браузерден же APIдан |
session_ended | Бир жолу, сеанс жабылганда |
goal_reached | Ар бир сеанста бир жолу, ыңгайлаштырылган окуя максаттарыңыздын бирин аткарганда. «event» түрүндөгү максаттар гана — 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 | Front-end өзгөчө кырдаалында |
ce | Өзүңүздүн ыңгайлаштырылган окуяларыңызга жалпы жазылуу. Ал жогорудагы окуяларды камтыбайт — алардын өз которгучтары бар. |
7. Каталар & абал коддору
| Абал | Мааниси |
|---|---|
200 | Ийгилик. |
401 | API ачкычы жок, туура эмес түзүлгөн же жокко чыгарылган. |
404 | Суралган долбоор же сеанс жок же жумуш мейкиндигиңизге таандык эмес. |
429 | Сурам чеги ашты — бул ачкыч менен мүнөтүнө 60 сурамдан көп жөнөтүп жатасыз. |
403 | Жумуш мейкиндигинин тарифинде REST API жок. Билдирүү керектүү тарифти да, учурдагыны да атайт. |
8. Коопсуздук эскертүүлөрү
- Окуу ачкычтары (mp_ro_) эч нерсе өзгөртө албайт. Жазуу ачкычтары (mp_rw_) кардар IDлерин гана кошо алат; эч бир ачкыч маалымат өчүрө же чийки жаздыруу маалыматтарын экспорттой албайт.
- Ар бир сурам автоматтык түрдө ачкычтын өз жумуш мейкиндиги менен чектелет — башка жумуш мейкиндигинин IDсин берип, бирөөнүн маалыматтарын көрүү мүмкүн эмес.
- Ачкычты каалаган убакта /api-keys аркылуу жокко чыгарыңыз; жокко чыгаруу дароо күчүнө кирет.
- API ачкычын сырсөздөй сактаңыз. Кокус жалпыга ачык репозиторийге коммит кылсаңыз, дароо жокко чыгарып, жаңысын түзүңүз.
Чектелген окуя беттери (API v1, 2026-жылдын 14-октябры)
GET /api/v1/sessions/{session_id}/events демейкиде 100 гө чейин окуя кайтарат. per_page маанисин 1 ден 100 гө чейинки бүтүн санга коюңуз. pagination.next_cursor боюнча улантуу үчүн кийинки сурамда 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 үчүн окуу, register/grant/delete/disable үчүн жазуу укугу керек. Жергиликтүү алдын ала көрүнүштүн жеткиликтүүлүгүнө кошумча текшерүүлөр колдонулат. Туруктуу жумуш мейкиндигинин API ачкычтарын мобилдик колдонмого эч качан киргизбеңиз.