[{"data":1,"prerenderedAt":2678},["ShallowReactive",2],{"docs:/docs/scopes/api-reference":3},{"id":4,"title":5,"body":6,"description":2671,"extension":2672,"meta":2673,"navigation":224,"path":2674,"seo":2675,"stem":2676,"__hash__":2677},"docs/docs/scopes/api-reference.md","Access Scopes - API Reference",{"type":7,"value":8,"toc":2641},"minimark",[9,13,17,27,42,70,75,80,85,179,183,411,538,542,547,551,687,691,829,1121,1125,1130,1134,1164,1167,1250,1354,1358,1363,1366,1372,1449,1452,1575,1681,1685,1690,1705,1709,1896,1901,1948,1952,1957,1969,1972,2080,2353,2357,2368,2389,2407,2411,2415,2533,2537,2609,2613,2637],[10,11,5],"h1",{"id":12},"access-scopes-api-reference",[14,15,16],"p",{},"Complete reference for all Access Scope REST API endpoints.",[14,18,19,20,23],{},"All endpoints use the base path:",[21,22],"br",{},[24,25,26],"code",{},"https://api.nolag.app/v1/scopes",[14,28,29,30,33,34,37,38,41],{},"Authentication is required via ",[24,31,32],{},"Authorization: Bearer \u003Capi-key>"," header. Use a project-scoped API key (",[24,35,36],{},"nlg_live_...","). The project context is determined by the API key; a key that is not project-scoped gets ",[24,39,40],{},"403 Forbidden"," on every endpoint here.",[14,43,44,45,48,49,52,53,56,57,48,60,62,63,48,66,69],{},"The same operations are available from the SDK REST clients: ",[24,46,47],{},"api.scopes.list/get/create/update/delete/listActors/addActor/removeActor"," on ",[24,50,51],{},"NoLagApi"," in ",[24,54,55],{},"@nolag/js-sdk",", ",[24,58,59],{},"api.scopes.list/get/create/update/delete/list_actors/add_actor/remove_actor",[24,61,51],{}," in the Python SDK, and ",[24,64,65],{},"api.Scopes.List/Get/Create/Update/Delete/ListActors/AddActor/RemoveActor",[24,67,68],{},"nolag.NewAPI(key)"," in the Go SDK.",[71,72,74],"h2",{"id":73},"create-scope","Create Scope",[14,76,77],{},[24,78,79],{},"POST /v1/scopes",[81,82,84],"h3",{"id":83},"request-body","Request Body",[86,87,88,107],"table",{},[89,90,91],"thead",{},[92,93,94,98,101,104],"tr",{},[95,96,97],"th",{},"Field",[95,99,100],{},"Type",[95,102,103],{},"Required",[95,105,106],{},"Description",[108,109,110,131,145,160],"tbody",{},[92,111,112,118,121,124],{},[113,114,115],"td",{},[24,116,117],{},"slug",[113,119,120],{},"string",[113,122,123],{},"Yes",[113,125,126,127,130],{},"Topic segment for this scope. Must match ",[24,128,129],{},"^[a-z0-9][a-z0-9-]*[a-z0-9]$"," (lowercase letters, digits, hyphens; no leading or trailing hyphen), max 100 characters. Immutable after creation.",[92,132,133,138,140,142],{},[113,134,135],{},[24,136,137],{},"name",[113,139,120],{},[113,141,123],{},[113,143,144],{},"Human-readable display name. Max 255 characters.",[92,146,147,152,154,157],{},[113,148,149],{},[24,150,151],{},"description",[113,153,120],{},[113,155,156],{},"No",[113,158,159],{},"Free-text description. Max 500 characters.",[92,161,162,167,170,172],{},[113,163,164],{},[24,165,166],{},"metadata",[113,168,169],{},"object",[113,171,156],{},[113,173,174,175,178],{},"Arbitrary JSON object stored with the scope, for example ",[24,176,177],{},"{ \"tenantId\": \"tenant-123\" }",".",[81,180,182],{"id":181},"response-201-created","Response: 201 Created",[184,185,186,334],"code-tabs",{},[187,188,194],"pre",{"className":189,"code":190,"filename":191,"language":192,"meta":193,"style":193},"language-typescript shiki shiki-themes github-light github-dark","import { NoLagApi } from \"@nolag/js-sdk\";\n\nconst api = new NoLagApi(process.env.NOLAG_API_KEY);\n\nconst scope = await api.scopes.create({\n  slug: \"client-acme\",\n  name: \"Acme Corporation\",\n  description: \"Isolation scope for the Acme tenant\",\n  metadata: { tenantId: \"tenant-123\" },\n});\n","TypeScript","typescript","",[24,195,196,219,226,255,260,282,294,305,316,328],{"__ignoreMap":193},[197,198,201,205,209,212,216],"span",{"class":199,"line":200},"line",1,[197,202,204],{"class":203},"szBVR","import",[197,206,208],{"class":207},"sVt8B"," { NoLagApi } ",[197,210,211],{"class":203},"from",[197,213,215],{"class":214},"sZZnC"," \"@nolag/js-sdk\"",[197,217,218],{"class":207},";\n",[197,220,222],{"class":199,"line":221},2,[197,223,225],{"emptyLinePlaceholder":224},true,"\n",[197,227,229,232,236,239,242,246,249,252],{"class":199,"line":228},3,[197,230,231],{"class":203},"const",[197,233,235],{"class":234},"sj4cs"," api",[197,237,238],{"class":203}," =",[197,240,241],{"class":203}," new",[197,243,245],{"class":244},"sScJk"," NoLagApi",[197,247,248],{"class":207},"(process.env.",[197,250,251],{"class":234},"NOLAG_API_KEY",[197,253,254],{"class":207},");\n",[197,256,258],{"class":199,"line":257},4,[197,259,225],{"emptyLinePlaceholder":224},[197,261,263,265,268,270,273,276,279],{"class":199,"line":262},5,[197,264,231],{"class":203},[197,266,267],{"class":234}," scope",[197,269,238],{"class":203},[197,271,272],{"class":203}," await",[197,274,275],{"class":207}," api.scopes.",[197,277,278],{"class":244},"create",[197,280,281],{"class":207},"({\n",[197,283,285,288,291],{"class":199,"line":284},6,[197,286,287],{"class":207},"  slug: ",[197,289,290],{"class":214},"\"client-acme\"",[197,292,293],{"class":207},",\n",[197,295,297,300,303],{"class":199,"line":296},7,[197,298,299],{"class":207},"  name: ",[197,301,302],{"class":214},"\"Acme Corporation\"",[197,304,293],{"class":207},[197,306,308,311,314],{"class":199,"line":307},8,[197,309,310],{"class":207},"  description: ",[197,312,313],{"class":214},"\"Isolation scope for the Acme tenant\"",[197,315,293],{"class":207},[197,317,319,322,325],{"class":199,"line":318},9,[197,320,321],{"class":207},"  metadata: { tenantId: ",[197,323,324],{"class":214},"\"tenant-123\"",[197,326,327],{"class":207}," },\n",[197,329,331],{"class":199,"line":330},10,[197,332,333],{"class":207},"});\n",[187,335,340],{"className":336,"code":337,"filename":338,"language":339,"meta":193,"style":193},"language-bash shiki shiki-themes github-light github-dark","curl -X POST https://api.nolag.app/v1/scopes \\\n  -H \"Authorization: Bearer nlg_live_xxx.secret\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n        \"slug\": \"client-acme\",\n        \"name\": \"Acme Corporation\",\n        \"description\": \"Isolation scope for the Acme tenant\",\n        \"metadata\": { \"tenantId\": \"tenant-123\" }\n      }'\n","Terminal","bash",[24,341,342,359,369,378,386,391,396,401,406],{"__ignoreMap":193},[197,343,344,347,350,353,356],{"class":199,"line":200},[197,345,346],{"class":244},"curl",[197,348,349],{"class":234}," -X",[197,351,352],{"class":214}," POST",[197,354,355],{"class":214}," https://api.nolag.app/v1/scopes",[197,357,358],{"class":234}," \\\n",[197,360,361,364,367],{"class":199,"line":221},[197,362,363],{"class":234},"  -H",[197,365,366],{"class":214}," \"Authorization: Bearer nlg_live_xxx.secret\"",[197,368,358],{"class":234},[197,370,371,373,376],{"class":199,"line":228},[197,372,363],{"class":234},[197,374,375],{"class":214}," \"Content-Type: application/json\"",[197,377,358],{"class":234},[197,379,380,383],{"class":199,"line":257},[197,381,382],{"class":234},"  -d",[197,384,385],{"class":214}," '{\n",[197,387,388],{"class":199,"line":262},[197,389,390],{"class":214},"        \"slug\": \"client-acme\",\n",[197,392,393],{"class":199,"line":284},[197,394,395],{"class":214},"        \"name\": \"Acme Corporation\",\n",[197,397,398],{"class":199,"line":296},[197,399,400],{"class":214},"        \"description\": \"Isolation scope for the Acme tenant\",\n",[197,402,403],{"class":199,"line":307},[197,404,405],{"class":214},"        \"metadata\": { \"tenantId\": \"tenant-123\" }\n",[197,407,408],{"class":199,"line":318},[197,409,410],{"class":214},"      }'\n",[187,412,416],{"className":413,"code":414,"language":415,"meta":193,"style":193},"language-json shiki shiki-themes github-light github-dark","{\n  \"accessScopeId\": \"01939f83-8b57-7c3e-a456-426614174002\",\n  \"projectId\": \"01939f83-8b57-7c3e-a456-426614174001\",\n  \"slug\": \"client-acme\",\n  \"name\": \"Acme Corporation\",\n  \"description\": \"Isolation scope for the Acme tenant\",\n  \"metadata\": { \"tenantId\": \"tenant-123\" },\n  \"isActive\": true,\n  \"createdAt\": \"2026-05-20T10:00:00.000Z\",\n  \"updatedAt\": \"2026-05-20T10:00:00.000Z\"\n}\n","json",[24,417,418,423,436,448,459,470,481,498,510,522,532],{"__ignoreMap":193},[197,419,420],{"class":199,"line":200},[197,421,422],{"class":207},"{\n",[197,424,425,428,431,434],{"class":199,"line":221},[197,426,427],{"class":234},"  \"accessScopeId\"",[197,429,430],{"class":207},": ",[197,432,433],{"class":214},"\"01939f83-8b57-7c3e-a456-426614174002\"",[197,435,293],{"class":207},[197,437,438,441,443,446],{"class":199,"line":228},[197,439,440],{"class":234},"  \"projectId\"",[197,442,430],{"class":207},[197,444,445],{"class":214},"\"01939f83-8b57-7c3e-a456-426614174001\"",[197,447,293],{"class":207},[197,449,450,453,455,457],{"class":199,"line":257},[197,451,452],{"class":234},"  \"slug\"",[197,454,430],{"class":207},[197,456,290],{"class":214},[197,458,293],{"class":207},[197,460,461,464,466,468],{"class":199,"line":262},[197,462,463],{"class":234},"  \"name\"",[197,465,430],{"class":207},[197,467,302],{"class":214},[197,469,293],{"class":207},[197,471,472,475,477,479],{"class":199,"line":284},[197,473,474],{"class":234},"  \"description\"",[197,476,430],{"class":207},[197,478,313],{"class":214},[197,480,293],{"class":207},[197,482,483,486,489,492,494,496],{"class":199,"line":296},[197,484,485],{"class":234},"  \"metadata\"",[197,487,488],{"class":207},": { ",[197,490,491],{"class":234},"\"tenantId\"",[197,493,430],{"class":207},[197,495,324],{"class":214},[197,497,327],{"class":207},[197,499,500,503,505,508],{"class":199,"line":307},[197,501,502],{"class":234},"  \"isActive\"",[197,504,430],{"class":207},[197,506,507],{"class":234},"true",[197,509,293],{"class":207},[197,511,512,515,517,520],{"class":199,"line":318},[197,513,514],{"class":234},"  \"createdAt\"",[197,516,430],{"class":207},[197,518,519],{"class":214},"\"2026-05-20T10:00:00.000Z\"",[197,521,293],{"class":207},[197,523,524,527,529],{"class":199,"line":330},[197,525,526],{"class":234},"  \"updatedAt\"",[197,528,430],{"class":207},[197,530,531],{"class":214},"\"2026-05-20T10:00:00.000Z\"\n",[197,533,535],{"class":199,"line":534},11,[197,536,537],{"class":207},"}\n",[71,539,541],{"id":540},"list-scopes","List Scopes",[14,543,544],{},[24,545,546],{},"GET /v1/scopes",[81,548,550],{"id":549},"query-parameters","Query Parameters",[86,552,553,567],{},[89,554,555],{},[92,556,557,560,562,565],{},[95,558,559],{},"Parameter",[95,561,100],{},[95,563,564],{},"Default",[95,566,106],{},[108,568,569,585,600,615,630,651],{},[92,570,571,576,579,582],{},[113,572,573],{},[24,574,575],{},"page",[113,577,578],{},"number",[113,580,581],{},"1",[113,583,584],{},"Page number (1-indexed).",[92,586,587,592,594,597],{},[113,588,589],{},[24,590,591],{},"limit",[113,593,578],{},[113,595,596],{},"10",[113,598,599],{},"Results per page (max 100).",[92,601,602,606,608,610],{},[113,603,604],{},[24,605,117],{},[113,607,120],{},[113,609],{},[113,611,612,613,178],{},"Exact match on ",[24,614,117],{},[92,616,617,621,623,625],{},[113,618,619],{},[24,620,137],{},[113,622,120],{},[113,624],{},[113,626,627,628,178],{},"Case-insensitive substring match on ",[24,629,137],{},[92,631,632,637,646,648],{},[113,633,634],{},[24,635,636],{},"isActive",[113,638,639,642,643],{},[24,640,641],{},"\"true\""," | ",[24,644,645],{},"\"false\"",[113,647],{},[113,649,650],{},"Filter by active state. Passed as a string because it arrives in the query string.",[92,652,653,658,662,664],{},[113,654,655],{},[24,656,657],{},"orderBy[]",[113,659,120,660],{},[197,661],{},[113,663],{},[113,665,666,667,670,671,674,675,678,679,682,683,686],{},"Secondary sort as ",[24,668,669],{},"field:ASC"," or ",[24,672,673],{},"field:DESC"," pairs, for example ",[24,676,677],{},"orderBy[]=slug:ASC",". Results are always ordered by ",[24,680,681],{},"createdAt"," descending first; ",[24,684,685],{},"orderBy"," only breaks ties.",[81,688,690],{"id":689},"response-200-ok","Response: 200 OK",[184,692,693,808],{},[187,694,696],{"className":189,"code":695,"filename":191,"language":192,"meta":193,"style":193},"import { NoLagApi } from \"@nolag/js-sdk\";\n\nconst api = new NoLagApi(process.env.NOLAG_API_KEY);\n\nconst page = await api.scopes.list({ page: 1, limit: 10 });\nfor (const scope of page.data) {\n  console.log(scope.slug, scope.isActive);\n}\nconsole.log(page.pagination.total, page.pagination.pageCount);\n",[24,697,698,710,714,732,736,765,783,794,798],{"__ignoreMap":193},[197,699,700,702,704,706,708],{"class":199,"line":200},[197,701,204],{"class":203},[197,703,208],{"class":207},[197,705,211],{"class":203},[197,707,215],{"class":214},[197,709,218],{"class":207},[197,711,712],{"class":199,"line":221},[197,713,225],{"emptyLinePlaceholder":224},[197,715,716,718,720,722,724,726,728,730],{"class":199,"line":228},[197,717,231],{"class":203},[197,719,235],{"class":234},[197,721,238],{"class":203},[197,723,241],{"class":203},[197,725,245],{"class":244},[197,727,248],{"class":207},[197,729,251],{"class":234},[197,731,254],{"class":207},[197,733,734],{"class":199,"line":257},[197,735,225],{"emptyLinePlaceholder":224},[197,737,738,740,743,745,747,749,752,755,757,760,762],{"class":199,"line":262},[197,739,231],{"class":203},[197,741,742],{"class":234}," page",[197,744,238],{"class":203},[197,746,272],{"class":203},[197,748,275],{"class":207},[197,750,751],{"class":244},"list",[197,753,754],{"class":207},"({ page: ",[197,756,581],{"class":234},[197,758,759],{"class":207},", limit: ",[197,761,596],{"class":234},[197,763,764],{"class":207}," });\n",[197,766,767,770,773,775,777,780],{"class":199,"line":284},[197,768,769],{"class":203},"for",[197,771,772],{"class":207}," (",[197,774,231],{"class":203},[197,776,267],{"class":234},[197,778,779],{"class":203}," of",[197,781,782],{"class":207}," page.data) {\n",[197,784,785,788,791],{"class":199,"line":296},[197,786,787],{"class":207},"  console.",[197,789,790],{"class":244},"log",[197,792,793],{"class":207},"(scope.slug, scope.isActive);\n",[197,795,796],{"class":199,"line":307},[197,797,537],{"class":207},[197,799,800,803,805],{"class":199,"line":318},[197,801,802],{"class":207},"console.",[197,804,790],{"class":244},[197,806,807],{"class":207},"(page.pagination.total, page.pagination.pageCount);\n",[187,809,811],{"className":336,"code":810,"filename":338,"language":339,"meta":193,"style":193},"curl \"https://api.nolag.app/v1/scopes?page=1&limit=10&isActive=true\" \\\n  -H \"Authorization: Bearer nlg_live_xxx.secret\"\n",[24,812,813,822],{"__ignoreMap":193},[197,814,815,817,820],{"class":199,"line":200},[197,816,346],{"class":244},[197,818,819],{"class":214}," \"https://api.nolag.app/v1/scopes?page=1&limit=10&isActive=true\"",[197,821,358],{"class":234},[197,823,824,826],{"class":199,"line":221},[197,825,363],{"class":234},[197,827,828],{"class":214}," \"Authorization: Bearer nlg_live_xxx.secret\"\n",[187,830,832],{"className":413,"code":831,"language":415,"meta":193,"style":193},"{\n  \"data\": [\n    {\n      \"accessScopeId\": \"01939f83-8b57-7c3e-a456-426614174002\",\n      \"projectId\": \"01939f83-8b57-7c3e-a456-426614174001\",\n      \"slug\": \"client-beta\",\n      \"name\": \"Beta Corp\",\n      \"description\": null,\n      \"metadata\": null,\n      \"isActive\": true,\n      \"createdAt\": \"2026-05-21T09:00:00.000Z\",\n      \"updatedAt\": \"2026-05-21T09:00:00.000Z\"\n    },\n    {\n      \"accessScopeId\": \"01939f83-8b57-7c3e-a456-426614174003\",\n      \"projectId\": \"01939f83-8b57-7c3e-a456-426614174001\",\n      \"slug\": \"client-acme\",\n      \"name\": \"Acme Corporation\",\n      \"description\": \"Isolation scope for the Acme tenant\",\n      \"metadata\": { \"tenantId\": \"tenant-123\" },\n      \"isActive\": true,\n      \"createdAt\": \"2026-05-20T10:00:00.000Z\",\n      \"updatedAt\": \"2026-05-20T10:00:00.000Z\"\n    }\n  ],\n  \"pagination\": { \"total\": 2, \"page\": 1, \"pageCount\": 1 }\n}\n",[24,833,834,838,846,851,862,873,885,897,909,920,931,943,954,960,965,977,988,999,1010,1021,1036,1047,1058,1067,1073,1079,1116],{"__ignoreMap":193},[197,835,836],{"class":199,"line":200},[197,837,422],{"class":207},[197,839,840,843],{"class":199,"line":221},[197,841,842],{"class":234},"  \"data\"",[197,844,845],{"class":207},": [\n",[197,847,848],{"class":199,"line":228},[197,849,850],{"class":207},"    {\n",[197,852,853,856,858,860],{"class":199,"line":257},[197,854,855],{"class":234},"      \"accessScopeId\"",[197,857,430],{"class":207},[197,859,433],{"class":214},[197,861,293],{"class":207},[197,863,864,867,869,871],{"class":199,"line":262},[197,865,866],{"class":234},"      \"projectId\"",[197,868,430],{"class":207},[197,870,445],{"class":214},[197,872,293],{"class":207},[197,874,875,878,880,883],{"class":199,"line":284},[197,876,877],{"class":234},"      \"slug\"",[197,879,430],{"class":207},[197,881,882],{"class":214},"\"client-beta\"",[197,884,293],{"class":207},[197,886,887,890,892,895],{"class":199,"line":296},[197,888,889],{"class":234},"      \"name\"",[197,891,430],{"class":207},[197,893,894],{"class":214},"\"Beta Corp\"",[197,896,293],{"class":207},[197,898,899,902,904,907],{"class":199,"line":307},[197,900,901],{"class":234},"      \"description\"",[197,903,430],{"class":207},[197,905,906],{"class":234},"null",[197,908,293],{"class":207},[197,910,911,914,916,918],{"class":199,"line":318},[197,912,913],{"class":234},"      \"metadata\"",[197,915,430],{"class":207},[197,917,906],{"class":234},[197,919,293],{"class":207},[197,921,922,925,927,929],{"class":199,"line":330},[197,923,924],{"class":234},"      \"isActive\"",[197,926,430],{"class":207},[197,928,507],{"class":234},[197,930,293],{"class":207},[197,932,933,936,938,941],{"class":199,"line":534},[197,934,935],{"class":234},"      \"createdAt\"",[197,937,430],{"class":207},[197,939,940],{"class":214},"\"2026-05-21T09:00:00.000Z\"",[197,942,293],{"class":207},[197,944,946,949,951],{"class":199,"line":945},12,[197,947,948],{"class":234},"      \"updatedAt\"",[197,950,430],{"class":207},[197,952,953],{"class":214},"\"2026-05-21T09:00:00.000Z\"\n",[197,955,957],{"class":199,"line":956},13,[197,958,959],{"class":207},"    },\n",[197,961,963],{"class":199,"line":962},14,[197,964,850],{"class":207},[197,966,968,970,972,975],{"class":199,"line":967},15,[197,969,855],{"class":234},[197,971,430],{"class":207},[197,973,974],{"class":214},"\"01939f83-8b57-7c3e-a456-426614174003\"",[197,976,293],{"class":207},[197,978,980,982,984,986],{"class":199,"line":979},16,[197,981,866],{"class":234},[197,983,430],{"class":207},[197,985,445],{"class":214},[197,987,293],{"class":207},[197,989,991,993,995,997],{"class":199,"line":990},17,[197,992,877],{"class":234},[197,994,430],{"class":207},[197,996,290],{"class":214},[197,998,293],{"class":207},[197,1000,1002,1004,1006,1008],{"class":199,"line":1001},18,[197,1003,889],{"class":234},[197,1005,430],{"class":207},[197,1007,302],{"class":214},[197,1009,293],{"class":207},[197,1011,1013,1015,1017,1019],{"class":199,"line":1012},19,[197,1014,901],{"class":234},[197,1016,430],{"class":207},[197,1018,313],{"class":214},[197,1020,293],{"class":207},[197,1022,1024,1026,1028,1030,1032,1034],{"class":199,"line":1023},20,[197,1025,913],{"class":234},[197,1027,488],{"class":207},[197,1029,491],{"class":234},[197,1031,430],{"class":207},[197,1033,324],{"class":214},[197,1035,327],{"class":207},[197,1037,1039,1041,1043,1045],{"class":199,"line":1038},21,[197,1040,924],{"class":234},[197,1042,430],{"class":207},[197,1044,507],{"class":234},[197,1046,293],{"class":207},[197,1048,1050,1052,1054,1056],{"class":199,"line":1049},22,[197,1051,935],{"class":234},[197,1053,430],{"class":207},[197,1055,519],{"class":214},[197,1057,293],{"class":207},[197,1059,1061,1063,1065],{"class":199,"line":1060},23,[197,1062,948],{"class":234},[197,1064,430],{"class":207},[197,1066,531],{"class":214},[197,1068,1070],{"class":199,"line":1069},24,[197,1071,1072],{"class":207},"    }\n",[197,1074,1076],{"class":199,"line":1075},25,[197,1077,1078],{"class":207},"  ],\n",[197,1080,1082,1085,1087,1090,1092,1095,1097,1100,1102,1104,1106,1109,1111,1113],{"class":199,"line":1081},26,[197,1083,1084],{"class":234},"  \"pagination\"",[197,1086,488],{"class":207},[197,1088,1089],{"class":234},"\"total\"",[197,1091,430],{"class":207},[197,1093,1094],{"class":234},"2",[197,1096,56],{"class":207},[197,1098,1099],{"class":234},"\"page\"",[197,1101,430],{"class":207},[197,1103,581],{"class":234},[197,1105,56],{"class":207},[197,1107,1108],{"class":234},"\"pageCount\"",[197,1110,430],{"class":207},[197,1112,581],{"class":234},[197,1114,1115],{"class":207}," }\n",[197,1117,1119],{"class":199,"line":1118},27,[197,1120,537],{"class":207},[71,1122,1124],{"id":1123},"get-scope","Get Scope",[14,1126,1127],{},[24,1128,1129],{},"GET /v1/scopes/:scopeId",[81,1131,1133],{"id":1132},"path-parameters","Path Parameters",[86,1135,1136,1146],{},[89,1137,1138],{},[92,1139,1140,1142,1144],{},[95,1141,559],{},[95,1143,100],{},[95,1145,106],{},[108,1147,1148],{},[92,1149,1150,1155,1158],{},[113,1151,1152],{},[24,1153,1154],{},"scopeId",[113,1156,1157],{},"UUID",[113,1159,1160,1161,178],{},"The Access Scope ID. A value that is not a UUID returns ",[24,1162,1163],{},"400",[81,1165,690],{"id":1166},"response-200-ok-1",[184,1168,1169,1230],{},[187,1170,1172],{"className":189,"code":1171,"filename":191,"language":192,"meta":193,"style":193},"import { NoLagApi } from \"@nolag/js-sdk\";\n\nconst api = new NoLagApi(process.env.NOLAG_API_KEY);\n\nconst scope = await api.scopes.get(scopeId);\n",[24,1173,1174,1186,1190,1208,1212],{"__ignoreMap":193},[197,1175,1176,1178,1180,1182,1184],{"class":199,"line":200},[197,1177,204],{"class":203},[197,1179,208],{"class":207},[197,1181,211],{"class":203},[197,1183,215],{"class":214},[197,1185,218],{"class":207},[197,1187,1188],{"class":199,"line":221},[197,1189,225],{"emptyLinePlaceholder":224},[197,1191,1192,1194,1196,1198,1200,1202,1204,1206],{"class":199,"line":228},[197,1193,231],{"class":203},[197,1195,235],{"class":234},[197,1197,238],{"class":203},[197,1199,241],{"class":203},[197,1201,245],{"class":244},[197,1203,248],{"class":207},[197,1205,251],{"class":234},[197,1207,254],{"class":207},[197,1209,1210],{"class":199,"line":257},[197,1211,225],{"emptyLinePlaceholder":224},[197,1213,1214,1216,1218,1220,1222,1224,1227],{"class":199,"line":262},[197,1215,231],{"class":203},[197,1217,267],{"class":234},[197,1219,238],{"class":203},[197,1221,272],{"class":203},[197,1223,275],{"class":207},[197,1225,1226],{"class":244},"get",[197,1228,1229],{"class":207},"(scopeId);\n",[187,1231,1233],{"className":336,"code":1232,"filename":338,"language":339,"meta":193,"style":193},"curl https://api.nolag.app/v1/scopes/01939f83-8b57-7c3e-a456-426614174002 \\\n  -H \"Authorization: Bearer nlg_live_xxx.secret\"\n",[24,1234,1235,1244],{"__ignoreMap":193},[197,1236,1237,1239,1242],{"class":199,"line":200},[197,1238,346],{"class":244},[197,1240,1241],{"class":214}," https://api.nolag.app/v1/scopes/01939f83-8b57-7c3e-a456-426614174002",[197,1243,358],{"class":234},[197,1245,1246,1248],{"class":199,"line":221},[197,1247,363],{"class":234},[197,1249,828],{"class":214},[187,1251,1252],{"className":413,"code":414,"language":415,"meta":193,"style":193},[24,1253,1254,1258,1268,1278,1288,1298,1308,1322,1332,1342,1350],{"__ignoreMap":193},[197,1255,1256],{"class":199,"line":200},[197,1257,422],{"class":207},[197,1259,1260,1262,1264,1266],{"class":199,"line":221},[197,1261,427],{"class":234},[197,1263,430],{"class":207},[197,1265,433],{"class":214},[197,1267,293],{"class":207},[197,1269,1270,1272,1274,1276],{"class":199,"line":228},[197,1271,440],{"class":234},[197,1273,430],{"class":207},[197,1275,445],{"class":214},[197,1277,293],{"class":207},[197,1279,1280,1282,1284,1286],{"class":199,"line":257},[197,1281,452],{"class":234},[197,1283,430],{"class":207},[197,1285,290],{"class":214},[197,1287,293],{"class":207},[197,1289,1290,1292,1294,1296],{"class":199,"line":262},[197,1291,463],{"class":234},[197,1293,430],{"class":207},[197,1295,302],{"class":214},[197,1297,293],{"class":207},[197,1299,1300,1302,1304,1306],{"class":199,"line":284},[197,1301,474],{"class":234},[197,1303,430],{"class":207},[197,1305,313],{"class":214},[197,1307,293],{"class":207},[197,1309,1310,1312,1314,1316,1318,1320],{"class":199,"line":296},[197,1311,485],{"class":234},[197,1313,488],{"class":207},[197,1315,491],{"class":234},[197,1317,430],{"class":207},[197,1319,324],{"class":214},[197,1321,327],{"class":207},[197,1323,1324,1326,1328,1330],{"class":199,"line":307},[197,1325,502],{"class":234},[197,1327,430],{"class":207},[197,1329,507],{"class":234},[197,1331,293],{"class":207},[197,1333,1334,1336,1338,1340],{"class":199,"line":318},[197,1335,514],{"class":234},[197,1337,430],{"class":207},[197,1339,519],{"class":214},[197,1341,293],{"class":207},[197,1343,1344,1346,1348],{"class":199,"line":330},[197,1345,526],{"class":234},[197,1347,430],{"class":207},[197,1349,531],{"class":214},[197,1351,1352],{"class":199,"line":534},[197,1353,537],{"class":207},[71,1355,1357],{"id":1356},"update-scope","Update Scope",[14,1359,1360],{},[24,1361,1362],{},"PATCH /v1/scopes/:scopeId",[81,1364,84],{"id":1365},"request-body-1",[14,1367,1368,1369,1371],{},"All fields are optional; only the fields you send are changed. The ",[24,1370,117],{}," cannot be updated.",[86,1373,1374,1386],{},[89,1375,1376],{},[92,1377,1378,1380,1382,1384],{},[95,1379,97],{},[95,1381,100],{},[95,1383,103],{},[95,1385,106],{},[108,1387,1388,1401,1414,1427],{},[92,1389,1390,1394,1396,1398],{},[113,1391,1392],{},[24,1393,137],{},[113,1395,120],{},[113,1397,156],{},[113,1399,1400],{},"Updated display name. Max 255 characters.",[92,1402,1403,1407,1409,1411],{},[113,1404,1405],{},[24,1406,151],{},[113,1408,120],{},[113,1410,156],{},[113,1412,1413],{},"Updated description. Max 500 characters.",[92,1415,1416,1420,1422,1424],{},[113,1417,1418],{},[24,1419,166],{},[113,1421,169],{},[113,1423,156],{},[113,1425,1426],{},"Replaces the stored metadata object.",[92,1428,1429,1433,1436,1438],{},[113,1430,1431],{},[24,1432,636],{},[113,1434,1435],{},"boolean",[113,1437,156],{},[113,1439,1440,1441,1444,1445,1448],{},"Set to ",[24,1442,1443],{},"false"," to deactivate the scope. Actors assigned to an inactive scope are denied: refused at connect with ",[24,1446,1447],{},"scope_inactive",", and disconnected at their next revalidation if already connected. They are not unscoped.",[81,1450,690],{"id":1451},"response-200-ok-2",[184,1453,1454,1534],{},[187,1455,1457],{"className":189,"code":1456,"filename":191,"language":192,"meta":193,"style":193},"import { NoLagApi } from \"@nolag/js-sdk\";\n\nconst api = new NoLagApi(process.env.NOLAG_API_KEY);\n\nconst scope = await api.scopes.update(scopeId, {\n  name: \"Acme Corp (Renamed)\",\n  // slug cannot be updated after creation\n});\n",[24,1458,1459,1471,1475,1493,1497,1515,1524,1530],{"__ignoreMap":193},[197,1460,1461,1463,1465,1467,1469],{"class":199,"line":200},[197,1462,204],{"class":203},[197,1464,208],{"class":207},[197,1466,211],{"class":203},[197,1468,215],{"class":214},[197,1470,218],{"class":207},[197,1472,1473],{"class":199,"line":221},[197,1474,225],{"emptyLinePlaceholder":224},[197,1476,1477,1479,1481,1483,1485,1487,1489,1491],{"class":199,"line":228},[197,1478,231],{"class":203},[197,1480,235],{"class":234},[197,1482,238],{"class":203},[197,1484,241],{"class":203},[197,1486,245],{"class":244},[197,1488,248],{"class":207},[197,1490,251],{"class":234},[197,1492,254],{"class":207},[197,1494,1495],{"class":199,"line":257},[197,1496,225],{"emptyLinePlaceholder":224},[197,1498,1499,1501,1503,1505,1507,1509,1512],{"class":199,"line":262},[197,1500,231],{"class":203},[197,1502,267],{"class":234},[197,1504,238],{"class":203},[197,1506,272],{"class":203},[197,1508,275],{"class":207},[197,1510,1511],{"class":244},"update",[197,1513,1514],{"class":207},"(scopeId, {\n",[197,1516,1517,1519,1522],{"class":199,"line":284},[197,1518,299],{"class":207},[197,1520,1521],{"class":214},"\"Acme Corp (Renamed)\"",[197,1523,293],{"class":207},[197,1525,1526],{"class":199,"line":296},[197,1527,1529],{"class":1528},"sJ8bj","  // slug cannot be updated after creation\n",[197,1531,1532],{"class":199,"line":307},[197,1533,333],{"class":207},[187,1535,1537],{"className":336,"code":1536,"filename":338,"language":339,"meta":193,"style":193},"curl -X PATCH https://api.nolag.app/v1/scopes/01939f83-8b57-7c3e-a456-426614174002 \\\n  -H \"Authorization: Bearer nlg_live_xxx.secret\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"name\":\"Acme Corp (Renamed)\"}'\n",[24,1538,1539,1552,1560,1568],{"__ignoreMap":193},[197,1540,1541,1543,1545,1548,1550],{"class":199,"line":200},[197,1542,346],{"class":244},[197,1544,349],{"class":234},[197,1546,1547],{"class":214}," PATCH",[197,1549,1241],{"class":214},[197,1551,358],{"class":234},[197,1553,1554,1556,1558],{"class":199,"line":221},[197,1555,363],{"class":234},[197,1557,366],{"class":214},[197,1559,358],{"class":234},[197,1561,1562,1564,1566],{"class":199,"line":228},[197,1563,363],{"class":234},[197,1565,375],{"class":214},[197,1567,358],{"class":234},[197,1569,1570,1572],{"class":199,"line":257},[197,1571,382],{"class":234},[197,1573,1574],{"class":214}," '{\"name\":\"Acme Corp (Renamed)\"}'\n",[187,1576,1578],{"className":413,"code":1577,"language":415,"meta":193,"style":193},"{\n  \"accessScopeId\": \"01939f83-8b57-7c3e-a456-426614174002\",\n  \"projectId\": \"01939f83-8b57-7c3e-a456-426614174001\",\n  \"slug\": \"client-acme\",\n  \"name\": \"Acme Corp (Renamed)\",\n  \"description\": \"Isolation scope for the Acme tenant\",\n  \"metadata\": { \"tenantId\": \"tenant-123\" },\n  \"isActive\": true,\n  \"createdAt\": \"2026-05-20T10:00:00.000Z\",\n  \"updatedAt\": \"2026-05-20T12:00:00.000Z\"\n}\n",[24,1579,1580,1584,1594,1604,1614,1624,1634,1648,1658,1668,1677],{"__ignoreMap":193},[197,1581,1582],{"class":199,"line":200},[197,1583,422],{"class":207},[197,1585,1586,1588,1590,1592],{"class":199,"line":221},[197,1587,427],{"class":234},[197,1589,430],{"class":207},[197,1591,433],{"class":214},[197,1593,293],{"class":207},[197,1595,1596,1598,1600,1602],{"class":199,"line":228},[197,1597,440],{"class":234},[197,1599,430],{"class":207},[197,1601,445],{"class":214},[197,1603,293],{"class":207},[197,1605,1606,1608,1610,1612],{"class":199,"line":257},[197,1607,452],{"class":234},[197,1609,430],{"class":207},[197,1611,290],{"class":214},[197,1613,293],{"class":207},[197,1615,1616,1618,1620,1622],{"class":199,"line":262},[197,1617,463],{"class":234},[197,1619,430],{"class":207},[197,1621,1521],{"class":214},[197,1623,293],{"class":207},[197,1625,1626,1628,1630,1632],{"class":199,"line":284},[197,1627,474],{"class":234},[197,1629,430],{"class":207},[197,1631,313],{"class":214},[197,1633,293],{"class":207},[197,1635,1636,1638,1640,1642,1644,1646],{"class":199,"line":296},[197,1637,485],{"class":234},[197,1639,488],{"class":207},[197,1641,491],{"class":234},[197,1643,430],{"class":207},[197,1645,324],{"class":214},[197,1647,327],{"class":207},[197,1649,1650,1652,1654,1656],{"class":199,"line":307},[197,1651,502],{"class":234},[197,1653,430],{"class":207},[197,1655,507],{"class":234},[197,1657,293],{"class":207},[197,1659,1660,1662,1664,1666],{"class":199,"line":318},[197,1661,514],{"class":234},[197,1663,430],{"class":207},[197,1665,519],{"class":214},[197,1667,293],{"class":207},[197,1669,1670,1672,1674],{"class":199,"line":330},[197,1671,526],{"class":234},[197,1673,430],{"class":207},[197,1675,1676],{"class":214},"\"2026-05-20T12:00:00.000Z\"\n",[197,1678,1679],{"class":199,"line":534},[197,1680,537],{"class":207},[71,1682,1684],{"id":1683},"delete-scope","Delete Scope",[14,1686,1687],{},[24,1688,1689],{},"DELETE /v1/scopes/:scopeId",[14,1691,1692,1693,1696,1697,1700,1701,1704],{},"Soft-deletes the scope. The request is refused with ",[24,1694,1695],{},"409 Conflict"," while any actor is still assigned to the scope, because deleting it out from under them would silently widen their access to the project-wide namespace. Unscope the actors first with ",[24,1698,1699],{},"PATCH /v1/actors/:actorTokenId { \"accessScopeId\": null }"," (or ",[24,1702,1703],{},"api.scopes.removeActor(actorTokenId)","), then delete.",[81,1706,1708],{"id":1707},"response-204-no-content","Response: 204 No Content",[184,1710,1711,1822],{},[187,1712,1714],{"className":189,"code":1713,"filename":191,"language":192,"meta":193,"style":193},"import { NoLagApi } from \"@nolag/js-sdk\";\n\nconst api = new NoLagApi(process.env.NOLAG_API_KEY);\n\n// Unscope every actor still assigned, then delete\nconst actors = await api.scopes.listActors(scopeId);\nfor (const actor of actors) {\n  await api.scopes.removeActor(actor.actorTokenId);\n}\nawait api.scopes.delete(scopeId);\n",[24,1715,1716,1728,1732,1750,1754,1759,1777,1793,1806,1810],{"__ignoreMap":193},[197,1717,1718,1720,1722,1724,1726],{"class":199,"line":200},[197,1719,204],{"class":203},[197,1721,208],{"class":207},[197,1723,211],{"class":203},[197,1725,215],{"class":214},[197,1727,218],{"class":207},[197,1729,1730],{"class":199,"line":221},[197,1731,225],{"emptyLinePlaceholder":224},[197,1733,1734,1736,1738,1740,1742,1744,1746,1748],{"class":199,"line":228},[197,1735,231],{"class":203},[197,1737,235],{"class":234},[197,1739,238],{"class":203},[197,1741,241],{"class":203},[197,1743,245],{"class":244},[197,1745,248],{"class":207},[197,1747,251],{"class":234},[197,1749,254],{"class":207},[197,1751,1752],{"class":199,"line":257},[197,1753,225],{"emptyLinePlaceholder":224},[197,1755,1756],{"class":199,"line":262},[197,1757,1758],{"class":1528},"// Unscope every actor still assigned, then delete\n",[197,1760,1761,1763,1766,1768,1770,1772,1775],{"class":199,"line":284},[197,1762,231],{"class":203},[197,1764,1765],{"class":234}," actors",[197,1767,238],{"class":203},[197,1769,272],{"class":203},[197,1771,275],{"class":207},[197,1773,1774],{"class":244},"listActors",[197,1776,1229],{"class":207},[197,1778,1779,1781,1783,1785,1788,1790],{"class":199,"line":296},[197,1780,769],{"class":203},[197,1782,772],{"class":207},[197,1784,231],{"class":203},[197,1786,1787],{"class":234}," actor",[197,1789,779],{"class":203},[197,1791,1792],{"class":207}," actors) {\n",[197,1794,1795,1798,1800,1803],{"class":199,"line":307},[197,1796,1797],{"class":203},"  await",[197,1799,275],{"class":207},[197,1801,1802],{"class":244},"removeActor",[197,1804,1805],{"class":207},"(actor.actorTokenId);\n",[197,1807,1808],{"class":199,"line":318},[197,1809,537],{"class":207},[197,1811,1812,1815,1817,1820],{"class":199,"line":330},[197,1813,1814],{"class":203},"await",[197,1816,275],{"class":207},[197,1818,1819],{"class":244},"delete",[197,1821,1229],{"class":207},[187,1823,1825],{"className":336,"code":1824,"filename":338,"language":339,"meta":193,"style":193},"# Unscope an assigned actor\ncurl -X PATCH https://api.nolag.app/v1/actors/{actorTokenId} \\\n  -H \"Authorization: Bearer nlg_live_xxx.secret\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"accessScopeId\":null}'\n\n# Then delete the scope\ncurl -X DELETE https://api.nolag.app/v1/scopes/01939f83-8b57-7c3e-a456-426614174002 \\\n  -H \"Authorization: Bearer nlg_live_xxx.secret\"\n",[24,1826,1827,1832,1845,1853,1861,1868,1872,1877,1890],{"__ignoreMap":193},[197,1828,1829],{"class":199,"line":200},[197,1830,1831],{"class":1528},"# Unscope an assigned actor\n",[197,1833,1834,1836,1838,1840,1843],{"class":199,"line":221},[197,1835,346],{"class":244},[197,1837,349],{"class":234},[197,1839,1547],{"class":214},[197,1841,1842],{"class":214}," https://api.nolag.app/v1/actors/{actorTokenId}",[197,1844,358],{"class":234},[197,1846,1847,1849,1851],{"class":199,"line":228},[197,1848,363],{"class":234},[197,1850,366],{"class":214},[197,1852,358],{"class":234},[197,1854,1855,1857,1859],{"class":199,"line":257},[197,1856,363],{"class":234},[197,1858,375],{"class":214},[197,1860,358],{"class":234},[197,1862,1863,1865],{"class":199,"line":262},[197,1864,382],{"class":234},[197,1866,1867],{"class":214}," '{\"accessScopeId\":null}'\n",[197,1869,1870],{"class":199,"line":284},[197,1871,225],{"emptyLinePlaceholder":224},[197,1873,1874],{"class":199,"line":296},[197,1875,1876],{"class":1528},"# Then delete the scope\n",[197,1878,1879,1881,1883,1886,1888],{"class":199,"line":307},[197,1880,346],{"class":244},[197,1882,349],{"class":234},[197,1884,1885],{"class":214}," DELETE",[197,1887,1241],{"class":214},[197,1889,358],{"class":234},[197,1891,1892,1894],{"class":199,"line":318},[197,1893,363],{"class":234},[197,1895,828],{"class":214},[14,1897,1898,1899],{},"Error while actors are still assigned: ",[24,1900,1695],{},[187,1902,1904],{"className":413,"code":1903,"language":415,"meta":193,"style":193},"{\n  \"id\": \"6f1c2a9e-3b4d-4e5f-8a6b-7c8d9e0f1a2b\",\n  \"message\": \"Cannot delete scope: 2 actor(s) are still assigned to it. Unscope them first.\",\n  \"timestamp\": \"2026-05-22T09:30:00.000Z\"\n}\n",[24,1905,1906,1910,1922,1934,1944],{"__ignoreMap":193},[197,1907,1908],{"class":199,"line":200},[197,1909,422],{"class":207},[197,1911,1912,1915,1917,1920],{"class":199,"line":221},[197,1913,1914],{"class":234},"  \"id\"",[197,1916,430],{"class":207},[197,1918,1919],{"class":214},"\"6f1c2a9e-3b4d-4e5f-8a6b-7c8d9e0f1a2b\"",[197,1921,293],{"class":207},[197,1923,1924,1927,1929,1932],{"class":199,"line":228},[197,1925,1926],{"class":234},"  \"message\"",[197,1928,430],{"class":207},[197,1930,1931],{"class":214},"\"Cannot delete scope: 2 actor(s) are still assigned to it. Unscope them first.\"",[197,1933,293],{"class":207},[197,1935,1936,1939,1941],{"class":199,"line":257},[197,1937,1938],{"class":234},"  \"timestamp\"",[197,1940,430],{"class":207},[197,1942,1943],{"class":214},"\"2026-05-22T09:30:00.000Z\"\n",[197,1945,1946],{"class":199,"line":262},[197,1947,537],{"class":207},[71,1949,1951],{"id":1950},"list-actors-in-scope","List Actors in Scope",[14,1953,1954],{},[24,1955,1956],{},"GET /v1/scopes/:scopeId/actors",[14,1958,1959,1960,1962,1963,1965,1966,178],{},"Returns every actor currently assigned to this scope as a plain array, newest first (ordered by ",[24,1961,681],{}," descending). This endpoint takes no query parameters and is not paginated. A ",[24,1964,1154],{}," from another project returns ",[24,1967,1968],{},"404",[81,1970,690],{"id":1971},"response-200-ok-3",[184,1973,1974,2060],{},[187,1975,1977],{"className":189,"code":1976,"filename":191,"language":192,"meta":193,"style":193},"import { NoLagApi } from \"@nolag/js-sdk\";\n\nconst api = new NoLagApi(process.env.NOLAG_API_KEY);\n\nconst actors = await api.scopes.listActors(scopeId);\nfor (const actor of actors) {\n  console.log(actor.actorTokenId, actor.name, actor.actorType);\n}\n",[24,1978,1979,1991,1995,2013,2017,2033,2047,2056],{"__ignoreMap":193},[197,1980,1981,1983,1985,1987,1989],{"class":199,"line":200},[197,1982,204],{"class":203},[197,1984,208],{"class":207},[197,1986,211],{"class":203},[197,1988,215],{"class":214},[197,1990,218],{"class":207},[197,1992,1993],{"class":199,"line":221},[197,1994,225],{"emptyLinePlaceholder":224},[197,1996,1997,1999,2001,2003,2005,2007,2009,2011],{"class":199,"line":228},[197,1998,231],{"class":203},[197,2000,235],{"class":234},[197,2002,238],{"class":203},[197,2004,241],{"class":203},[197,2006,245],{"class":244},[197,2008,248],{"class":207},[197,2010,251],{"class":234},[197,2012,254],{"class":207},[197,2014,2015],{"class":199,"line":257},[197,2016,225],{"emptyLinePlaceholder":224},[197,2018,2019,2021,2023,2025,2027,2029,2031],{"class":199,"line":262},[197,2020,231],{"class":203},[197,2022,1765],{"class":234},[197,2024,238],{"class":203},[197,2026,272],{"class":203},[197,2028,275],{"class":207},[197,2030,1774],{"class":244},[197,2032,1229],{"class":207},[197,2034,2035,2037,2039,2041,2043,2045],{"class":199,"line":284},[197,2036,769],{"class":203},[197,2038,772],{"class":207},[197,2040,231],{"class":203},[197,2042,1787],{"class":234},[197,2044,779],{"class":203},[197,2046,1792],{"class":207},[197,2048,2049,2051,2053],{"class":199,"line":296},[197,2050,787],{"class":207},[197,2052,790],{"class":244},[197,2054,2055],{"class":207},"(actor.actorTokenId, actor.name, actor.actorType);\n",[197,2057,2058],{"class":199,"line":307},[197,2059,537],{"class":207},[187,2061,2063],{"className":336,"code":2062,"filename":338,"language":339,"meta":193,"style":193},"curl https://api.nolag.app/v1/scopes/01939f83-8b57-7c3e-a456-426614174002/actors \\\n  -H \"Authorization: Bearer nlg_live_xxx.secret\"\n",[24,2064,2065,2074],{"__ignoreMap":193},[197,2066,2067,2069,2072],{"class":199,"line":200},[197,2068,346],{"class":244},[197,2070,2071],{"class":214}," https://api.nolag.app/v1/scopes/01939f83-8b57-7c3e-a456-426614174002/actors",[197,2073,358],{"class":234},[197,2075,2076,2078],{"class":199,"line":221},[197,2077,363],{"class":234},[197,2079,828],{"class":214},[187,2081,2083],{"className":413,"code":2082,"language":415,"meta":193,"style":193},"[\n  {\n    \"actorTokenId\": \"01939f83-8b57-7c3e-a456-426614174011\",\n    \"projectId\": \"01939f83-8b57-7c3e-a456-426614174001\",\n    \"keyId\": \"at_live_9f2c1b7e4a3d\",\n    \"name\": \"user-bob\",\n    \"actorType\": \"user\",\n    \"status\": \"active\",\n    \"expiresAt\": null,\n    \"lastUsedAt\": \"2026-05-22T08:15:00.000Z\",\n    \"metadata\": null,\n    \"accessScopeId\": \"01939f83-8b57-7c3e-a456-426614174002\",\n    \"createdAt\": \"2026-05-21T10:00:00.000Z\"\n  },\n  {\n    \"actorTokenId\": \"01939f83-8b57-7c3e-a456-426614174010\",\n    \"projectId\": \"01939f83-8b57-7c3e-a456-426614174001\",\n    \"keyId\": \"at_live_5d8e2a1c9b4f\",\n    \"name\": \"user-alice\",\n    \"actorType\": \"user\",\n    \"status\": \"active\",\n    \"expiresAt\": null,\n    \"lastUsedAt\": null,\n    \"metadata\": null,\n    \"accessScopeId\": \"01939f83-8b57-7c3e-a456-426614174002\",\n    \"createdAt\": \"2026-05-20T11:00:00.000Z\"\n  }\n]\n",[24,2084,2085,2090,2095,2107,2118,2130,2142,2154,2166,2177,2189,2200,2211,2221,2226,2230,2241,2251,2262,2273,2283,2293,2303,2313,2323,2333,2342,2347],{"__ignoreMap":193},[197,2086,2087],{"class":199,"line":200},[197,2088,2089],{"class":207},"[\n",[197,2091,2092],{"class":199,"line":221},[197,2093,2094],{"class":207},"  {\n",[197,2096,2097,2100,2102,2105],{"class":199,"line":228},[197,2098,2099],{"class":234},"    \"actorTokenId\"",[197,2101,430],{"class":207},[197,2103,2104],{"class":214},"\"01939f83-8b57-7c3e-a456-426614174011\"",[197,2106,293],{"class":207},[197,2108,2109,2112,2114,2116],{"class":199,"line":257},[197,2110,2111],{"class":234},"    \"projectId\"",[197,2113,430],{"class":207},[197,2115,445],{"class":214},[197,2117,293],{"class":207},[197,2119,2120,2123,2125,2128],{"class":199,"line":262},[197,2121,2122],{"class":234},"    \"keyId\"",[197,2124,430],{"class":207},[197,2126,2127],{"class":214},"\"at_live_9f2c1b7e4a3d\"",[197,2129,293],{"class":207},[197,2131,2132,2135,2137,2140],{"class":199,"line":284},[197,2133,2134],{"class":234},"    \"name\"",[197,2136,430],{"class":207},[197,2138,2139],{"class":214},"\"user-bob\"",[197,2141,293],{"class":207},[197,2143,2144,2147,2149,2152],{"class":199,"line":296},[197,2145,2146],{"class":234},"    \"actorType\"",[197,2148,430],{"class":207},[197,2150,2151],{"class":214},"\"user\"",[197,2153,293],{"class":207},[197,2155,2156,2159,2161,2164],{"class":199,"line":307},[197,2157,2158],{"class":234},"    \"status\"",[197,2160,430],{"class":207},[197,2162,2163],{"class":214},"\"active\"",[197,2165,293],{"class":207},[197,2167,2168,2171,2173,2175],{"class":199,"line":318},[197,2169,2170],{"class":234},"    \"expiresAt\"",[197,2172,430],{"class":207},[197,2174,906],{"class":234},[197,2176,293],{"class":207},[197,2178,2179,2182,2184,2187],{"class":199,"line":330},[197,2180,2181],{"class":234},"    \"lastUsedAt\"",[197,2183,430],{"class":207},[197,2185,2186],{"class":214},"\"2026-05-22T08:15:00.000Z\"",[197,2188,293],{"class":207},[197,2190,2191,2194,2196,2198],{"class":199,"line":534},[197,2192,2193],{"class":234},"    \"metadata\"",[197,2195,430],{"class":207},[197,2197,906],{"class":234},[197,2199,293],{"class":207},[197,2201,2202,2205,2207,2209],{"class":199,"line":945},[197,2203,2204],{"class":234},"    \"accessScopeId\"",[197,2206,430],{"class":207},[197,2208,433],{"class":214},[197,2210,293],{"class":207},[197,2212,2213,2216,2218],{"class":199,"line":956},[197,2214,2215],{"class":234},"    \"createdAt\"",[197,2217,430],{"class":207},[197,2219,2220],{"class":214},"\"2026-05-21T10:00:00.000Z\"\n",[197,2222,2223],{"class":199,"line":962},[197,2224,2225],{"class":207},"  },\n",[197,2227,2228],{"class":199,"line":967},[197,2229,2094],{"class":207},[197,2231,2232,2234,2236,2239],{"class":199,"line":979},[197,2233,2099],{"class":234},[197,2235,430],{"class":207},[197,2237,2238],{"class":214},"\"01939f83-8b57-7c3e-a456-426614174010\"",[197,2240,293],{"class":207},[197,2242,2243,2245,2247,2249],{"class":199,"line":990},[197,2244,2111],{"class":234},[197,2246,430],{"class":207},[197,2248,445],{"class":214},[197,2250,293],{"class":207},[197,2252,2253,2255,2257,2260],{"class":199,"line":1001},[197,2254,2122],{"class":234},[197,2256,430],{"class":207},[197,2258,2259],{"class":214},"\"at_live_5d8e2a1c9b4f\"",[197,2261,293],{"class":207},[197,2263,2264,2266,2268,2271],{"class":199,"line":1012},[197,2265,2134],{"class":234},[197,2267,430],{"class":207},[197,2269,2270],{"class":214},"\"user-alice\"",[197,2272,293],{"class":207},[197,2274,2275,2277,2279,2281],{"class":199,"line":1023},[197,2276,2146],{"class":234},[197,2278,430],{"class":207},[197,2280,2151],{"class":214},[197,2282,293],{"class":207},[197,2284,2285,2287,2289,2291],{"class":199,"line":1038},[197,2286,2158],{"class":234},[197,2288,430],{"class":207},[197,2290,2163],{"class":214},[197,2292,293],{"class":207},[197,2294,2295,2297,2299,2301],{"class":199,"line":1049},[197,2296,2170],{"class":234},[197,2298,430],{"class":207},[197,2300,906],{"class":234},[197,2302,293],{"class":207},[197,2304,2305,2307,2309,2311],{"class":199,"line":1060},[197,2306,2181],{"class":234},[197,2308,430],{"class":207},[197,2310,906],{"class":234},[197,2312,293],{"class":207},[197,2314,2315,2317,2319,2321],{"class":199,"line":1069},[197,2316,2193],{"class":234},[197,2318,430],{"class":207},[197,2320,906],{"class":234},[197,2322,293],{"class":207},[197,2324,2325,2327,2329,2331],{"class":199,"line":1075},[197,2326,2204],{"class":234},[197,2328,430],{"class":207},[197,2330,433],{"class":214},[197,2332,293],{"class":207},[197,2334,2335,2337,2339],{"class":199,"line":1081},[197,2336,2215],{"class":234},[197,2338,430],{"class":207},[197,2340,2341],{"class":214},"\"2026-05-20T11:00:00.000Z\"\n",[197,2343,2344],{"class":199,"line":1118},[197,2345,2346],{"class":207},"  }\n",[197,2348,2350],{"class":199,"line":2349},28,[197,2351,2352],{"class":207},"]\n",[71,2354,2356],{"id":2355},"assigning-actors","Assigning Actors",[14,2358,2359,2360,2363,2364,2367],{},"Scope membership lives on the actor, not on the scope. There is no ",[24,2361,2362],{},"POST /v1/scopes/:scopeId/actors","; instead set ",[24,2365,2366],{},"accessScopeId"," on the actor:",[2369,2370,2371,2378,2384],"ul",{},[2372,2373,2374,2377],"li",{},[24,2375,2376],{},"POST /v1/actors { \"name\", \"actorType\", \"accessScopeId\" }"," creates an actor already in the scope.",[2372,2379,2380,2383],{},[24,2381,2382],{},"PATCH /v1/actors/:actorTokenId { \"accessScopeId\": \"\u003Cscope id>\" }"," moves an existing actor into the scope.",[2372,2385,2386,2388],{},[24,2387,1699],{}," unscopes it.",[14,2390,2391,2392,2394,2395,56,2397,2400,2401,2403,2404,178],{},"The scope must belong to the same project as the actor; a scope from another project is refused with ",[24,2393,1163],{},". The change applies at the actor's next connection, or within about 10 minutes on a live connection. In ",[24,2396,55],{},[24,2398,2399],{},"api.scopes.addActor(scopeId, actorTokenId)"," and ",[24,2402,1703],{}," wrap the same ",[24,2405,2406],{},"PATCH",[71,2408,2410],{"id":2409},"response-schemas","Response Schemas",[81,2412,2414],{"id":2413},"accessscope","AccessScope",[86,2416,2417,2427],{},[89,2418,2419],{},[92,2420,2421,2423,2425],{},[95,2422,97],{},[95,2424,100],{},[95,2426,106],{},[108,2428,2429,2440,2452,2463,2474,2486,2498,2509,2521],{},[92,2430,2431,2435,2437],{},[113,2432,2433],{},[24,2434,2366],{},[113,2436,1157],{},[113,2438,2439],{},"Unique identifier for the scope.",[92,2441,2442,2447,2449],{},[113,2443,2444],{},[24,2445,2446],{},"projectId",[113,2448,1157],{},[113,2450,2451],{},"The project the scope belongs to.",[92,2453,2454,2458,2460],{},[113,2455,2456],{},[24,2457,117],{},[113,2459,120],{},[113,2461,2462],{},"Topic segment for this scope. Immutable.",[92,2464,2465,2469,2471],{},[113,2466,2467],{},[24,2468,137],{},[113,2470,120],{},[113,2472,2473],{},"Human-readable display name.",[92,2475,2476,2480,2483],{},[113,2477,2478],{},[24,2479,151],{},[113,2481,2482],{},"string | null",[113,2484,2485],{},"Free-text description.",[92,2487,2488,2492,2495],{},[113,2489,2490],{},[24,2491,166],{},[113,2493,2494],{},"object | null",[113,2496,2497],{},"Arbitrary JSON object.",[92,2499,2500,2504,2506],{},[113,2501,2502],{},[24,2503,636],{},[113,2505,1435],{},[113,2507,2508],{},"Whether the scope is active. An inactive scope denies its actors.",[92,2510,2511,2515,2518],{},[113,2512,2513],{},[24,2514,681],{},[113,2516,2517],{},"ISO 8601",[113,2519,2520],{},"Timestamp when the scope was created.",[92,2522,2523,2528,2530],{},[113,2524,2525],{},[24,2526,2527],{},"updatedAt",[113,2529,2517],{},[113,2531,2532],{},"Timestamp of the last update.",[81,2534,2536],{"id":2535},"error-responses","Error Responses",[86,2538,2539,2548],{},[89,2540,2541],{},[92,2542,2543,2546],{},[95,2544,2545],{},"Status",[95,2547,106],{},[108,2549,2550,2570,2580,2590,2599],{},[92,2551,2552,2556],{},[113,2553,2554],{},[24,2555,1163],{},[113,2557,2558,2559,670,2561,2563,2564,2566,2567,2569],{},"Invalid request body or parameters: missing ",[24,2560,117],{},[24,2562,137],{},", slug outside ",[24,2565,129],{},", field over its maximum length, ",[24,2568,1154],{}," that is not a UUID.",[92,2571,2572,2577],{},[113,2573,2574],{},[24,2575,2576],{},"401",[113,2578,2579],{},"Missing or invalid API key.",[92,2581,2582,2587],{},[113,2583,2584],{},[24,2585,2586],{},"403",[113,2588,2589],{},"The API key is not project-scoped.",[92,2591,2592,2596],{},[113,2593,2594],{},[24,2595,1968],{},[113,2597,2598],{},"Scope not found in this project.",[92,2600,2601,2606],{},[113,2602,2603],{},[24,2604,2605],{},"409",[113,2607,2608],{},"On create: the slug already exists within this project. On delete: actors are still assigned to the scope.",[71,2610,2612],{"id":2611},"next-steps","Next Steps",[2369,2614,2615,2623,2630],{},[2372,2616,2617,2622],{},[2618,2619,2621],"a",{"href":2620},"/docs/scopes/getting-started","Getting Started"," - create your first scope",[2372,2624,2625,2629],{},[2618,2626,2628],{"href":2627},"/docs/scopes/concepts","Concepts"," - understand how scopes work under the hood",[2372,2631,2632,2636],{},[2618,2633,2635],{"href":2634},"/docs/scopes/multi-tenancy","Multi-Tenancy Patterns"," - real-world usage patterns",[2638,2639,2640],"style",{},"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 .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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 .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":193,"searchDepth":221,"depth":221,"links":2642},[2643,2647,2651,2655,2659,2662,2665,2666,2670],{"id":73,"depth":221,"text":74,"children":2644},[2645,2646],{"id":83,"depth":228,"text":84},{"id":181,"depth":228,"text":182},{"id":540,"depth":221,"text":541,"children":2648},[2649,2650],{"id":549,"depth":228,"text":550},{"id":689,"depth":228,"text":690},{"id":1123,"depth":221,"text":1124,"children":2652},[2653,2654],{"id":1132,"depth":228,"text":1133},{"id":1166,"depth":228,"text":690},{"id":1356,"depth":221,"text":1357,"children":2656},[2657,2658],{"id":1365,"depth":228,"text":84},{"id":1451,"depth":228,"text":690},{"id":1683,"depth":221,"text":1684,"children":2660},[2661],{"id":1707,"depth":228,"text":1708},{"id":1950,"depth":221,"text":1951,"children":2663},[2664],{"id":1971,"depth":228,"text":690},{"id":2355,"depth":221,"text":2356},{"id":2409,"depth":221,"text":2410,"children":2667},[2668,2669],{"id":2413,"depth":228,"text":2414},{"id":2535,"depth":228,"text":2536},{"id":2611,"depth":221,"text":2612},"Complete API reference for Access Scopes endpoints. Create, list, get, update, and delete scopes. List actors assigned to a scope.","md",{},"/docs/scopes/api-reference",{"title":5,"description":2671},"docs/scopes/api-reference","y2DuBzHil7FmD4UcLLKQ1QmXZoo1xWxybG22X9cIxns",1789869421033]