[{"data":1,"prerenderedAt":2084},["ShallowReactive",2],{"docs:/docs/api-reference":3},{"id":4,"title":5,"body":6,"description":2077,"extension":2078,"meta":2079,"navigation":106,"path":2080,"seo":2081,"stem":2082,"__hash__":2083},"docs/docs/api-reference/index.md","API Reference",{"type":7,"value":8,"toc":2042},"minimark",[9,14,18,23,45,49,52,71,74,78,81,86,172,194,198,328,351,379,383,397,401,455,501,505,519,529,533,547,550,554,557,561,616,628,632,725,739,751,755,812,818,829,833,847,851,901,921,925,938,944,947,951,960,968,972,1042,1072,1093,1105,1109,1122,1125,1129,1143,1148,1152,1155,1163,1167,1214,1223,1227,1293,1304,1307,1352,1355,1509,1549,1553,1567,1571,1634,1648,1652,1665,1669,1673,1679,1706,1710,1721,1952,1955,2003,2011,2015,2018,2038],[10,11,13],"h1",{"id":12},"rest-api-reference","REST API Reference",[15,16,17],"p",{},"Complete REST API reference for managing NoLag programmatically. API keys are project-scoped, so no organization or project IDs are needed in the URLs.",[19,20,22],"h2",{"id":21},"base-url","Base URL",[24,25,26],"code-tabs",{},[27,28,34],"pre",{"className":29,"code":30,"filename":31,"language":32,"meta":33,"style":33},"language-bash shiki shiki-themes github-light github-dark","https://api.nolag.app/v1\n","Terminal","bash","",[35,36,37],"code",{"__ignoreMap":33},[38,39,42],"span",{"class":40,"line":41},"line",1,[38,43,30],{"class":44},"sScJk",[19,46,48],{"id":47},"authentication","Authentication",[15,50,51],{},"All API requests require a project-scoped API key in the Authorization header:",[24,53,54],{},[27,55,57],{"className":29,"code":56,"filename":31,"language":32,"meta":33,"style":33},"Authorization: Bearer nlg_live_xxx.secret\n",[35,58,59],{"__ignoreMap":33},[38,60,61,64,68],{"class":40,"line":41},[38,62,63],{"class":44},"Authorization:",[38,65,67],{"class":66},"sZZnC"," Bearer",[38,69,70],{"class":66}," nlg_live_xxx.secret\n",[15,72,73],{},"API keys are created in the NoLag dashboard and are scoped to a specific project. The API key determines which project's resources you can access.",[19,75,77],{"id":76},"apps","Apps",[15,79,80],{},"Apps are containers for rooms and topics within your project.",[82,83,85],"h3",{"id":84},"list-apps","List Apps",[24,87,88],{},[27,89,91],{"className":29,"code":90,"filename":31,"language":32,"meta":33,"style":33},"GET /apps\n\n# Query parameters (optional)\n?page=1&limit=20&orderBy=name:ASC&name=chat&blueprintId=xxx&status=active\n",[35,92,93,101,108,115],{"__ignoreMap":33},[38,94,95,98],{"class":40,"line":41},[38,96,97],{"class":44},"GET",[38,99,100],{"class":66}," /apps\n",[38,102,104],{"class":40,"line":103},2,[38,105,107],{"emptyLinePlaceholder":106},true,"\n",[38,109,111],{"class":40,"line":110},3,[38,112,114],{"class":113},"sJ8bj","# Query parameters (optional)\n",[38,116,118,122,126,129,132,135,137,140,143,145,148,151,153,156,159,161,164,167,169],{"class":40,"line":117},4,[38,119,121],{"class":120},"szBVR","?",[38,123,125],{"class":124},"sVt8B","page",[38,127,128],{"class":120},"=",[38,130,131],{"class":66},"1",[38,133,134],{"class":124},"&limit",[38,136,128],{"class":120},[38,138,139],{"class":66},"20",[38,141,142],{"class":124},"&orderBy",[38,144,128],{"class":120},[38,146,147],{"class":66},"name:ASC",[38,149,150],{"class":124},"&name",[38,152,128],{"class":120},[38,154,155],{"class":66},"chat",[38,157,158],{"class":124},"&blueprintId",[38,160,128],{"class":120},[38,162,163],{"class":66},"xxx",[38,165,166],{"class":124},"&status",[38,168,128],{"class":120},[38,170,171],{"class":66},"active\n",[15,173,174,175,177,178,177,181,177,184,177,187,177,190,193],{},"Returns a paginated list of apps in your project. Query parameters: ",[35,176,125],{},", ",[35,179,180],{},"limit",[35,182,183],{},"orderBy",[35,185,186],{},"name",[35,188,189],{},"blueprintId",[35,191,192],{},"status",".",[82,195,197],{"id":196},"create-app","Create App",[24,199,200],{},[27,201,203],{"className":29,"code":202,"filename":31,"language":32,"meta":33,"style":33},"POST /apps\n\n{\n  \"name\": \"My Chat App\",\n  \"description\": \"A real-time chat application\",\n  \"blueprintId\": \"optional-blueprint-id\",\n  \"slug\": \"my-chat-app\",\n  \"topics\": [\"messages\", \"typing\"],\n  \"topicConfigs\": {\n    \"messages\": { \"logging\": true }\n  }\n}\n",[35,204,205,212,216,221,233,244,255,266,285,296,316,322],{"__ignoreMap":33},[38,206,207,210],{"class":40,"line":41},[38,208,209],{"class":44},"POST",[38,211,100],{"class":66},[38,213,214],{"class":40,"line":103},[38,215,107],{"emptyLinePlaceholder":106},[38,217,218],{"class":40,"line":110},[38,219,220],{"class":124},"{\n",[38,222,223,226,230],{"class":40,"line":117},[38,224,225],{"class":44},"  \"name\"",[38,227,229],{"class":228},"sj4cs",":",[38,231,232],{"class":66}," \"My Chat App\",\n",[38,234,236,239,241],{"class":40,"line":235},5,[38,237,238],{"class":44},"  \"description\"",[38,240,229],{"class":228},[38,242,243],{"class":66}," \"A real-time chat application\",\n",[38,245,247,250,252],{"class":40,"line":246},6,[38,248,249],{"class":44},"  \"blueprintId\"",[38,251,229],{"class":228},[38,253,254],{"class":66}," \"optional-blueprint-id\",\n",[38,256,258,261,263],{"class":40,"line":257},7,[38,259,260],{"class":44},"  \"slug\"",[38,262,229],{"class":228},[38,264,265],{"class":66}," \"my-chat-app\",\n",[38,267,269,272,274,277,280,282],{"class":40,"line":268},8,[38,270,271],{"class":44},"  \"topics\"",[38,273,229],{"class":228},[38,275,276],{"class":124}," [",[38,278,279],{"class":66},"\"messages\"",[38,281,177],{"class":124},[38,283,284],{"class":66},"\"typing\"],\n",[38,286,288,291,293],{"class":40,"line":287},9,[38,289,290],{"class":44},"  \"topicConfigs\"",[38,292,229],{"class":228},[38,294,295],{"class":66}," {\n",[38,297,299,302,304,307,310,313],{"class":40,"line":298},10,[38,300,301],{"class":44},"    \"messages\"",[38,303,229],{"class":228},[38,305,306],{"class":66}," {",[38,308,309],{"class":66}," \"logging\":",[38,311,312],{"class":228}," true",[38,314,315],{"class":66}," }\n",[38,317,319],{"class":40,"line":318},11,[38,320,321],{"class":124},"  }\n",[38,323,325],{"class":40,"line":324},12,[38,326,327],{"class":124},"}\n",[15,329,330,331,333,334,177,337,177,339,342,343,346,347,350],{},"Required fields: ",[35,332,186],{},". Optional fields: ",[35,335,336],{},"description",[35,338,189],{},[35,340,341],{},"slug"," (auto-generated from name if omitted), ",[35,344,345],{},"topics"," (array of topic names), ",[35,348,349],{},"topicConfigs"," (per-topic logging and webhook settings).",[352,353,355,369],"callout",{"type":354},"warning",[15,356,357,361,362,365,366,193],{},[358,359,360],"strong",{},"The stored slug is never the slug you sent."," NoLag appends four random hex\ncharacters to every app slug to keep it unique within the project, whether you\nsupplied one or not. A request with ",[35,363,364],{},"\"slug\": \"my-chat-app\""," is stored as something\nlike ",[35,367,368],{},"my-chat-app-a3f9",[15,370,371,372,374,375,378],{},"Read ",[35,373,341],{}," from the response and use that value everywhere afterwards, including\n",[35,376,377],{},"setApp()"," and topic patterns. Room slugs behave differently: they are stored\nexactly as supplied.",[82,380,382],{"id":381},"get-app","Get App",[24,384,385],{},[27,386,388],{"className":29,"code":387,"filename":31,"language":32,"meta":33,"style":33},"GET /apps/{appId}\n",[35,389,390],{"__ignoreMap":33},[38,391,392,394],{"class":40,"line":41},[38,393,97],{"class":44},[38,395,396],{"class":66}," /apps/{appId}\n",[82,398,400],{"id":399},"update-app","Update App",[24,402,403],{},[27,404,406],{"className":29,"code":405,"filename":31,"language":32,"meta":33,"style":33},"PATCH /apps/{appId}\n\n{\n  \"name\": \"Updated Name\",\n  \"description\": \"Updated description\",\n  \"status\": \"active\"\n}\n",[35,407,408,415,419,423,432,441,451],{"__ignoreMap":33},[38,409,410,413],{"class":40,"line":41},[38,411,412],{"class":44},"PATCH",[38,414,396],{"class":66},[38,416,417],{"class":40,"line":103},[38,418,107],{"emptyLinePlaceholder":106},[38,420,421],{"class":40,"line":110},[38,422,220],{"class":124},[38,424,425,427,429],{"class":40,"line":117},[38,426,225],{"class":44},[38,428,229],{"class":228},[38,430,431],{"class":66}," \"Updated Name\",\n",[38,433,434,436,438],{"class":40,"line":235},[38,435,238],{"class":44},[38,437,229],{"class":228},[38,439,440],{"class":66}," \"Updated description\",\n",[38,442,443,446,448],{"class":40,"line":246},[38,444,445],{"class":44},"  \"status\"",[38,447,229],{"class":228},[38,449,450],{"class":66}," \"active\"\n",[38,452,453],{"class":40,"line":257},[38,454,327],{"class":124},[15,456,457,458,177,460,177,462,464,465,468,469,472,473,177,476,177,479,177,481,483,484,472,487,177,490,493,494,497,498,193],{},"Updatable fields: ",[35,459,186],{},[35,461,336],{},[35,463,192],{}," (",[35,466,467],{},"\"active\""," | ",[35,470,471],{},"\"disabled\"","), ",[35,474,475],{},"config",[35,477,478],{},"files",[35,480,345],{},[35,482,349],{}," (including per-topic ",[35,485,486],{},"webhooks",[35,488,489],{},"pinnedBlueprintVersion",[35,491,492],{},"hydrationWebhook"," (deprecated), ",[35,495,496],{},"triggerWebhook"," (deprecated). Prefer configuring webhooks via ",[35,499,500],{},"topicConfigs.webhooks",[82,502,504],{"id":503},"delete-app","Delete App",[24,506,507],{},[27,508,510],{"className":29,"code":509,"filename":31,"language":32,"meta":33,"style":33},"DELETE /apps/{appId}\n",[35,511,512],{"__ignoreMap":33},[38,513,514,517],{"class":40,"line":41},[38,515,516],{"class":44},"DELETE",[38,518,396],{"class":66},[15,520,521,522,525,526,193],{},"Returns ",[35,523,524],{},"200 OK"," with ",[35,527,528],{},"{ \"success\": true }",[82,530,532],{"id":531},"reset-app-to-blueprint","Reset App to Blueprint",[24,534,535],{},[27,536,538],{"className":29,"code":537,"filename":31,"language":32,"meta":33,"style":33},"POST /apps/{appId}/reset-to-blueprint\n",[35,539,540],{"__ignoreMap":33},[38,541,542,544],{"class":40,"line":41},[38,543,209],{"class":44},[38,545,546],{"class":66}," /apps/{appId}/reset-to-blueprint\n",[15,548,549],{},"Resets the app's configuration to match its source blueprint. The app must have been created from a blueprint. Returns the updated app.",[19,551,553],{"id":552},"rooms","Rooms",[15,555,556],{},"Rooms organize topics within an app. Each room has a unique slug used in topic patterns.",[82,558,560],{"id":559},"list-rooms","List Rooms",[24,562,563],{},[27,564,566],{"className":29,"code":565,"filename":31,"language":32,"meta":33,"style":33},"GET /apps/{appId}/rooms\n\n# Query parameters (optional)\n?name=general&slug=general&status=active&isStatic=true\n",[35,567,568,575,579,583],{"__ignoreMap":33},[38,569,570,572],{"class":40,"line":41},[38,571,97],{"class":44},[38,573,574],{"class":66}," /apps/{appId}/rooms\n",[38,576,577],{"class":40,"line":103},[38,578,107],{"emptyLinePlaceholder":106},[38,580,581],{"class":40,"line":110},[38,582,114],{"class":113},[38,584,585,587,589,591,594,597,599,601,603,605,608,611,613],{"class":40,"line":117},[38,586,121],{"class":120},[38,588,186],{"class":124},[38,590,128],{"class":120},[38,592,593],{"class":66},"general",[38,595,596],{"class":124},"&slug",[38,598,128],{"class":120},[38,600,593],{"class":66},[38,602,166],{"class":124},[38,604,128],{"class":120},[38,606,607],{"class":66},"active",[38,609,610],{"class":124},"&isStatic",[38,612,128],{"class":120},[38,614,615],{"class":66},"true\n",[15,617,618,619,177,621,177,623,177,625,193],{},"Returns a plain array of rooms (not paginated). Query parameters: ",[35,620,186],{},[35,622,341],{},[35,624,192],{},[35,626,627],{},"isStatic",[82,629,631],{"id":630},"create-room","Create Room",[24,633,634],{},[27,635,637],{"className":29,"code":636,"filename":31,"language":32,"meta":33,"style":33},"POST /apps/{appId}/rooms\n\n{\n  \"name\": \"General Chat\",\n  \"slug\": \"general\",\n  \"description\": \"General discussion room\",\n  \"topics\": [\"messages\", \"typing\", \"presence\"],\n  \"metadata\": {\n    \"maxUsers\": 100\n  }\n}\n",[35,638,639,645,649,653,662,671,680,698,707,717,721],{"__ignoreMap":33},[38,640,641,643],{"class":40,"line":41},[38,642,209],{"class":44},[38,644,574],{"class":66},[38,646,647],{"class":40,"line":103},[38,648,107],{"emptyLinePlaceholder":106},[38,650,651],{"class":40,"line":110},[38,652,220],{"class":124},[38,654,655,657,659],{"class":40,"line":117},[38,656,225],{"class":44},[38,658,229],{"class":228},[38,660,661],{"class":66}," \"General Chat\",\n",[38,663,664,666,668],{"class":40,"line":235},[38,665,260],{"class":44},[38,667,229],{"class":228},[38,669,670],{"class":66}," \"general\",\n",[38,672,673,675,677],{"class":40,"line":246},[38,674,238],{"class":44},[38,676,229],{"class":228},[38,678,679],{"class":66}," \"General discussion room\",\n",[38,681,682,684,686,688,690,692,695],{"class":40,"line":257},[38,683,271],{"class":44},[38,685,229],{"class":228},[38,687,276],{"class":124},[38,689,279],{"class":66},[38,691,177],{"class":124},[38,693,694],{"class":66},"\"typing\",",[38,696,697],{"class":66}," \"presence\"],\n",[38,699,700,703,705],{"class":40,"line":268},[38,701,702],{"class":44},"  \"metadata\"",[38,704,229],{"class":228},[38,706,295],{"class":66},[38,708,709,712,714],{"class":40,"line":287},[38,710,711],{"class":44},"    \"maxUsers\"",[38,713,229],{"class":228},[38,715,716],{"class":228}," 100\n",[38,718,719],{"class":40,"line":298},[38,720,321],{"class":124},[38,722,723],{"class":40,"line":318},[38,724,327],{"class":124},[15,726,330,727,333,729,342,731,177,733,177,735,738],{},[35,728,186],{},[35,730,341],{},[35,732,336],{},[35,734,345],{},[35,736,737],{},"metadata"," (arbitrary JSON object).",[352,740,741],{"type":354},[15,742,743,746,747,750],{},[358,744,745],{},"Rooms must exist before a client uses them."," The broker never creates rooms\nimplicitly. Subscribing to a room that has not been created returns an\n",[35,748,749],{},"unknown_topic"," error rather than delivering messages. Unlike app slugs, a room\nslug is stored exactly as you supply it.",[82,752,754],{"id":753},"ensure-room-idempotent","Ensure Room (Idempotent)",[24,756,757],{},[27,758,760],{"className":29,"code":759,"filename":31,"language":32,"meta":33,"style":33},"POST /apps/{appId}/rooms/ensure\n\n{\n  \"name\": \"Matter 4821\",\n  \"slug\": \"matter-4821\",\n  \"topics\": [\"messages\"]\n}\n",[35,761,762,769,773,777,786,795,808],{"__ignoreMap":33},[38,763,764,766],{"class":40,"line":41},[38,765,209],{"class":44},[38,767,768],{"class":66}," /apps/{appId}/rooms/ensure\n",[38,770,771],{"class":40,"line":103},[38,772,107],{"emptyLinePlaceholder":106},[38,774,775],{"class":40,"line":110},[38,776,220],{"class":124},[38,778,779,781,783],{"class":40,"line":117},[38,780,225],{"class":44},[38,782,229],{"class":228},[38,784,785],{"class":66}," \"Matter 4821\",\n",[38,787,788,790,792],{"class":40,"line":235},[38,789,260],{"class":44},[38,791,229],{"class":228},[38,793,794],{"class":66}," \"matter-4821\",\n",[38,796,797,799,801,803,805],{"class":40,"line":246},[38,798,271],{"class":44},[38,800,229],{"class":228},[38,802,276],{"class":124},[38,804,279],{"class":66},[38,806,807],{"class":124},"]\n",[38,809,810],{"class":40,"line":257},[38,811,327],{"class":124},[15,813,814,815,817],{},"Create-if-not-exists, for runtime per-entity rooms such as one room per document,\nmatter, or device id. Returns ",[35,816,524],{}," with the existing room unchanged when the\nslug already matches, so it is safe to call on every entity creation.",[15,819,820,821,824,825,828],{},"Requires the app to have ",[35,822,823],{},"config.autoProvisionRooms"," set to ",[35,826,827],{},"true",", and the number\nof auto-provisioned rooms is capped per app. Accepts the same body as Create Room.",[82,830,832],{"id":831},"get-room","Get Room",[24,834,835],{},[27,836,838],{"className":29,"code":837,"filename":31,"language":32,"meta":33,"style":33},"GET /apps/{appId}/rooms/{roomId}\n",[35,839,840],{"__ignoreMap":33},[38,841,842,844],{"class":40,"line":41},[38,843,97],{"class":44},[38,845,846],{"class":66}," /apps/{appId}/rooms/{roomId}\n",[82,848,850],{"id":849},"update-room","Update Room",[24,852,853],{},[27,854,856],{"className":29,"code":855,"filename":31,"language":32,"meta":33,"style":33},"PATCH /apps/{appId}/rooms/{roomId}\n\n{\n  \"name\": \"Updated Room Name\",\n  \"description\": \"Updated description\",\n  \"status\": \"active\"\n}\n",[35,857,858,864,868,872,881,889,897],{"__ignoreMap":33},[38,859,860,862],{"class":40,"line":41},[38,861,412],{"class":44},[38,863,846],{"class":66},[38,865,866],{"class":40,"line":103},[38,867,107],{"emptyLinePlaceholder":106},[38,869,870],{"class":40,"line":110},[38,871,220],{"class":124},[38,873,874,876,878],{"class":40,"line":117},[38,875,225],{"class":44},[38,877,229],{"class":228},[38,879,880],{"class":66}," \"Updated Room Name\",\n",[38,882,883,885,887],{"class":40,"line":235},[38,884,238],{"class":44},[38,886,229],{"class":228},[38,888,440],{"class":66},[38,890,891,893,895],{"class":40,"line":246},[38,892,445],{"class":44},[38,894,229],{"class":228},[38,896,450],{"class":66},[38,898,899],{"class":40,"line":257},[38,900,327],{"class":124},[15,902,457,903,177,905,177,907,464,909,468,911,472,913,177,915,917,918,920],{},[35,904,186],{},[35,906,336],{},[35,908,192],{},[35,910,467],{},[35,912,471],{},[35,914,345],{},[35,916,737],{},". Note: ",[35,919,341],{}," cannot be changed after creation.",[82,922,924],{"id":923},"delete-room","Delete Room",[24,926,927],{},[27,928,930],{"className":29,"code":929,"filename":31,"language":32,"meta":33,"style":33},"DELETE /apps/{appId}/rooms/{roomId}\n",[35,931,932],{"__ignoreMap":33},[38,933,934,936],{"class":40,"line":41},[38,935,516],{"class":44},[38,937,846],{"class":66},[15,939,521,940,943],{},[35,941,942],{},"204 No Content"," with an empty response body.",[15,945,946],{},"Note: Only dynamic rooms can be deleted. Static rooms defined in blueprints cannot be deleted.",[19,948,950],{"id":949},"room-access","Room Access",[15,952,953,954,959],{},"Room-level ACL grants control which actors the broker admits to a room. See\n",[955,956,958],"a",{"href":957},"/docs/concepts/acl","Access Control"," for the model.",[352,961,962],{"type":354},[15,963,964,967],{},[358,965,966],{},"A room with no grants inherits the app's access mode, which is open by default.","\nIn practice that means every actor in the project can publish and subscribe until\nyou add the first grant. Creating that first grant makes the room private, and from\nthen on only actors with an explicit, unexpired grant are admitted. Adding one grant\ntherefore removes access from everyone else, so provision all of a room's actors\ntogether.",[82,969,971],{"id":970},"grant-actor-access","Grant Actor Access",[24,973,974],{},[27,975,977],{"className":29,"code":976,"filename":31,"language":32,"meta":33,"style":33},"POST /apps/{appId}/rooms/{roomId}/actors\n\n{\n  \"actorTokenId\": \"019fd987-a03a-70cf-9420-60538a186bbb\",\n  \"permission\": \"pubSub\",\n  \"topics\": [\"messages\", \"typing\"],\n  \"expiresAt\": \"2026-12-31T23:59:59Z\"\n}\n",[35,978,979,986,990,994,1004,1014,1028,1038],{"__ignoreMap":33},[38,980,981,983],{"class":40,"line":41},[38,982,209],{"class":44},[38,984,985],{"class":66}," /apps/{appId}/rooms/{roomId}/actors\n",[38,987,988],{"class":40,"line":103},[38,989,107],{"emptyLinePlaceholder":106},[38,991,992],{"class":40,"line":110},[38,993,220],{"class":124},[38,995,996,999,1001],{"class":40,"line":117},[38,997,998],{"class":44},"  \"actorTokenId\"",[38,1000,229],{"class":228},[38,1002,1003],{"class":66}," \"019fd987-a03a-70cf-9420-60538a186bbb\",\n",[38,1005,1006,1009,1011],{"class":40,"line":235},[38,1007,1008],{"class":44},"  \"permission\"",[38,1010,229],{"class":228},[38,1012,1013],{"class":66}," \"pubSub\",\n",[38,1015,1016,1018,1020,1022,1024,1026],{"class":40,"line":246},[38,1017,271],{"class":44},[38,1019,229],{"class":228},[38,1021,276],{"class":124},[38,1023,279],{"class":66},[38,1025,177],{"class":124},[38,1027,284],{"class":66},[38,1029,1030,1033,1035],{"class":40,"line":257},[38,1031,1032],{"class":44},"  \"expiresAt\"",[38,1034,229],{"class":228},[38,1036,1037],{"class":66}," \"2026-12-31T23:59:59Z\"\n",[38,1039,1040],{"class":40,"line":268},[38,1041,327],{"class":124},[15,1043,1044,1045,1048,1049,177,1052,1055,1056,1059,1060,1063,1064,1067,1068,1071],{},"Required: ",[35,1046,1047],{},"permission",", one of ",[35,1050,1051],{},"subscribe",[35,1053,1054],{},"publish",", or ",[35,1057,1058],{},"pubSub",", plus exactly one\nof ",[35,1061,1062],{},"actorTokenId"," (grant a single actor) or ",[35,1065,1066],{},"actorType"," (grant every actor of that\ntype, for example ",[35,1069,1070],{},"\"agent\"",").",[15,1073,1074,1075,1077,1078,1081,1082,1085,1086,1088,1089,1092],{},"Optional: ",[35,1076,345],{}," to limit the grant to named topics rather than the whole room,\n",[35,1079,1080],{},"expiresAt"," (ISO 8601) for a time-limited grant, ",[35,1083,1084],{},"isActive"," (defaults to ",[35,1087,827],{},"),\nand ",[35,1090,1091],{},"role"," as a display label.",[15,1094,521,1095,1098,1099,1101,1102,193],{},[35,1096,1097],{},"201 Created",". A referenced ",[35,1100,1062],{}," must belong to the same project\nas the API key, otherwise the call returns ",[35,1103,1104],{},"404",[82,1106,1108],{"id":1107},"list-room-grants","List Room Grants",[24,1110,1111],{},[27,1112,1114],{"className":29,"code":1113,"filename":31,"language":32,"meta":33,"style":33},"GET /apps/{appId}/rooms/{roomId}/actors\n",[35,1115,1116],{"__ignoreMap":33},[38,1117,1118,1120],{"class":40,"line":41},[38,1119,97],{"class":44},[38,1121,985],{"class":66},[15,1123,1124],{},"Returns a plain array of the room's grants.",[82,1126,1128],{"id":1127},"revoke-room-grant","Revoke Room Grant",[24,1130,1131],{},[27,1132,1134],{"className":29,"code":1133,"filename":31,"language":32,"meta":33,"style":33},"DELETE /apps/{appId}/rooms/{roomId}/actors/{roomActorAccessId}\n",[35,1135,1136],{"__ignoreMap":33},[38,1137,1138,1140],{"class":40,"line":41},[38,1139,516],{"class":44},[38,1141,1142],{"class":66}," /apps/{appId}/rooms/{roomId}/actors/{roomActorAccessId}\n",[15,1144,521,1145,1147],{},[35,1146,942],{},". Removing the last grant returns the room to open access.",[19,1149,1151],{"id":1150},"actors","Actors",[15,1153,1154],{},"Actors represent clients that connect to NoLag (devices, users, services, or sessions). Each actor has an access token used for WebSocket connections.",[352,1156,1157],{"type":354},[15,1158,1159,1162],{},[358,1160,1161],{},"Important:"," The access token is only returned when creating an actor. Save it immediately!",[82,1164,1166],{"id":1165},"list-actors","List Actors",[24,1168,1169],{},[27,1170,1172],{"className":29,"code":1171,"filename":31,"language":32,"meta":33,"style":33},"GET /actors\n\n# Query parameters (optional)\n?name=web&actorType=device&status=active\n",[35,1173,1174,1181,1185,1189],{"__ignoreMap":33},[38,1175,1176,1178],{"class":40,"line":41},[38,1177,97],{"class":44},[38,1179,1180],{"class":66}," /actors\n",[38,1182,1183],{"class":40,"line":103},[38,1184,107],{"emptyLinePlaceholder":106},[38,1186,1187],{"class":40,"line":110},[38,1188,114],{"class":113},[38,1190,1191,1193,1195,1197,1200,1203,1205,1208,1210,1212],{"class":40,"line":117},[38,1192,121],{"class":120},[38,1194,186],{"class":124},[38,1196,128],{"class":120},[38,1198,1199],{"class":66},"web",[38,1201,1202],{"class":124},"&actorType",[38,1204,128],{"class":120},[38,1206,1207],{"class":66},"device",[38,1209,166],{"class":124},[38,1211,128],{"class":120},[38,1213,171],{"class":66},[15,1215,1216,1217,177,1219,177,1221,193],{},"Returns a plain array of actors (not paginated). Query parameters: ",[35,1218,186],{},[35,1220,1066],{},[35,1222,192],{},[82,1224,1226],{"id":1225},"create-actor","Create Actor",[24,1228,1229],{},[27,1230,1232],{"className":29,"code":1231,"filename":31,"language":32,"meta":33,"style":33},"POST /actors\n\n{\n  \"name\": \"Web Client\",\n  \"actorType\": \"device\",\n  \"metadata\": {\n    \"platform\": \"web\"\n  }\n}\n",[35,1233,1234,1240,1244,1248,1257,1267,1275,1285,1289],{"__ignoreMap":33},[38,1235,1236,1238],{"class":40,"line":41},[38,1237,209],{"class":44},[38,1239,1180],{"class":66},[38,1241,1242],{"class":40,"line":103},[38,1243,107],{"emptyLinePlaceholder":106},[38,1245,1246],{"class":40,"line":110},[38,1247,220],{"class":124},[38,1249,1250,1252,1254],{"class":40,"line":117},[38,1251,225],{"class":44},[38,1253,229],{"class":228},[38,1255,1256],{"class":66}," \"Web Client\",\n",[38,1258,1259,1262,1264],{"class":40,"line":235},[38,1260,1261],{"class":44},"  \"actorType\"",[38,1263,229],{"class":228},[38,1265,1266],{"class":66}," \"device\",\n",[38,1268,1269,1271,1273],{"class":40,"line":246},[38,1270,702],{"class":44},[38,1272,229],{"class":228},[38,1274,295],{"class":66},[38,1276,1277,1280,1282],{"class":40,"line":257},[38,1278,1279],{"class":44},"    \"platform\"",[38,1281,229],{"class":228},[38,1283,1284],{"class":66}," \"web\"\n",[38,1286,1287],{"class":40,"line":268},[38,1288,321],{"class":124},[38,1290,1291],{"class":40,"line":287},[38,1292,327],{"class":124},[15,1294,330,1295,177,1297,333,1299,1301,1302,193],{},[35,1296,186],{},[35,1298,1066],{},[35,1300,1080],{}," (ISO 8601), ",[35,1303,737],{},[15,1305,1306],{},"Actor types:",[1308,1309,1310,1316,1322,1328,1334,1340,1346],"ul",{},[1311,1312,1313,1315],"li",{},[35,1314,1207],{}," - Browser, mobile app, IoT device",[1311,1317,1318,1321],{},[35,1319,1320],{},"user"," - Authenticated user connection",[1311,1323,1324,1327],{},[35,1325,1326],{},"service"," - Backend service, microservice",[1311,1329,1330,1333],{},[35,1331,1332],{},"session"," - Browser session, temporary connection",[1311,1335,1336,1339],{},[35,1337,1338],{},"agent"," - Autonomous LLM-powered connection",[1311,1341,1342,1345],{},[35,1343,1344],{},"orchestrator"," - Coordination actor that dispatches work across agents",[1311,1347,1348,1351],{},[35,1349,1350],{},"observer"," - Read-only audit or monitoring connection",[15,1353,1354],{},"Response:",[24,1356,1357],{},[27,1358,1363],{"className":1359,"code":1360,"filename":1361,"language":1362,"meta":33,"style":33},"language-json shiki shiki-themes github-light github-dark","{\n  \"actorTokenId\": \"019fd987-a03a-70cf-9420-60538a186bbb\",\n  \"projectId\": \"019e8d1e-a59b-748b-9f69-dd03a91400f8\",\n  \"accessScopeId\": null,\n  \"keyId\": \"at_live_...\",\n  \"name\": \"Web Client\",\n  \"actorType\": \"device\",\n  \"accessToken\": \"...\",\n  \"status\": \"active\",\n  \"expiresAt\": null,\n  \"lastUsedAt\": null,\n  \"metadata\": null,\n  \"createdAt\": \"2026-08-07T00:03:48.000Z\"\n}\n","JSON","json",[35,1364,1365,1369,1382,1394,1406,1418,1429,1440,1452,1462,1472,1483,1493,1504],{"__ignoreMap":33},[38,1366,1367],{"class":40,"line":41},[38,1368,220],{"class":124},[38,1370,1371,1373,1376,1379],{"class":40,"line":103},[38,1372,998],{"class":228},[38,1374,1375],{"class":124},": ",[38,1377,1378],{"class":66},"\"019fd987-a03a-70cf-9420-60538a186bbb\"",[38,1380,1381],{"class":124},",\n",[38,1383,1384,1387,1389,1392],{"class":40,"line":110},[38,1385,1386],{"class":228},"  \"projectId\"",[38,1388,1375],{"class":124},[38,1390,1391],{"class":66},"\"019e8d1e-a59b-748b-9f69-dd03a91400f8\"",[38,1393,1381],{"class":124},[38,1395,1396,1399,1401,1404],{"class":40,"line":117},[38,1397,1398],{"class":228},"  \"accessScopeId\"",[38,1400,1375],{"class":124},[38,1402,1403],{"class":228},"null",[38,1405,1381],{"class":124},[38,1407,1408,1411,1413,1416],{"class":40,"line":235},[38,1409,1410],{"class":228},"  \"keyId\"",[38,1412,1375],{"class":124},[38,1414,1415],{"class":66},"\"at_live_...\"",[38,1417,1381],{"class":124},[38,1419,1420,1422,1424,1427],{"class":40,"line":246},[38,1421,225],{"class":228},[38,1423,1375],{"class":124},[38,1425,1426],{"class":66},"\"Web Client\"",[38,1428,1381],{"class":124},[38,1430,1431,1433,1435,1438],{"class":40,"line":257},[38,1432,1261],{"class":228},[38,1434,1375],{"class":124},[38,1436,1437],{"class":66},"\"device\"",[38,1439,1381],{"class":124},[38,1441,1442,1445,1447,1450],{"class":40,"line":268},[38,1443,1444],{"class":228},"  \"accessToken\"",[38,1446,1375],{"class":124},[38,1448,1449],{"class":66},"\"...\"",[38,1451,1381],{"class":124},[38,1453,1454,1456,1458,1460],{"class":40,"line":287},[38,1455,445],{"class":228},[38,1457,1375],{"class":124},[38,1459,467],{"class":66},[38,1461,1381],{"class":124},[38,1463,1464,1466,1468,1470],{"class":40,"line":298},[38,1465,1032],{"class":228},[38,1467,1375],{"class":124},[38,1469,1403],{"class":228},[38,1471,1381],{"class":124},[38,1473,1474,1477,1479,1481],{"class":40,"line":318},[38,1475,1476],{"class":228},"  \"lastUsedAt\"",[38,1478,1375],{"class":124},[38,1480,1403],{"class":228},[38,1482,1381],{"class":124},[38,1484,1485,1487,1489,1491],{"class":40,"line":324},[38,1486,702],{"class":228},[38,1488,1375],{"class":124},[38,1490,1403],{"class":228},[38,1492,1381],{"class":124},[38,1494,1496,1499,1501],{"class":40,"line":1495},13,[38,1497,1498],{"class":228},"  \"createdAt\"",[38,1500,1375],{"class":124},[38,1502,1503],{"class":66},"\"2026-08-07T00:03:48.000Z\"\n",[38,1505,1507],{"class":40,"line":1506},14,[38,1508,327],{"class":124},[352,1510,1512,1531],{"type":1511},"info",[15,1513,1514,1519,1520,1523,1524,1527,1528,1530],{},[358,1515,1516,1517,193],{},"The actor's id field is ",[35,1518,1062],{}," The ",[35,1521,1522],{},"{actorId}"," path parameter in the\nendpoints below takes this value. There is no field literally named ",[35,1525,1526],{},"actorId"," in any\nresponse, so read ",[35,1529,1062],{}," from the create or list response and use it in the\nURL.",[15,1532,1533,464,1536,1539,1540,1543,1544,1548],{},[35,1534,1535],{},"keyId",[35,1537,1538],{},"at_live_...",") is the actor's public identifier, used as the ",[35,1541,1542],{},"sub"," claim\nwhen minting ",[955,1545,1547],{"href":1546},"/docs/client-tokens","client tokens",". It is not the id for these\nendpoints.",[82,1550,1552],{"id":1551},"get-actor","Get Actor",[24,1554,1555],{},[27,1556,1558],{"className":29,"code":1557,"filename":31,"language":32,"meta":33,"style":33},"GET /actors/{actorId}\n",[35,1559,1560],{"__ignoreMap":33},[38,1561,1562,1564],{"class":40,"line":41},[38,1563,97],{"class":44},[38,1565,1566],{"class":66}," /actors/{actorId}\n",[82,1568,1570],{"id":1569},"update-actor","Update Actor",[24,1572,1573],{},[27,1574,1576],{"className":29,"code":1575,"filename":31,"language":32,"meta":33,"style":33},"PATCH /actors/{actorId}\n\n{\n  \"name\": \"Updated Name\",\n  \"status\": \"active\",\n  \"metadata\": {\n    \"platform\": \"mobile\"\n  }\n}\n",[35,1577,1578,1584,1588,1592,1600,1609,1617,1626,1630],{"__ignoreMap":33},[38,1579,1580,1582],{"class":40,"line":41},[38,1581,412],{"class":44},[38,1583,1566],{"class":66},[38,1585,1586],{"class":40,"line":103},[38,1587,107],{"emptyLinePlaceholder":106},[38,1589,1590],{"class":40,"line":110},[38,1591,220],{"class":124},[38,1593,1594,1596,1598],{"class":40,"line":117},[38,1595,225],{"class":44},[38,1597,229],{"class":228},[38,1599,431],{"class":66},[38,1601,1602,1604,1606],{"class":40,"line":235},[38,1603,445],{"class":44},[38,1605,229],{"class":228},[38,1607,1608],{"class":66}," \"active\",\n",[38,1610,1611,1613,1615],{"class":40,"line":246},[38,1612,702],{"class":44},[38,1614,229],{"class":228},[38,1616,295],{"class":66},[38,1618,1619,1621,1623],{"class":40,"line":257},[38,1620,1279],{"class":44},[38,1622,229],{"class":228},[38,1624,1625],{"class":66}," \"mobile\"\n",[38,1627,1628],{"class":40,"line":268},[38,1629,321],{"class":124},[38,1631,1632],{"class":40,"line":287},[38,1633,327],{"class":124},[15,1635,457,1636,177,1638,464,1640,468,1642,472,1644,177,1646,193],{},[35,1637,186],{},[35,1639,192],{},[35,1641,467],{},[35,1643,471],{},[35,1645,1080],{},[35,1647,737],{},[82,1649,1651],{"id":1650},"delete-actor","Delete Actor",[24,1653,1654],{},[27,1655,1657],{"className":29,"code":1656,"filename":31,"language":32,"meta":33,"style":33},"DELETE /actors/{actorId}\n",[35,1658,1659],{"__ignoreMap":33},[38,1660,1661,1663],{"class":40,"line":41},[38,1662,516],{"class":44},[38,1664,1566],{"class":66},[15,1666,521,1667,943],{},[35,1668,942],{},[19,1670,1672],{"id":1671},"topic-patterns","Topic Patterns",[15,1674,1675,1676,229],{},"Topics follow the pattern ",[35,1677,1678],{},"app-slug/room-slug/topic-name",[24,1680,1681],{},[27,1682,1684],{"className":29,"code":1683,"filename":31,"language":32,"meta":33,"style":33},"# Example topic patterns\nmy-chat-app/general/messages\nmy-chat-app/general/typing\nmy-chat-app/private-room/notifications\n",[35,1685,1686,1691,1696,1701],{"__ignoreMap":33},[38,1687,1688],{"class":40,"line":41},[38,1689,1690],{"class":113},"# Example topic patterns\n",[38,1692,1693],{"class":40,"line":103},[38,1694,1695],{"class":44},"my-chat-app/general/messages\n",[38,1697,1698],{"class":40,"line":110},[38,1699,1700],{"class":44},"my-chat-app/general/typing\n",[38,1702,1703],{"class":40,"line":117},[38,1704,1705],{"class":44},"my-chat-app/private-room/notifications\n",[19,1707,1709],{"id":1708},"response-format","Response Format",[15,1711,1712,1713,1716,1717,1720],{},"Successful responses return the resource directly. The Apps list endpoint is paginated, wrapping results in a ",[35,1714,1715],{},"data"," array with a ",[35,1718,1719],{},"pagination"," object. Rooms and Actors list endpoints return plain arrays.",[24,1722,1723],{},[27,1724,1726],{"className":1359,"code":1725,"filename":1361,"language":1362,"meta":33,"style":33},"// Single resource (e.g. GET /apps/{appId})\n{\n  \"appId\": \"01939f83-8b57-7c3e-a456-426614174000\",\n  \"name\": \"My App\",\n  \"description\": \"...\",\n  \"status\": \"active\",\n  \"createdAt\": \"2024-01-01T00:00:00Z\"\n}\n\n// Paginated list (Apps only)\n{\n  \"data\": [...],\n  \"pagination\": {\n    \"total\": 100,\n    \"page\": 1,\n    \"pageCount\": 5\n  }\n}\n\n// Plain array (Rooms and Actors)\n[\n  { \"roomId\": \"...\", \"name\": \"General\", ... },\n  { \"roomId\": \"...\", \"name\": \"Private\", ... }\n]\n",[35,1727,1728,1733,1737,1749,1760,1770,1780,1789,1793,1797,1802,1806,1821,1829,1841,1853,1864,1869,1874,1879,1885,1891,1921,1947],{"__ignoreMap":33},[38,1729,1730],{"class":40,"line":41},[38,1731,1732],{"class":113},"// Single resource (e.g. GET /apps/{appId})\n",[38,1734,1735],{"class":40,"line":103},[38,1736,220],{"class":124},[38,1738,1739,1742,1744,1747],{"class":40,"line":110},[38,1740,1741],{"class":228},"  \"appId\"",[38,1743,1375],{"class":124},[38,1745,1746],{"class":66},"\"01939f83-8b57-7c3e-a456-426614174000\"",[38,1748,1381],{"class":124},[38,1750,1751,1753,1755,1758],{"class":40,"line":117},[38,1752,225],{"class":228},[38,1754,1375],{"class":124},[38,1756,1757],{"class":66},"\"My App\"",[38,1759,1381],{"class":124},[38,1761,1762,1764,1766,1768],{"class":40,"line":235},[38,1763,238],{"class":228},[38,1765,1375],{"class":124},[38,1767,1449],{"class":66},[38,1769,1381],{"class":124},[38,1771,1772,1774,1776,1778],{"class":40,"line":246},[38,1773,445],{"class":228},[38,1775,1375],{"class":124},[38,1777,467],{"class":66},[38,1779,1381],{"class":124},[38,1781,1782,1784,1786],{"class":40,"line":257},[38,1783,1498],{"class":228},[38,1785,1375],{"class":124},[38,1787,1788],{"class":66},"\"2024-01-01T00:00:00Z\"\n",[38,1790,1791],{"class":40,"line":268},[38,1792,327],{"class":124},[38,1794,1795],{"class":40,"line":287},[38,1796,107],{"emptyLinePlaceholder":106},[38,1798,1799],{"class":40,"line":298},[38,1800,1801],{"class":113},"// Paginated list (Apps only)\n",[38,1803,1804],{"class":40,"line":318},[38,1805,220],{"class":124},[38,1807,1808,1811,1814,1818],{"class":40,"line":324},[38,1809,1810],{"class":228},"  \"data\"",[38,1812,1813],{"class":124},": [",[38,1815,1817],{"class":1816},"s7hpK","...",[38,1819,1820],{"class":124},"],\n",[38,1822,1823,1826],{"class":40,"line":1495},[38,1824,1825],{"class":228},"  \"pagination\"",[38,1827,1828],{"class":124},": {\n",[38,1830,1831,1834,1836,1839],{"class":40,"line":1506},[38,1832,1833],{"class":228},"    \"total\"",[38,1835,1375],{"class":124},[38,1837,1838],{"class":228},"100",[38,1840,1381],{"class":124},[38,1842,1844,1847,1849,1851],{"class":40,"line":1843},15,[38,1845,1846],{"class":228},"    \"page\"",[38,1848,1375],{"class":124},[38,1850,131],{"class":228},[38,1852,1381],{"class":124},[38,1854,1856,1859,1861],{"class":40,"line":1855},16,[38,1857,1858],{"class":228},"    \"pageCount\"",[38,1860,1375],{"class":124},[38,1862,1863],{"class":228},"5\n",[38,1865,1867],{"class":40,"line":1866},17,[38,1868,321],{"class":124},[38,1870,1872],{"class":40,"line":1871},18,[38,1873,327],{"class":124},[38,1875,1877],{"class":40,"line":1876},19,[38,1878,107],{"emptyLinePlaceholder":106},[38,1880,1882],{"class":40,"line":1881},20,[38,1883,1884],{"class":113},"// Plain array (Rooms and Actors)\n",[38,1886,1888],{"class":40,"line":1887},21,[38,1889,1890],{"class":124},"[\n",[38,1892,1894,1897,1900,1902,1904,1906,1909,1911,1914,1916,1918],{"class":40,"line":1893},22,[38,1895,1896],{"class":124},"  { ",[38,1898,1899],{"class":228},"\"roomId\"",[38,1901,1375],{"class":124},[38,1903,1449],{"class":66},[38,1905,177],{"class":124},[38,1907,1908],{"class":228},"\"name\"",[38,1910,1375],{"class":124},[38,1912,1913],{"class":66},"\"General\"",[38,1915,177],{"class":124},[38,1917,1817],{"class":1816},[38,1919,1920],{"class":124}," },\n",[38,1922,1924,1926,1928,1930,1932,1934,1936,1938,1941,1943,1945],{"class":40,"line":1923},23,[38,1925,1896],{"class":124},[38,1927,1899],{"class":228},[38,1929,1375],{"class":124},[38,1931,1449],{"class":66},[38,1933,177],{"class":124},[38,1935,1908],{"class":228},[38,1937,1375],{"class":124},[38,1939,1940],{"class":66},"\"Private\"",[38,1942,177],{"class":124},[38,1944,1817],{"class":1816},[38,1946,315],{"class":124},[38,1948,1950],{"class":40,"line":1949},24,[38,1951,807],{"class":124},[15,1953,1954],{},"Error responses return a structured object with a unique ID for support reference:",[24,1956,1957],{},[27,1958,1960],{"className":1359,"code":1959,"filename":1361,"language":1362,"meta":33,"style":33},"{\n  \"id\": \"01939f83-8b57-7c3e-a456-426614174000\",\n  \"message\": \"Description of the error\",\n  \"timestamp\": \"2024-01-15T10:30:00.000Z\"\n}\n",[35,1961,1962,1966,1977,1989,1999],{"__ignoreMap":33},[38,1963,1964],{"class":40,"line":41},[38,1965,220],{"class":124},[38,1967,1968,1971,1973,1975],{"class":40,"line":103},[38,1969,1970],{"class":228},"  \"id\"",[38,1972,1375],{"class":124},[38,1974,1746],{"class":66},[38,1976,1381],{"class":124},[38,1978,1979,1982,1984,1987],{"class":40,"line":110},[38,1980,1981],{"class":228},"  \"message\"",[38,1983,1375],{"class":124},[38,1985,1986],{"class":66},"\"Description of the error\"",[38,1988,1381],{"class":124},[38,1990,1991,1994,1996],{"class":40,"line":117},[38,1992,1993],{"class":228},"  \"timestamp\"",[38,1995,1375],{"class":124},[38,1997,1998],{"class":66},"\"2024-01-15T10:30:00.000Z\"\n",[38,2000,2001],{"class":40,"line":235},[38,2002,327],{"class":124},[15,2004,2005,2006,2010],{},"See ",[955,2007,2009],{"href":2008},"/docs/api-reference/errors","Error Reference"," for details on HTTP status codes and error handling.",[19,2012,2014],{"id":2013},"sdks","SDKs",[15,2016,2017],{},"For most use cases, we recommend using our official SDKs which wrap this API:",[1308,2019,2020,2026,2032],{},[1311,2021,2022],{},[955,2023,2025],{"href":2024},"/docs/sdks/javascript","JavaScript/TypeScript",[1311,2027,2028],{},[955,2029,2031],{"href":2030},"/docs/sdks/python","Python",[1311,2033,2034],{},[955,2035,2037],{"href":2036},"/docs/sdks/go","Go",[2039,2040,2041],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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 .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .s7hpK, html code.shiki .s7hpK{--shiki-default:#B31D28;--shiki-default-font-style:italic;--shiki-dark:#FDAEB7;--shiki-dark-font-style:italic}",{"title":33,"searchDepth":103,"depth":103,"links":2043},[2044,2045,2046,2054,2062,2067,2074,2075,2076],{"id":21,"depth":103,"text":22},{"id":47,"depth":103,"text":48},{"id":76,"depth":103,"text":77,"children":2047},[2048,2049,2050,2051,2052,2053],{"id":84,"depth":110,"text":85},{"id":196,"depth":110,"text":197},{"id":381,"depth":110,"text":382},{"id":399,"depth":110,"text":400},{"id":503,"depth":110,"text":504},{"id":531,"depth":110,"text":532},{"id":552,"depth":103,"text":553,"children":2055},[2056,2057,2058,2059,2060,2061],{"id":559,"depth":110,"text":560},{"id":630,"depth":110,"text":631},{"id":753,"depth":110,"text":754},{"id":831,"depth":110,"text":832},{"id":849,"depth":110,"text":850},{"id":923,"depth":110,"text":924},{"id":949,"depth":103,"text":950,"children":2063},[2064,2065,2066],{"id":970,"depth":110,"text":971},{"id":1107,"depth":110,"text":1108},{"id":1127,"depth":110,"text":1128},{"id":1150,"depth":103,"text":1151,"children":2068},[2069,2070,2071,2072,2073],{"id":1165,"depth":110,"text":1166},{"id":1225,"depth":110,"text":1226},{"id":1551,"depth":110,"text":1552},{"id":1569,"depth":110,"text":1570},{"id":1650,"depth":110,"text":1651},{"id":1671,"depth":103,"text":1672},{"id":1708,"depth":103,"text":1709},{"id":2013,"depth":103,"text":2014},"Complete REST API reference for NoLag. Manage apps, rooms, actors, and more programmatically.","md",{},"/docs/api-reference",{"title":5,"description":2077},"docs/api-reference/index","t9opJ7fqORXf3w-tRFXa31XbfWU8kFfSU0WMk9qNjsA",1788160342598]