Нийтийн 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 нь дараах багцуудад багтана: Бизнес болон Байгууллагын . Багцыг ажлын орчны эзэмшигчээс авдаг тул уригдсан багийн гишүүд өвлөн ашиглана. Шалгалт хүсэлт бүрд хийгдэнэ, зөвхөн түлхүүр үүсгэхэд биш — ажлын орчны багцыг бууруулбал одоогийн түлхүүрүүд ажиллахаа больж, дараахыг буцаана: 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 webhook өдөөгдөнө — ингэж CRM-д тань хүрнэ.
"changed": false webhook илгээхгүй. Давтагдсан захиалга хоёр дахь боломжит харилцагч үүсгэхгүй.| Төлөв | Хэзээ |
|---|---|
400 | Дутуу талбар, user_id 128 тэмдэгтээс урт эсвэл хяналтын тэмдэг агуулсан. Таслахын оронд татгалзана — чимээгүй богиносгосон ID таны CRM-д юутай ч таарахгүй ч амжилттай мэт харагдана. |
404 | Сеанс байхгүй эсвэл таны ажлын орчинд харьяалагдахгүй. Хоёуланд нь зориуд ижил хариу өгнө. |
403 | Ажлын орчны багцад API багтаагүй. |
6. Webhook: гарын үсгийг шалгах
Webhook-уудыг төсөл тус бүрд дараах хэсэгт тохируулна: Интеграцчиллууд. Тэнд мөн гарын үсгийн нууц бий. Дамжуулалт бүр дараах толгой хэсгүүдтэй:
| Толгой хэсэг | Утга |
|---|---|
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 | Сеанс анх харилцагчийн 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 webhook-оор илгээсэн бол явуулна. Өөрийн тусдаа унтраалгагүй: дараахад 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_) зөвхөн харилцагчийн ID холбож чадна. Ямар ч түлхүүр өгөгдөл устгах эсвэл дахин тоглуулах түүхий өгөгдөл экспортлох боломжгүй.
- Хүсэлт бүр түлхүүрийн өөрийн ажлын орчноор автоматаар хязгаарлагдана — өөр ажлын орчны ID дамжуулж бусдын өгөгдлийг харах арга байхгүй.
- Дараах хэсгээс түлхүүрийг хүссэн үедээ хүчингүй болгоно уу: /api-keys. Хүчингүй болголт шууд үйлчилнэ.
- API түлхүүрээ нууц үг шиг хамгаална уу. Санамсаргүйгээр нийтийн репозиторт commit хийвэл нэн даруй хүчингүй болгож, шинээр үүсгэнэ үү.
Хязгаартай үйл явдлын хуудсууд (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 түлхүүрийг мобайл аппад хэзээ ч бүү суулгана уу.