[{"data":1,"prerenderedAt":1013},["ShallowReactive",2],{"navigation_docs":3,"-api-watched-movies":100,"-api-watched-movies-surround":1008},[4,35,80,90],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":6},"Getting Started",false,"\u002Fgetting-started","1.getting-started",[10,15,20,25,30],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F2.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"icon":19},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F3.installation","i-lucide-download",{"title":21,"path":22,"stem":23,"icon":24},"Project Structure","\u002Fgetting-started\u002Fproject-structure","1.getting-started\u002F4.project-structure","i-lucide-folder-tree",{"title":26,"path":27,"stem":28,"icon":29},"Backend Server","\u002Fgetting-started\u002Fbackend","1.getting-started\u002F6.backend","i-lucide-server",{"title":31,"path":32,"stem":33,"icon":34},"Troubleshooting","\u002Fgetting-started\u002Ftroubleshooting","1.getting-started\u002F8.troubleshooting","i-lucide-wrench",{"title":36,"icon":6,"path":37,"stem":38,"children":39,"page":6},"API","\u002Fapi","2.api",[40,45,50,55,60,65,70,75],{"title":41,"path":42,"stem":43,"icon":44},"API Overview","\u002Fapi\u002Foverview","2.api\u002F1.overview","i-lucide-zap",{"title":46,"path":47,"stem":48,"icon":49},"TMDB Integration","\u002Fapi\u002Ftmdb-proxy","2.api\u002F2.tmdb-proxy","i-si-movie-line",{"title":51,"path":52,"stem":53,"icon":54},"Watched and My List APIs","\u002Fapi\u002Fwatched-movies","2.api\u002F3.watched-movies","i-lucide-eye",{"title":56,"path":57,"stem":58,"icon":59},"Recommendation Generation","\u002Fapi\u002Fgemini-recommendations","2.api\u002F4.gemini-recommendations","i-lucide-sparkles",{"title":61,"path":62,"stem":63,"icon":64},"Movie Search API","\u002Fapi\u002Fmovie-search","2.api\u002F5.movie-search","i-lucide-search",{"title":66,"path":67,"stem":68,"icon":69},"TMDB Import","\u002Fapi\u002Ftmdb-import","2.api\u002F6.tmdb-import","i-lucide-database",{"title":71,"path":72,"stem":73,"icon":74},"Movie Details & Caching","\u002Fapi\u002Fmovie-details","2.api\u002F7.movie-details","i-lucide-film",{"title":76,"path":77,"stem":78,"icon":79},"Recommendations (Cached)","\u002Fapi\u002Frecommendations-cache","2.api\u002F8.recommendations-cache","i-lucide-brain",{"title":81,"icon":6,"path":82,"stem":83,"children":84,"page":6},"Frontend","\u002Ffrontend","4.frontend",[85],{"title":86,"path":87,"stem":88,"icon":89},"Components","\u002Ffrontend\u002Fcomponents","4.frontend\u002F1.components","i-lucide-layout",{"title":91,"icon":6,"path":92,"stem":93,"children":94,"page":6},"Reference","\u002Freference","5.reference",[95],{"title":96,"path":97,"stem":98,"icon":99},"Rate Limiting","\u002Freference\u002Frate-limiting","5.reference\u002F2.rate-limiting","i-lucide-shield",{"id":101,"title":51,"body":102,"description":1001,"extension":1002,"links":1003,"meta":1004,"navigation":1005,"path":52,"seo":1006,"stem":53,"__hash__":1007},"docs\u002F2.api\u002F3.watched-movies.md",{"type":103,"value":104,"toc":986},"minimark",[105,121,126,145,149,155,175,180,211,215,218,316,321,327,330,509,518,524,527,596,602,607,671,677,680,841,847,853,893,899,904,942,946,982],[106,107,108,112,113,116,117,120],"p",{},[109,110,111],"code",{},"\u002Fapi\u002Fwatched"," and ",[109,114,115],{},"\u002Fapi\u002Fmylist"," both use Supabase and the shared ",[109,118,119],{},"movies"," table. They expose hydrated movie cards on reads, but writes only need a TMDB ID.",[122,123,125],"h2",{"id":124},"auth","Auth",[127,128,129,136,139],"ul",{},[130,131,132,133],"li",{},"Requires ",[109,134,135],{},"Authorization: Bearer \u003Csupabase_access_token>",[130,137,138],{},"User is resolved server-side from the token",[130,140,141,142],{},"Requests without a valid token return ",[109,143,144],{},"401 Unauthorized",[122,146,148],{"id":147},"current-tables","Current Tables",[150,151,153],"h3",{"id":152},"apiwatched",[109,154,111],{},[127,156,157,163,169],{},[130,158,159,160],{},"Storage table: ",[109,161,162],{},"user_watched_movies",[130,164,165,166],{},"Shape: one row per ",[109,167,168],{},"(user_id, tmdb_id)",[130,170,171,172,174],{},"Read path: joins watched IDs to ",[109,173,119],{}," so the client receives hydrated cards",[150,176,178],{"id":177},"apimylist",[109,179,115],{},[127,181,182,187,193,202],{},[130,183,159,184],{},[109,185,186],{},"user_my_list",[130,188,189,190],{},"Shape: one row per user with ",[109,191,192],{},"tmdb_ids integer[]",[130,194,195,196,112,199],{},"Write path: uses RPC functions ",[109,197,198],{},"append_my_list",[109,200,201],{},"remove_my_list",[130,203,204,205,208,209],{},"Read path: resolves ",[109,206,207],{},"tmdb_ids"," through ",[109,210,119],{},[122,212,214],{"id":213},"accepted-write-payload","Accepted Write Payload",[106,216,217],{},"Both routes accept either of these request bodies:",[219,220,221,267],"code-group",{},[222,223,229],"pre",{"className":224,"code":225,"filename":226,"language":227,"meta":228,"style":228},"language-json shiki shiki-themes material-theme-lighter github-light github-dark","{\n  \"tmdbId\": 550\n}\n","Minimal","json","",[109,230,231,240,261],{"__ignoreMap":228},[232,233,236],"span",{"class":234,"line":235},"line",1,[232,237,239],{"class":238},"sP7_E","{\n",[232,241,243,247,251,254,257],{"class":234,"line":242},2,[232,244,246],{"class":245},"s39Yj","  \"",[232,248,250],{"class":249},"sseR_","tmdbId",[232,252,253],{"class":245},"\"",[232,255,256],{"class":238},":",[232,258,260],{"class":259},"srdBf"," 550\n",[232,262,264],{"class":234,"line":263},3,[232,265,266],{"class":238},"}\n",[222,268,271],{"className":224,"code":269,"filename":270,"language":227,"meta":228,"style":228},"{\n  \"movie\": {\n    \"tmdbId\": 550\n  }\n}\n","Nested",[109,272,273,277,291,305,311],{"__ignoreMap":228},[232,274,275],{"class":234,"line":235},[232,276,239],{"class":238},[232,278,279,281,284,286,288],{"class":234,"line":242},[232,280,246],{"class":245},[232,282,283],{"class":249},"movie",[232,285,253],{"class":245},[232,287,256],{"class":238},[232,289,290],{"class":238}," {\n",[232,292,293,296,299,301,303],{"class":234,"line":263},[232,294,295],{"class":245},"    \"",[232,297,250],{"class":298},"sZMiF",[232,300,253],{"class":245},[232,302,256],{"class":238},[232,304,260],{"class":259},[232,306,308],{"class":234,"line":307},4,[232,309,310],{"class":238},"  }\n",[232,312,314],{"class":234,"line":313},5,[232,315,266],{"class":238},[106,317,318,320],{},[109,319,250],{}," must be a positive integer.",[122,322,324],{"id":323},"get-apiwatched",[109,325,326],{},"GET \u002Fapi\u002Fwatched",[106,328,329],{},"Returns the current user's watched list.",[222,331,333],{"className":224,"code":332,"language":227,"meta":228,"style":228},"{\n  \"success\": true,\n  \"movies\": [\n    {\n      \"tmdbId\": 550,\n      \"title\": \"Fight Club\",\n      \"year\": 1999,\n      \"posterPath\": \"\u002Fpath.jpg\",\n      \"genres\": [\"Drama\"],\n      \"runtime\": 139\n    }\n  ]\n}\n",[109,334,335,339,356,369,374,390,414,431,452,477,492,498,504],{"__ignoreMap":228},[232,336,337],{"class":234,"line":235},[232,338,239],{"class":238},[232,340,341,343,346,348,350,353],{"class":234,"line":242},[232,342,246],{"class":245},[232,344,345],{"class":249},"success",[232,347,253],{"class":245},[232,349,256],{"class":238},[232,351,352],{"class":245}," true",[232,354,355],{"class":238},",\n",[232,357,358,360,362,364,366],{"class":234,"line":263},[232,359,246],{"class":245},[232,361,119],{"class":249},[232,363,253],{"class":245},[232,365,256],{"class":238},[232,367,368],{"class":238}," [\n",[232,370,371],{"class":234,"line":307},[232,372,373],{"class":238},"    {\n",[232,375,376,379,381,383,385,388],{"class":234,"line":313},[232,377,378],{"class":245},"      \"",[232,380,250],{"class":298},[232,382,253],{"class":245},[232,384,256],{"class":238},[232,386,387],{"class":259}," 550",[232,389,355],{"class":238},[232,391,393,395,398,400,402,406,410,412],{"class":234,"line":392},6,[232,394,378],{"class":245},[232,396,397],{"class":298},"title",[232,399,253],{"class":245},[232,401,256],{"class":238},[232,403,405],{"class":404},"sjJ54"," \"",[232,407,409],{"class":408},"s_sjI","Fight Club",[232,411,253],{"class":404},[232,413,355],{"class":238},[232,415,417,419,422,424,426,429],{"class":234,"line":416},7,[232,418,378],{"class":245},[232,420,421],{"class":298},"year",[232,423,253],{"class":245},[232,425,256],{"class":238},[232,427,428],{"class":259}," 1999",[232,430,355],{"class":238},[232,432,434,436,439,441,443,445,448,450],{"class":234,"line":433},8,[232,435,378],{"class":245},[232,437,438],{"class":298},"posterPath",[232,440,253],{"class":245},[232,442,256],{"class":238},[232,444,405],{"class":404},[232,446,447],{"class":408},"\u002Fpath.jpg",[232,449,253],{"class":404},[232,451,355],{"class":238},[232,453,455,457,460,462,464,467,469,472,474],{"class":234,"line":454},9,[232,456,378],{"class":245},[232,458,459],{"class":298},"genres",[232,461,253],{"class":245},[232,463,256],{"class":238},[232,465,466],{"class":238}," [",[232,468,253],{"class":404},[232,470,471],{"class":408},"Drama",[232,473,253],{"class":404},[232,475,476],{"class":238},"],\n",[232,478,480,482,485,487,489],{"class":234,"line":479},10,[232,481,378],{"class":245},[232,483,484],{"class":298},"runtime",[232,486,253],{"class":245},[232,488,256],{"class":238},[232,490,491],{"class":259}," 139\n",[232,493,495],{"class":234,"line":494},11,[232,496,497],{"class":238},"    }\n",[232,499,501],{"class":234,"line":500},12,[232,502,503],{"class":238},"  ]\n",[232,505,507],{"class":234,"line":506},13,[232,508,266],{"class":238},[106,510,511,512,514,515,517],{},"If a movie exists in the relationship table but has not been hydrated in ",[109,513,119],{}," yet, the route returns a fallback item with empty display fields and the correct ",[109,516,250],{},".",[122,519,521],{"id":520},"post-apiwatched",[109,522,523],{},"POST \u002Fapi\u002Fwatched",[106,525,526],{},"Adds a watched row if it is not already present.",[219,528,529,554],{},[222,530,532],{"className":224,"code":225,"filename":531,"language":227,"meta":228,"style":228},"Request",[109,533,534,538,550],{"__ignoreMap":228},[232,535,536],{"class":234,"line":235},[232,537,239],{"class":238},[232,539,540,542,544,546,548],{"class":234,"line":242},[232,541,246],{"class":245},[232,543,250],{"class":249},[232,545,253],{"class":245},[232,547,256],{"class":238},[232,549,260],{"class":259},[232,551,552],{"class":234,"line":263},[232,553,266],{"class":238},[222,555,558],{"className":224,"code":556,"filename":557,"language":227,"meta":228,"style":228},"{\n  \"success\": true,\n  \"watchedCount\": null\n}\n","Response",[109,559,560,564,578,592],{"__ignoreMap":228},[232,561,562],{"class":234,"line":235},[232,563,239],{"class":238},[232,565,566,568,570,572,574,576],{"class":234,"line":242},[232,567,246],{"class":245},[232,569,345],{"class":249},[232,571,253],{"class":245},[232,573,256],{"class":238},[232,575,352],{"class":245},[232,577,355],{"class":238},[232,579,580,582,585,587,589],{"class":234,"line":263},[232,581,246],{"class":245},[232,583,584],{"class":249},"watchedCount",[232,586,253],{"class":245},[232,588,256],{"class":238},[232,590,591],{"class":245}," null\n",[232,593,594],{"class":234,"line":307},[232,595,266],{"class":238},[122,597,599],{"id":598},"delete-apiwatched",[109,600,601],{},"DELETE \u002Fapi\u002Fwatched",[106,603,604,605,517],{},"Removes a movie from the watched list by ",[109,606,250],{},[219,608,609,633],{},[222,610,611],{"className":224,"code":225,"filename":531,"language":227,"meta":228,"style":228},[109,612,613,617,629],{"__ignoreMap":228},[232,614,615],{"class":234,"line":235},[232,616,239],{"class":238},[232,618,619,621,623,625,627],{"class":234,"line":242},[232,620,246],{"class":245},[232,622,250],{"class":249},[232,624,253],{"class":245},[232,626,256],{"class":238},[232,628,260],{"class":259},[232,630,631],{"class":234,"line":263},[232,632,266],{"class":238},[222,634,635],{"className":224,"code":556,"filename":557,"language":227,"meta":228,"style":228},[109,636,637,641,655,667],{"__ignoreMap":228},[232,638,639],{"class":234,"line":235},[232,640,239],{"class":238},[232,642,643,645,647,649,651,653],{"class":234,"line":242},[232,644,246],{"class":245},[232,646,345],{"class":249},[232,648,253],{"class":245},[232,650,256],{"class":238},[232,652,352],{"class":245},[232,654,355],{"class":238},[232,656,657,659,661,663,665],{"class":234,"line":263},[232,658,246],{"class":245},[232,660,584],{"class":249},[232,662,253],{"class":245},[232,664,256],{"class":238},[232,666,591],{"class":245},[232,668,669],{"class":234,"line":307},[232,670,266],{"class":238},[122,672,674],{"id":673},"get-apimylist",[109,675,676],{},"GET \u002Fapi\u002Fmylist",[106,678,679],{},"Returns the current user's saved list as hydrated movie cards.",[222,681,683],{"className":224,"code":682,"language":227,"meta":228,"style":228},"{\n  \"success\": true,\n  \"movies\": [\n    {\n      \"tmdbId\": 157336,\n      \"title\": \"Interstellar\",\n      \"year\": 2014,\n      \"posterPath\": \"\u002Fpath.jpg\",\n      \"genres\": [\"Adventure\", \"Drama\"],\n      \"runtime\": 169\n    }\n  ]\n}\n",[109,684,685,689,703,715,719,734,753,768,786,816,829,833,837],{"__ignoreMap":228},[232,686,687],{"class":234,"line":235},[232,688,239],{"class":238},[232,690,691,693,695,697,699,701],{"class":234,"line":242},[232,692,246],{"class":245},[232,694,345],{"class":249},[232,696,253],{"class":245},[232,698,256],{"class":238},[232,700,352],{"class":245},[232,702,355],{"class":238},[232,704,705,707,709,711,713],{"class":234,"line":263},[232,706,246],{"class":245},[232,708,119],{"class":249},[232,710,253],{"class":245},[232,712,256],{"class":238},[232,714,368],{"class":238},[232,716,717],{"class":234,"line":307},[232,718,373],{"class":238},[232,720,721,723,725,727,729,732],{"class":234,"line":313},[232,722,378],{"class":245},[232,724,250],{"class":298},[232,726,253],{"class":245},[232,728,256],{"class":238},[232,730,731],{"class":259}," 157336",[232,733,355],{"class":238},[232,735,736,738,740,742,744,746,749,751],{"class":234,"line":392},[232,737,378],{"class":245},[232,739,397],{"class":298},[232,741,253],{"class":245},[232,743,256],{"class":238},[232,745,405],{"class":404},[232,747,748],{"class":408},"Interstellar",[232,750,253],{"class":404},[232,752,355],{"class":238},[232,754,755,757,759,761,763,766],{"class":234,"line":416},[232,756,378],{"class":245},[232,758,421],{"class":298},[232,760,253],{"class":245},[232,762,256],{"class":238},[232,764,765],{"class":259}," 2014",[232,767,355],{"class":238},[232,769,770,772,774,776,778,780,782,784],{"class":234,"line":433},[232,771,378],{"class":245},[232,773,438],{"class":298},[232,775,253],{"class":245},[232,777,256],{"class":238},[232,779,405],{"class":404},[232,781,447],{"class":408},[232,783,253],{"class":404},[232,785,355],{"class":238},[232,787,788,790,792,794,796,798,800,803,805,808,810,812,814],{"class":234,"line":454},[232,789,378],{"class":245},[232,791,459],{"class":298},[232,793,253],{"class":245},[232,795,256],{"class":238},[232,797,466],{"class":238},[232,799,253],{"class":404},[232,801,802],{"class":408},"Adventure",[232,804,253],{"class":404},[232,806,807],{"class":238},",",[232,809,405],{"class":404},[232,811,471],{"class":408},[232,813,253],{"class":404},[232,815,476],{"class":238},[232,817,818,820,822,824,826],{"class":234,"line":479},[232,819,378],{"class":245},[232,821,484],{"class":298},[232,823,253],{"class":245},[232,825,256],{"class":238},[232,827,828],{"class":259}," 169\n",[232,830,831],{"class":234,"line":494},[232,832,497],{"class":238},[232,834,835],{"class":234,"line":500},[232,836,503],{"class":238},[232,838,839],{"class":234,"line":506},[232,840,266],{"class":238},[122,842,844],{"id":843},"post-apimylist",[109,845,846],{},"POST \u002Fapi\u002Fmylist",[106,848,849,850,852],{},"Adds a TMDB ID through the ",[109,851,198],{}," RPC function.",[222,854,856],{"className":224,"code":855,"language":227,"meta":228,"style":228},"{\n  \"success\": true,\n  \"myListCount\": null\n}\n",[109,857,858,862,876,889],{"__ignoreMap":228},[232,859,860],{"class":234,"line":235},[232,861,239],{"class":238},[232,863,864,866,868,870,872,874],{"class":234,"line":242},[232,865,246],{"class":245},[232,867,345],{"class":249},[232,869,253],{"class":245},[232,871,256],{"class":238},[232,873,352],{"class":245},[232,875,355],{"class":238},[232,877,878,880,883,885,887],{"class":234,"line":263},[232,879,246],{"class":245},[232,881,882],{"class":249},"myListCount",[232,884,253],{"class":245},[232,886,256],{"class":238},[232,888,591],{"class":245},[232,890,891],{"class":234,"line":307},[232,892,266],{"class":238},[122,894,896],{"id":895},"delete-apimylist",[109,897,898],{},"DELETE \u002Fapi\u002Fmylist",[106,900,901,902,852],{},"Removes a TMDB ID through the ",[109,903,201],{},[222,905,906],{"className":224,"code":855,"language":227,"meta":228,"style":228},[109,907,908,912,926,938],{"__ignoreMap":228},[232,909,910],{"class":234,"line":235},[232,911,239],{"class":238},[232,913,914,916,918,920,922,924],{"class":234,"line":242},[232,915,246],{"class":245},[232,917,345],{"class":249},[232,919,253],{"class":245},[232,921,256],{"class":238},[232,923,352],{"class":245},[232,925,355],{"class":238},[232,927,928,930,932,934,936],{"class":234,"line":263},[232,929,246],{"class":245},[232,931,882],{"class":249},[232,933,253],{"class":245},[232,935,256],{"class":238},[232,937,591],{"class":245},[232,939,940],{"class":234,"line":307},[232,941,266],{"class":238},[122,943,945],{"id":944},"error-codes","Error Codes",[127,947,948,956,962,970,976],{},[130,949,950,953,954],{},[109,951,952],{},"400"," invalid payload or invalid ",[109,955,250],{},[130,957,958,961],{},[109,959,960],{},"401"," missing or invalid bearer token",[130,963,964,967,968],{},[109,965,966],{},"409"," movie is already in watched list when adding to ",[109,969,115],{},[130,971,972,975],{},[109,973,974],{},"405"," unsupported method",[130,977,978,981],{},[109,979,980],{},"500"," Supabase query, delete, upsert, or RPC failure",[983,984,985],"style",{},"html pre.shiki code .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s39Yj, html code.shiki .s39Yj{--shiki-light:#39ADB5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sseR_, html code.shiki .sseR_{--shiki-light:#9C3EDA;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .srdBf, html code.shiki .srdBf{--shiki-light:#F76D47;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sZMiF, html code.shiki .sZMiF{--shiki-light:#E2931D;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sjJ54, html code.shiki .sjJ54{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}",{"title":228,"searchDepth":242,"depth":242,"links":987},[988,989,993,994,995,996,997,998,999,1000],{"id":124,"depth":242,"text":125},{"id":147,"depth":242,"text":148,"children":990},[991,992],{"id":152,"depth":263,"text":111},{"id":177,"depth":263,"text":115},{"id":213,"depth":242,"text":214},{"id":323,"depth":242,"text":326},{"id":520,"depth":242,"text":523},{"id":598,"depth":242,"text":601},{"id":673,"depth":242,"text":676},{"id":843,"depth":242,"text":846},{"id":895,"depth":242,"text":898},{"id":944,"depth":242,"text":945},"Authenticated APIs for the user's watched movies and saved list","md",null,{},{"icon":54},{"title":51,"description":1001},"C4aAUpGWo6POdq-rqMKMjOujkE8QGmdDDd3zzOeALjc",[1009,1011],{"title":46,"path":47,"stem":48,"description":1010,"icon":49,"children":-1},"Internal TMDB access used by the current movie search and movie detail routes",{"title":56,"path":57,"stem":58,"description":1012,"icon":59,"children":-1},"Recommendation generation used by the recommendation endpoint",1782138812348]