Atomically updates 1–100 distinct tasks in this board. Every task needs its current version. Stale versions return 409; unavailable tasks return 404; either failure rolls back every selected change. Assignees must be active members, null unassigns. Dates accept null to clear. Actual status changes reset statusChangedAt; unrelated edits preserve it. Assignments respect notification preferences. Omitted fields are preserved.
Write access: a member/administrator with a write-enabled credential, or an authorized signed-in user.Atomically updates 1–100 distinct tasks in this board. Every task needs its current version. Stale versions return 409; unavailable tasks return 404; either failure rolls back every selected change. Assignees must be active members, null unassigns. Dates accept null to clear. Actual status changes reset statusChangedAt; unrelated edits preserve it. Assignments respect notification preferences. Omitted fields are preserved.Request conventions · API keys · MCP connections
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Mill","description":"Open-source, self-hosted task lists for teams, with REST and MCP clients.","colors":{"primary":"#704628","light":"#c89b6d","dark":"#704628"},"logo":{"light":"https://mintcdn.com/mill-tasks/qUiAk05g9u7pU2Ab/assets/mill-mark.png?fit=max\u0026auto=format\u0026n=qUiAk05g9u7pU2Ab\u0026q=85\u0026s=51f932236972c7afd7aed891f612e43e","dark":"https://mintcdn.com/mill-tasks/qUiAk05g9u7pU2Ab/assets/mill-mark.png?fit=max\u0026auto=format\u0026n=qUiAk05g9u7pU2Ab\u0026q=85\u0026s=51f932236972c7afd7aed891f612e43e","href":"/"},"favicon":"https://mintcdn.com/mill-tasks/qUiAk05g9u7pU2Ab/assets/mill-favicon.png?fit=max\u0026auto=format\u0026n=qUiAk05g9u7pU2Ab\u0026q=85\u0026s=7a3598de307c22bd0525e88e9b84acd9","appearance":{"default":"system"},"navbar":{"links":[{"href":"https://github.com/avgeek-oss/mill","type":"github"}],"primary":{"type":"button","label":"Get started","href":"/overview"}},"footer":{"socials":{"github":"https://github.com/avgeek-oss/mill"},"links":[{"header":"Documentation","items":[{"label":"About Mill","href":"/overview"},{"label":"Self-hosting","href":"/installation"},{"label":"Configuration","href":"/configuration"},{"label":"Changelog","href":"https://github.com/avgeek-oss/mill/releases"}]},{"header":"Open Source","items":[{"label":"GitHub Source","href":"https://github.com/avgeek-oss/mill"},{"label":"License Terms","href":"https://github.com/avgeek-oss/mill/blob/main/LICENSE"},{"label":"OSS Philosophy","href":"https://github.com/avgeek-oss/.github/blob/main/profile/README.md"}]},{"header":"Other OSS Projects","items":[{"label":"Towbar","href":"https://www.towbar.dev"},{"label":"Posted","href":"https://www.posted.cc"},{"label":"Rootset","href":"https://www.rootset.app"}]},{"header":"More links","items":[{"label":"Company website","href":"https://www.avgeek.ltd"},{"label":"Write to us","href":"mailto:support@avgeek.ltd"}]}]},"seo":{"metatags":{"og:type":"website","twitter:card":"summary_large_image","canonical":"https://www.mill.fyi","og:image":"https://www.mill.fyi/assets/mill-social.png","og:image:width":"1200","og:image:height":"630","og:image:alt":"Mill — Open-source task lists for teams","twitter:image":"https://www.mill.fyi/assets/mill-social.png","twitter:image:alt":"Mill — Open-source task lists for teams"},"organization":{"name":"Mill","url":"https://www.mill.fyi","logo":"https://www.mill.fyi/assets/mill-mark.png","sameAs":["https://github.com/avgeek-oss/mill"]},"indexing":"all"},"icons":{"library":"lucide"},"styling":{"eyebrows":"breadcrumbs","codeblocks":"system","latex":false},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"interaction":{"drilldown":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"mill-tasks","hasAudioNarration":false,"actualSubdomain":"mill-tasks","customDomains":["www.mill.fyi"],"gitSource":{"type":"github","owner":"avgeek-oss","repo":"mill","deployBranch":"main","contentDirectory":"docs","isPrivate":false,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6ad5275843028fbe37e28022","collectionId":"1a42adc9-51c6-4b73-9481-800e9515a48e","liveDeploymentHistoryId":"6ad5275843028fbe37e28022","schemaVersion":"v3"},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{},"buildId":"6ad5275843028fbe37e28022","clientVersion":"0.0.3964","searchFilterCounts":[{"language":"default","tag":"API \u0026 MCP","count":111},{"language":"default","tag":"API Reference","count":86},{"language":"default","tag":"MCP reference","count":23},{"language":"default","tag":"Attachments","count":12},{"language":"default","tag":"OAuth and MCP transport","count":12},{"language":"default","tag":"Tasks","count":11},{"language":"default","tag":"Account email","count":10},{"language":"default","tag":"Account and sessions","count":10},{"language":"default","tag":"Passkeys and recovery","count":9},{"language":"default","tag":"Boards","count":9}],"searchSettings":{"showContentSnippets":true}},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[],"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"oss-docs.css","content":":root{--oss-primary:#704628;--oss-primary-hover:color-mix(in oklch, var(--oss-primary) 92%, black);--oss-on-primary:#ffffff;--oss-heading-accent:#704628}.dark{--oss-primary:#c89b6d;--oss-primary-hover:color-mix(in oklch, var(--oss-primary) 90%, white);--oss-on-primary:#171717;--oss-heading-accent:#c89b6d}.dark .oss-home,.oss-home{--oss-accent:var(--oss-primary)}.oss-home{--oss-ink:oklch(0.23 0 0);--oss-muted:oklch(0.45 0 0);--oss-line:oklch(0.91 0 0);--oss-panel:oklch(0.97 0 0);max-width:1200px;margin:0 auto;padding:0 32px 72px;color:var(--oss-ink);-webkit-font-smoothing:antialiased}.dark .oss-home{--oss-ink:oklch(0.95 0 0);--oss-muted:oklch(0.74 0 0);--oss-line:oklch(0.3 0 0);--oss-panel:oklch(0.2 0 0)}.oss-home h1,.oss-home h2,.oss-home h3{color:var(--oss-ink);text-wrap:balance;margin:0}.oss-home h1{font-size:clamp(44px,6.2vw,80px);line-height:1.06;letter-spacing:-.055em;font-weight:600}.oss-home h2,.oss-home h3{font-weight:500}.oss-home h1 span{color:var(--oss-heading-accent)}.oss-home h2{font-size:clamp(30px,3.2vw,40px);line-height:1.16;letter-spacing:-.04em}.oss-home h3{font-size:19px;line-height:1.35;letter-spacing:-.02em}.oss-home p{color:var(--oss-muted);line-height:1.65;margin:0;text-wrap:pretty}.oss-home a{text-decoration:none}.oss-home a:focus-visible{outline:2px solid var(--oss-accent);outline-offset:5px;border-radius:4px}.oss-hero,.oss-highlights>div{display:flex;flex-direction:column}.oss-hero{text-align:center;padding:56px 0 40px;align-items:center;gap:26px}.oss-home .oss-lead{font-size:19px;max-width:none;line-height:1.6}.oss-home .oss-lead>span{display:block}.oss-home .oss-lead-primary{white-space:normal}.oss-actions{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px}.oss-link:hover{text-decoration:underline;text-underline-offset:5px}.oss-product{margin:0}.oss-product-frame{background:var(--oss-panel);border:1px solid var(--oss-line);border-radius:12px;overflow:hidden;box-shadow:0 2px 4px oklch(.2 0 0/.03),0 18px 48px -20px oklch(.2 0 0/.2)}#navbar[data-oss-enhanced] #topbar-cta-button,.dark .oss-product-light,.oss-product-dark{display:none}.dark .oss-product-dark{display:block}.oss-doc-screenshot img,.oss-feature-image img,.oss-product img{display:block;width:100%;height:auto;margin:0;border-radius:0;user-select:none;-webkit-user-drag:none}.oss-link{color:var(--oss-accent);font-size:13px;font-weight:500;display:inline-flex;align-items:center;gap:12px;min-height:44px}.oss-highlights{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px;padding:64px 0 48px}.oss-highlights>div{align-items:flex-start}.oss-highlights .oss-link{margin-top:auto}.oss-highlights h2{font-size:19px;line-height:1.4;letter-spacing:-.02em;text-wrap:pretty}.oss-highlights p{font-size:14px;margin:12px 0 4px}.oss-section-intro{max-width:620px}.oss-section-intro .oss-feature-label{color:var(--oss-heading-accent);font-size:13px;font-weight:600;margin:0 0 14px}.oss-section-intro>p:not(.oss-feature-label){margin-top:16px;font-size:15px;line-height:1.7}.oss-process{padding:72px 0;border-top:1px solid var(--oss-line)}.oss-process ol{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px;padding:44px 0 8px;margin:0;list-style:none}.oss-process li{min-width:0}.oss-process li>span{display:block;margin-bottom:18px;color:var(--oss-heading-accent);font-size:12px;font-weight:700;letter-spacing:.08em}.oss-ownership h3,.oss-process h3{font-size:17px}.oss-ownership-points p,.oss-process li p{margin-top:10px;font-size:14px;line-height:1.65}.oss-ownership{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:72px;padding:72px 0}.oss-feature,.oss-ownership,.oss-ownership-points{border-top:1px solid var(--oss-line)}.oss-ownership-points>div{padding:20px 0;border-bottom:1px solid var(--oss-line)}.oss-feature{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.25fr);grid-template-areas:\"copy image\";align-items:center;gap:64px;padding:72px 0}.oss-feature:nth-child(even){grid-template-columns:minmax(0,1.25fr) minmax(0,.85fr);grid-template-areas:\"image copy\"}.oss-feature-copy{grid-area:copy;min-width:0}.oss-feature-copy .oss-feature-label{color:var(--oss-heading-accent);font-size:13px;font-weight:600;margin:0 0 14px}.oss-feature h2{font-size:clamp(26px,2.5vw,34px);line-height:1.18;letter-spacing:-.035em;text-wrap:balance}.oss-feature-copy>p:not(.oss-feature-label){margin:20px 0 14px;font-size:15px;line-height:1.7}.oss-feature-image{grid-area:image;min-width:0;overflow:hidden;border:1px solid var(--oss-line);border-radius:12px;background:var(--oss-panel)}@media (max-width:900px){.oss-ownership{grid-template-columns:minmax(0,1fr);gap:36px}.oss-feature,.oss-feature:nth-child(even){grid-template-columns:minmax(0,1fr);grid-template-areas:\"copy\" \"image\";gap:28px;padding:44px 0}.oss-feature-copy{max-width:540px}.oss-highlights{gap:28px}.oss-hero{padding-top:48px}}@media (max-width:640px){.oss-home{padding:0 20px 48px}.oss-hero{padding:36px 0 32px;gap:22px}.oss-home h1{font-size:clamp(36px,9.5vw,60px)}.oss-home .oss-lead{font-size:16px;max-width:34ch}.oss-home .oss-lead-primary{white-space:normal}.oss-actions{gap:8px}.oss-highlights{grid-template-columns:1fr;padding:36px 0 24px;gap:24px}.oss-ownership,.oss-process{padding:44px 0}.oss-process ol{grid-template-columns:1fr;gap:28px;padding-top:32px}}@layer base{body:has(.oss-home) #footer{display:flex!important}}#footer a:has(.nav-logo),#navbar a:has(.nav-logo){display:inline-flex;align-items:center;gap:10px}#footer.advanced-footer>div{max-width:1200px;padding:56px 32px 32px;gap:32px}#footer.advanced-footer>div>div:first-child{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px}#footer.advanced-footer>div>div:first-child>div:first-child{min-width:0;flex-direction:row;align-items:center;justify-content:space-between;gap:16px}#footer.advanced-footer>div>div:first-child>div:nth-child(3){grid-column:2;grid-row:1;align-self:center;justify-self:end}#footer.advanced-footer>div>div:first-child>div:nth-child(2){display:grid;grid-column:1/-1;order:3;gap:32px}#footer.advanced-footer>div>div:first-child>div:nth-child(2)>div{min-width:0;align-items:flex-start;white-space:normal}#footer.advanced-footer>div>div:first-child>div:nth-child(2) a{display:inline-flex;align-items:center;min-height:32px;max-width:none;white-space:normal;text-overflow:clip;color:oklch(.45 0 0)}.dark #footer.advanced-footer>div>div:first-child>div:nth-child(2) a{color:oklch(.74 0 0)}#footer.advanced-footer>div>div:first-child>div:nth-child(2)>div>div{gap:8px}#footer.advanced-footer a:hover{text-decoration:underline;text-underline-offset:4px}#footer.advanced-footer a:focus-visible{outline:2px solid var(--oss-primary);outline-offset:4px}@media (max-width:767px){#footer.advanced-footer>div>div:first-child>div:first-child{grid-column:1/-1}}@media (max-width:640px){#footer.advanced-footer>div{padding:36px 20px 24px}#footer.advanced-footer>div>div:first-child>div:first-child{grid-column:1/-1}#footer.advanced-footer>div>div:first-child>div:nth-child(2) a{min-height:44px}}[data-oss-wordmark]{font-size:20px;font-weight:600;letter-spacing:-.03em;color:oklch(.23 0 0)}.dark [data-oss-wordmark]{color:oklch(.95 0 0)}[data-oss-primary]:focus-visible{outline:2px solid var(--oss-primary);outline-offset:3px}body:has(.oss-home) #navbar .nav-tabs,body:has(.oss-home) #navbar button:has(>div>.sr-only),body:has(.oss-home) #navbar div:has(>.nav-tabs){display:none}body:has(.oss-home){--topbar-tabs-height:0rem}[data-oss-primary]{flex-shrink:0;white-space:nowrap}#topbar-cta-button a>span,[data-oss-action]>span,[data-oss-primary]>span{background-color:var(--oss-primary)}#topbar-cta-button a>div,#topbar-cta-button a>div>*,[data-oss-action]>div,[data-oss-action]>div>*,[data-oss-primary]>div,[data-oss-primary]>div>*{color:var(--oss-on-primary)}[data-oss-action=secondary]>span{background-color:var(--oss-panel);border:1px solid var(--oss-line)}[data-oss-action=secondary]>div>*{color:var(--oss-ink)}.oss-doc-screenshot{margin:28px 0 32px}.oss-doc-screenshot>.oss-product-dark,.oss-doc-screenshot>.oss-product-light{overflow:hidden;border:1px solid oklch(.91 0 0);border-radius:12px}.dark .oss-doc-screenshot>.oss-product-dark{border-color:oklch(.3 0 0)}.oss-doc-screenshot>figcaption{margin:10px 0 0;color:oklch(.45 0 0);font-size:13px;line-height:1.5}.dark .oss-doc-screenshot>figcaption,.dark .oss-spotlight p{color:oklch(.74 0 0)}.oss-doc-screenshot-portrait{max-width:440px;margin-inline:auto}.oss-spotlight,.oss-spotlight-intro{display:flex;align-items:center;gap:24px}.oss-spotlight{margin:72px 0;max-width:800px}.oss-spotlight-intro>img,.oss-spotlight>img{flex-shrink:0;margin:0;object-fit:contain}.oss-spotlight>img{width:128px;height:128px}.oss-spotlight-intro>img{width:96px;height:96px}.oss-spotlight h2{margin:0 0 12px;font-size:28px;font-weight:600}.oss-spotlight p{margin:0 0 16px;color:oklch(.45 0 0);line-height:1.7}@media (max-width:640px){.oss-spotlight,.oss-spotlight-intro{flex-direction:column;align-items:flex-start;gap:16px}}"},{"filePath":"mill.css","content":"body #footer.advanced-footer>div{max-width:1280px;padding-inline:16px}body #footer.advanced-footer>div>div:first-child>div:nth-child(2){grid-template-columns:repeat(auto-fit,minmax(192px,1fr));gap:24px}body #footer.advanced-footer>div>div:first-child>div:nth-child(2) a{min-height:24px}body #footer.advanced-footer>div>div:first-child>div:nth-child(2)>div>div{gap:4px}@media (min-width:1024px){body #footer.advanced-footer>div{padding-inline:48px}}@media (max-width:767px){body #footer.advanced-footer>div>div:first-child>div:nth-child(2){grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){body #footer.advanced-footer>div>div:first-child>div:nth-child(2) a{min-height:44px}body #footer.advanced-footer>div>div:first-child>div:nth-child(2)>div>div{gap:0}}body #footer a:is(\n [href=\"https://www.towbar.dev\"],\n [href=\"https://www.posted.cc\"],\n [href=\"https://www.rootset.app\"]\n ){gap:8px}body #footer a:is(\n [href=\"https://www.towbar.dev\"],\n [href=\"https://www.posted.cc\"],\n [href=\"https://www.rootset.app\"]\n )::before{content:\"\";width:16px;height:16px;flex:0 0 16px;background-size:contain;background-position:center;background-repeat:no-repeat}body #footer a[href=\"https://www.towbar.dev\"]::before{background-image:url(/assets/projects/towbar.png)}body #footer a[href=\"https://www.posted.cc\"]::before{background-image:url(/assets/projects/posted.png)}body #footer a[href=\"https://www.rootset.app\"]::before{background-image:url(/assets/projects/rootset.png)}"}],"page":{"pagePath":"api-reference/patch_api_boards_by_boardId_tasks_bulk","slug":"/api-reference/patch_api_boards_by_boardId_tasks_bulk","pageMetadata":{"title":"Update multiple tasks","description":"Atomically updates 1–100 distinct tasks in this board. Every task needs its current version. Stale versions return 409; unavailable tasks return 404; either failure rolls back every selected change. Assignees must be active members, null unassigns. Dates accept null to clear. Actual status changes reset `statusChangedAt`; unrelated edits preserve it. Assignments respect notification preferences. Omitted fields are preserved.","playground":"simple","openapi":"api-reference/openapi.json PATCH /api/boards/{boardId}/tasks/bulk","href":"/api-reference/patch_api_boards_by_boardId_tasks_bulk"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Atomically updates 1–100 distinct tasks in this board. Every task needs its current version. Stale versions return 409; unavailable tasks return 404; either failure rolls back every selected change. Assignees must be active members, null unassigns. Dates accept null to clear. Actual status changes reset \", _jsx(_components.code, {\n children: \"statusChangedAt\"\n }), \"; unrelated edits preserve it. Assignments respect notification preferences. Omitted fields are preserved.\"]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,..._provideComponents(),...props.components};return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Write access: a member/administrator with a write-enabled credential, or an authorized signed-in user.`}),`\n`,_jsxs(_components.p,{children:[`Atomically updates 1–100 distinct tasks in this board. Every task needs its current version. Stale versions return 409; unavailable tasks return 404; either failure rolls back every selected change. Assignees must be active members, null unassigns. Dates accept null to clear. Actual status changes reset `,_jsx(_components.code,{children:`statusChangedAt`}),`; unrelated edits preserve it. Assignments respect notification preferences. Omitted fields are preserved.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.a,{href:`/api-reference/overview`,children:`Request conventions`}),` · `,_jsx(_components.a,{href:`/api-keys`,children:`API keys`}),` · `,_jsx(_components.a,{href:`/mcp-connections`,children:`MCP connections`})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"codeStyling":"system","config":{},"pageMetadata":{"title":"Update multiple tasks","description":"Atomically updates 1–100 distinct tasks in this board. Every task needs its current version. Stale versions return 409; unavailable tasks return 404; either failure rolls back every selected change. Assignees must be active members, null unassigns. Dates accept null to clear. Actual status changes reset `statusChangedAt`; unrelated edits preserve it. Assignments respect notification preferences. Omitted fields are preserved.","playground":"simple","openapi":"api-reference/openapi.json PATCH /api/boards/{boardId}/tasks/bulk","href":"/api-reference/patch_api_boards_by_boardId_tasks_bulk"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/mill-tasks/b8a59afe24dc7ff4/oss-docs.js"],"openApiReferenceData":{"operation":{"operationId":"patch_api_boards_by_boardId_tasks_bulk","summary":"Update multiple tasks","description":"Atomically updates 1–100 distinct tasks in this board. Every task needs its current version. Stale versions return 409; unavailable tasks return 404; either failure rolls back every selected change. Assignees must be active members, null unassigns. Dates accept null to clear. Actual status changes reset `statusChangedAt`; unrelated edits preserve it. Assignments respect notification preferences. Omitted fields are preserved.","tags":["Tasks"],"security":["5f4ffe59-15c3-48d6-966d-1d2946cd0354","b2f93ae1-bd2d-4b94-8bde-ef3f923bc95f"],"parameters":["41525d55-3151-4958-8f97-6d8cf7a51313","38177fef-74e8-4357-bf4f-93d2433d4f1e","ea0e5837-e8d7-4c13-b103-61453995cc7c"],"requestBody":"5aa92a02-9700-48e2-823f-5f2a91225b6f","responses":{"200":"054c9e08-8b9d-479f-b744-1450c7ec4a0d","default":"6a02e5f4-fc91-440b-9de7-27d5982e1c64"},"method":"patch","type":"path","servers":["10748e51-2c83-4091-b595-fc29123d67a9"],"path":"/api/boards/{boardId}/tasks/bulk","baseUrlOptions":["https://mill-api.example.com"],"title":"Update multiple tasks","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"41525d55-3151-4958-8f97-6d8cf7a51313":{"name":"boardId","in":"path","required":true,"schema":{"type":"string","format":"uuid","isRequired":true,"description":"The boardId from the corresponding list, record or authorization response.","uniqueKey":"","typeLabel":"string\u003cuuid>"},"description":"The boardId from the corresponding list, record or authorization response."},"38177fef-74e8-4357-bf4f-93d2433d4f1e":{"name":"Origin","in":"header","required":false,"schema":{"type":"string","format":"uri","isRequired":false,"description":"The exact configured Mill UI origin. Required for browser mutations carrying session cookies.","uniqueKey":"","typeLabel":"string\u003curi>"},"description":"The exact configured Mill UI origin. Required for browser mutations carrying session cookies."},"ea0e5837-e8d7-4c13-b103-61453995cc7c":{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","isRequired":false,"description":"Reuse the same key and exact request bytes for retries of one logical mutation; different content conflicts.","uniqueKey":"","typeLabel":"string"},"description":"Reuse the same key and exact request bytes for retries of one logical mutation; different content conflicts."}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"tasks":{"minItems":1,"maxItems":100,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","isRequired":true,"uniqueKey":"tasks.items.[INDEX].id","typeLabel":"string\u003cuuid>"},"version":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991,"isRequired":true,"uniqueKey":"tasks.items.[INDEX].version","typeLabel":"integer"}},"required":["id","version"],"additionalProperties":false,"uniqueKey":"tasks.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"tasks","typeLabel":"object[]"},"changes":{"type":"object","properties":{"status":{"type":"string","enum":["backlog","todo","in_progress","in_review","done","wont_do"],"uniqueKey":"changes.status","typeLabel":"enum\u003cstring>"},"assigneeId":{"oneOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","uniqueKey":"changes.assigneeId.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","uniqueKey":"changes.assigneeId.oneOf.1","typeLabel":"null"}],"uniqueKey":"changes.assigneeId","typeLabel":"string\u003cuuid> | null"},"priority":{"type":"string","enum":["none","low","medium","high","urgent"],"uniqueKey":"changes.priority","typeLabel":"enum\u003cstring>"},"startDate":{"oneOf":[{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","uniqueKey":"changes.startDate.oneOf.0","typeLabel":"string\u003cdate>"},{"type":"null","uniqueKey":"changes.startDate.oneOf.1","typeLabel":"null"}],"uniqueKey":"changes.startDate","typeLabel":"string\u003cdate> | null"},"dueDate":{"oneOf":[{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","uniqueKey":"changes.dueDate.oneOf.0","typeLabel":"string\u003cdate>"},{"type":"null","uniqueKey":"changes.dueDate.oneOf.1","typeLabel":"null"}],"uniqueKey":"changes.dueDate","typeLabel":"string\u003cdate> | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes","typeLabel":"object"}},"required":["tasks","changes"],"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"example":{"tasks":[{"id":"22222222-2222-4222-8222-222222222222","version":1}],"changes":{"assigneeId":null}},"examples":{"Example":{"title":"Example","value":{"tasks":[{"id":"22222222-2222-4222-8222-222222222222","version":1}],"changes":{"assigneeId":null}}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"054c9e08-8b9d-479f-b744-1450c7ec4a0d":{"description":"Successful response. Examples are illustrative; field values vary by record.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","uniqueKey":"\\items.items.[INDEX].id","typeLabel":"string"},"boardId":{"type":"string","uniqueKey":"\\items.items.[INDEX].boardId","typeLabel":"string"},"identifier":{"type":"string","uniqueKey":"\\items.items.[INDEX].identifier","typeLabel":"string"},"title":{"type":"string","uniqueKey":"\\items.items.[INDEX].title","typeLabel":"string"},"description":{"type":"string","uniqueKey":"\\items.items.[INDEX].description","typeLabel":"string"},"acceptanceCriteria":{"type":"string","uniqueKey":"\\items.items.[INDEX].acceptanceCriteria","typeLabel":"string"},"type":{"type":"string","uniqueKey":"\\items.items.[INDEX].type","typeLabel":"string"},"status":{"type":"string","uniqueKey":"\\items.items.[INDEX].status","typeLabel":"string"},"priority":{"type":"string","uniqueKey":"\\items.items.[INDEX].priority","typeLabel":"string"},"assigneeId":{"oneOf":[{"type":"string","uniqueKey":"\\items.items.[INDEX].assigneeId.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"\\items.items.[INDEX].assigneeId.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].assigneeId","typeLabel":"string | null"},"startDate":{"type":"string","uniqueKey":"\\items.items.[INDEX].startDate","typeLabel":"string"},"dueDate":{"type":"string","uniqueKey":"\\items.items.[INDEX].dueDate","typeLabel":"string"},"version":{"type":"integer","uniqueKey":"\\items.items.[INDEX].version","typeLabel":"integer"},"statusChangedAt":{"type":"string","uniqueKey":"\\items.items.[INDEX].statusChangedAt","typeLabel":"string"},"createdAt":{"type":"string","uniqueKey":"\\items.items.[INDEX].createdAt","typeLabel":"string"},"updatedAt":{"type":"string","uniqueKey":"\\items.items.[INDEX].updatedAt","typeLabel":"string"},"createdBy":{"type":"string","uniqueKey":"\\items.items.[INDEX].createdBy","typeLabel":"string"}},"additionalProperties":true,"uniqueKey":"\\items.items.[INDEX]","typeLabel":"object"},"uniqueKey":"\\items","typeLabel":"object[]"}},"additionalProperties":true,"description":"Illustrative response shape. Fields can be absent in alternate successful flows; see the operation description and example.","uniqueKey":"","typeLabel":"object"},"example":{"items":[{"id":"22222222-2222-4222-8222-222222222222","boardId":"11111111-1111-4111-8111-111111111111","identifier":"ENG-1","title":"Verify database restore","description":"Restore a recent backup into an isolated database.","acceptanceCriteria":"- Confirm task and comment counts match\n- Record the result","type":"task","status":"todo","priority":"high","assigneeId":null,"startDate":"2027-01-18","dueDate":"2027-01-20","version":2,"statusChangedAt":"2027-01-18T09:30:00.000Z","createdAt":"2027-01-18T09:30:00.000Z","updatedAt":"2027-01-18T09:30:00.000Z","createdBy":"66666666-6666-4666-8666-666666666666"}]},"examples":{"Example":{"title":"Example","value":{"items":[{"id":"22222222-2222-4222-8222-222222222222","boardId":"11111111-1111-4111-8111-111111111111","identifier":"ENG-1","title":"Verify database restore","description":"Restore a recent backup into an isolated database.","acceptanceCriteria":"- Confirm task and comment counts match\n- Record the result","type":"task","status":"todo","priority":"high","assigneeId":null,"startDate":"2027-01-18","dueDate":"2027-01-20","version":2,"statusChangedAt":"2027-01-18T09:30:00.000Z","createdAt":"2027-01-18T09:30:00.000Z","updatedAt":"2027-01-18T09:30:00.000Z","createdBy":"66666666-6666-4666-8666-666666666666"}]}}},"exampleType":"examples"}},"exampleType":"examples"},"6a02e5f4-fc91-440b-9de7-27d5982e1c64":{"description":"Request failure. Inspect code, message and requestId; respect Retry-After on HTTP 429.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","requestId"],"properties":{"code":{"type":"string","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"requestId":{"type":"string","isRequired":true,"uniqueKey":"error.requestId","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"\u003cstring>","message":"\u003cstring>","requestId":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"5f4ffe59-15c3-48d6-966d-1d2946cd0354":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Personal or team Mill REST API key","scopes":[],"schemeName":"bearerAuth"}},"b2f93ae1-bd2d-4b94-8bde-ef3f923bc95f":{"sessionCookie":{"type":"apiKey","in":"cookie","name":"mill_session","description":"Signed-in human browser session; mutation requests also need the exact UI Origin","scopes":[],"schemeName":"sessionCookie"}}},"servers":{"10748e51-2c83-4091-b595-fc29123d67a9":{"url":"https://mill-api.example.com"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Personal or team Mill REST API key","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Personal or team Mill REST API key","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"},{"schemes":[{"scheme":{"type":"apiKey","in":"cookie","name":"mill_session","description":"Signed-in human browser session; mutation requests also need the exact UI Origin","scopes":[],"schemeName":"sessionCookie"},"schema":{"title":"mill_session","type":"string","description":"Signed-in human browser session; mutation requests also need the exact UI Origin","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"sessionCookie","name":"mill_session"}],"title":"sessionCookie"}]},"originalFileLocation":"api-reference/openapi.json"},"subdomain":"mill-tasks","siteName":"Mill","title":"Update multiple tasks - Mill","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-18T20:09:08.372Z","originalFileLocation":"api-reference/patch_api_boards_by_boardId_tasks_bulk.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Atomically updates 1–100 distinct tasks in this board. Every task needs its current version. Stale versions return 409; unavailable tasks return 404; either failure rolls back every selected change. Assignees must be active members, null unassigns. Dates accept null to clear. Actual status changes reset statusChangedAt; unrelated edits preserve it. Assignments respect notification preferences. Omitted fields are preserved.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Mill\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/mill-tasks/3PchzwccbfrnITI9/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/mill-tasks/3PchzwccbfrnITI9/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/mill-tasks/3PchzwccbfrnITI9/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/mill-tasks/3PchzwccbfrnITI9/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/mill-tasks/3PchzwccbfrnITI9/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/mill-tasks/3PchzwccbfrnITI9/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/mill-tasks/3PchzwccbfrnITI9/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/mill-tasks/3PchzwccbfrnITI9/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/mill-tasks/3PchzwccbfrnITI9/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Update multiple tasks - Mill\">\u003cmeta data-mint-head property=\"og:description\" content=\"Atomically updates 1–100 distinct tasks in this board. Every task needs its current version. Stale versions return 409; unavailable tasks return 404; either failure rolls back every selected change. Assignees must be active members, null unassigns. Dates accept null to clear. Actual status changes reset statusChangedAt; unrelated edits preserve it. Assignments respect notification preferences. Omitted fields are preserved.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Mill\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://www.mill.fyi/api-reference/patch_api_boards_by_boardId_tasks_bulk\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://www.mill.fyi/assets/mill-social.png\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Update multiple tasks - Mill\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Atomically updates 1–100 distinct tasks in this board. Every task needs its current version. Stale versions return 409; unavailable tasks return 404; either failure rolls back every selected change. Assignees must be active members, null unassigns. Dates accept null to clear. Actual status changes reset statusChangedAt; unrelated edits preserve it. Assignments respect notification preferences. Omitted fields are preserved.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://www.mill.fyi/assets/mill-social.png\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/mill-tasks/3PchzwccbfrnITI9/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Mill\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#704628\">\u003cmeta data-mint-head name=\"og:image:alt\" content=\"Mill — Open-source task lists for teams\">\u003cmeta data-mint-head name=\"twitter:image:alt\" content=\"Mill — Open-source task lists for teams\">\u003clink data-mint-head rel=\"canonical\" href=\"https://www.mill.fyi/api-reference/patch_api_boards_by_boardId_tasks_bulk\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/patch_api_boards_by_boardId_tasks_bulk.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://www.mill.fyi/#organization\",\"name\":\"Mill\",\"url\":\"https://www.mill.fyi\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://www.mill.fyi/assets/mill-mark.png\"},\"sameAs\":[\"https://github.com/avgeek-oss/mill\"]},{\"@type\":\"WebSite\",\"@id\":\"https://www.mill.fyi#website\",\"name\":\"Mill\",\"url\":\"https://www.mill.fyi\",\"publisher\":{\"@id\":\"https://www.mill.fyi/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://www.mill.fyi/api-reference/patch_api_boards_by_boardId_tasks_bulk#webpage\",\"url\":\"https://www.mill.fyi/api-reference/patch_api_boards_by_boardId_tasks_bulk\",\"name\":\"Update multiple tasks\",\"description\":\"Atomically updates 1–100 distinct tasks in this board. Every task needs its current version. Stale versions return 409; unavailable tasks return 404; either failure rolls back every selected change. Assignees must be active members, null unassigns. Dates accept null to clear. Actual status changes reset statusChangedAt; unrelated edits preserve it. Assignments respect notification preferences. Omitted fields are preserved.\",\"dateModified\":\"2026-10-18T20:09:08.372Z\",\"isPartOf\":{\"@id\":\"https://www.mill.fyi#website\"},\"breadcrumb\":{\"@id\":\"https://www.mill.fyi/api-reference/patch_api_boards_by_boardId_tasks_bulk#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://www.mill.fyi/api-reference/patch_api_boards_by_boardId_tasks_bulk#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API Reference\",\"item\":\"https://www.mill.fyi/api-reference/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Update multiple tasks\",\"item\":\"https://www.mill.fyi/api-reference/patch_api_boards_by_boardId_tasks_bulk\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://www.mill.fyi/api-reference/patch_api_boards_by_boardId_tasks_bulk#apireference\",\"headline\":\"Update multiple tasks\",\"name\":\"Update multiple tasks\",\"description\":\"Atomically updates 1–100 distinct tasks in this board. Every task needs its current version. Stale versions return 409; unavailable tasks return 404; either failure rolls back every selected change. Assignees must be active members, null unassigns. Dates accept null to clear. Actual status changes reset statusChangedAt; unrelated edits preserve it. Assignments respect notification preferences. Omitted fields are preserved.\",\"url\":\"https://www.mill.fyi/api-reference/patch_api_boards_by_boardId_tasks_bulk\",\"mainEntityOfPage\":{\"@id\":\"https://www.mill.fyi/api-reference/patch_api_boards_by_boardId_tasks_bulk#webpage\"},\"image\":\"https://www.mill.fyi/assets/mill-social.png\",\"dateModified\":\"2026-10-18T20:09:08.372Z\",\"publisher\":{\"@id\":\"https://www.mill.fyi/#organization\"},\"isPartOf\":{\"@id\":\"https://www.mill.fyi#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Mill\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Mill","nav":{"global":null,"dropdowns":[{"dropdown":"Introduction","icon":"book-open","groups":[{"group":"Get Started","pages":[{"title":"About Mill","icon":"book-open","href":"/overview"}]},{"group":"Self-hosting","pages":[{"group":"Installation","icon":"network","pages":[{"title":"Architecture overview","icon":"network","sidebarTitle":"Overview","href":"/installation"},{"title":"Docker Compose","icon":"https://mintlify.s3.us-west-1.amazonaws.com/mill-tasks/assets/installation/docker-compose.png","href":"/installation/docker-compose"},{"title":"Towbar","icon":"https://mintlify.s3.us-west-1.amazonaws.com/mill-tasks/assets/installation/towbar.png","href":"/installation/towbar"}]},{"title":"Configuration","icon":"settings","href":"/configuration"},{"title":"Security","icon":"shield-check","href":"/security"},{"title":"Backup and recovery","icon":"database-backup","href":"/backup"},{"title":"Upgrades","icon":"package","href":"/upgrades"},{"title":"Troubleshooting","icon":"wrench","href":"/troubleshooting"}]}]},{"dropdown":"Using Mill","icon":"clipboard-list","groups":[{"group":"Common Concepts","pages":[{"title":"Boards","icon":"clipboard-list","href":"/boards"},{"title":"Task lists","icon":"list-checks","href":"/task-lists"},{"title":"Task details","icon":"file-text","href":"/task-details"},{"title":"Task attachments","icon":"paperclip","href":"/task-attachments"},{"title":"Notifications","icon":"bell","href":"/notifications"}]},{"group":"Accounts and teams","pages":[{"title":"Accounts and team access","icon":"users","href":"/authentication"}]}]},{"dropdown":"API \u0026 MCP","icon":"plug","groups":[{"group":"Connect a client","pages":[{"title":"API keys","icon":"key-round","href":"/api-keys"},{"title":"MCP connections","icon":"plug","href":"/mcp-connections"}]},{"group":"MCP reference","pages":[{"title":"MCP tool reference","icon":"plug","href":"/mcp-reference/overview"},{"group":"Attachments","pages":[{"title":"get_attachment_config","icon":"plug","href":"/mcp-reference/get_attachment_config"},{"title":"list_attachments","icon":"plug","href":"/mcp-reference/list_attachments"},{"title":"create_attachment_upload","icon":"plug","href":"/mcp-reference/create_attachment_upload"},{"title":"complete_attachment","icon":"plug","href":"/mcp-reference/complete_attachment"},{"title":"get_attachment_download","icon":"plug","href":"/mcp-reference/get_attachment_download"},{"title":"delete_attachment","icon":"plug","href":"/mcp-reference/delete_attachment"}]},{"group":"Boards","pages":[{"title":"list_boards","icon":"plug","href":"/mcp-reference/list_boards"},{"title":"get_board","icon":"plug","href":"/mcp-reference/get_board"},{"title":"create_board","icon":"plug","href":"/mcp-reference/create_board"},{"title":"update_board","icon":"plug","href":"/mcp-reference/update_board"}]},{"group":"Tasks","pages":[{"title":"list_tasks","icon":"plug","href":"/mcp-reference/list_tasks"},{"title":"get_task","icon":"plug","href":"/mcp-reference/get_task"},{"title":"create_task","icon":"plug","href":"/mcp-reference/create_task"},{"title":"update_task","icon":"plug","href":"/mcp-reference/update_task"},{"title":"delete_task","icon":"plug","href":"/mcp-reference/delete_task"}]},{"group":"Comments and activity","pages":[{"title":"list_comments","icon":"plug","href":"/mcp-reference/list_comments"},{"title":"add_comment","icon":"plug","href":"/mcp-reference/add_comment"},{"title":"delete_comment","icon":"plug","href":"/mcp-reference/delete_comment"},{"title":"get_activity","icon":"plug","href":"/mcp-reference/get_activity"}]},{"group":"Notifications","pages":[{"title":"list_notifications","icon":"plug","href":"/mcp-reference/list_notifications"},{"title":"mark_notifications","icon":"plug","href":"/mcp-reference/mark_notifications"}]},{"group":"Members","pages":[{"title":"list_members","icon":"plug","href":"/mcp-reference/list_members"}]}]},{"group":"API Reference","pages":[{"title":"HTTP API reference","href":"/api-reference/overview"},{"group":"Health","pages":[{"title":"API liveness","playground":"simple","openapi":"api-reference/openapi.json GET /health/live","href":"/api-reference/get_health_live"},{"title":"API readiness","playground":"simple","openapi":"api-reference/openapi.json GET /health/ready","href":"/api-reference/get_health_ready"},{"title":"Read the API favicon","playground":"simple","openapi":"api-reference/openapi.json GET /brand/mill-favicon.png","href":"/api-reference/get_brand_mill_favicon_png"},{"title":"Redirect to the favicon","playground":"simple","openapi":"api-reference/openapi.json GET /favicon.ico","href":"/api-reference/get_favicon_ico"}]},{"group":"Account and sessions","pages":[{"title":"Read installation status","playground":"simple","openapi":"api-reference/openapi.json GET /api/auth/status","href":"/api-reference/get_api_auth_status"},{"title":"Create the first administrator","playground":"simple","openapi":"api-reference/openapi.json POST /api/auth/setup","href":"/api-reference/post_api_auth_setup"},{"title":"Sign in with a password","playground":"simple","openapi":"api-reference/openapi.json POST /api/auth/login","href":"/api-reference/post_api_auth_login"},{"title":"Verify a recent session","playground":"simple","openapi":"api-reference/openapi.json POST /api/auth/reauth","href":"/api-reference/post_api_auth_reauth"},{"title":"Sign out","playground":"simple","openapi":"api-reference/openapi.json POST /api/auth/logout","href":"/api-reference/post_api_auth_logout"},{"title":"Read the signed-in account","playground":"simple","openapi":"api-reference/openapi.json GET /api/auth/me","href":"/api-reference/get_api_auth_me"},{"title":"Update account preferences","playground":"simple","openapi":"api-reference/openapi.json PATCH /api/auth/profile","href":"/api-reference/patch_api_auth_profile"},{"title":"List account sessions","playground":"simple","openapi":"api-reference/openapi.json GET /api/auth/sessions","href":"/api-reference/get_api_auth_sessions"},{"title":"Revoke an account session","playground":"simple","openapi":"api-reference/openapi.json DELETE /api/auth/sessions/{id}","href":"/api-reference/delete_api_auth_sessions_by_id"},{"title":"Change account password","playground":"simple","openapi":"api-reference/openapi.json POST /api/auth/password","href":"/api-reference/post_api_auth_password"}]},{"group":"Passkeys and recovery","pages":[{"title":"Use a passkey recovery code","playground":"simple","openapi":"api-reference/openapi.json POST /api/auth/passkeys/recovery/verify","href":"/api-reference/post_api_auth_passkeys_recovery_verify"},{"title":"Replace passkey recovery codes","playground":"simple","openapi":"api-reference/openapi.json POST /api/auth/passkeys/recovery-codes","href":"/api-reference/post_api_auth_passkeys_recovery_codes"},{"title":"List passkeys","playground":"simple","openapi":"api-reference/openapi.json GET /api/auth/passkeys","href":"/api-reference/get_api_auth_passkeys"},{"title":"Begin passkey registration","playground":"simple","openapi":"api-reference/openapi.json POST /api/auth/passkeys/register/options","href":"/api-reference/post_api_auth_passkeys_register_options"},{"title":"Complete passkey registration","playground":"simple","openapi":"api-reference/openapi.json POST /api/auth/passkeys/register/verify","href":"/api-reference/post_api_auth_passkeys_register_verify"},{"title":"Remove a passkey","playground":"simple","openapi":"api-reference/openapi.json DELETE /api/auth/passkeys/{id}","href":"/api-reference/delete_api_auth_passkeys_by_id"},{"title":"Begin passkey authentication","playground":"simple","openapi":"api-reference/openapi.json POST /api/auth/passkeys/authenticate/options","href":"/api-reference/post_api_auth_passkeys_authenticate_options"},{"title":"Complete passkey authentication","playground":"simple","openapi":"api-reference/openapi.json POST /api/auth/passkeys/authenticate/verify","href":"/api-reference/post_api_auth_passkeys_authenticate_verify"},{"title":"Reset a password with a recovery token","playground":"simple","openapi":"api-reference/openapi.json POST /api/auth/recovery/reset","href":"/api-reference/post_api_auth_recovery_reset"}]},{"group":"Members and invitations","pages":[{"title":"List team invitations","playground":"simple","openapi":"api-reference/openapi.json GET /api/auth/invitations","href":"/api-reference/get_api_auth_invitations"},{"title":"Invite a team member","playground":"simple","openapi":"api-reference/openapi.json POST /api/auth/invitations","href":"/api-reference/post_api_auth_invitations"},{"title":"Revoke a team invitation","playground":"simple","openapi":"api-reference/openapi.json DELETE /api/auth/invitations/{id}","href":"/api-reference/delete_api_auth_invitations_by_id"},{"title":"Read an invitation","playground":"simple","openapi":"api-reference/openapi.json GET /api/auth/invitation","href":"/api-reference/get_api_auth_invitation"},{"title":"Accept a team invitation","playground":"simple","openapi":"api-reference/openapi.json POST /api/auth/accept-invitation","href":"/api-reference/post_api_auth_accept_invitation"},{"title":"Change a member's role","playground":"simple","openapi":"api-reference/openapi.json PATCH /api/auth/members/{id}","href":"/api-reference/patch_api_auth_members_by_id"},{"title":"Remove a team member","playground":"simple","openapi":"api-reference/openapi.json DELETE /api/auth/members/{id}","href":"/api-reference/delete_api_auth_members_by_id"}]},{"group":"Account email","pages":[{"title":"Send account verification email","playground":"simple","openapi":"api-reference/openapi.json POST /api/auth/email-verification/request","href":"/api-reference/post_api_auth_email_verification_request"},{"title":"Request verification email by address","playground":"simple","openapi":"api-reference/openapi.json POST /api/auth/verification-email","href":"/api-reference/post_api_auth_verification_email"},{"title":"Request a password-reset email","playground":"simple","openapi":"api-reference/openapi.json POST /api/auth/password-reset/request","href":"/api-reference/post_api_auth_password_reset_request"},{"title":"Confirm account email","playground":"simple","openapi":"api-reference/openapi.json POST /api/auth/email-verification/confirm","href":"/api-reference/post_api_auth_email_verification_confirm"},{"title":"Read pending email change","playground":"simple","openapi":"api-reference/openapi.json GET /api/auth/email-change","href":"/api-reference/get_api_auth_email_change"},{"title":"Request an email change","playground":"simple","openapi":"api-reference/openapi.json POST /api/auth/email-change","href":"/api-reference/post_api_auth_email_change"},{"title":"Cancel a pending email change","playground":"simple","openapi":"api-reference/openapi.json DELETE /api/auth/email-change","href":"/api-reference/delete_api_auth_email_change"},{"title":"Confirm an email change","playground":"simple","openapi":"api-reference/openapi.json POST /api/auth/email-change/confirm","href":"/api-reference/post_api_auth_email_change_confirm"},{"title":"Send invitation verification code","playground":"simple","openapi":"api-reference/openapi.json POST /api/auth/invitation/verification/request","href":"/api-reference/post_api_auth_invitation_verification_request"},{"title":"Verify an invitation code","playground":"simple","openapi":"api-reference/openapi.json POST /api/auth/invitation/verification/confirm","href":"/api-reference/post_api_auth_invitation_verification_confirm"}]},{"group":"API key management","pages":[{"title":"List personal API keys and MCP grants","playground":"simple","openapi":"api-reference/openapi.json GET /api/credentials","href":"/api-reference/get_api_credentials"},{"title":"Create a personal API key","playground":"simple","openapi":"api-reference/openapi.json POST /api/credentials","href":"/api-reference/post_api_credentials"},{"title":"Revoke a personal API key or MCP grant","playground":"simple","openapi":"api-reference/openapi.json DELETE /api/credentials/{id}","href":"/api-reference/delete_api_credentials_by_id"},{"title":"List team API keys and MCP grants","playground":"simple","openapi":"api-reference/openapi.json GET /api/team-credentials","href":"/api-reference/get_api_team_credentials"},{"title":"Create a team API key","playground":"simple","openapi":"api-reference/openapi.json POST /api/team-credentials","href":"/api-reference/post_api_team_credentials"},{"title":"Revoke a team API key or MCP grant","playground":"simple","openapi":"api-reference/openapi.json DELETE /api/team-credentials/{id}","href":"/api-reference/delete_api_team_credentials_by_id"}]},{"group":"OAuth and MCP transport","pages":[{"title":"OAuth authorization-server metadata","playground":"simple","openapi":"api-reference/openapi.json GET /.well-known/oauth-authorization-server","href":"/api-reference/get_well_known_oauth_authorization_server"},{"title":"Protected-resource metadata","playground":"simple","openapi":"api-reference/openapi.json GET /.well-known/oauth-protected-resource","href":"/api-reference/get_well_known_oauth_protected_resource"},{"title":"MCP protected-resource metadata","playground":"simple","openapi":"api-reference/openapi.json GET /.well-known/oauth-protected-resource/mcp","href":"/api-reference/get_well_known_oauth_protected_resource_mcp"},{"title":"Register an OAuth client","playground":"simple","openapi":"api-reference/openapi.json POST /oauth/register","href":"/api-reference/post_oauth_register"},{"title":"Begin MCP OAuth authorization","playground":"simple","openapi":"api-reference/openapi.json GET /oauth/authorize","href":"/api-reference/get_oauth_authorize"},{"title":"Read an MCP consent request","playground":"simple","openapi":"api-reference/openapi.json GET /api/oauth/consent/{id}","href":"/api-reference/get_api_oauth_consent_by_id"},{"title":"Approve or deny MCP consent","playground":"simple","openapi":"api-reference/openapi.json POST /api/oauth/consent/{id}","href":"/api-reference/post_api_oauth_consent_by_id"},{"title":"Exchange an OAuth authorization code","playground":"simple","openapi":"api-reference/openapi.json POST /oauth/token","href":"/api-reference/post_oauth_token"},{"title":"Revoke an OAuth token","playground":"simple","openapi":"api-reference/openapi.json POST /oauth/revoke","href":"/api-reference/post_oauth_revoke"},{"title":"Call the MCP transport","playground":"simple","openapi":"api-reference/openapi.json POST /mcp","href":"/api-reference/post_mcp"},{"title":"MCP streaming request","playground":"simple","openapi":"api-reference/openapi.json GET /mcp","href":"/api-reference/get_mcp"},{"title":"MCP session termination request","playground":"simple","openapi":"api-reference/openapi.json DELETE /mcp","href":"/api-reference/delete_mcp"}]},{"group":"Boards","pages":[{"title":"Delete a board","playground":"simple","openapi":"api-reference/openapi.json DELETE /api/boards/{boardId}","href":"/api-reference/delete_api_boards_by_boardId"},{"title":"List boards","playground":"simple","openapi":"api-reference/openapi.json GET /api/boards","href":"/api-reference/get_api_boards"},{"title":"Read a board","playground":"simple","openapi":"api-reference/openapi.json GET /api/boards/{boardId}","href":"/api-reference/get_api_boards_by_boardId"},{"title":"Create a board","playground":"simple","openapi":"api-reference/openapi.json POST /api/boards","href":"/api-reference/post_api_boards"},{"title":"Update a board","playground":"simple","openapi":"api-reference/openapi.json PATCH /api/boards/{boardId}","href":"/api-reference/patch_api_boards_by_boardId"}]},{"group":"Comments and activity","pages":[{"title":"Read a comment","playground":"simple","openapi":"api-reference/openapi.json GET /api/comments/{commentId}","href":"/api-reference/get_api_comments_by_commentId"},{"title":"List comments and replies","playground":"simple","openapi":"api-reference/openapi.json GET /api/tasks/{taskId}/comments","href":"/api-reference/get_api_tasks_by_taskId_comments"},{"title":"Add a comment or reply","playground":"simple","openapi":"api-reference/openapi.json POST /api/tasks/{taskId}/comments","href":"/api-reference/post_api_tasks_by_taskId_comments"},{"title":"Delete a comment","playground":"simple","openapi":"api-reference/openapi.json DELETE /api/comments/{commentId}","href":"/api-reference/delete_api_comments_by_commentId"},{"title":"Read task activity","description":"Read task and attachment activity, including who made each change. Comment and reply actions are not included.","playground":"simple","openapi":"api-reference/openapi.json GET /api/tasks/{taskId}/activity","href":"/api-reference/get_api_tasks_by_taskId_activity"}]},{"group":"Tasks","pages":[{"title":"Update multiple tasks","playground":"simple","openapi":"api-reference/openapi.json PATCH /api/boards/{boardId}/tasks/bulk","href":"/api-reference/patch_api_boards_by_boardId_tasks_bulk"},{"title":"List and filter tasks","description":"Search and filter tasks in one board. Combine q, status, `assigneeId`, priority and sort. Without a status filter, done and wont_do tasks are hidden after 24 hours in that status. Set status explicitly to include older tasks in that status. Tasks are sorted by priority from urgent through none by default; status sort follows backlog, todo, in_progress, in_review, done, wont_do. Maximum 100 results per page, with total matching tasks and the current revision. Use either cursor continuation or a positive page number. Cursor cannot be combined with page or revision. Page requests clamp to the last available page; send the returned revision on subsequent page requests to reject changed lists.","playground":"simple","openapi":"api-reference/openapi.json GET /api/boards/{boardId}/tasks","href":"/api-reference/get_api_boards_by_boardId_tasks"},{"title":"Read a task","playground":"simple","openapi":"api-reference/openapi.json GET /api/tasks/{taskId}","href":"/api-reference/get_api_tasks_by_taskId"},{"title":"Create a task","playground":"simple","openapi":"api-reference/openapi.json POST /api/boards/{boardId}/tasks","href":"/api-reference/post_api_boards_by_boardId_tasks"},{"title":"Update a task","playground":"simple","openapi":"api-reference/openapi.json PATCH /api/tasks/{taskId}","href":"/api-reference/patch_api_tasks_by_taskId"},{"title":"Delete a task","playground":"simple","openapi":"api-reference/openapi.json DELETE /api/tasks/{taskId}","href":"/api-reference/delete_api_tasks_by_taskId"}]},{"group":"Team","pages":[{"title":"Read team settings","playground":"simple","openapi":"api-reference/openapi.json GET /api/workspace","href":"/api-reference/get_api_workspace"},{"title":"Update team settings","playground":"simple","openapi":"api-reference/openapi.json PATCH /api/workspace","href":"/api-reference/patch_api_workspace"}]},{"group":"Attachments","pages":[{"title":"Read attachment configuration","playground":"simple","openapi":"api-reference/openapi.json GET /api/attachments/config","href":"/api-reference/get_api_attachments_config"},{"title":"List task attachments","playground":"simple","openapi":"api-reference/openapi.json GET /api/tasks/{taskId}/attachments","href":"/api-reference/get_api_tasks_by_taskId_attachments"},{"title":"Reserve an attachment upload","playground":"simple","openapi":"api-reference/openapi.json POST /api/tasks/{taskId}/attachments/uploads","href":"/api-reference/post_api_tasks_by_taskId_attachments_uploads"},{"title":"Complete an attachment upload","playground":"simple","openapi":"api-reference/openapi.json POST /api/tasks/{taskId}/attachments/{attachmentId}/complete","href":"/api-reference/post_api_tasks_by_taskId_attachments_by_attachmentId_complete"},{"title":"Get a private download URL","playground":"simple","openapi":"api-reference/openapi.json GET /api/tasks/{taskId}/attachments/{attachmentId}/download","href":"/api-reference/get_api_tasks_by_taskId_attachments_by_attachmentId_download"},{"title":"Delete an attachment","playground":"simple","openapi":"api-reference/openapi.json DELETE /api/tasks/{taskId}/attachments/{attachmentId}","href":"/api-reference/delete_api_tasks_by_taskId_attachments_by_attachmentId"}]},{"group":"Notifications","pages":[{"title":"List personal notifications","playground":"simple","openapi":"api-reference/openapi.json GET /api/notifications","href":"/api-reference/get_api_notifications"},{"title":"Mark personal notifications","playground":"simple","openapi":"api-reference/openapi.json PATCH /api/notifications","href":"/api-reference/patch_api_notifications"}]},{"group":"Members","pages":[{"title":"List team members","playground":"simple","openapi":"api-reference/openapi.json GET /api/auth/members","href":"/api-reference/get_api_auth_members"}]}]}]}]},"title":"Update multiple tasks - Mill","buildId":"dpl_HcHmUS6i3UwswnTHJUEdcTtwfdTQ","deploymentId":"dpl_HcHmUS6i3UwswnTHJUEdcTtwfdTQ","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-BRm_l__d.js","utils-f1l1Oc-G.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-BlhqDhJO.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-DHCB7rsC.js","snippetPresets-CYXLx6Hv.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-B78P2dEq.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-C4YLPVAh.js","shallow-vlLnTDkQ.js","getApiPlaygroundDisplay-D_98hhvf.js","CodeSnippet-DtnZHGqq.js","CodeSnippets-CLFb8KJt.js","Page-kQh739Uz.js","getPastedJson-Cq-zlbnU.js","icon-sN3t983t.js","MethodPill-P_YQ2s09.js","DuplicateIcon-BVzyNsGJ.js","createIcon-B3jqgqC6.js","DynamicMarkdown-Crwq6WG_.js","SectionHeading-C7pGS2Bb.js","axios-vUo_bRtp.js","Markdown-BuPH8yuW.js","clsx-CCOYKgaU.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BnkC_6oA.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BM4S31-f.js"]}