പൊതു 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 :

# 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 വെബ്ഹുക്ക് പ്രവർത്തിക്കും — അങ്ങനെയാണ് CRM-ൽ എത്തുന്നത്.

ഒരേ ID-യോടെ രണ്ടുതവണ വിളിക്കുന്നത് സുരക്ഷിതമാണ്. മറുപടി വരുന്നത് ഇതോടെ: "changed": false ; വെബ്ഹുക്ക് അയയ്ക്കില്ല. ആവർത്തിച്ച ഓർഡർ രണ്ടാമത്തെ ലീഡ് സൃഷ്ടിക്കില്ല.
നിലഎപ്പോൾ
400ഫീൽഡ് ഇല്ല, user_id 128 പ്രതീകങ്ങളെക്കാൾ കൂടുതലാണ്, അല്ലെങ്കിൽ നിയന്ത്രണ പ്രതീകങ്ങളുണ്ട്. ചുരുക്കുന്നതിനുപകരം നിരസിക്കുന്നു — നിശ്ശബ്ദമായി ചുരുക്കിയ ID CRM-ൽ ഒന്നുമായും പൊരുത്തപ്പെടില്ലെങ്കിലും വിജയമായി തോന്നും.
404സെഷൻ നിലവിലില്ല അല്ലെങ്കിൽ നിങ്ങളുടെ വർക്ക്സ്പേസിന്റേതല്ല. രണ്ടിനും മനഃപൂർവം ഒരേ മറുപടി.
403വർക്ക്സ്പേസ് പ്ലാനിൽ API ഉൾപ്പെടുന്നില്ല.

6. വെബ്ഹുക്കുകൾ: ഒപ്പ് പരിശോധിക്കൽ

ഓരോ പ്രോജക്റ്റിലും വെബ്ഹുക്കുകൾ സജ്ജമാക്കുന്നത് ഇന്റഗ്രേഷനുകൾഎന്നതിലാണ്; ഒപ്പിടൽ രഹസ്യ കീയും അവിടെ കാണാം. ഓരോ ഡെലിവറിയിലും ഈ ഹെഡറുകൾ ഉണ്ട്:

ഹെഡർഅർത്ഥം
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');
ഒപ്പിടേണ്ടത് അസംസ്കൃത ഉള്ളടക്കത്തിലാണ്, JSON പാഴ്സിംഗിനു മുമ്പ്. വീണ്ടും സീരിയലൈസ് ചെയ്താൽ കീ ക്രമവും ഇടവേളകളും മാറും; ഒപ്പ് പൊരുത്തപ്പെടില്ല. ഏതാനും മിനിറ്റിലധികം പഴയ സമയമുദ്രയുള്ളതും നിരസിക്കുക — അതിനാണ് സമയമുദ്ര.

ഡെലിവറിയും വീണ്ടും ശ്രമിക്കലും

പരാജയപ്പെട്ട ഡെലിവറി വീണ്ടും ശ്രമിക്കുന്നത് 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ഫ്രണ്ട് എൻഡ് എക്സെപ്ഷനിൽ
ceസ്വന്തം ഇഷ്ടാനുസൃത ഇവന്റുകൾക്കുള്ള കൂട്ട സബ്സ്ക്രിപ്ഷൻ. ഇത് ഉൾക്കൊള്ളില്ല മുകളിലെ ഇവന്റുകൾ — അവയ്ക്ക് സ്വന്തം സ്വിച്ചുകളുണ്ട്.

7. പിശകുകളും & നിലകോഡുകളും

നിലഅർത്ഥം
200വിജയം.
401API കീ ഇല്ല, തെറ്റായ രൂപത്തിലാണ്, അല്ലെങ്കിൽ പിൻവലിച്ചു.
404ആവശ്യപ്പെട്ട പ്രോജക്റ്റോ സെഷനോ നിലവിലില്ല, അല്ലെങ്കിൽ നിങ്ങളുടെ വർക്ക്സ്പേസിന്റേതല്ല.
429നിരക്ക് പരിധി കവിഞ്ഞു — ഈ കീ ഉപയോഗിച്ച് മിനിറ്റിൽ 60-ൽ കൂടുതൽ അഭ്യർത്ഥനകൾ അയയ്ക്കുന്നു.
403വർക്ക്സ്പേസ് പ്ലാനിൽ REST API ഉൾപ്പെടുന്നില്ല. ആവശ്യമായ പ്ലാനും നിലവിലേതും സന്ദേശം പറയുന്നു.

8. സുരക്ഷാ കുറിപ്പുകൾ

  • വായനാ കീകൾക്ക് (mp_ro_) ഒന്നും മാറ്റാനാകില്ല. എഴുത്ത് കീകൾക്ക് (mp_rw_) ഉപഭോക്തൃ ID ചേർക്കാൻ മാത്രം കഴിയും; ഒരു കീയ്ക്കും ഡാറ്റ ഇല്ലാതാക്കാനോ അസംസ്കൃത റീപ്ലേ ഡാറ്റ എക്സ്പോർട്ട് ചെയ്യാനോ കഴിയില്ല.
  • ഓരോ അഭ്യർത്ഥനയും കീയുടെ സ്വന്തം വർക്ക്സ്പേസിലേക്ക് സ്വയം പരിമിതപ്പെടുത്തുന്നു — മറ്റൊരു വർക്ക്സ്പേസ് ID നൽകി മറ്റുള്ളവരുടെ ഡാറ്റ കാണാൻ വഴിയില്ല.
  • എപ്പോൾ വേണമെങ്കിലും കീ പിൻവലിക്കുക: /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-ക്ക് വായനാ സ്കോപ്പും register/grant/delete/disable-ക്ക് എഴുത്ത് സ്കോപ്പും വേണം. അധിക നേറ്റീവ് മുൻകാഴ്ച ലഭ്യതാ പരിശോധനകൾ ബാധകമാണ്. സ്ഥിര വർക്ക്സ്പേസ് API കീകൾ മൊബൈൽ ആപ്പിൽ ഒരിക്കലും ഉൾച്ചേർക്കരുത്.