ସାର୍ବଜନୀନ API & API ଚାବି

ଆପଣଙ୍କ କାର୍ଯ୍ୟସ୍ଥଳକୁ କୋଡ୍ ଦ୍ୱାରା ପ୍ରବେଶ — ପ୍ରକଳ୍ପ, ସେସନ୍, କଷ୍ଟମ୍ ଇଭେଣ୍ଟ୍ ଓ ବିଭାଗ ପଢ଼ନ୍ତୁ, ଏବଂ ସେସନ୍‌ରେ ଗ୍ରାହକ ID ଯୋଡ଼ନ୍ତୁ — କାର୍ଯ୍ୟସ୍ଥଳ ସୀମିତ API ଚାବିରେ ସୁରକ୍ଷିତ।

1. ସାରାଂଶ

MousePlayer API ଆପଣଙ୍କ କାର୍ଯ୍ୟସ୍ଥଳରୁ ନିଜ ଡ୍ୟାଶବୋର୍ଡ୍, ଡାଟା ୱେୟାରହାଉସ୍ କିମ୍ବା ଆଭ୍ୟନ୍ତରୀଣ ସାଧନକୁ ତଥ୍ୟ ଆଣିବାକୁ ଦିଏ। ସେସନ୍‌ରେ ଗ୍ରାହକ ID ଯୋଡ଼ିବା ବ୍ୟତୀତ (identify, write scope ଥିବା ଚାବି ଦରକାର, ଚାବି ପରିସର ଦେଖନ୍ତୁ) ଏହା କେବଳ ପଢ଼ିବା ପାଇଁ: API ଦ୍ୱାରା କୌଣସି ତଥ୍ୟ ବଦଳାଇ କିମ୍ବା ବିଲୋପ କରିହେବ ନାହିଁ।

  • ମୂଳ URL: https://www.mouseplayer.com/api/v1/
  • ସମସ୍ତ ଉତ୍ତର JSON।
  • ପ୍ରତି ଅନୁରୋଧ API ଚାବିରେ ପ୍ରମାଣୀକୃତ ହୁଏ ଓ ସେହି ଚାବିର କାର୍ଯ୍ୟସ୍ଥଳରେ ସ୍ୱୟଂଚାଳିତ ସୀମିତ ହୁଏ — ଗୋଟିଏ କାର୍ଯ୍ୟସ୍ଥଳର ଚାବି କେବେ ଅନ୍ୟ କାର୍ଯ୍ୟସ୍ଥଳର ତଥ୍ୟ ଦେଖିପାରେ ନାହିଁ, ଭୁଲ୍‌ରେ ମଧ୍ୟ ନୁହେଁ।
  • ସମ୍ପୂର୍ଣ୍ଣ ସେସନ୍ ରେକର୍ଡିଂ (ମାଉସ୍ ଗତି, DOM ସ୍ନାପସଟ୍) API ଦ୍ୱାରା ଦିଆଯାଏ ନାହିଁ । ଆପଣ ସେସନ୍ ମେଟାଡାଟା, ପୃଷ୍ଠା ଦୃଶ୍ୟ, କଷ୍ଟମ୍ ଇଭେଣ୍ଟ୍ ଓ ବିଭାଗ ପାଆନ୍ତି — ମୂଳ ରେକର୍ଡିଂ ପେଲୋଡ୍ ପଠାଇବା ବିନା ରିପୋର୍ଟ୍ ଓ ଡ୍ୟାଶବୋର୍ଡ୍ ତିଆରି ପାଇଁ ଯଥେଷ୍ଟ।

2. ପ୍ରମାଣୀକରଣ

ଆପଣଙ୍କ API ଚାବି ଏଠାରେ ସୃଷ୍ଟି ଓ ପରିଚାଳନା କରନ୍ତୁ: API ଚାବି ଆକାଉଣ୍ଟ୍ ମେନୁରେ (/api-keys)। କେବଳ କାର୍ଯ୍ୟସ୍ଥଳ ମାଲିକ ଓ ପ୍ରଶାସକ ଚାବି ସୃଷ୍ଟି କିମ୍ବା ପ୍ରତ୍ୟାହାର କରିପାରନ୍ତି।

ଚାବି ଗୁପ୍ତ ରଖନ୍ତୁ। ଏହା କାର୍ଯ୍ୟସ୍ଥଳର ସବୁକିଛି ପଢ଼ିବା ଅନୁମତି ଦିଏ। ସୃଷ୍ଟି ପରେ ତୁରନ୍ତ ସମ୍ପୂର୍ଣ୍ଣ ଚାବି ଠିକ୍ ଥରେ ଦେଖାଯାଏ — ପାସୱାର୍ଡ୍ ମ୍ୟାନେଜର୍ କିମ୍ବା ଗୁପ୍ତ ତଥ୍ୟ ଭଣ୍ଡାରରେ ରଖନ୍ତୁ। ହରାଇଲେ ପ୍ରତ୍ୟାହାର କରି ନୂଆଟି ସୃଷ୍ଟି କରନ୍ତୁ।

ପ୍ରତି ଅନୁରୋଧର ଏହି ହେଡର୍‌ରେ Bearer token ଭାବେ ଚାବି ପଠାନ୍ତୁ: Authorization :

# List projects in your workspace curl -H "Authorization: Bearer mp_live_..." \ https://www.mouseplayer.com/api/v1/projects

ନଥିବା, ଭୁଲ୍ ରୂପର କିମ୍ବା ପ୍ରତ୍ୟାହୃତ ଚାବି ଏହି ଉତ୍ତର ପାଏ: 401 :

{ "error": "Invalid or missing API key. Use: Authorization: Bearer <key>" }

ପ୍ଲାନ୍ ଆବଶ୍ୟକତା

REST API ଏହି ପ୍ଲାନ୍‌ର ଅଂଶ: Business ଓ Enterprise । ପ୍ଲାନ୍ କାର୍ଯ୍ୟସ୍ଥଳର ଏହି ବ୍ୟକ୍ତିଙ୍କଠାରୁ ନିଆଯାଏ: ମାଲିକ , ତେଣୁ ନିମନ୍ତ୍ରିତ ଦଳ ସଦସ୍ୟ ତାହା ପାଆନ୍ତି। ଯାଞ୍ଚ ଚାଲେ ପ୍ରତି ଅନୁରୋଧରେ, କେବଳ ଚାବି ସୃଷ୍ଟିବେଳେ ନୁହେଁ — କାର୍ଯ୍ୟସ୍ଥଳ ନିମ୍ନ ପ୍ଲାନ୍‌କୁ ଗଲେ ବର୍ତ୍ତମାନର ଚାବି କାମ ବନ୍ଦ କରି ଏହା ଫେରାଏ: 403।

ଚାବି ପରିସର

ପ୍ରତି ଚାବିର ନିଜ ଉପସର୍ଗରେ ପରିସର ଥାଏ, ତେଣୁ ଦେଖିଲେ ଚାବି କଣ କରେ ବୁଝିପାରିବେ — ଏଥିରେ: .env, ଟିକେଟ୍‌ରେ, ଟର୍ମିନାଲ୍‌ରେ।

ଉପସର୍ଗଅର୍ଥ
mp_ro_କେବଳ ପଢ଼ିବା। ପ୍ରକଳ୍ପ, ସେସନ୍, ଇଭେଣ୍ଟ୍ ଓ ବିଭାଗ ପଢ଼େ। କିଛି ବଦଳାଇପାରେ ନାହିଁ।
mp_rw_ପଢ଼ିବା ଓ ଲେଖିବା। ଉପରର ସବୁ, ଏବଂ identify ଏଣ୍ଡପଏଣ୍ଟ୍‌ରେ ଗ୍ରାହକ ID ଯୋଡ଼ିବା।
ଚାବି ସୃଷ୍ଟିବେଳେ ପରିସର ବାଛନ୍ତୁ; ଡିଫଲ୍ଟ କେବଳ ପଢ଼ିବା। ଲେଖା ଏଣ୍ଡପଏଣ୍ଟ୍‌ରେ ପଢ଼ିବା ଚାବି ବ୍ୟବହାର କଲେ ଏହା ଫେରେ: 403 ଚାବିର ପ୍ରକାର ଓ ଏଣ୍ଡପଏଣ୍ଟ୍‌ର ଆବଶ୍ୟକତା ଜଣାଉଥିବା ସନ୍ଦେଶ ସହ। ପରେ ପରିସର ବଦଳାଇହେବ ନାହିଁ — ନୂଆ ଚାବି ସୃଷ୍ଟି କରି ପୁରୁଣାଟି ପ୍ରତ୍ୟାହାର କରନ୍ତୁ।

3. ଅନୁରୋଧ ହାର ସୀମା

ପ୍ରତି API ଚାବିର ସୀମା ମିନିଟ୍‌କୁ 60 ଅନୁରୋଧ, ଗତିଶୀଳ ସମୟ ଅବଧିରେ ଗଣାଯାଏ। ଅତିକ୍ରମ କଲେ ଅନୁରୋଧ ଏହି ଉତ୍ତର ପାଏ: 429 ଅବଧି ଖାଲି ହେବା ପର୍ଯ୍ୟନ୍ତ:

{ "error": "Rate limit exceeded. Max 60 requests per minute." }

ଅଧିକ ସୀମା ଦରକାର ଥିବା କିଛି ତିଆରି କରୁଛନ୍ତି? ଏଠାରେ ଯୋଗାଯୋଗ କରନ୍ତୁ: ସହାୟତା ଓ ଆପଣଙ୍କ ବ୍ୟବହାର କ୍ଷେତ୍ର ଜଣାନ୍ତୁ।

4. ଏଣ୍ଡପଏଣ୍ଟ୍

GET/api/v1/projects

କାର୍ଯ୍ୟସ୍ଥଳର ପ୍ରତ୍ୟେକ ପ୍ରକଳ୍ପ (ଟ୍ରାକ୍ ପ୍ରପର୍ଟି) ତାଲିକା କରେ।

{ "data": [ { "channelid": "955a45df5ee842cb", "domain": "yourdomain.com", "status": "active", "total_traffic_bytes": 27304765, "created_at": "2026-07-19 22:06:39", "last_used": "2026-08-05 01:12:55" } ] }

GET/api/v1/projects/{channelid}/sessions

ପ୍ରକଳ୍ପର ରେକର୍ଡ୍ ପରିଦର୍ଶକ ସେସନ୍ ତାଲିକା କରେ, ନୂଆ ପ୍ରଥମେ। ପୃଷ୍ଠାବଦ୍ଧ।

କ୍ୱେରି ପାରାମିଟର୍ବର୍ଣ୍ଣନା
pageପୃଷ୍ଠା ସଂଖ୍ୟା, ଡିଫଲ୍ଟ 1।
per_pageପ୍ରତି ପୃଷ୍ଠା ଫଳ, ଡିଫଲ୍ଟ 25, ସର୍ବାଧିକ 100।
sinceକେବଳ ଏହି ତାରିଖରେ କିମ୍ବା ପରେ ଆରମ୍ଭ ସେସନ୍ (YYYY-MM-DD)।
untilକେବଳ ଏହି ତାରିଖରେ କିମ୍ବା ପୂର୍ବରୁ ଆରମ୍ଭ ସେସନ୍।
{ "data": [ { "session_id": "s_kfmist058_1785795295504", "visitor_id": "v_sv90jdpzo_1785795296042", "custom_user_id": null, "country": "DE", "device_type": "desktop", "is_bot": 0, "start_time": "2026-08-04 00:14:56", "end_time": "2026-08-04 00:16:41", "duration_seconds": 105 } ], "pagination": { "page": 1, "per_page": 25, "total": 142, "total_pages": 6 } }

GET/api/v1/sessions/{session_id}

ଗୋଟିଏ ସେସନ୍‌ର ମେଟାଡାଟା ଓ ତାହାର ପୃଷ୍ଠା ଦୃଶ୍ୟ। ସମ୍ପୂର୍ଣ୍ଣ ରେକର୍ଡିଂ ପେଲୋଡ୍ ଜାଣିଶୁଣି ବାଦ୍ — ସେଥିପାଇଁ ଡ୍ୟାଶବୋର୍ଡ୍‌ର ପ୍ଲେୟର୍ ବ୍ୟବହାର କରନ୍ତୁ।

{ "data": { "session_id": "s_kfmist058_1785795295504", "channelid": "955a45df5ee842cb", "visitor_id": "v_sv90jdpzo_1785795296042", "country": "DE", "asn_org": "Deutsche Telekom AG", "referrer": "https://duckduckgo.com/", "device_type": "desktop", "start_time": "2026-08-04 00:14:56", "end_time": "2026-08-04 00:16:41", "duration_seconds": 105, "pageviews": [ { "pageview_id": 1199, "url": "https://yourdomain.com/pricing", "page_title": "Pricing", "start_time": "2026-08-04 00:14:56", "end_time": "2026-08-04 00:16:41" } ] } }

GET/api/v1/sessions/{session_id}/events

ସେସନ୍ ସମୟରେ ଆସିଥିବା କଷ୍ଟମ୍ ଇଭେଣ୍ଟ୍ (ଆପଣ ଏଥିରେ ପଠାଉଥିବା ସମାନ ଇଭେଣ୍ଟ୍: mp('event', ...)), ସେମାନଙ୍କ ପାରାମିଟର୍ ସହିତ।

{ "data": [ { "event_id": 61, "pageview_id": 1199, "event_name": "add_to_cart", "created_at": "2026-08-04 00:14:59", "params": { "item_id": "SKU_98765", "price": 299.99 } } ] }

GET/api/v1/projects/{channelid}/segments

ପ୍ରକଳ୍ପ ପାଇଁ ସଂଜ୍ଞା ଦିଆ ପରିଦର୍ଶକ ବିଭାଗ ତାଲିକା କରେ (ପ୍ରକଳ୍ପର ନିଜସ୍ୱ ଓ ସମଗ୍ର କାର୍ଯ୍ୟସ୍ଥଳର ବିଭାଗ ଉଭୟ)।

{ "data": [ { "segment_id": 4, "name": "High Intent Visitors", "description": "Pageviews > 5", "badge_color": "cyan", "is_global": 0, "created_at": "2026-08-03 00:00:43" } ] }

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 କୁ ପହଞ୍ଚେ।

ସମାନ ID ସହ ଦୁଇଥର କଲ୍ ସୁରକ୍ଷିତ। ଉତ୍ତର ଏହା ସହ ଫେରେ: "changed": false ଏବଂ କୌଣସି webhook ପଠାଯାଏ ନାହିଁ। ପୁନରାବୃତ୍ତ ଅର୍ଡର୍ ଦ୍ୱିତୀୟ ସମ୍ଭାବ୍ୟ ଗ୍ରାହକ ସୃଷ୍ଟି କରେ ନାହିଁ।
ସ୍ଥିତିକେବେ
400ଫିଲ୍ଡ ନାହିଁ, user_id 128 ଅକ୍ଷରରୁ ଅଧିକ କିମ୍ବା ତାହାରେ ନିୟନ୍ତ୍ରଣ ଅକ୍ଷର। କାଟିବା ବଦଳରେ ଅସ୍ୱୀକାର କରୁ — ନିରବରେ ଛୋଟ କରା ID CRM ରେ କାହା ସହ ମେଳେ ନାହିଁ, ତଥାପି ସଫଳତା ପରି ଦେଖାଯାଏ।
404ସେସନ୍ ନାହିଁ କିମ୍ବା ଆପଣଙ୍କ କାର୍ଯ୍ୟସ୍ଥଳର ନୁହେଁ। ଉଭୟ ପାଇଁ ଜାଣିଶୁଣି ସମାନ ଉତ୍ତର।
403କାର୍ଯ୍ୟସ୍ଥଳ ପ୍ଲାନ୍‌ରେ API ଅନ୍ତର୍ଭୁକ୍ତ ନାହିଁ।

6. Webhook: ସ୍ୱାକ୍ଷର ଯାଞ୍ଚ

ପ୍ରତି ପ୍ରକଳ୍ପର webhook ଏଠାରେ ବିନ୍ୟାସ ହୁଏ: ସମନ୍ୱୟ, ଯେଉଁଠି ସ୍ୱାକ୍ଷର ଗୁପ୍ତ ଚାବି ମଧ୍ୟ ପାଇବେ। ପ୍ରତି ବିତରଣରେ ଏହି ହେଡର୍ ଥାଏ:

ହେଡର୍ଅର୍ଥ
X-MousePlayer-Eventଇଭେଣ୍ଟ୍ ନାମ, ଯଥା session_identified
X-MousePlayer-TimestampUnix ସେକେଣ୍ଡ୍ — ସ୍ୱାକ୍ଷରିତ ପାଠ୍ୟର ଅଂଶ
X-MousePlayer-Attemptପ୍ରଥମ ଚେଷ୍ଟାରେ 1, ପୁନଃଚେଷ୍ଟାରେ ଅଧିକ
X-MousePlayer-Signaturesha256=<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');
ଏହି body ଉପରେ ସ୍ୱାକ୍ଷର କରନ୍ତୁ: ମୂଳ , JSON ପଢ଼ିବା ପୂର୍ବରୁ। ପୁଣି ସିରିଆଲାଇଜ୍ କଲେ ଚାବି କ୍ରମ ଓ ଖାଲି ସ୍ଥାନ ବଦଳେ, ସ୍ୱାକ୍ଷର କେବେ ମେଳିବ ନାହିଁ। କିଛି ମିନିଟ୍‌ରୁ ଅଧିକ ପୁରୁଣା timestamp ଥିବା ସବୁକିଛି ମଧ୍ୟ ଅସ୍ୱୀକାର କରନ୍ତୁ — ସେଥିପାଇଁ timestamp ଅଛି।

ବିତରଣ ଓ ପୁନଃଚେଷ୍ଟା

ବିଫଳ ବିତରଣ ପୁଣି ଚେଷ୍ଟା ହୁଏ ଏତିକି ପରେ: 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 ଚିହ୍ନିତକରଣର ନାମ ଦିଏ — ପ୍ରତି ସଂସ୍କରଣରେ ସମାନ, ତେଣୁ ପୁଣି ଭାଙ୍ଗୁଥିବା ନୂଆ selector ଖୋଲା incident ସହ ଯୋଡ଼ାଯାଏ। ଏଗୁଡ଼ିକ ଥାଏ: 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 incident ସମାଧାନ କରେ ଓ Opsgenie alert ବନ୍ଦ କରେ। ଏଗୁଡ଼ିକ ଥାଏ: 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ସଫଳତା।
401API ଚାବି ନାହିଁ, ଭୁଲ୍ ରୂପର କିମ୍ବା ପ୍ରତ୍ୟାହୃତ।
404ମାଗାଯାଇଥିବା ପ୍ରକଳ୍ପ କିମ୍ବା ସେସନ୍ ନାହିଁ, କିମ୍ବା ଆପଣଙ୍କ କାର୍ଯ୍ୟସ୍ଥଳର ନୁହେଁ।
429ହାର ସୀମା ଅତିକ୍ରମ — ଏହି ଚାବିରେ ମିନିଟ୍‌କୁ 60 ରୁ ଅଧିକ ଅନୁରୋଧ ପଠାଉଛନ୍ତି।
403କାର୍ଯ୍ୟସ୍ଥଳ ପ୍ଲାନ୍‌ରେ REST API ନାହିଁ। ସନ୍ଦେଶ ଆବଶ୍ୟକ ଓ ବର୍ତ୍ତମାନ ପ୍ଲାନ୍ ଉଭୟର ନାମ ଦିଏ।

8. ସୁରକ୍ଷା ସୂଚନା

  • କେବଳ ପଢ଼ିବା ଚାବି (mp_ro_) କିଛି ବଦଳାଇପାରେ ନାହିଁ। ଲେଖା ଚାବି (mp_rw_) କେବଳ ଗ୍ରାହକ ID ଯୋଡ଼ିପାରେ; କୌଣସି ଚାବି ତଥ୍ୟ ବିଲୋପ କିମ୍ବା ମୂଳ ରେକର୍ଡିଂ ତଥ୍ୟ ଏକ୍ସପୋର୍ଟ୍ କରିପାରେ ନାହିଁ।
  • ପ୍ରତି ଅନୁରୋଧ ଚାବିର ନିଜ କାର୍ଯ୍ୟସ୍ଥଳରେ ସ୍ୱୟଂଚାଳିତ ସୀମିତ — ଭିନ୍ନ କାର୍ଯ୍ୟସ୍ଥଳ ID ଦେଇ ଅନ୍ୟଙ୍କ ତଥ୍ୟ ଦେଖିବାର ଉପାୟ ନାହିଁ।
  • ଯେକୌଣସି ସମୟରେ ଏଠାରୁ ଚାବି ପ୍ରତ୍ୟାହାର କରନ୍ତୁ: /api-keys; ପ୍ରତ୍ୟାହାର ତୁରନ୍ତ ପ୍ରଭାବୀ।
  • API ଚାବିକୁ ପାସୱାର୍ଡ୍ ପରି ରଖନ୍ତୁ। ଭୁଲ୍‌ରେ ସାର୍ବଜନୀନ ରିପୋଜିଟରିରେ commit କଲେ ତୁରନ୍ତ ପ୍ରତ୍ୟାହାର କରି ନୂଆ ଚାବି ସୃଷ୍ଟି କରନ୍ତୁ।

ସୀମିତ ଇଭେଣ୍ଟ୍ ପୃଷ୍ଠା (API v1, 14 ଅକ୍ଟୋବର 2026)

GET /api/v1/sessions/{session_id}/events ଡିଫଲ୍ଟ ଭାବେ ସର୍ବାଧିକ 100 ଇଭେଣ୍ଟ୍ ଫେରାଏ। per_page କୁ 1 ରୁ 100 ମଧ୍ୟରେ ପୂର୍ଣ୍ଣସଂଖ୍ୟା କରନ୍ତୁ। ପରବର୍ତ୍ତୀ ଅନୁରୋଧରେ cursor ଅପରିବର୍ତ୍ତିତ ପଠାଇ pagination.next_cursor ଅନୁସରଣ କରନ୍ତୁ; ସମାନ ସେସନ୍ ଓ କାର୍ଯ୍ୟସ୍ଥଳ ରଖନ୍ତୁ। ଇଭେଣ୍ଟ୍ created_at ଓ event_id ଅନୁସାରେ ସଜାଯାଏ। Cursor ସ୍ୱାକ୍ଷରିତ ଓ ସେହି ସେସନ୍ ଓ କାର୍ଯ୍ୟସ୍ଥଳ ସହ ବନ୍ଧା। ମୋଟ ଗଣନା କିମ୍ବା ସଂଖ୍ୟାତ୍ମକ ପୃଷ୍ଠା ଫେରେ ନାହିଁ।

ପୂର୍ବର data ଆରେ ଓ params ମାନଚିତ୍ର ଉପଲବ୍ଧ ରହେ। pagination.returned ପ୍ରକୃତ ଫେରିଥିବା ସଂଖ୍ୟା; pagination.has_more ଆଉ ପୃଷ୍ଠା ଅଛି ବୋଲି ସୂଚାଏ। ସମ୍ପୂର୍ଣ୍ଣ ହେଲେ next_cursor null। ଉତ୍ତରର ସୀମା 524288 ବାଇଟ୍, ତେଣୁ ପୃଷ୍ଠାରେ per_page ଠାରୁ କମ୍ ଇଭେଣ୍ଟ୍ ଥାଇପାରେ। ପ୍ରତି ଇଭେଣ୍ଟ୍‌ରେ ସର୍ବାଧିକ 128 ପାରାମିଟର୍ ଧାଡ଼ି ଫେରେ; ଅଧିକ ଥିଲେ params_truncated true। ଏକକ ଷ୍ଟ୍ରିଙ୍ଗ୍ ପାରାମିଟର୍‌ରେ ଡାଟାବେସ୍‌ର 255 ଅକ୍ଷର ସୀମା ରହେ। କଟା ପାରାମିଟର୍ ଏହି ଏଣ୍ଡପଏଣ୍ଟ୍‌ରେ ମିଳେ ନାହିଁ। per_page କମାଇଲେ ପାରାମିଟର୍ ସୀମା ବଢ଼େ ନାହିଁ।

ଅବୈଧ ପୃଷ୍ଠା ଆକାର, ବଦଳା Cursor ଓ ଅନ୍ୟ ସେସନ୍/କାର୍ଯ୍ୟସ୍ଥଳର Cursor 400 ଫେରାଏ। ଅତ୍ୟଧିକ ବଡ଼ ଏକକ ଇଭେଣ୍ଟ୍ ତଥ୍ୟ 413 ଫେରାଏ। ପୂର୍ବର ପ୍ରବେଶ ଯାଞ୍ଚ ଯଥାଯଥ ଭାବେ 401, 403, 404 କିମ୍ବା 409 ଫେରାଏ।

ପ୍ରତି API ଚାବିରେ ମିନିଟ୍‌କୁ 60 ପ୍ରମାଣୀକୃତ ଅନୁରୋଧ ସୀମା ରହେ। ସୀମା ସରିଲେ 429 ସହ Retry-After: 60 ଫେରେ। Redis କିମ୍ବା ସୀମା ନିୟନ୍ତ୍ରକ ଉପଲବ୍ଧ ନଥିଲେ, ଅନୁରୋଧ 503 ସହ Retry-After: 5 ଫେରାଏ; ସୀମା ବିନା କେବେ ଅନୁମତି ମିଳେ ନାହିଁ। Retry-After ମାନନ୍ତୁ ଓ ଯାଦୃଚ୍ଛିକ ଅପେକ୍ଷା ଯୋଡ଼ନ୍ତୁ; ଅବିରତ ଦ୍ରୁତ ଲୁପ୍‌ରେ ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ ନାହିଁ। ଇଭେଣ୍ଟ୍ ଡାଟାବେସ୍ ବିଫଳତା ମଧ୍ୟ 503 ଦିଏ। Cursor ସ୍ନାପସଟ୍ ସ୍ଥିର କରେ ନାହିଁ: ପୁରୁଣା timestamp ସହ ଏକାସହ ଯୋଡ଼ା ତଥ୍ୟ ପାଇଁ ନୂଆ scan ଦରକାର ହୋଇପାରେ।

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 ହେଉଛି native SDK preview ପାଇଁ କେବଳ Dev ବ୍ୟାକଏଣ୍ଡ୍ ନିୟନ୍ତ୍ରଣ ପଥ। production ରେ ବନ୍ଦ ରହେ। ବ୍ୟାକଏଣ୍ଡ୍ Bearer ଚାବିକୁ list/replay ପାଇଁ read scope ଓ register/grant/delete/disable ପାଇଁ write scope ଦରକାର। ଅତିରିକ୍ତ native-preview ଉପଲବ୍ଧତା ଯାଞ୍ଚ ଲାଗୁ ହୁଏ। ମୋବାଇଲ୍ ଆପ୍‌ରେ କେବେ ସ୍ଥାୟୀ କାର୍ଯ୍ୟସ୍ଥଳ API ଚାବି ଯୋଡ଼ନ୍ତୁ ନାହିଁ।