[{"data":1,"prerenderedAt":1834},["ShallowReactive",2],{"api_labels":3,"nav-docs":1723,"nav-api":1780},{"id":4,"title":5,"body":6,"description":16,"extension":1717,"meta":1718,"navigation":248,"path":1719,"seo":1720,"stem":1721,"__hash__":1722},"api\u002Fapi\u002F13.labels.md","Labels",{"type":7,"value":8,"toc":1706},"minimark",[9,13,17,20,36,39,44,47,52,94,98,133,872,876,882,893,904,907,950,953,984,1648,1652,1655,1699,1702],[10,11,5],"h1",{"id":12},"labels",[14,15,16],"p",{},"The words a board is using.",[14,18,19],{},"A label is text on a card, not an entry in a list the board keeps. You put a word\non the card it applies to, and the row here exists so that the same word typed on\ntwo cards is one thing rather than two — which is what lets a board be filtered\nby it, and what fills the handful of names offered the next time somebody adds\none.",[14,21,22,23,27,28,35],{},"That shape is why this page is short. There is no renaming and no deleting here:\nwhich labels a card wears travels with the card, as ",[24,25,26],"code",{},"labelIds"," on\n",[29,30,32],"a",{"href":31},"\u002Fapi\u002Fcard",[24,33,34],{},"PUT \u002Fapi\u002Fdata\u002Fcard",", and a word no card wears any longer is removed\non the same request that drops it. Use this endpoint to find out what a board is\nalready using, and to turn a word into the id the card endpoint wants.",[14,37,38],{},"Every label is drawn in the same colour, so there is nothing to set.",[40,41,43],"h2",{"id":42},"get-apidatalabels","GET \u002Fapi\u002Fdata\u002Flabels",[14,45,46],{},"The words in use on a board, in the order they were first used. Needs read\naccess to the board.",[48,49,51],"h3",{"id":50},"parameters","Parameters",[53,54,55,74],"table",{},[56,57,58],"thead",{},[59,60,61,65,68,71],"tr",{},[62,63,64],"th",{},"Name",[62,66,67],{},"Type",[62,69,70],{},"Required",[62,72,73],{},"Description",[75,76,77],"tbody",{},[59,78,79,85,88,91],{},[80,81,82],"td",{},[24,83,84],{},"boardId",[80,86,87],{},"integer",[80,89,90],{},"yes",[80,92,93],{},"The board to read.",[48,95,97],{"id":96},"what-comes-back","What comes back",[53,99,100,111],{},[56,101,102],{},[59,103,104,107,109],{},[62,105,106],{},"Field",[62,108,67],{},[62,110,73],{},[75,112,113],{},[59,114,115,119,122],{},[80,116,117],{},[24,118,12],{},[80,120,121],{},"array",[80,123,124,125,128,129,132],{},"Each entry an ",[24,126,127],{},"id"," and a ",[24,130,131],{},"name",".",[134,135,136,187,320,554,811],"code-example",{},[137,138,140],"template",{"v-slot:curl":139},"",[141,142,146],"pre",{"className":143,"code":144,"language":145,"meta":139,"style":139},"language-bash shiki shiki-themes github-light github-dark","curl -X GET \"https:\u002F\u002Fboards.example.com\u002Fapi\u002Fdata\u002Flabels?boardId=123\" \\\n  -H \"X-API-Key: $LOKALBOARDS_KEY\"\n","bash",[24,147,148,171],{"__ignoreMap":139},[149,150,153,157,161,165,168],"span",{"class":151,"line":152},"line",1,[149,154,156],{"class":155},"sScJk","curl",[149,158,160],{"class":159},"sj4cs"," -X",[149,162,164],{"class":163},"sZZnC"," GET",[149,166,167],{"class":163}," \"https:\u002F\u002Fboards.example.com\u002Fapi\u002Fdata\u002Flabels?boardId=123\"",[149,169,170],{"class":159}," \\\n",[149,172,174,177,180,184],{"class":151,"line":173},2,[149,175,176],{"class":159},"  -H",[149,178,179],{"class":163}," \"X-API-Key: ",[149,181,183],{"class":182},"sVt8B","$LOKALBOARDS_KEY",[149,185,186],{"class":163},"\"\n",[137,188,189],{"v-slot:js":139},[141,190,194],{"className":191,"code":192,"language":193,"meta":139,"style":139},"language-js shiki shiki-themes github-light github-dark","const response = await fetch(\n  \"https:\u002F\u002Fboards.example.com\u002Fapi\u002Fdata\u002Flabels?boardId=123\",\n  { headers: { \"X-API-Key\": apiKey } },\n);\n\nif (!response.ok) throw new Error(await response.text());\n\nconst { labels } = await response.json();\n","js",[24,195,196,217,225,237,243,250,289,294],{"__ignoreMap":139},[149,197,198,202,205,208,211,214],{"class":151,"line":152},[149,199,201],{"class":200},"szBVR","const",[149,203,204],{"class":159}," response",[149,206,207],{"class":200}," =",[149,209,210],{"class":200}," await",[149,212,213],{"class":155}," fetch",[149,215,216],{"class":182},"(\n",[149,218,219,222],{"class":151,"line":173},[149,220,221],{"class":163},"  \"https:\u002F\u002Fboards.example.com\u002Fapi\u002Fdata\u002Flabels?boardId=123\"",[149,223,224],{"class":182},",\n",[149,226,228,231,234],{"class":151,"line":227},3,[149,229,230],{"class":182},"  { headers: { ",[149,232,233],{"class":163},"\"X-API-Key\"",[149,235,236],{"class":182},": apiKey } },\n",[149,238,240],{"class":151,"line":239},4,[149,241,242],{"class":182},");\n",[149,244,246],{"class":151,"line":245},5,[149,247,249],{"emptyLinePlaceholder":248},true,"\n",[149,251,253,256,259,262,265,268,271,274,277,280,283,286],{"class":151,"line":252},6,[149,254,255],{"class":200},"if",[149,257,258],{"class":182}," (",[149,260,261],{"class":200},"!",[149,263,264],{"class":182},"response.ok) ",[149,266,267],{"class":200},"throw",[149,269,270],{"class":200}," new",[149,272,273],{"class":155}," Error",[149,275,276],{"class":182},"(",[149,278,279],{"class":200},"await",[149,281,282],{"class":182}," response.",[149,284,285],{"class":155},"text",[149,287,288],{"class":182},"());\n",[149,290,292],{"class":151,"line":291},7,[149,293,249],{"emptyLinePlaceholder":248},[149,295,297,299,302,304,307,310,312,314,317],{"class":151,"line":296},8,[149,298,201],{"class":200},[149,300,301],{"class":182}," { ",[149,303,12],{"class":159},[149,305,306],{"class":182}," } ",[149,308,309],{"class":200},"=",[149,311,210],{"class":200},[149,313,282],{"class":182},[149,315,316],{"class":155},"json",[149,318,319],{"class":182},"();\n",[137,321,322],{"v-slot:vue":139},[141,323,327],{"className":324,"code":325,"language":326,"meta":139,"style":139},"language-vue shiki shiki-themes github-light github-dark","\u003Cscript setup>\nconst config = useRuntimeConfig();\n\nconst { data } = await useAsyncData(\"labels\", () =>\n  $fetch(\"https:\u002F\u002Fboards.example.com\u002Fapi\u002Fdata\u002Flabels\", {\n    headers: { \"X-API-Key\": config.lokalBoardsKey },\n    query: { boardId: 123 },\n  }),\n);\n\nconst labels = computed(() => data.value?.labels ?? []);\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Cul>\n    \u003Cli v-for=\"label in labels\" :key=\"label.id\">{{ label.name }}\u003C\u002Fli>\n  \u003C\u002Ful>\n\u003C\u002Ftemplate>\n","vue",[24,328,329,344,358,362,391,404,414,425,430,435,440,468,478,483,492,503,535,545],{"__ignoreMap":139},[149,330,331,334,338,341],{"class":151,"line":152},[149,332,333],{"class":182},"\u003C",[149,335,337],{"class":336},"s9eBZ","script",[149,339,340],{"class":155}," setup",[149,342,343],{"class":182},">\n",[149,345,346,348,351,353,356],{"class":151,"line":173},[149,347,201],{"class":200},[149,349,350],{"class":159}," config",[149,352,207],{"class":200},[149,354,355],{"class":155}," useRuntimeConfig",[149,357,319],{"class":182},[149,359,360],{"class":151,"line":227},[149,361,249],{"emptyLinePlaceholder":248},[149,363,364,366,368,371,373,375,377,380,382,385,388],{"class":151,"line":239},[149,365,201],{"class":200},[149,367,301],{"class":182},[149,369,370],{"class":159},"data",[149,372,306],{"class":182},[149,374,309],{"class":200},[149,376,210],{"class":200},[149,378,379],{"class":155}," useAsyncData",[149,381,276],{"class":182},[149,383,384],{"class":163},"\"labels\"",[149,386,387],{"class":182},", () ",[149,389,390],{"class":200},"=>\n",[149,392,393,396,398,401],{"class":151,"line":245},[149,394,395],{"class":155},"  $fetch",[149,397,276],{"class":182},[149,399,400],{"class":163},"\"https:\u002F\u002Fboards.example.com\u002Fapi\u002Fdata\u002Flabels\"",[149,402,403],{"class":182},", {\n",[149,405,406,409,411],{"class":151,"line":252},[149,407,408],{"class":182},"    headers: { ",[149,410,233],{"class":163},[149,412,413],{"class":182},": config.lokalBoardsKey },\n",[149,415,416,419,422],{"class":151,"line":291},[149,417,418],{"class":182},"    query: { boardId: ",[149,420,421],{"class":159},"123",[149,423,424],{"class":182}," },\n",[149,426,427],{"class":151,"line":296},[149,428,429],{"class":182},"  }),\n",[149,431,433],{"class":151,"line":432},9,[149,434,242],{"class":182},[149,436,438],{"class":151,"line":437},10,[149,439,249],{"emptyLinePlaceholder":248},[149,441,443,445,448,450,453,456,459,462,465],{"class":151,"line":442},11,[149,444,201],{"class":200},[149,446,447],{"class":159}," labels",[149,449,207],{"class":200},[149,451,452],{"class":155}," computed",[149,454,455],{"class":182},"(() ",[149,457,458],{"class":200},"=>",[149,460,461],{"class":182}," data.value?.labels ",[149,463,464],{"class":200},"??",[149,466,467],{"class":182}," []);\n",[149,469,471,474,476],{"class":151,"line":470},12,[149,472,473],{"class":182},"\u003C\u002F",[149,475,337],{"class":336},[149,477,343],{"class":182},[149,479,481],{"class":151,"line":480},13,[149,482,249],{"emptyLinePlaceholder":248},[149,484,486,488,490],{"class":151,"line":485},14,[149,487,333],{"class":182},[149,489,137],{"class":336},[149,491,343],{"class":182},[149,493,495,498,501],{"class":151,"line":494},15,[149,496,497],{"class":182},"  \u003C",[149,499,500],{"class":336},"ul",[149,502,343],{"class":182},[149,504,506,509,512,515,517,520,523,525,528,531,533],{"class":151,"line":505},16,[149,507,508],{"class":182},"    \u003C",[149,510,511],{"class":336},"li",[149,513,514],{"class":155}," v-for",[149,516,309],{"class":182},[149,518,519],{"class":163},"\"label in labels\"",[149,521,522],{"class":155}," :key",[149,524,309],{"class":182},[149,526,527],{"class":163},"\"label.id\"",[149,529,530],{"class":182},">{{ label.name }}\u003C\u002F",[149,532,511],{"class":336},[149,534,343],{"class":182},[149,536,538,541,543],{"class":151,"line":537},17,[149,539,540],{"class":182},"  \u003C\u002F",[149,542,500],{"class":336},[149,544,343],{"class":182},[149,546,548,550,552],{"class":151,"line":547},18,[149,549,473],{"class":182},[149,551,137],{"class":336},[149,553,343],{"class":182},[137,555,556],{"v-slot:react":139},[141,557,561],{"className":558,"code":559,"language":560,"meta":139,"style":139},"language-jsx shiki shiki-themes github-light github-dark","import { useEffect, useState } from \"react\";\n\nexport function Example({ apiKey }) {\n  const [labels, setLabels] = useState([]);\n\n  useEffect(() => {\n    fetch(\"https:\u002F\u002Fboards.example.com\u002Fapi\u002Fdata\u002Flabels?boardId=123\", {\n      headers: { \"X-API-Key\": apiKey },\n    })\n      .then((response) => response.json())\n      .then((data) => setLabels(data.labels));\n  }, [apiKey]);\n\n  return (\n    \u003Cul>\n      {labels.map((label) => (\n        \u003Cli key={label.id}>{label.name}\u003C\u002Fli>\n      ))}\n    \u003C\u002Ful>\n  );\n}\n","jsx",[24,562,563,580,584,605,632,636,648,660,670,675,701,721,726,730,738,746,765,784,789,799,805],{"__ignoreMap":139},[149,564,565,568,571,574,577],{"class":151,"line":152},[149,566,567],{"class":200},"import",[149,569,570],{"class":182}," { useEffect, useState } ",[149,572,573],{"class":200},"from",[149,575,576],{"class":163}," \"react\"",[149,578,579],{"class":182},";\n",[149,581,582],{"class":151,"line":173},[149,583,249],{"emptyLinePlaceholder":248},[149,585,586,589,592,595,598,602],{"class":151,"line":227},[149,587,588],{"class":200},"export",[149,590,591],{"class":200}," function",[149,593,594],{"class":155}," Example",[149,596,597],{"class":182},"({ ",[149,599,601],{"class":600},"s4XuR","apiKey",[149,603,604],{"class":182}," }) {\n",[149,606,607,610,613,615,618,621,624,626,629],{"class":151,"line":239},[149,608,609],{"class":200},"  const",[149,611,612],{"class":182}," [",[149,614,12],{"class":159},[149,616,617],{"class":182},", ",[149,619,620],{"class":159},"setLabels",[149,622,623],{"class":182},"] ",[149,625,309],{"class":200},[149,627,628],{"class":155}," useState",[149,630,631],{"class":182},"([]);\n",[149,633,634],{"class":151,"line":245},[149,635,249],{"emptyLinePlaceholder":248},[149,637,638,641,643,645],{"class":151,"line":252},[149,639,640],{"class":155},"  useEffect",[149,642,455],{"class":182},[149,644,458],{"class":200},[149,646,647],{"class":182}," {\n",[149,649,650,653,655,658],{"class":151,"line":291},[149,651,652],{"class":155},"    fetch",[149,654,276],{"class":182},[149,656,657],{"class":163},"\"https:\u002F\u002Fboards.example.com\u002Fapi\u002Fdata\u002Flabels?boardId=123\"",[149,659,403],{"class":182},[149,661,662,665,667],{"class":151,"line":296},[149,663,664],{"class":182},"      headers: { ",[149,666,233],{"class":163},[149,668,669],{"class":182},": apiKey },\n",[149,671,672],{"class":151,"line":432},[149,673,674],{"class":182},"    })\n",[149,676,677,680,683,686,689,692,694,696,698],{"class":151,"line":437},[149,678,679],{"class":182},"      .",[149,681,682],{"class":155},"then",[149,684,685],{"class":182},"((",[149,687,688],{"class":600},"response",[149,690,691],{"class":182},") ",[149,693,458],{"class":200},[149,695,282],{"class":182},[149,697,316],{"class":155},[149,699,700],{"class":182},"())\n",[149,702,703,705,707,709,711,713,715,718],{"class":151,"line":442},[149,704,679],{"class":182},[149,706,682],{"class":155},[149,708,685],{"class":182},[149,710,370],{"class":600},[149,712,691],{"class":182},[149,714,458],{"class":200},[149,716,717],{"class":155}," setLabels",[149,719,720],{"class":182},"(data.labels));\n",[149,722,723],{"class":151,"line":470},[149,724,725],{"class":182},"  }, [apiKey]);\n",[149,727,728],{"class":151,"line":480},[149,729,249],{"emptyLinePlaceholder":248},[149,731,732,735],{"class":151,"line":485},[149,733,734],{"class":200},"  return",[149,736,737],{"class":182}," (\n",[149,739,740,742,744],{"class":151,"line":494},[149,741,508],{"class":182},[149,743,500],{"class":336},[149,745,343],{"class":182},[149,747,748,751,754,756,759,761,763],{"class":151,"line":505},[149,749,750],{"class":182},"      {labels.",[149,752,753],{"class":155},"map",[149,755,685],{"class":182},[149,757,758],{"class":600},"label",[149,760,691],{"class":182},[149,762,458],{"class":200},[149,764,737],{"class":182},[149,766,767,770,772,775,777,780,782],{"class":151,"line":537},[149,768,769],{"class":182},"        \u003C",[149,771,511],{"class":336},[149,773,774],{"class":155}," key",[149,776,309],{"class":200},[149,778,779],{"class":182},"{label.id}>{label.name}\u003C\u002F",[149,781,511],{"class":336},[149,783,343],{"class":182},[149,785,786],{"class":151,"line":547},[149,787,788],{"class":182},"      ))}\n",[149,790,792,795,797],{"class":151,"line":791},19,[149,793,794],{"class":182},"    \u003C\u002F",[149,796,500],{"class":336},[149,798,343],{"class":182},[149,800,802],{"class":151,"line":801},20,[149,803,804],{"class":182},"  );\n",[149,806,808],{"class":151,"line":807},21,[149,809,810],{"class":182},"}\n",[137,812,813],{"v-slot:php":139},[141,814,818],{"className":815,"code":816,"language":817,"meta":139,"style":139},"language-php shiki shiki-themes github-light github-dark","\u003C?php\n\n$ch = curl_init('https:\u002F\u002Fboards.example.com\u002Fapi\u002Fdata\u002Flabels?boardId=123');\n\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\ncurl_setopt($ch, CURLOPT_HTTPHEADER, [\n    'X-API-Key: ' . $apiKey,\n]);\n\n$labels = json_decode(curl_exec($ch), true)['labels'];\ncurl_close($ch);\n","php",[24,819,820,825,829,834,838,843,848,853,858,862,867],{"__ignoreMap":139},[149,821,822],{"class":151,"line":152},[149,823,824],{},"\u003C?php\n",[149,826,827],{"class":151,"line":173},[149,828,249],{"emptyLinePlaceholder":248},[149,830,831],{"class":151,"line":227},[149,832,833],{},"$ch = curl_init('https:\u002F\u002Fboards.example.com\u002Fapi\u002Fdata\u002Flabels?boardId=123');\n",[149,835,836],{"class":151,"line":239},[149,837,249],{"emptyLinePlaceholder":248},[149,839,840],{"class":151,"line":245},[149,841,842],{},"curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\n",[149,844,845],{"class":151,"line":252},[149,846,847],{},"curl_setopt($ch, CURLOPT_HTTPHEADER, [\n",[149,849,850],{"class":151,"line":291},[149,851,852],{},"    'X-API-Key: ' . $apiKey,\n",[149,854,855],{"class":151,"line":296},[149,856,857],{},"]);\n",[149,859,860],{"class":151,"line":432},[149,861,249],{"emptyLinePlaceholder":248},[149,863,864],{"class":151,"line":437},[149,865,866],{},"$labels = json_decode(curl_exec($ch), true)['labels'];\n",[149,868,869],{"class":151,"line":442},[149,870,871],{},"curl_close($ch);\n",[40,873,875],{"id":874},"post-apidatalabels","POST \u002Fapi\u002Fdata\u002Flabels",[14,877,878,879,881],{},"A word, in exchange for the label that is that word on this board. If the board\nis already using it you get the one it has; if not, one is made. Which of the two\nhappened is not something you need to know — either way the answer is the id to\nput in a card's ",[24,880,26],{},". Needs edit access.",[14,883,884,885,888,889,892],{},"Names are compared the way the database compares them, without regard to case,\nso ",[24,886,887],{},"Bug"," and ",[24,890,891],{},"bug"," are the same label rather than two.",[14,894,895,896,899,900,903],{},"A board is capped at 30 labels in use. Asking for a thirty-first new word answers\n",[24,897,898],{},"400"," with ",[24,901,902],{},"TOO_MANY_LABELS","; asking for a word already in use always works,\nsince it adds nothing.",[48,905,51],{"id":906},"parameters-1",[53,908,909,921],{},[56,910,911],{},[59,912,913,915,917,919],{},[62,914,64],{},[62,916,67],{},[62,918,70],{},[62,920,73],{},[75,922,923,936],{},[59,924,925,929,931,933],{},[80,926,927],{},[24,928,84],{},[80,930,87],{},[80,932,90],{},[80,934,935],{},"The board the word belongs to.",[59,937,938,942,945,947],{},[80,939,940],{},[24,941,131],{},[80,943,944],{},"string",[80,946,90],{},[80,948,949],{},"The word. Trimmed, and at most 64 characters.",[48,951,97],{"id":952},"what-comes-back-1",[53,954,955,965],{},[56,956,957],{},[59,958,959,961,963],{},[62,960,106],{},[62,962,67],{},[62,964,73],{},[75,966,967],{},[59,968,969,973,976],{},[80,970,971],{},[24,972,758],{},[80,974,975],{},"object",[80,977,978,979,888,981,983],{},"The ",[24,980,127],{},[24,982,131],{}," to use.",[134,985,986,1088,1293,1413,1565],{},[137,987,988],{"v-slot:curl":139},[141,989,991],{"className":143,"code":990,"language":145,"meta":139,"style":139},"# The word, then the card: two requests, because the second one needs the id.\ncurl -X POST \"https:\u002F\u002Fboards.example.com\u002Fapi\u002Fdata\u002Flabels\" \\\n  -H \"X-API-Key: $LOKALBOARDS_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{ \"boardId\": 123, \"name\": \"Bug\" }'\n\ncurl -X PUT \"https:\u002F\u002Fboards.example.com\u002Fapi\u002Fdata\u002Fcard\" \\\n  -H \"X-API-Key: $LOKALBOARDS_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{ \"cardID\": 501, \"name\": \"Ports lassen sich nicht freigeben\", \"labelIds\": [7] }'\n",[24,992,993,999,1013,1026,1035,1043,1047,1061,1073,1081],{"__ignoreMap":139},[149,994,995],{"class":151,"line":152},[149,996,998],{"class":997},"sJ8bj","# The word, then the card: two requests, because the second one needs the id.\n",[149,1000,1001,1003,1005,1008,1011],{"class":151,"line":173},[149,1002,156],{"class":155},[149,1004,160],{"class":159},[149,1006,1007],{"class":163}," POST",[149,1009,1010],{"class":163}," \"https:\u002F\u002Fboards.example.com\u002Fapi\u002Fdata\u002Flabels\"",[149,1012,170],{"class":159},[149,1014,1015,1017,1019,1021,1024],{"class":151,"line":227},[149,1016,176],{"class":159},[149,1018,179],{"class":163},[149,1020,183],{"class":182},[149,1022,1023],{"class":163},"\"",[149,1025,170],{"class":159},[149,1027,1028,1030,1033],{"class":151,"line":239},[149,1029,176],{"class":159},[149,1031,1032],{"class":163}," \"Content-Type: application\u002Fjson\"",[149,1034,170],{"class":159},[149,1036,1037,1040],{"class":151,"line":245},[149,1038,1039],{"class":159},"  -d",[149,1041,1042],{"class":163}," '{ \"boardId\": 123, \"name\": \"Bug\" }'\n",[149,1044,1045],{"class":151,"line":252},[149,1046,249],{"emptyLinePlaceholder":248},[149,1048,1049,1051,1053,1056,1059],{"class":151,"line":291},[149,1050,156],{"class":155},[149,1052,160],{"class":159},[149,1054,1055],{"class":163}," PUT",[149,1057,1058],{"class":163}," \"https:\u002F\u002Fboards.example.com\u002Fapi\u002Fdata\u002Fcard\"",[149,1060,170],{"class":159},[149,1062,1063,1065,1067,1069,1071],{"class":151,"line":296},[149,1064,176],{"class":159},[149,1066,179],{"class":163},[149,1068,183],{"class":182},[149,1070,1023],{"class":163},[149,1072,170],{"class":159},[149,1074,1075,1077,1079],{"class":151,"line":432},[149,1076,176],{"class":159},[149,1078,1032],{"class":163},[149,1080,170],{"class":159},[149,1082,1083,1085],{"class":151,"line":437},[149,1084,1039],{"class":159},[149,1086,1087],{"class":163}," '{ \"cardID\": 501, \"name\": \"Ports lassen sich nicht freigeben\", \"labelIds\": [7] }'\n",[137,1089,1090],{"v-slot:js":139},[141,1091,1093],{"className":191,"code":1092,"language":193,"meta":139,"style":139},"\u002F\u002F A word on a card, whether or not the board has used it before.\nasync function label(cardId, cardName, word) {\n  const { label } = await fetch(\"https:\u002F\u002Fboards.example.com\u002Fapi\u002Fdata\u002Flabels\", {\n    method: \"POST\",\n    headers: { \"X-API-Key\": apiKey, \"Content-Type\": \"application\u002Fjson\" },\n    body: JSON.stringify({ boardId: 123, name: word }),\n  }).then((r) => r.json());\n\n  \u002F\u002F `labelIds` replaces the card's labels, so send the whole set.\n  return fetch(\"https:\u002F\u002Fboards.example.com\u002Fapi\u002Fdata\u002Fcard\", {\n    method: \"PUT\",\n    headers: { \"X-API-Key\": apiKey, \"Content-Type\": \"application\u002Fjson\" },\n    body: JSON.stringify({ cardID: cardId, name: cardName, labelIds: [label.id] }),\n  });\n}\n",[24,1094,1095,1100,1128,1150,1160,1180,1201,1224,1228,1233,1246,1255,1271,1284,1289],{"__ignoreMap":139},[149,1096,1097],{"class":151,"line":152},[149,1098,1099],{"class":997},"\u002F\u002F A word on a card, whether or not the board has used it before.\n",[149,1101,1102,1105,1107,1110,1112,1115,1117,1120,1122,1125],{"class":151,"line":173},[149,1103,1104],{"class":200},"async",[149,1106,591],{"class":200},[149,1108,1109],{"class":155}," label",[149,1111,276],{"class":182},[149,1113,1114],{"class":600},"cardId",[149,1116,617],{"class":182},[149,1118,1119],{"class":600},"cardName",[149,1121,617],{"class":182},[149,1123,1124],{"class":600},"word",[149,1126,1127],{"class":182},") {\n",[149,1129,1130,1132,1134,1136,1138,1140,1142,1144,1146,1148],{"class":151,"line":227},[149,1131,609],{"class":200},[149,1133,301],{"class":182},[149,1135,758],{"class":159},[149,1137,306],{"class":182},[149,1139,309],{"class":200},[149,1141,210],{"class":200},[149,1143,213],{"class":155},[149,1145,276],{"class":182},[149,1147,400],{"class":163},[149,1149,403],{"class":182},[149,1151,1152,1155,1158],{"class":151,"line":239},[149,1153,1154],{"class":182},"    method: ",[149,1156,1157],{"class":163},"\"POST\"",[149,1159,224],{"class":182},[149,1161,1162,1164,1166,1169,1172,1175,1178],{"class":151,"line":245},[149,1163,408],{"class":182},[149,1165,233],{"class":163},[149,1167,1168],{"class":182},": apiKey, ",[149,1170,1171],{"class":163},"\"Content-Type\"",[149,1173,1174],{"class":182},": ",[149,1176,1177],{"class":163},"\"application\u002Fjson\"",[149,1179,424],{"class":182},[149,1181,1182,1185,1188,1190,1193,1196,1198],{"class":151,"line":252},[149,1183,1184],{"class":182},"    body: ",[149,1186,1187],{"class":159},"JSON",[149,1189,132],{"class":182},[149,1191,1192],{"class":155},"stringify",[149,1194,1195],{"class":182},"({ boardId: ",[149,1197,421],{"class":159},[149,1199,1200],{"class":182},", name: word }),\n",[149,1202,1203,1206,1208,1210,1213,1215,1217,1220,1222],{"class":151,"line":291},[149,1204,1205],{"class":182},"  }).",[149,1207,682],{"class":155},[149,1209,685],{"class":182},[149,1211,1212],{"class":600},"r",[149,1214,691],{"class":182},[149,1216,458],{"class":200},[149,1218,1219],{"class":182}," r.",[149,1221,316],{"class":155},[149,1223,288],{"class":182},[149,1225,1226],{"class":151,"line":296},[149,1227,249],{"emptyLinePlaceholder":248},[149,1229,1230],{"class":151,"line":432},[149,1231,1232],{"class":997},"  \u002F\u002F `labelIds` replaces the card's labels, so send the whole set.\n",[149,1234,1235,1237,1239,1241,1244],{"class":151,"line":437},[149,1236,734],{"class":200},[149,1238,213],{"class":155},[149,1240,276],{"class":182},[149,1242,1243],{"class":163},"\"https:\u002F\u002Fboards.example.com\u002Fapi\u002Fdata\u002Fcard\"",[149,1245,403],{"class":182},[149,1247,1248,1250,1253],{"class":151,"line":442},[149,1249,1154],{"class":182},[149,1251,1252],{"class":163},"\"PUT\"",[149,1254,224],{"class":182},[149,1256,1257,1259,1261,1263,1265,1267,1269],{"class":151,"line":470},[149,1258,408],{"class":182},[149,1260,233],{"class":163},[149,1262,1168],{"class":182},[149,1264,1171],{"class":163},[149,1266,1174],{"class":182},[149,1268,1177],{"class":163},[149,1270,424],{"class":182},[149,1272,1273,1275,1277,1279,1281],{"class":151,"line":480},[149,1274,1184],{"class":182},[149,1276,1187],{"class":159},[149,1278,132],{"class":182},[149,1280,1192],{"class":155},[149,1282,1283],{"class":182},"({ cardID: cardId, name: cardName, labelIds: [label.id] }),\n",[149,1285,1286],{"class":151,"line":485},[149,1287,1288],{"class":182},"  });\n",[149,1290,1291],{"class":151,"line":494},[149,1292,810],{"class":182},[137,1294,1295],{"v-slot:vue":139},[141,1296,1298],{"className":324,"code":1297,"language":326,"meta":139,"style":139},"\u003Cscript setup>\nconst config = useRuntimeConfig();\n\nasync function addLabel(word) {\n  const { label } = await $fetch(\"https:\u002F\u002Fboards.example.com\u002Fapi\u002Fdata\u002Flabels\", {\n    method: \"POST\",\n    headers: { \"X-API-Key\": config.lokalBoardsKey },\n    body: { boardId: 123, name: word },\n  });\n  return label.id;\n}\n\u003C\u002Fscript>\n",[24,1299,1300,1310,1322,1326,1341,1364,1372,1380,1390,1394,1401,1405],{"__ignoreMap":139},[149,1301,1302,1304,1306,1308],{"class":151,"line":152},[149,1303,333],{"class":182},[149,1305,337],{"class":336},[149,1307,340],{"class":155},[149,1309,343],{"class":182},[149,1311,1312,1314,1316,1318,1320],{"class":151,"line":173},[149,1313,201],{"class":200},[149,1315,350],{"class":159},[149,1317,207],{"class":200},[149,1319,355],{"class":155},[149,1321,319],{"class":182},[149,1323,1324],{"class":151,"line":227},[149,1325,249],{"emptyLinePlaceholder":248},[149,1327,1328,1330,1332,1335,1337,1339],{"class":151,"line":239},[149,1329,1104],{"class":200},[149,1331,591],{"class":200},[149,1333,1334],{"class":155}," addLabel",[149,1336,276],{"class":182},[149,1338,1124],{"class":600},[149,1340,1127],{"class":182},[149,1342,1343,1345,1347,1349,1351,1353,1355,1358,1360,1362],{"class":151,"line":245},[149,1344,609],{"class":200},[149,1346,301],{"class":182},[149,1348,758],{"class":159},[149,1350,306],{"class":182},[149,1352,309],{"class":200},[149,1354,210],{"class":200},[149,1356,1357],{"class":155}," $fetch",[149,1359,276],{"class":182},[149,1361,400],{"class":163},[149,1363,403],{"class":182},[149,1365,1366,1368,1370],{"class":151,"line":252},[149,1367,1154],{"class":182},[149,1369,1157],{"class":163},[149,1371,224],{"class":182},[149,1373,1374,1376,1378],{"class":151,"line":291},[149,1375,408],{"class":182},[149,1377,233],{"class":163},[149,1379,413],{"class":182},[149,1381,1382,1385,1387],{"class":151,"line":296},[149,1383,1384],{"class":182},"    body: { boardId: ",[149,1386,421],{"class":159},[149,1388,1389],{"class":182},", name: word },\n",[149,1391,1392],{"class":151,"line":432},[149,1393,1288],{"class":182},[149,1395,1396,1398],{"class":151,"line":437},[149,1397,734],{"class":200},[149,1399,1400],{"class":182}," label.id;\n",[149,1402,1403],{"class":151,"line":442},[149,1404,810],{"class":182},[149,1406,1407,1409,1411],{"class":151,"line":470},[149,1408,473],{"class":182},[149,1410,337],{"class":336},[149,1412,343],{"class":182},[137,1414,1415],{"v-slot:react":139},[141,1416,1418],{"className":558,"code":1417,"language":560,"meta":139,"style":139},"async function addLabel(apiKey, word) {\n  const response = await fetch(\"https:\u002F\u002Fboards.example.com\u002Fapi\u002Fdata\u002Flabels\", {\n    method: \"POST\",\n    headers: { \"X-API-Key\": apiKey, \"Content-Type\": \"application\u002Fjson\" },\n    body: JSON.stringify({ boardId: 123, name: word }),\n  });\n\n  if (!response.ok) throw new Error(await response.text());\n\n  const { label } = await response.json();\n  return label.id;\n}\n",[24,1419,1420,1438,1456,1464,1480,1496,1500,1504,1531,1535,1555,1561],{"__ignoreMap":139},[149,1421,1422,1424,1426,1428,1430,1432,1434,1436],{"class":151,"line":152},[149,1423,1104],{"class":200},[149,1425,591],{"class":200},[149,1427,1334],{"class":155},[149,1429,276],{"class":182},[149,1431,601],{"class":600},[149,1433,617],{"class":182},[149,1435,1124],{"class":600},[149,1437,1127],{"class":182},[149,1439,1440,1442,1444,1446,1448,1450,1452,1454],{"class":151,"line":173},[149,1441,609],{"class":200},[149,1443,204],{"class":159},[149,1445,207],{"class":200},[149,1447,210],{"class":200},[149,1449,213],{"class":155},[149,1451,276],{"class":182},[149,1453,400],{"class":163},[149,1455,403],{"class":182},[149,1457,1458,1460,1462],{"class":151,"line":227},[149,1459,1154],{"class":182},[149,1461,1157],{"class":163},[149,1463,224],{"class":182},[149,1465,1466,1468,1470,1472,1474,1476,1478],{"class":151,"line":239},[149,1467,408],{"class":182},[149,1469,233],{"class":163},[149,1471,1168],{"class":182},[149,1473,1171],{"class":163},[149,1475,1174],{"class":182},[149,1477,1177],{"class":163},[149,1479,424],{"class":182},[149,1481,1482,1484,1486,1488,1490,1492,1494],{"class":151,"line":245},[149,1483,1184],{"class":182},[149,1485,1187],{"class":159},[149,1487,132],{"class":182},[149,1489,1192],{"class":155},[149,1491,1195],{"class":182},[149,1493,421],{"class":159},[149,1495,1200],{"class":182},[149,1497,1498],{"class":151,"line":252},[149,1499,1288],{"class":182},[149,1501,1502],{"class":151,"line":291},[149,1503,249],{"emptyLinePlaceholder":248},[149,1505,1506,1509,1511,1513,1515,1517,1519,1521,1523,1525,1527,1529],{"class":151,"line":296},[149,1507,1508],{"class":200},"  if",[149,1510,258],{"class":182},[149,1512,261],{"class":200},[149,1514,264],{"class":182},[149,1516,267],{"class":200},[149,1518,270],{"class":200},[149,1520,273],{"class":155},[149,1522,276],{"class":182},[149,1524,279],{"class":200},[149,1526,282],{"class":182},[149,1528,285],{"class":155},[149,1530,288],{"class":182},[149,1532,1533],{"class":151,"line":432},[149,1534,249],{"emptyLinePlaceholder":248},[149,1536,1537,1539,1541,1543,1545,1547,1549,1551,1553],{"class":151,"line":437},[149,1538,609],{"class":200},[149,1540,301],{"class":182},[149,1542,758],{"class":159},[149,1544,306],{"class":182},[149,1546,309],{"class":200},[149,1548,210],{"class":200},[149,1550,282],{"class":182},[149,1552,316],{"class":155},[149,1554,319],{"class":182},[149,1556,1557,1559],{"class":151,"line":442},[149,1558,734],{"class":200},[149,1560,1400],{"class":182},[149,1562,1563],{"class":151,"line":470},[149,1564,810],{"class":182},[137,1566,1567],{"v-slot:php":139},[141,1568,1570],{"className":815,"code":1569,"language":817,"meta":139,"style":139},"\u003C?php\n\n$ch = curl_init('https:\u002F\u002Fboards.example.com\u002Fapi\u002Fdata\u002Flabels');\n\ncurl_setopt($ch, CURLOPT_POST, true);\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\ncurl_setopt($ch, CURLOPT_HTTPHEADER, [\n    'X-API-Key: ' . $apiKey,\n    'Content-Type: application\u002Fjson',\n]);\ncurl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([\n    'boardId' => 123,\n    'name' => 'Bug',\n]));\n\n$label = json_decode(curl_exec($ch), true)['label'];\ncurl_close($ch);\n",[24,1571,1572,1576,1580,1585,1589,1594,1598,1602,1606,1611,1615,1620,1625,1630,1635,1639,1644],{"__ignoreMap":139},[149,1573,1574],{"class":151,"line":152},[149,1575,824],{},[149,1577,1578],{"class":151,"line":173},[149,1579,249],{"emptyLinePlaceholder":248},[149,1581,1582],{"class":151,"line":227},[149,1583,1584],{},"$ch = curl_init('https:\u002F\u002Fboards.example.com\u002Fapi\u002Fdata\u002Flabels');\n",[149,1586,1587],{"class":151,"line":239},[149,1588,249],{"emptyLinePlaceholder":248},[149,1590,1591],{"class":151,"line":245},[149,1592,1593],{},"curl_setopt($ch, CURLOPT_POST, true);\n",[149,1595,1596],{"class":151,"line":252},[149,1597,842],{},[149,1599,1600],{"class":151,"line":291},[149,1601,847],{},[149,1603,1604],{"class":151,"line":296},[149,1605,852],{},[149,1607,1608],{"class":151,"line":432},[149,1609,1610],{},"    'Content-Type: application\u002Fjson',\n",[149,1612,1613],{"class":151,"line":437},[149,1614,857],{},[149,1616,1617],{"class":151,"line":442},[149,1618,1619],{},"curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([\n",[149,1621,1622],{"class":151,"line":470},[149,1623,1624],{},"    'boardId' => 123,\n",[149,1626,1627],{"class":151,"line":480},[149,1628,1629],{},"    'name' => 'Bug',\n",[149,1631,1632],{"class":151,"line":485},[149,1633,1634],{},"]));\n",[149,1636,1637],{"class":151,"line":494},[149,1638,249],{"emptyLinePlaceholder":248},[149,1640,1641],{"class":151,"line":505},[149,1642,1643],{},"$label = json_decode(curl_exec($ch), true)['label'];\n",[149,1645,1646],{"class":151,"line":537},[149,1647,871],{},[40,1649,1651],{"id":1650},"taking-a-label-off-a-card","Taking a label off a card",[14,1653,1654],{},"There is no endpoint for it here. Send the card the set it should have, without\nthat one:",[141,1656,1658],{"className":143,"code":1657,"language":145,"meta":139,"style":139},"curl -X PUT \"https:\u002F\u002Fboards.example.com\u002Fapi\u002Fdata\u002Fcard\" \\\n  -H \"X-API-Key: $LOKALBOARDS_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{ \"cardID\": 501, \"name\": \"Ports lassen sich nicht freigeben\", \"labelIds\": [] }'\n",[24,1659,1660,1672,1684,1692],{"__ignoreMap":139},[149,1661,1662,1664,1666,1668,1670],{"class":151,"line":152},[149,1663,156],{"class":155},[149,1665,160],{"class":159},[149,1667,1055],{"class":163},[149,1669,1058],{"class":163},[149,1671,170],{"class":159},[149,1673,1674,1676,1678,1680,1682],{"class":151,"line":173},[149,1675,176],{"class":159},[149,1677,179],{"class":163},[149,1679,183],{"class":182},[149,1681,1023],{"class":163},[149,1683,170],{"class":159},[149,1685,1686,1688,1690],{"class":151,"line":227},[149,1687,176],{"class":159},[149,1689,1032],{"class":163},[149,1691,170],{"class":159},[149,1693,1694,1696],{"class":151,"line":239},[149,1695,1039],{"class":159},[149,1697,1698],{"class":163}," '{ \"cardID\": 501, \"name\": \"Ports lassen sich nicht freigeben\", \"labelIds\": [] }'\n",[14,1700,1701],{},"If that was the last card using the word, the word goes with it and stops being\noffered. Typing it again makes it again.",[1703,1704,1705],"style",{},"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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":139,"searchDepth":173,"depth":173,"links":1707},[1708,1712,1716],{"id":42,"depth":173,"text":43,"children":1709},[1710,1711],{"id":50,"depth":227,"text":51},{"id":96,"depth":227,"text":97},{"id":874,"depth":173,"text":875,"children":1713},[1714,1715],{"id":906,"depth":227,"text":51},{"id":952,"depth":227,"text":97},{"id":1650,"depth":173,"text":1651},"md",{},"\u002Fapi\u002Flabels",{"title":5,"description":16},"api\u002F13.labels","7WhtfHyN6vShc1asSCNfCfiGwsR1gwA3upWDxWSaeko",[1724],{"title":1725,"path":1726,"stem":1727,"children":1728},"Docs","\u002Fdocs","docs",[1729,1732,1736,1740,1744,1748,1752,1756,1760,1764,1768,1772,1776],{"title":1730,"path":1726,"stem":1731},"Getting started","docs\u002Findex",{"title":1733,"path":1734,"stem":1735},"Boards","\u002Fdocs\u002Fboards","docs\u002F02.boards",{"title":1737,"path":1738,"stem":1739},"Areas","\u002Fdocs\u002Fareas","docs\u002F03.areas",{"title":1741,"path":1742,"stem":1743},"Cards","\u002Fdocs\u002Fcards","docs\u002F04.cards",{"title":1745,"path":1746,"stem":1747},"Comments","\u002Fdocs\u002Fcomments","docs\u002F05.comments",{"title":1749,"path":1750,"stem":1751},"Users","\u002Fdocs\u002Fusers","docs\u002F06.users",{"title":1753,"path":1754,"stem":1755},"Disable Signup","\u002Fdocs\u002Fdisable-signup","docs\u002F07.disable-signup",{"title":1757,"path":1758,"stem":1759},"Single Sign-On","\u002Fdocs\u002Fsingle-sign-on","docs\u002F08.single-sign-on",{"title":1761,"path":1762,"stem":1763},"Adjust Colors","\u002Fdocs\u002Fadjust-colors","docs\u002F09.adjust-colors",{"title":1765,"path":1766,"stem":1767},"MCP Server","\u002Fdocs\u002Fmcp-server","docs\u002F10.mcp-server",{"title":1769,"path":1770,"stem":1771},"Migration","\u002Fdocs\u002Fmigration","docs\u002F11.migration",{"title":1773,"path":1774,"stem":1775},"Health Check","\u002Fdocs\u002Fhealth-check","docs\u002F12.health-check",{"title":1777,"path":1778,"stem":1779},"Contributing","\u002Fdocs\u002Fcontributing","docs\u002F13.contributing",[1781],{"title":1782,"path":1783,"stem":1784,"children":1785},"Api","\u002Fapi","api",[1786,1789,1792,1796,1799,1803,1806,1809,1813,1817,1821,1825,1829,1830],{"title":1787,"path":1783,"stem":1788},"Authentication","api\u002Findex",{"title":1733,"path":1790,"stem":1791},"\u002Fapi\u002Fboards","api\u002F02.boards",{"title":1793,"path":1794,"stem":1795},"Board","\u002Fapi\u002Fboard","api\u002F03.board",{"title":1737,"path":1797,"stem":1798},"\u002Fapi\u002Fareas","api\u002F04.areas",{"title":1800,"path":1801,"stem":1802},"Area","\u002Fapi\u002Farea","api\u002F05.area",{"title":1741,"path":1804,"stem":1805},"\u002Fapi\u002Fcards","api\u002F06.cards",{"title":1807,"path":31,"stem":1808},"Card","api\u002F07.card",{"title":1810,"path":1811,"stem":1812},"Move a card","\u002Fapi\u002Fcard-move","api\u002F08.card-move",{"title":1814,"path":1815,"stem":1816},"Order a card","\u002Fapi\u002Fcard-order","api\u002F09.card-order",{"title":1818,"path":1819,"stem":1820},"Comment","\u002Fapi\u002Fcomment","api\u002F10.comment",{"title":1822,"path":1823,"stem":1824},"Invite","\u002Fapi\u002Finvite","api\u002F11.invite",{"title":1826,"path":1827,"stem":1828},"Notifications","\u002Fapi\u002Fnotifications","api\u002F12.notifications",{"title":5,"path":1719,"stem":1721},{"title":1831,"path":1832,"stem":1833},"Archive","\u002Fapi\u002Farchive","api\u002F14.archive",1789219144560]