[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-\u002Fdocs\u002Fapi\u002Fendpoints\u002Fanalytics\u002Flog-view":3},{"_path":4,"title":5,"description":6,"navigation":7,"image":13,"head":18,"body":32},"\u002Fdocs\u002Fapi\u002Fendpoints\u002Fanalytics\u002Flog-view","Log View API Endpoint · Waitlister Documentation","Learn how to track views of your waitlist programmatically using the Waitlister API.",{"title":8,"parent":9,"group":10,"description":11,"order":12},"Log View","Endpoints","Advanced","Record views of your waitlist programmatically.",2,{"src":14,"width":15,"height":16,"alt":17},"https:\u002F\u002Ffirebasestorage.googleapis.com\u002Fv0\u002Fb\u002Fwaitinglist-app-c24fc.appspot.com\u002Fo\u002Fdocs-og-image.png?alt=media&token=85e60b24-c882-4f84-aa9e-ef85e1ae4bb5",400,300,"Waitlister API Log View",{"meta":19},[20,23,26,29],{"name":21,"content":22},"keywords","log view, waitlist analytics, track views, waitlist api",{"name":24,"content":25},"robots","index, follow",{"name":27,"content":28},"author","Waitlister",{"name":30,"content":31},"copyright","© 2026 Waitlister",{"type":33,"children":34,"toc":631},"root",[35,49,55,60,67,105,111,118,128,134,179,185,196,203,294,300,313,322,328,403,409,422,431,437,443,454,460,469,475,481,486,538,544,549,567,573,578,611,617],{"type":36,"tag":37,"props":38,"children":39},"element","p",{},[40],{"type":36,"tag":41,"props":42,"children":45},"span",{"className":43},[44],"secondary-heading",[46],{"type":47,"value":48},"text","API Reference \u002F Endpoints",{"type":36,"tag":50,"props":51,"children":53},"h1",{"id":52},"log-view",[54],{"type":47,"value":8},{"type":36,"tag":37,"props":56,"children":57},{},[58],{"type":47,"value":59},"The Log View endpoint allows you to record when a visitor views your waitlist. This helps you track engagement and calculate conversion rates for your waitlist.",{"type":36,"tag":61,"props":62,"children":64},"h2",{"id":63},"endpoint-details",[65],{"type":47,"value":66},"Endpoint Details",{"type":36,"tag":68,"props":69,"children":70},"ul",{},[71,90],{"type":36,"tag":72,"props":73,"children":74},"li",{},[75,81,83],{"type":36,"tag":76,"props":77,"children":78},"strong",{},[79],{"type":47,"value":80},"URL",{"type":47,"value":82},": ",{"type":36,"tag":84,"props":85,"children":87},"code",{"className":86},[],[88],{"type":47,"value":89},"https:\u002F\u002Fwaitlister.me\u002Fapi\u002Fv1\u002Fwaitlist\u002F{waitlist-key}\u002Flog-view",{"type":36,"tag":72,"props":91,"children":92},{},[93,98,99],{"type":36,"tag":76,"props":94,"children":95},{},[96],{"type":47,"value":97},"Method",{"type":47,"value":82},{"type":36,"tag":84,"props":100,"children":102},{"className":101},[],[103],{"type":47,"value":104},"POST",{"type":36,"tag":61,"props":106,"children":108},{"id":107},"request",[109],{"type":47,"value":110},"Request",{"type":36,"tag":112,"props":113,"children":115},"h3",{"id":114},"headers",[116],{"type":47,"value":117},"Headers",{"type":36,"tag":119,"props":120,"children":122},"pre",{"code":121},"Content-Type: application\u002Fjson\nX-Api-Key: your-api-key\n",[123],{"type":36,"tag":84,"props":124,"children":126},{"__ignoreMap":125},"",[127],{"type":47,"value":121},{"type":36,"tag":112,"props":129,"children":131},{"id":130},"path-parameters",[132],{"type":47,"value":133},"Path Parameters",{"type":36,"tag":135,"props":136,"children":137},"table",{},[138,157],{"type":36,"tag":139,"props":140,"children":141},"thead",{},[142],{"type":36,"tag":143,"props":144,"children":145},"tr",{},[146,152],{"type":36,"tag":147,"props":148,"children":149},"th",{},[150],{"type":47,"value":151},"Parameter",{"type":36,"tag":147,"props":153,"children":154},{},[155],{"type":47,"value":156},"Description",{"type":36,"tag":158,"props":159,"children":160},"tbody",{},[161],{"type":36,"tag":143,"props":162,"children":163},{},[164,174],{"type":36,"tag":165,"props":166,"children":167},"td",{},[168],{"type":36,"tag":84,"props":169,"children":171},{"className":170},[],[172],{"type":47,"value":173},"waitlist-key",{"type":36,"tag":165,"props":175,"children":176},{},[177],{"type":47,"value":178},"Your unique waitlist key, found in your waitlist settings",{"type":36,"tag":112,"props":180,"children":182},{"id":181},"request-body",[183],{"type":47,"value":184},"Request Body",{"type":36,"tag":119,"props":186,"children":191},{"code":187,"language":188,"meta":125,"className":189},"{\n  \"visitor_id\": \"unique-visitor-id\",\n  \"metadata\": {\n    \"referring_domain\": \"google.com\"\n  }\n}\n","json",[190],"language-json",[192],{"type":36,"tag":84,"props":193,"children":194},{"__ignoreMap":125},[195],{"type":47,"value":187},{"type":36,"tag":197,"props":198,"children":200},"h4",{"id":199},"optional-fields",[201],{"type":47,"value":202},"Optional Fields",{"type":36,"tag":135,"props":204,"children":205},{},[206,226],{"type":36,"tag":139,"props":207,"children":208},{},[209],{"type":36,"tag":143,"props":210,"children":211},{},[212,217,222],{"type":36,"tag":147,"props":213,"children":214},{},[215],{"type":47,"value":216},"Field",{"type":36,"tag":147,"props":218,"children":219},{},[220],{"type":47,"value":221},"Type",{"type":36,"tag":147,"props":223,"children":224},{},[225],{"type":47,"value":156},{"type":36,"tag":158,"props":227,"children":228},{},[229,251,273],{"type":36,"tag":143,"props":230,"children":231},{},[232,241,246],{"type":36,"tag":165,"props":233,"children":234},{},[235],{"type":36,"tag":84,"props":236,"children":238},{"className":237},[],[239],{"type":47,"value":240},"visitor_id",{"type":36,"tag":165,"props":242,"children":243},{},[244],{"type":47,"value":245},"String",{"type":36,"tag":165,"props":247,"children":248},{},[249],{"type":47,"value":250},"A unique identifier for the visitor to prevent duplicate view counts",{"type":36,"tag":143,"props":252,"children":253},{},[254,263,268],{"type":36,"tag":165,"props":255,"children":256},{},[257],{"type":36,"tag":84,"props":258,"children":260},{"className":259},[],[261],{"type":47,"value":262},"metadata",{"type":36,"tag":165,"props":264,"children":265},{},[266],{"type":47,"value":267},"Object",{"type":36,"tag":165,"props":269,"children":270},{},[271],{"type":47,"value":272},"Additional information about the view",{"type":36,"tag":143,"props":274,"children":275},{},[276,285,289],{"type":36,"tag":165,"props":277,"children":278},{},[279],{"type":36,"tag":84,"props":280,"children":282},{"className":281},[],[283],{"type":47,"value":284},"metadata.referring_domain",{"type":36,"tag":165,"props":286,"children":287},{},[288],{"type":47,"value":245},{"type":36,"tag":165,"props":290,"children":291},{},[292],{"type":47,"value":293},"Domain that referred the view (overrides HTTP referrer)",{"type":36,"tag":61,"props":295,"children":297},{"id":296},"response",[298],{"type":47,"value":299},"Response",{"type":36,"tag":112,"props":301,"children":303},{"id":302},"success-response-200",[304,306],{"type":47,"value":305},"Success Response ",{"type":36,"tag":84,"props":307,"children":310},{"className":308},[309],"inline-code-green",[311],{"type":47,"value":312},"200",{"type":36,"tag":119,"props":314,"children":317},{"code":315,"language":188,"meta":125,"className":316},"{\n  \"success\": true,\n  \"message\": \"Successfully logged view\"\n}\n",[190],[318],{"type":36,"tag":84,"props":319,"children":320},{"__ignoreMap":125},[321],{"type":47,"value":315},{"type":36,"tag":197,"props":323,"children":325},{"id":324},"success-response-fields",[326],{"type":47,"value":327},"Success Response Fields",{"type":36,"tag":135,"props":329,"children":330},{},[331,349],{"type":36,"tag":139,"props":332,"children":333},{},[334],{"type":36,"tag":143,"props":335,"children":336},{},[337,341,345],{"type":36,"tag":147,"props":338,"children":339},{},[340],{"type":47,"value":216},{"type":36,"tag":147,"props":342,"children":343},{},[344],{"type":47,"value":221},{"type":36,"tag":147,"props":346,"children":347},{},[348],{"type":47,"value":156},{"type":36,"tag":158,"props":350,"children":351},{},[352,382],{"type":36,"tag":143,"props":353,"children":354},{},[355,364,369],{"type":36,"tag":165,"props":356,"children":357},{},[358],{"type":36,"tag":84,"props":359,"children":361},{"className":360},[],[362],{"type":47,"value":363},"success",{"type":36,"tag":165,"props":365,"children":366},{},[367],{"type":47,"value":368},"Boolean",{"type":36,"tag":165,"props":370,"children":371},{},[372,374,380],{"type":47,"value":373},"Always ",{"type":36,"tag":84,"props":375,"children":377},{"className":376},[],[378],{"type":47,"value":379},"true",{"type":47,"value":381}," for successful responses",{"type":36,"tag":143,"props":383,"children":384},{},[385,394,398],{"type":36,"tag":165,"props":386,"children":387},{},[388],{"type":36,"tag":84,"props":389,"children":391},{"className":390},[],[392],{"type":47,"value":393},"message",{"type":36,"tag":165,"props":395,"children":396},{},[397],{"type":47,"value":245},{"type":36,"tag":165,"props":399,"children":400},{},[401],{"type":47,"value":402},"A human-readable success message",{"type":36,"tag":112,"props":404,"children":406},{"id":405},"error-responses",[407],{"type":47,"value":408},"Error Responses",{"type":36,"tag":197,"props":410,"children":412},{"id":411},"bad-request-400",[413,415],{"type":47,"value":414},"Bad Request ",{"type":36,"tag":84,"props":416,"children":419},{"className":417},[418],"inline-code-red",[420],{"type":47,"value":421},"400",{"type":36,"tag":119,"props":423,"children":426},{"code":424,"language":188,"meta":125,"className":425},"{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"invalid_request\",\n    \"message\": \"The request is invalid.\"\n  }\n}\n",[190],[427],{"type":36,"tag":84,"props":428,"children":429},{"__ignoreMap":125},[430],{"type":47,"value":424},{"type":36,"tag":61,"props":432,"children":434},{"id":433},"examples",[435],{"type":47,"value":436},"Examples",{"type":36,"tag":112,"props":438,"children":440},{"id":439},"basic-view-logging",[441],{"type":47,"value":442},"Basic View Logging",{"type":36,"tag":119,"props":444,"children":449},{"code":445,"language":446,"meta":125,"className":447},"curl -X POST \"https:\u002F\u002Fwaitlister.me\u002Fapi\u002Fv1\u002Fwaitlist\u002Fyour-waitlist-key\u002Flog-view\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -H \"X-Api-Key: your-api-key\" \\\n  -d '{}'\n","bash",[448],"language-bash",[450],{"type":36,"tag":84,"props":451,"children":452},{"__ignoreMap":125},[453],{"type":47,"value":445},{"type":36,"tag":112,"props":455,"children":457},{"id":456},"view-logging-with-visitor-id",[458],{"type":47,"value":459},"View Logging with Visitor ID",{"type":36,"tag":119,"props":461,"children":464},{"code":462,"language":446,"meta":125,"className":463},"curl -X POST \"https:\u002F\u002Fwaitlister.me\u002Fapi\u002Fv1\u002Fwaitlist\u002Fyour-waitlist-key\u002Flog-view\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -H \"X-Api-Key: your-api-key\" \\\n  -d '{\n    \"visitor_id\": \"user123-browser456-session789\"\n  }'\n",[448],[465],{"type":36,"tag":84,"props":466,"children":467},{"__ignoreMap":125},[468],{"type":47,"value":462},{"type":36,"tag":61,"props":470,"children":472},{"id":471},"implementation-notes",[473],{"type":47,"value":474},"Implementation Notes",{"type":36,"tag":112,"props":476,"children":478},{"id":477},"visitor-identification",[479],{"type":47,"value":480},"Visitor Identification",{"type":36,"tag":37,"props":482,"children":483},{},[484],{"type":47,"value":485},"To accurately track unique views:",{"type":36,"tag":487,"props":488,"children":489},"ol",{},[490,520],{"type":36,"tag":72,"props":491,"children":492},{},[493,495,500,502],{"type":47,"value":494},"Generate a unique ",{"type":36,"tag":84,"props":496,"children":498},{"className":497},[],[499],{"type":47,"value":240},{"type":47,"value":501}," for each visitor",{"type":36,"tag":68,"props":503,"children":504},{},[505,510,515],{"type":36,"tag":72,"props":506,"children":507},{},[508],{"type":47,"value":509},"Could be a combination of user ID, browser fingerprint, session ID, etc.",{"type":36,"tag":72,"props":511,"children":512},{},[513],{"type":47,"value":514},"Must be unique to the visitor but consistent across their sessions",{"type":36,"tag":72,"props":516,"children":517},{},[518],{"type":47,"value":519},"Store in local storage, cookies, or your database",{"type":36,"tag":72,"props":521,"children":522},{},[523,525],{"type":47,"value":524},"Send this ID with each log-view request",{"type":36,"tag":68,"props":526,"children":527},{},[528,533],{"type":36,"tag":72,"props":529,"children":530},{},[531],{"type":47,"value":532},"Helps prevent duplicate view counts",{"type":36,"tag":72,"props":534,"children":535},{},[536],{"type":47,"value":537},"Same visitor is only counted once per 24-hour period",{"type":36,"tag":112,"props":539,"children":541},{"id":540},"security-note",[542],{"type":47,"value":543},"Security Note",{"type":36,"tag":37,"props":545,"children":546},{},[547],{"type":47,"value":548},"In production, you should never expose your API key in client-side code. Instead:",{"type":36,"tag":487,"props":550,"children":551},{},[552,557,562],{"type":36,"tag":72,"props":553,"children":554},{},[555],{"type":47,"value":556},"Create a server-side endpoint that calls the Waitlister API",{"type":36,"tag":72,"props":558,"children":559},{},[560],{"type":47,"value":561},"Have your client-side code call your server endpoint",{"type":36,"tag":72,"props":563,"children":564},{},[565],{"type":47,"value":566},"Your server adds the API key before forwarding the request to Waitlister",{"type":36,"tag":61,"props":568,"children":570},{"id":569},"using-view-data",[571],{"type":47,"value":572},"Using View Data",{"type":36,"tag":37,"props":574,"children":575},{},[576],{"type":47,"value":577},"View data is used in several ways.",{"type":36,"tag":68,"props":579,"children":580},{},[581,591,601],{"type":36,"tag":72,"props":582,"children":583},{},[584,589],{"type":36,"tag":76,"props":585,"children":586},{},[587],{"type":47,"value":588},"Analytics Dashboard",{"type":47,"value":590},": See total views, conversion rates, and referring domains",{"type":36,"tag":72,"props":592,"children":593},{},[594,599],{"type":36,"tag":76,"props":595,"children":596},{},[597],{"type":47,"value":598},"Conversion Rate",{"type":47,"value":600},": Calculate the percentage of viewers who join your waitlist",{"type":36,"tag":72,"props":602,"children":603},{},[604,609],{"type":36,"tag":76,"props":605,"children":606},{},[607],{"type":47,"value":608},"Traffic Sources",{"type":47,"value":610},": Identify which channels drive the most traffic and sign-ups",{"type":36,"tag":61,"props":612,"children":614},{"id":613},"rate-limits",[615],{"type":47,"value":616},"Rate Limits",{"type":36,"tag":37,"props":618,"children":619},{},[620,622,629],{"type":47,"value":621},"See ",{"type":36,"tag":623,"props":624,"children":626},"a",{"href":625},"\u002Fdocs\u002Fapi\u002Frate-limits",[627],{"type":47,"value":628},"API Rate Limits",{"type":47,"value":630}," for more information.",{"title":125,"searchDepth":632,"depth":632,"links":633},3,[634,635,643,653,657,661,662],{"id":63,"depth":12,"text":66},{"id":107,"depth":12,"text":110,"children":636},[637,638,639],{"id":114,"depth":632,"text":117},{"id":130,"depth":632,"text":133},{"id":181,"depth":632,"text":184,"children":640},[641],{"id":199,"depth":642,"text":202},4,{"id":296,"depth":12,"text":299,"children":644},[645,649],{"id":302,"depth":632,"text":646,"children":647},"Success Response 200",[648],{"id":324,"depth":642,"text":327},{"id":405,"depth":632,"text":408,"children":650},[651],{"id":411,"depth":642,"text":652},"Bad Request 400",{"id":433,"depth":12,"text":436,"children":654},[655,656],{"id":439,"depth":632,"text":442},{"id":456,"depth":632,"text":459},{"id":471,"depth":12,"text":474,"children":658},[659,660],{"id":477,"depth":632,"text":480},{"id":540,"depth":632,"text":543},{"id":569,"depth":12,"text":572},{"id":613,"depth":12,"text":616}]