{
"id": "05fc9c8d-73b9-4697-9337-57f7a567a48f",
"status": "401",
"title": "You are not authorised to access this resource",
"detail": "In order to access this resource, you need the 'admin' role.",
"code": "AUTH.001"
}
{
"errors": [
{
"id": "1b3f2c30-2d56-4d3a-9c44-9be9c2cbf2f0",
"status": "403",
"title": "Forbidden",
"detail": "You do not hold the grant required for this action.",
"code": "AUTH.002"
}
]
}
{
"id": "fe9d9a69-f0a7-4fdc-bb2c-176027f316c5",
"status": "500",
"title": "Internal Server Error",
"detail": "An unexpected error occurred on the server."
}
Costs
List cost roll-ups
Read what a node of the job hierarchy costs, and what everything beneath it
costs.
A roll-up is derived and read-only — there is no create, update or delete. It
is keyed on the cost centre rather than on a cost sheet, so a contract nobody
has costed directly still returns a real total from the work orders beneath
it, without an empty sheet having to exist for it.
Filter by organisation, cost_centre and cost_centre_type together for the
node you want rolled up. All three are required as a set; supplying some but
not all of them is rejected rather than answered.
By default this returns exactly one element: the roll-up for the node named
by the filter. Add eq(depth,all) to the filter to get one element per node
in the subtree beneath and including that node instead, so a client can see
which scheme, work order or operation is holding the money rather than only
how much is below in total. Any other depth value is rejected rather than
answered.
Every element, in either mode, also carries parent_cost_centre_id and
parent_cost_centre_type (both null on the subtree’s root), name, code
and has_cost_sheet — enough on its own to rebuild the shape of the subtree
and label each node, since a depth=all response is otherwise just a bag of
totals with no relationships between them.
Each roll-up returns the node’s own direct total, the rolled total that
includes every descendant, and by_status — rolled split by the status of
the sheet each line sits on, so a client can sum only the statuses it cares
about without asking again. Soft-deleted nodes are left out of the walk.
Totals are sums of the snapshots stored on the cost lines themselves, so
revising a rate or a margin in the cost register never moves a roll-up.
This read is gated on permission to view cost lines rather than cost sheets: a
roll-up returns nothing but money.
GET
/
v3
/
cost-rollups
List cost roll-ups
curl --request GET \ --url https://api.ctrl-hub.com/v3/cost-rollups \ --header 'X-Session-Token: <api-key>'
{
"id": "05fc9c8d-73b9-4697-9337-57f7a567a48f",
"status": "401",
"title": "You are not authorised to access this resource",
"detail": "In order to access this resource, you need the 'admin' role.",
"code": "AUTH.001"
}
{
"errors": [
{
"id": "1b3f2c30-2d56-4d3a-9c44-9be9c2cbf2f0",
"status": "403",
"title": "Forbidden",
"detail": "You do not hold the grant required for this action.",
"code": "AUTH.002"
}
]
}
{
"id": "fe9d9a69-f0a7-4fdc-bb2c-176027f316c5",
"status": "500",
"title": "Internal Server Error",
"detail": "An unexpected error occurred on the server."
}
Filters the response data based on the value provided.
Available filters:
organisation: Filter by the ID of the organisation the node belongs to
cost_centre: Filter by the ID of the node to roll up
cost_centre_type: Filter by the type of the node to roll up
(scheme-contracts, schemes, work-orders, operations)
depth: Optional. How much of the subtree to return: self (the
default, and the same as omitting the term) returns one element, the
roll-up for the filtered node; all returns one element per node in
the subtree beneath and including it, so a client can see which
scheme, work order or operation is holding the money rather than only
the total beneath it. Matching is exact lowercase; any other value is
rejected with CH.004.211.
A roll-up is derived from a cost centre, so organisation, cost_centre
and cost_centre_type must be given together — they identify the node
whose subtree is summed. Supplying some but not all of them is rejected
with CH.004.211 rather than answered, because a partly-filtered roll-up
would return a total for the wrong scope. Supplying none of them returns
an empty collection, as any unfiltered collection read does.
Wrap them in and(), as in
and(eq(organisation,c000c344-8847-47da-a091-32e75902d3b1),eq(cost_centre,7f3a2c18-64bd-4f0e-9a52-c8d1b73e0f45),eq(cost_centre_type,work-orders),eq(depth,all));
filters after a bare top-level comma are dropped.
For more information on using named filters, see the docs
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Ctrl Hub","colors":{"primary":"#051737","light":"#2B66FF","dark":"#2B66FF"},"logo":{"light":"https://mintcdn.com/ctrlhub-2ae4bef7/PIDSeF8_-LaiA-F2/logo/light.svg?fit=max\u0026auto=format\u0026n=PIDSeF8_-LaiA-F2\u0026q=85\u0026s=042271625d0e2e8a33fea01ac79f26b9","dark":"https://mintcdn.com/ctrlhub-2ae4bef7/PIDSeF8_-LaiA-F2/logo/dark.svg?fit=max\u0026auto=format\u0026n=PIDSeF8_-LaiA-F2\u0026q=85\u0026s=aecc6afe5673b3c768a2c6b92b601480"},"favicon":"https://mintcdn.com/ctrlhub-2ae4bef7/PIDSeF8_-LaiA-F2/favicon.svg?fit=max\u0026auto=format\u0026n=PIDSeF8_-LaiA-F2\u0026q=85\u0026s=94d5b7711b223480a20becc82908a635","styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"ctrlhub-2ae4bef7","hasAudioNarration":false,"actualSubdomain":"ctrlhub-2ae4bef7","customDomains":["docs.ctrl-hub.com"],"gitSource":{"type":"github","owner":"ctrl-hub","repo":"doc.public","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aea16d8cee1c80579e55d85","collectionId":"a210a2fc-9c9b-4977-b951-61edb57abbcd","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aea16d8cee1c80579e55d85"},"entitlements":{},"buildId":"6aea16d8cee1c80579e55d85","clientVersion":"0.0.4045","searchFilterCounts":[{"language":"default","tag":"API Reference","count":742},{"language":"default","tag":"Vehicles","count":69},{"language":"default","tag":"Equipment","count":66},{"language":"default","tag":"Qualifications","count":41},{"language":"default","tag":"Operations","count":35},{"language":"default","tag":"Costs","count":32},{"language":"default","tag":"Pre-Construction Information","count":24},{"language":"default","tag":"Workforce","count":23},{"language":"default","tag":"Guides","count":22},{"language":"default","tag":"Construction Phase Plans","count":20}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/costs/list-cost-roll-ups","slug":"/api-reference/costs/list-cost-roll-ups","pageMetadata":{"title":"List cost roll-ups","description":"Read what a node of the job hierarchy costs, and what everything beneath it\ncosts.\n\nA roll-up is derived and read-only — there is no create, update or delete. It\nis keyed on the cost centre rather than on a cost sheet, so a contract nobody\nhas costed directly still returns a real total from the work orders beneath\nit, without an empty sheet having to exist for it.\n\nFilter by `organisation`, `cost_centre` and `cost_centre_type` together for the\nnode you want rolled up. All three are required as a set; supplying some but\nnot all of them is rejected rather than answered.\n\nBy default this returns exactly one element: the roll-up for the node named\nby the filter. Add `eq(depth,all)` to the filter to get one element per node\nin the subtree beneath and including that node instead, so a client can see\nwhich scheme, work order or operation is holding the money rather than only\nhow much is below in total. Any other `depth` value is rejected rather than\nanswered.\n\nEvery element, in either mode, also carries `parent_cost_centre_id` and\n`parent_cost_centre_type` (both null on the subtree's root), `name`, `code`\nand `has_cost_sheet` — enough on its own to rebuild the shape of the subtree\nand label each node, since a `depth=all` response is otherwise just a bag of\ntotals with no relationships between them.\n\nEach roll-up returns the node's own `direct` total, the `rolled` total that\nincludes every descendant, and `by_status` — `rolled` split by the status of\nthe sheet each line sits on, so a client can sum only the statuses it cares\nabout without asking again. Soft-deleted nodes are left out of the walk.\n\nTotals are sums of the snapshots stored on the cost lines themselves, so\nrevising a rate or a margin in the cost register never moves a roll-up.\n\nThis read is gated on permission to view cost lines rather than cost sheets: a\nroll-up returns nothing but money.\n","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/cost-rollups","href":"/api-reference/costs/list-cost-roll-ups","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, 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(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Read what a node of the job hierarchy costs, and what everything beneath it\\ncosts.\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"A roll-up is derived and read-only — there is no create, update or delete. It\\nis keyed on the cost centre rather than on a cost sheet, so a contract nobody\\nhas costed directly still returns a real total from the work orders beneath\\nit, without an empty sheet having to exist for it.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Filter by \", _jsx(_components.code, {\n children: \"organisation\"\n }), \", \", _jsx(_components.code, {\n children: \"cost_centre\"\n }), \" and \", _jsx(_components.code, {\n children: \"cost_centre_type\"\n }), \" together for the\\nnode you want rolled up. All three are required as a set; supplying some but\\nnot all of them is rejected rather than answered.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"By default this returns exactly one element: the roll-up for the node named\\nby the filter. Add \", _jsx(_components.code, {\n children: \"eq(depth,all)\"\n }), \" to the filter to get one element per node\\nin the subtree beneath and including that node instead, so a client can see\\nwhich scheme, work order or operation is holding the money rather than only\\nhow much is below in total. Any other \", _jsx(_components.code, {\n children: \"depth\"\n }), \" value is rejected rather than\\nanswered.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Every element, in either mode, also carries \", _jsx(_components.code, {\n children: \"parent_cost_centre_id\"\n }), \" and\\n\", _jsx(_components.code, {\n children: \"parent_cost_centre_type\"\n }), \" (both null on the subtree’s root), \", _jsx(_components.code, {\n children: \"name\"\n }), \", \", _jsx(_components.code, {\n children: \"code\"\n }), \"\\nand \", _jsx(_components.code, {\n children: \"has_cost_sheet\"\n }), \" — enough on its own to rebuild the shape of the subtree\\nand label each node, since a \", _jsx(_components.code, {\n children: \"depth=all\"\n }), \" response is otherwise just a bag of\\ntotals with no relationships between them.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Each roll-up returns the node’s own \", _jsx(_components.code, {\n children: \"direct\"\n }), \" total, the \", _jsx(_components.code, {\n children: \"rolled\"\n }), \" total that\\nincludes every descendant, and \", _jsx(_components.code, {\n children: \"by_status\"\n }), \" — \", _jsx(_components.code, {\n children: \"rolled\"\n }), \" split by the status of\\nthe sheet each line sits on, so a client can sum only the statuses it cares\\nabout without asking again. Soft-deleted nodes are left out of the walk.\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"Totals are sums of the snapshots stored on the cost lines themselves, so\\nrevising a rate or a margin in the cost register never moves a roll-up.\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"This read is gated on permission to view cost lines rather than cost sheets: a\\nroll-up returns nothing but money.\"\n })]\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}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}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":{"config":{},"pageMetadata":{"title":"List cost roll-ups","description":"Read what a node of the job hierarchy costs, and what everything beneath it\ncosts.\n\nA roll-up is derived and read-only — there is no create, update or delete. It\nis keyed on the cost centre rather than on a cost sheet, so a contract nobody\nhas costed directly still returns a real total from the work orders beneath\nit, without an empty sheet having to exist for it.\n\nFilter by `organisation`, `cost_centre` and `cost_centre_type` together for the\nnode you want rolled up. All three are required as a set; supplying some but\nnot all of them is rejected rather than answered.\n\nBy default this returns exactly one element: the roll-up for the node named\nby the filter. Add `eq(depth,all)` to the filter to get one element per node\nin the subtree beneath and including that node instead, so a client can see\nwhich scheme, work order or operation is holding the money rather than only\nhow much is below in total. Any other `depth` value is rejected rather than\nanswered.\n\nEvery element, in either mode, also carries `parent_cost_centre_id` and\n`parent_cost_centre_type` (both null on the subtree's root), `name`, `code`\nand `has_cost_sheet` — enough on its own to rebuild the shape of the subtree\nand label each node, since a `depth=all` response is otherwise just a bag of\ntotals with no relationships between them.\n\nEach roll-up returns the node's own `direct` total, the `rolled` total that\nincludes every descendant, and `by_status` — `rolled` split by the status of\nthe sheet each line sits on, so a client can sum only the statuses it cares\nabout without asking again. Soft-deleted nodes are left out of the walk.\n\nTotals are sums of the snapshots stored on the cost lines themselves, so\nrevising a rate or a margin in the cost register never moves a roll-up.\n\nThis read is gated on permission to view cost lines rather than cost sheets: a\nroll-up returns nothing but money.\n","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/cost-rollups","href":"/api-reference/costs/list-cost-roll-ups","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"description":"Read what a node of the job hierarchy costs, and what everything beneath it\ncosts.\n\nA roll-up is derived and read-only — there is no create, update or delete. It\nis keyed on the cost centre rather than on a cost sheet, so a contract nobody\nhas costed directly still returns a real total from the work orders beneath\nit, without an empty sheet having to exist for it.\n\nFilter by `organisation`, `cost_centre` and `cost_centre_type` together for the\nnode you want rolled up. All three are required as a set; supplying some but\nnot all of them is rejected rather than answered.\n\nBy default this returns exactly one element: the roll-up for the node named\nby the filter. Add `eq(depth,all)` to the filter to get one element per node\nin the subtree beneath and including that node instead, so a client can see\nwhich scheme, work order or operation is holding the money rather than only\nhow much is below in total. Any other `depth` value is rejected rather than\nanswered.\n\nEvery element, in either mode, also carries `parent_cost_centre_id` and\n`parent_cost_centre_type` (both null on the subtree's root), `name`, `code`\nand `has_cost_sheet` — enough on its own to rebuild the shape of the subtree\nand label each node, since a `depth=all` response is otherwise just a bag of\ntotals with no relationships between them.\n\nEach roll-up returns the node's own `direct` total, the `rolled` total that\nincludes every descendant, and `by_status` — `rolled` split by the status of\nthe sheet each line sits on, so a client can sum only the statuses it cares\nabout without asking again. Soft-deleted nodes are left out of the walk.\n\nTotals are sums of the snapshots stored on the cost lines themselves, so\nrevising a rate or a margin in the cost register never moves a roll-up.\n\nThis read is gated on permission to view cost lines rather than cost sheets: a\nroll-up returns nothing but money.\n","operationId":"ListCostRollups","parameters":["2841fee1-74a3-4ca9-a444-407909cfc220","ac6b9067-4e10-4700-85a8-c8eaae5e27b8","7fb8cee4-68cc-4a6f-96d7-32bef1068412","305eff33-396b-4b1c-88d9-982b3eab779e"],"responses":{"200":"1326529f-9697-4628-a42d-d741da564923","400":"b08019ae-bc2d-42ac-bbec-ead80d0b0c68","401":"70e3facf-f871-4c1b-a157-33e4a4d8d036","403":"7e598112-1a9c-4bd6-92da-96da3e32dad5","500":"ed3e5cf4-a982-44b4-9287-920ae92cffc7"},"security":["9d2df97b-7bb6-4af9-8d1d-e61f0b1217b9","25351aea-9665-4414-a575-78873fd3a2a9","06e64298-5164-46a5-abb3-8464b5c52235"],"summary":"List cost roll-ups","tags":["Costs"],"x-ctrl-hub":{"domain":"projects"},"x-mint":{"metadata":{"title":"List cost roll-ups"}},"method":"get","type":"path","servers":["1d37f2dd-0bd8-405c-8666-039935a8ee9b","a9c1d015-9d04-44b7-bcdc-63e2b4b15709","ef40f0bb-883c-4244-8d93-6849ac26e578"],"path":"/v3/cost-rollups","baseUrlOptions":["https://api.ctrl-hub.com","https://api.ctrl-hub.dev","https://api.ctrl-hub.run"],"title":"List cost roll-ups","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"2841fee1-74a3-4ca9-a444-407909cfc220":{"name":"filter","in":"query","description":"Filters the response data based on the value provided.\n\nAvailable filters:\n\n- `organisation`: Filter by the ID of the organisation the node belongs to\n- `cost_centre`: Filter by the ID of the node to roll up\n- `cost_centre_type`: Filter by the type of the node to roll up\n (`scheme-contracts`, `schemes`, `work-orders`, `operations`)\n- `depth`: Optional. How much of the subtree to return: `self` (the\n default, and the same as omitting the term) returns one element, the\n roll-up for the filtered node; `all` returns one element per node in\n the subtree beneath and including it, so a client can see which\n scheme, work order or operation is holding the money rather than only\n the total beneath it. Matching is exact lowercase; any other value is\n rejected with `CH.004.211`.\n\nA roll-up is derived from a cost centre, so `organisation`, `cost_centre`\nand `cost_centre_type` must be given **together** — they identify the node\nwhose subtree is summed. Supplying some but not all of them is rejected\nwith `CH.004.211` rather than answered, because a partly-filtered roll-up\nwould return a total for the wrong scope. Supplying none of them returns\nan empty collection, as any unfiltered collection read does.\n\nWrap them in `and()`, as in\n`and(eq(organisation,c000c344-8847-47da-a091-32e75902d3b1),eq(cost_centre,7f3a2c18-64bd-4f0e-9a52-c8d1b73e0f45),eq(cost_centre_type,work-orders),eq(depth,all))`;\nfilters after a bare top-level comma are dropped.\n\nFor more information on using named filters, see [the docs](https://docs.ctrl-hub.com/api-reference/features#filtering)\n","required":false,"schema":{"type":"string","default":"","isRequired":false,"description":"Filters the response data based on the value provided.\n\nAvailable filters:\n\n- `organisation`: Filter by the ID of the organisation the node belongs to\n- `cost_centre`: Filter by the ID of the node to roll up\n- `cost_centre_type`: Filter by the type of the node to roll up\n (`scheme-contracts`, `schemes`, `work-orders`, `operations`)\n- `depth`: Optional. How much of the subtree to return: `self` (the\n default, and the same as omitting the term) returns one element, the\n roll-up for the filtered node; `all` returns one element per node in\n the subtree beneath and including it, so a client can see which\n scheme, work order or operation is holding the money rather than only\n the total beneath it. Matching is exact lowercase; any other value is\n rejected with `CH.004.211`.\n\nA roll-up is derived from a cost centre, so `organisation`, `cost_centre`\nand `cost_centre_type` must be given **together** — they identify the node\nwhose subtree is summed. Supplying some but not all of them is rejected\nwith `CH.004.211` rather than answered, because a partly-filtered roll-up\nwould return a total for the wrong scope. Supplying none of them returns\nan empty collection, as any unfiltered collection read does.\n\nWrap them in `and()`, as in\n`and(eq(organisation,c000c344-8847-47da-a091-32e75902d3b1),eq(cost_centre,7f3a2c18-64bd-4f0e-9a52-c8d1b73e0f45),eq(cost_centre_type,work-orders),eq(depth,all))`;\nfilters after a bare top-level comma are dropped.\n\nFor more information on using named filters, see [the docs](https://docs.ctrl-hub.com/api-reference/features#filtering)\n","uniqueKey":"","typeLabel":"string"}},"ac6b9067-4e10-4700-85a8-c8eaae5e27b8":{"name":"limit","in":"query","description":"Limit the number of resources returned by the API","required":false,"schema":{"type":"integer","format":"int64","minimum":1,"default":100,"isRequired":false,"description":"Limit the number of resources returned by the API","uniqueKey":"","typeLabel":"integer\u003cint64>"}},"7fb8cee4-68cc-4a6f-96d7-32bef1068412":{"name":"offset","in":"query","description":"Offset the resources returned by the API","required":false,"schema":{"type":"integer","format":"int64","minimum":0,"default":0,"isRequired":false,"description":"Offset the resources returned by the API","uniqueKey":"","typeLabel":"integer\u003cint64>"}},"305eff33-396b-4b1c-88d9-982b3eab779e":{"name":"page","in":"query","description":"JSON:API pagination, as `page[limit]` and `page[offset]`. The same as the top-level `limit` and `offset` parameters; when both forms are sent, `page[...]` wins.\n","required":false,"style":"deepObject","explode":true,"schema":{"type":"object","additionalProperties":false,"properties":{"limit":{"type":"integer","format":"int64","minimum":1,"description":"Limit the number of resources returned by the API. Defaults to the operation's `limit` default.","uniqueKey":"limit","typeLabel":"integer\u003cint64>"},"offset":{"type":"integer","format":"int64","minimum":0,"description":"Offset the resources returned by the API. Defaults to 0.","uniqueKey":"offset","typeLabel":"integer\u003cint64>"}},"isRequired":false,"description":"JSON:API pagination, as `page[limit]` and `page[offset]`. The same as the top-level `limit` and `offset` parameters; when both forms are sent, `page[...]` wins.\n","uniqueKey":"","typeLabel":"object"}}},"responses":{"1326529f-9697-4628-a42d-d741da564923":{"description":"List of cost roll-ups.","headers":{"Content-Type":{"description":"The content type of the response","schema":{"type":"string"},"example":"application/vnd.api+json"},"Content-Length":{"description":"The length of the response body in bytes","schema":{"type":"integer","format":"int32"},"example":1234},"X-Request-ID":{"description":"An ID that can be provided when reporting bugs to help identify the issue","schema":{"type":"string"},"example":"8470f56af4cf25e22be08e72c70dbbdc"}},"content":{"application/vnd.api+json":{"schema":{"type":"object","description":"JSON API response object","required":["jsonapi","meta","data"],"properties":{"data":{"title":"A list of cost roll-ups","type":"array","items":{"type":"object","description":"A cost roll-up — what one node of the job hierarchy costs, and what everything\nbeneath it costs.\n\nThe resource is derived and entirely read-only: there is nothing to create,\nupdate or delete. It is keyed on the cost centre rather than on a cost sheet,\nbecause roll-up is a property of the node. A contract nobody has costed\ndirectly still has a real total from the work orders beneath it, so its\nroll-up is readable without an empty sheet having to exist for it. The `id` is\nthe cost centre's own identifier.\n\nIt is gated on the same permission as cost lines, not cost sheets: a roll-up\nreturns nothing but money.\n","required":["id","type","attributes"],"properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier of the cost centre the roll-up is for. A roll-up has\nno identity of its own — it is derived from the node and the sheets\nbeneath it.\n","isRequired":true,"uniqueKey":"data.items.[INDEX].id","typeLabel":"string\u003cuuid>"},"type":{"type":"string","const":"cost-rollups","isRequired":true,"uniqueKey":"data.items.[INDEX].type","typeLabel":"string"},"attributes":{"type":"object","description":"Attributes for a cost roll-up","required":["cost_centre_id","cost_centre_type","parent_cost_centre_id","parent_cost_centre_type","name","code","has_cost_sheet","direct","rolled","by_status","estimated"],"properties":{"cost_centre_id":{"type":"string","format":"uuid","description":"The unique identifier of the node the roll-up is for. Read it together\nwith `cost_centre_type`, which names the resource type it points at.\n","readOnly":true,"examples":["7f3a2c18-64bd-4f0e-9a52-c8d1b73e0f45"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.cost_centre_id","typeLabel":"string\u003cuuid>"},"cost_centre_type":{"type":"string","description":"The level of the job hierarchy the roll-up is for.","enum":["scheme-contracts","schemes","work-orders","operations"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.cost_centre_type","typeLabel":"enum\u003cstring>"},"parent_cost_centre_id":{"oneOf":[{"type":"string","format":"uuid","description":"The unique identifier of this node's immediate parent in the job\nhierarchy. Null on the subtree's root — the node named by the filter\nhas nothing above it in this response to point at.\n","readOnly":true,"examples":["c000c344-8847-47da-a091-32e75902d3b1"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.parent_cost_centre_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","description":"The unique identifier of this node's immediate parent in the job\nhierarchy. Null on the subtree's root — the node named by the filter\nhas nothing above it in this response to point at.\n","readOnly":true,"examples":["c000c344-8847-47da-a091-32e75902d3b1"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.parent_cost_centre_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.parent_cost_centre_id","typeLabel":"string\u003cuuid> | null"},"parent_cost_centre_type":{"oneOf":[{"type":"string","description":"The resource type of `parent_cost_centre_id`. It travels with the id\nfor the same reason `cost_centre_type` travels with `cost_centre_id`:\nthe four hierarchy levels are separate id spaces, so an id on its own\nidentifies nothing a client can navigate to. Null exactly when\n`parent_cost_centre_id` is null.\n","enum":["scheme-contracts","schemes","work-orders","operations"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.parent_cost_centre_type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"The resource type of `parent_cost_centre_id`. It travels with the id\nfor the same reason `cost_centre_type` travels with `cost_centre_id`:\nthe four hierarchy levels are separate id spaces, so an id on its own\nidentifies nothing a client can navigate to. Null exactly when\n`parent_cost_centre_id` is null.\n","isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.parent_cost_centre_type.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.parent_cost_centre_type","typeLabel":"enum\u003cstring> | null"},"name":{"type":"string","description":"The node's display name. Empty on the subtree's root: the walk reads\na node's children to build their roll-ups and never reads the root's\nown document, so there is nothing to read the root's name from.\n","readOnly":true,"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.name","typeLabel":"string"},"code":{"type":"string","description":"The node's code. Empty for a scheme contract, which has no code.\n","readOnly":true,"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.code","typeLabel":"string"},"has_cost_sheet":{"type":"boolean","description":"Whether this node has a cost sheet of its own, even one with no lines\non it yet. Separates \"someone started costing this node and entered\nnothing\" from \"nobody has costed it\" — both otherwise total zero in\n`direct`.\n","readOnly":true,"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.has_cost_sheet","typeLabel":"boolean"},"direct":{"type":"object","description":"What this node's own cost sheet comes to, ignoring everything beneath it.\nZero where the node has never been costed directly.\n","required":["cost","charge","profit","categories"],"properties":{"cost":{"type":"object","description":"The sum of every line's amount — what the work cost.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"The amount in the currency's minor units, for example 9250 for GBP 92.50","examples":[9250],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.direct.cost.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"The ISO 4217 alphabetic currency code","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$","examples":["GBP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.direct.cost.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.direct.cost","typeLabel":"object"},"charge":{"type":"object","description":"The sum of every line's charge — what the work sells for.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"The amount in the currency's minor units, for example 9250 for GBP 92.50","examples":[9250],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.direct.charge.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"The ISO 4217 alphabetic currency code","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$","examples":["GBP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.direct.charge.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.direct.charge","typeLabel":"object"},"profit":{"type":"object","description":"`charge` less `cost`. Negative where the work sells for less than it cost.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"The amount in the currency's minor units, for example 9250 for GBP 92.50","examples":[9250],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.direct.profit.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"The ISO 4217 alphabetic currency code","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$","examples":["GBP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.direct.profit.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.direct.profit","typeLabel":"object"},"categories":{"type":"object","description":"`cost` split by the kind of spend it represents. The split reconciles: the\nthree categories sum to `cost`.\n","required":["material","labour","misc","contractor"],"properties":{"material":{"type":"object","description":"The part of the cost spent on materials.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"The amount in the currency's minor units, for example 9250 for GBP 92.50","examples":[9250],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.direct.categories.material.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"The ISO 4217 alphabetic currency code","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$","examples":["GBP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.direct.categories.material.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.direct.categories.material","typeLabel":"object"},"labour":{"type":"object","description":"The part of the cost spent on labour.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"The amount in the currency's minor units, for example 9250 for GBP 92.50","examples":[9250],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.direct.categories.labour.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"The ISO 4217 alphabetic currency code","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$","examples":["GBP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.direct.categories.labour.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.direct.categories.labour","typeLabel":"object"},"misc":{"type":"object","description":"The part of the cost spent on anything else.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"The amount in the currency's minor units, for example 9250 for GBP 92.50","examples":[9250],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.direct.categories.misc.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"The ISO 4217 alphabetic currency code","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$","examples":["GBP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.direct.categories.misc.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.direct.categories.misc","typeLabel":"object"},"contractor":{"type":"object","description":"The part of the cost spent on contractors.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"The amount in the currency's minor units, for example 9250 for GBP 92.50","examples":[9250],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.direct.categories.contractor.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"The ISO 4217 alphabetic currency code","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$","examples":["GBP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.direct.categories.contractor.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.direct.categories.contractor","typeLabel":"object"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.direct.categories","typeLabel":"object"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.direct","typeLabel":"object"},"rolled":{"type":"object","description":"`direct` plus every descendant's direct total. For an operation — a leaf —\nthis equals `direct`.\n\nSoft-deleted nodes are left out of the walk, so deleting a work order\nremoves its costs from every ancestor's rolled total.\n","required":["cost","charge","profit","categories"],"properties":{"cost":{"type":"object","description":"The sum of every line's amount — what the work cost.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"The amount in the currency's minor units, for example 9250 for GBP 92.50","examples":[9250],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.rolled.cost.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"The ISO 4217 alphabetic currency code","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$","examples":["GBP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.rolled.cost.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.rolled.cost","typeLabel":"object"},"charge":{"type":"object","description":"The sum of every line's charge — what the work sells for.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"The amount in the currency's minor units, for example 9250 for GBP 92.50","examples":[9250],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.rolled.charge.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"The ISO 4217 alphabetic currency code","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$","examples":["GBP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.rolled.charge.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.rolled.charge","typeLabel":"object"},"profit":{"type":"object","description":"`charge` less `cost`. Negative where the work sells for less than it cost.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"The amount in the currency's minor units, for example 9250 for GBP 92.50","examples":[9250],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.rolled.profit.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"The ISO 4217 alphabetic currency code","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$","examples":["GBP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.rolled.profit.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.rolled.profit","typeLabel":"object"},"categories":{"type":"object","description":"`cost` split by the kind of spend it represents. The split reconciles: the\nthree categories sum to `cost`.\n","required":["material","labour","misc","contractor"],"properties":{"material":{"type":"object","description":"The part of the cost spent on materials.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"The amount in the currency's minor units, for example 9250 for GBP 92.50","examples":[9250],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.rolled.categories.material.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"The ISO 4217 alphabetic currency code","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$","examples":["GBP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.rolled.categories.material.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.rolled.categories.material","typeLabel":"object"},"labour":{"type":"object","description":"The part of the cost spent on labour.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"The amount in the currency's minor units, for example 9250 for GBP 92.50","examples":[9250],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.rolled.categories.labour.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"The ISO 4217 alphabetic currency code","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$","examples":["GBP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.rolled.categories.labour.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.rolled.categories.labour","typeLabel":"object"},"misc":{"type":"object","description":"The part of the cost spent on anything else.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"The amount in the currency's minor units, for example 9250 for GBP 92.50","examples":[9250],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.rolled.categories.misc.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"The ISO 4217 alphabetic currency code","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$","examples":["GBP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.rolled.categories.misc.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.rolled.categories.misc","typeLabel":"object"},"contractor":{"type":"object","description":"The part of the cost spent on contractors.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"The amount in the currency's minor units, for example 9250 for GBP 92.50","examples":[9250],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.rolled.categories.contractor.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"The ISO 4217 alphabetic currency code","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$","examples":["GBP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.rolled.categories.contractor.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.rolled.categories.contractor","typeLabel":"object"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.rolled.categories","typeLabel":"object"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.rolled","typeLabel":"object"},"by_status":{"type":"object","description":"`rolled` split by the status of the cost sheet each line sits on, so a\nclient can answer \"what is my approved liability, ignoring anything still\nquoted\" by summing only the statuses it wants — no second request per\ncombination. Summing all three entries gives `rolled` back.\n","readOnly":true,"required":["quoted","approved","completed"],"properties":{"quoted":{"type":"object","description":"The part of `rolled` sitting on sheets that are still priced estimates.","required":["cost","charge","profit","categories"],"properties":{"cost":{"type":"object","description":"The sum of every line's amount — what the work cost.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"The amount in the currency's minor units, for example 9250 for GBP 92.50","examples":[9250],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.quoted.cost.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"The ISO 4217 alphabetic currency code","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$","examples":["GBP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.quoted.cost.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.quoted.cost","typeLabel":"object"},"charge":{"type":"object","description":"The sum of every line's charge — what the work sells for.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"The amount in the currency's minor units, for example 9250 for GBP 92.50","examples":[9250],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.quoted.charge.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"The ISO 4217 alphabetic currency code","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$","examples":["GBP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.quoted.charge.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.quoted.charge","typeLabel":"object"},"profit":{"type":"object","description":"`charge` less `cost`. Negative where the work sells for less than it cost.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"The amount in the currency's minor units, for example 9250 for GBP 92.50","examples":[9250],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.quoted.profit.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"The ISO 4217 alphabetic currency code","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$","examples":["GBP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.quoted.profit.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.quoted.profit","typeLabel":"object"},"categories":{"type":"object","description":"`cost` split by the kind of spend it represents. The split reconciles: the\nthree categories sum to `cost`.\n","required":["material","labour","misc","contractor"],"properties":{"material":{"type":"object","description":"The part of the cost spent on materials.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"The amount in the currency's minor units, for example 9250 for GBP 92.50","examples":[9250],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.quoted.categories.material.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"The ISO 4217 alphabetic currency code","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$","examples":["GBP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.quoted.categories.material.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.quoted.categories.material","typeLabel":"object"},"labour":{"type":"object","description":"The part of the cost spent on labour.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"The amount in the currency's minor units, for example 9250 for GBP 92.50","examples":[9250],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.quoted.categories.labour.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"The ISO 4217 alphabetic currency code","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$","examples":["GBP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.quoted.categories.labour.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.quoted.categories.labour","typeLabel":"object"},"misc":{"type":"object","description":"The part of the cost spent on anything else.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"The amount in the currency's minor units, for example 9250 for GBP 92.50","examples":[9250],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.quoted.categories.misc.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"The ISO 4217 alphabetic currency code","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$","examples":["GBP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.quoted.categories.misc.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.quoted.categories.misc","typeLabel":"object"},"contractor":{"type":"object","description":"The part of the cost spent on contractors.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"The amount in the currency's minor units, for example 9250 for GBP 92.50","examples":[9250],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.quoted.categories.contractor.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"The ISO 4217 alphabetic currency code","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$","examples":["GBP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.quoted.categories.contractor.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.quoted.categories.contractor","typeLabel":"object"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.quoted.categories","typeLabel":"object"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.quoted","typeLabel":"object"},"approved":{"type":"object","description":"The part of `rolled` sitting on sheets that have been agreed.","required":["cost","charge","profit","categories"],"properties":{"cost":{"type":"object","description":"The sum of every line's amount — what the work cost.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"The amount in the currency's minor units, for example 9250 for GBP 92.50","examples":[9250],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.approved.cost.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"The ISO 4217 alphabetic currency code","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$","examples":["GBP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.approved.cost.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.approved.cost","typeLabel":"object"},"charge":{"type":"object","description":"The sum of every line's charge — what the work sells for.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"The amount in the currency's minor units, for example 9250 for GBP 92.50","examples":[9250],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.approved.charge.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"The ISO 4217 alphabetic currency code","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$","examples":["GBP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.approved.charge.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.approved.charge","typeLabel":"object"},"profit":{"type":"object","description":"`charge` less `cost`. Negative where the work sells for less than it cost.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"The amount in the currency's minor units, for example 9250 for GBP 92.50","examples":[9250],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.approved.profit.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"The ISO 4217 alphabetic currency code","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$","examples":["GBP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.approved.profit.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.approved.profit","typeLabel":"object"},"categories":{"type":"object","description":"`cost` split by the kind of spend it represents. The split reconciles: the\nthree categories sum to `cost`.\n","required":["material","labour","misc","contractor"],"properties":{"material":{"type":"object","description":"The part of the cost spent on materials.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"The amount in the currency's minor units, for example 9250 for GBP 92.50","examples":[9250],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.approved.categories.material.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"The ISO 4217 alphabetic currency code","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$","examples":["GBP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.approved.categories.material.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.approved.categories.material","typeLabel":"object"},"labour":{"type":"object","description":"The part of the cost spent on labour.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"The amount in the currency's minor units, for example 9250 for GBP 92.50","examples":[9250],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.approved.categories.labour.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"The ISO 4217 alphabetic currency code","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$","examples":["GBP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.approved.categories.labour.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.approved.categories.labour","typeLabel":"object"},"misc":{"type":"object","description":"The part of the cost spent on anything else.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"The amount in the currency's minor units, for example 9250 for GBP 92.50","examples":[9250],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.approved.categories.misc.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"The ISO 4217 alphabetic currency code","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$","examples":["GBP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.approved.categories.misc.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.approved.categories.misc","typeLabel":"object"},"contractor":{"type":"object","description":"The part of the cost spent on contractors.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"The amount in the currency's minor units, for example 9250 for GBP 92.50","examples":[9250],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.approved.categories.contractor.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"The ISO 4217 alphabetic currency code","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$","examples":["GBP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.approved.categories.contractor.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.approved.categories.contractor","typeLabel":"object"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.approved.categories","typeLabel":"object"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.approved","typeLabel":"object"},"completed":{"type":"object","description":"The part of `rolled` sitting on sheets whose costs are final.","required":["cost","charge","profit","categories"],"properties":{"cost":{"type":"object","description":"The sum of every line's amount — what the work cost.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"The amount in the currency's minor units, for example 9250 for GBP 92.50","examples":[9250],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.completed.cost.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"The ISO 4217 alphabetic currency code","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$","examples":["GBP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.completed.cost.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.completed.cost","typeLabel":"object"},"charge":{"type":"object","description":"The sum of every line's charge — what the work sells for.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"The amount in the currency's minor units, for example 9250 for GBP 92.50","examples":[9250],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.completed.charge.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"The ISO 4217 alphabetic currency code","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$","examples":["GBP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.completed.charge.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.completed.charge","typeLabel":"object"},"profit":{"type":"object","description":"`charge` less `cost`. Negative where the work sells for less than it cost.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"The amount in the currency's minor units, for example 9250 for GBP 92.50","examples":[9250],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.completed.profit.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"The ISO 4217 alphabetic currency code","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$","examples":["GBP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.completed.profit.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.completed.profit","typeLabel":"object"},"categories":{"type":"object","description":"`cost` split by the kind of spend it represents. The split reconciles: the\nthree categories sum to `cost`.\n","required":["material","labour","misc","contractor"],"properties":{"material":{"type":"object","description":"The part of the cost spent on materials.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"The amount in the currency's minor units, for example 9250 for GBP 92.50","examples":[9250],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.completed.categories.material.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"The ISO 4217 alphabetic currency code","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$","examples":["GBP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.completed.categories.material.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.completed.categories.material","typeLabel":"object"},"labour":{"type":"object","description":"The part of the cost spent on labour.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"The amount in the currency's minor units, for example 9250 for GBP 92.50","examples":[9250],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.completed.categories.labour.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"The ISO 4217 alphabetic currency code","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$","examples":["GBP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.completed.categories.labour.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.completed.categories.labour","typeLabel":"object"},"misc":{"type":"object","description":"The part of the cost spent on anything else.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"The amount in the currency's minor units, for example 9250 for GBP 92.50","examples":[9250],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.completed.categories.misc.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"The ISO 4217 alphabetic currency code","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$","examples":["GBP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.completed.categories.misc.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.completed.categories.misc","typeLabel":"object"},"contractor":{"type":"object","description":"The part of the cost spent on contractors.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"The amount in the currency's minor units, for example 9250 for GBP 92.50","examples":[9250],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.completed.categories.contractor.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"The ISO 4217 alphabetic currency code","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$","examples":["GBP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.completed.categories.contractor.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.completed.categories.contractor","typeLabel":"object"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.completed.categories","typeLabel":"object"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status.completed","typeLabel":"object"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.by_status","typeLabel":"object"},"estimated":{"type":"object","description":"What this node's plan comes to, alongside what it actually cost.\n`direct`, `rolled` and `by_status` above are unchanged by this field and\nkeep their existing meaning — they walk only lines with\n`line_type: actual`, exactly as before this was added. `estimated` is\nthe same walk over the same hierarchy, but over lines with\n`line_type: estimated` instead.\n\nBecause both sides come back on the one roll-up, estimate-versus-actual\nis a subtraction the client does locally — `estimated.rolled` less\n`rolled` — rather than a second request against a separate resource.\n\nAn estimate covers all the work beneath the node that carries it, so\nthe estimate side counts a node's estimate unless something ABOVE it,\ninside this subtree, has already estimated the same work. A scheme's\nown estimate therefore shadows everything under it; a work order\nestimated directly shadows its operations; and a sibling work order\nthat was only estimated at its operations still contributes those,\nbecause nothing above them estimated that work.\n\nThis is per branch, not per level: two branches estimated at different\ndepths both count in full. Only the work actually covered twice is\ndropped.\n\nIt differs from `rolled`, which always sums every sheet in the subtree,\nbecause counting both a work order's estimate and its own operations'\nwould count the same work twice.\n","readOnly":true,"required":["direct","rolled"],"properties":{"direct":{"type":"object","description":"What this node's own cost sheet estimates, ignoring everything\nbeneath it. Zero where the node has no estimate lines of its own.\n","required":["cost","charge","profit","categories"],"properties":{"cost":{"type":"object","description":"The sum of every line's amount — what the work cost.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"The amount in the currency's minor units, for example 9250 for GBP 92.50","examples":[9250],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.estimated.direct.cost.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"The ISO 4217 alphabetic currency code","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$","examples":["GBP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.estimated.direct.cost.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.estimated.direct.cost","typeLabel":"object"},"charge":{"type":"object","description":"The sum of every line's charge — what the work sells for.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"The amount in the currency's minor units, for example 9250 for GBP 92.50","examples":[9250],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.estimated.direct.charge.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"The ISO 4217 alphabetic currency code","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$","examples":["GBP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.estimated.direct.charge.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.estimated.direct.charge","typeLabel":"object"},"profit":{"type":"object","description":"`charge` less `cost`. Negative where the work sells for less than it cost.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"The amount in the currency's minor units, for example 9250 for GBP 92.50","examples":[9250],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.estimated.direct.profit.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"The ISO 4217 alphabetic currency code","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$","examples":["GBP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.estimated.direct.profit.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.estimated.direct.profit","typeLabel":"object"},"categories":{"type":"object","description":"`cost` split by the kind of spend it represents. The split reconciles: the\nthree categories sum to `cost`.\n","required":["material","labour","misc","contractor"],"properties":{"material":{"type":"object","description":"The part of the cost spent on materials.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"The amount in the currency's minor units, for example 9250 for GBP 92.50","examples":[9250],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.estimated.direct.categories.material.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"The ISO 4217 alphabetic currency code","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$","examples":["GBP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.estimated.direct.categories.material.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.estimated.direct.categories.material","typeLabel":"object"},"labour":{"type":"object","description":"The part of the cost spent on labour.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"The amount in the currency's minor units, for example 9250 for GBP 92.50","examples":[9250],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.estimated.direct.categories.labour.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"The ISO 4217 alphabetic currency code","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$","examples":["GBP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.estimated.direct.categories.labour.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.estimated.direct.categories.labour","typeLabel":"object"},"misc":{"type":"object","description":"The part of the cost spent on anything else.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"The amount in the currency's minor units, for example 9250 for GBP 92.50","examples":[9250],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.estimated.direct.categories.misc.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"The ISO 4217 alphabetic currency code","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$","examples":["GBP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.estimated.direct.categories.misc.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.estimated.direct.categories.misc","typeLabel":"object"},"contractor":{"type":"object","description":"The part of the cost spent on contractors.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"The amount in the currency's minor units, for example 9250 for GBP 92.50","examples":[9250],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.estimated.direct.categories.contractor.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"The ISO 4217 alphabetic currency code","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$","examples":["GBP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.estimated.direct.categories.contractor.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.estimated.direct.categories.contractor","typeLabel":"object"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.estimated.direct.categories","typeLabel":"object"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.estimated.direct","typeLabel":"object"},"rolled":{"type":"object","description":"Every estimate in the subtree that no ancestor estimate already\ncovers — the nearest estimate to the top of each branch, summed\nacross branches. Where nothing beneath the node carries an\nestimate, this is zero.\n","required":["cost","charge","profit","categories"],"properties":{"cost":{"type":"object","description":"The sum of every line's amount — what the work cost.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"The amount in the currency's minor units, for example 9250 for GBP 92.50","examples":[9250],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.estimated.rolled.cost.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"The ISO 4217 alphabetic currency code","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$","examples":["GBP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.estimated.rolled.cost.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.estimated.rolled.cost","typeLabel":"object"},"charge":{"type":"object","description":"The sum of every line's charge — what the work sells for.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"The amount in the currency's minor units, for example 9250 for GBP 92.50","examples":[9250],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.estimated.rolled.charge.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"The ISO 4217 alphabetic currency code","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$","examples":["GBP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.estimated.rolled.charge.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.estimated.rolled.charge","typeLabel":"object"},"profit":{"type":"object","description":"`charge` less `cost`. Negative where the work sells for less than it cost.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"The amount in the currency's minor units, for example 9250 for GBP 92.50","examples":[9250],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.estimated.rolled.profit.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"The ISO 4217 alphabetic currency code","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$","examples":["GBP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.estimated.rolled.profit.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.estimated.rolled.profit","typeLabel":"object"},"categories":{"type":"object","description":"`cost` split by the kind of spend it represents. The split reconciles: the\nthree categories sum to `cost`.\n","required":["material","labour","misc","contractor"],"properties":{"material":{"type":"object","description":"The part of the cost spent on materials.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"The amount in the currency's minor units, for example 9250 for GBP 92.50","examples":[9250],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.estimated.rolled.categories.material.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"The ISO 4217 alphabetic currency code","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$","examples":["GBP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.estimated.rolled.categories.material.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.estimated.rolled.categories.material","typeLabel":"object"},"labour":{"type":"object","description":"The part of the cost spent on labour.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"The amount in the currency's minor units, for example 9250 for GBP 92.50","examples":[9250],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.estimated.rolled.categories.labour.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"The ISO 4217 alphabetic currency code","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$","examples":["GBP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.estimated.rolled.categories.labour.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.estimated.rolled.categories.labour","typeLabel":"object"},"misc":{"type":"object","description":"The part of the cost spent on anything else.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"The amount in the currency's minor units, for example 9250 for GBP 92.50","examples":[9250],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.estimated.rolled.categories.misc.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"The ISO 4217 alphabetic currency code","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$","examples":["GBP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.estimated.rolled.categories.misc.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.estimated.rolled.categories.misc","typeLabel":"object"},"contractor":{"type":"object","description":"The part of the cost spent on contractors.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"The amount in the currency's minor units, for example 9250 for GBP 92.50","examples":[9250],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.estimated.rolled.categories.contractor.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"The ISO 4217 alphabetic currency code","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$","examples":["GBP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.estimated.rolled.categories.contractor.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.estimated.rolled.categories.contractor","typeLabel":"object"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.estimated.rolled.categories","typeLabel":"object"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.estimated.rolled","typeLabel":"object"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes.estimated","typeLabel":"object"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].attributes","typeLabel":"object"}},"uniqueKey":"data.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data","typeLabel":"A list of cost roll-ups · object[]"},"meta":{"type":"object","required":["pagination"],"properties":{"pagination":{"type":"object","description":"Represents pagination details for API responses","required":["counts","current_page","offsets","requested"],"properties":{"counts":{"type":"object","required":["pages","resources"],"properties":{"pages":{"type":"integer","examples":[1],"isRequired":true,"uniqueKey":"meta.pagination.counts.pages","typeLabel":"integer"},"resources":{"type":"integer","examples":[1],"isRequired":true,"uniqueKey":"meta.pagination.counts.resources","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"meta.pagination.counts","typeLabel":"object"},"current_page":{"type":"integer","examples":[1],"isRequired":true,"uniqueKey":"meta.pagination.current_page","typeLabel":"integer"},"offsets":{"type":"object","required":["next","previous"],"properties":{"next":{"oneOf":[{"type":"integer","examples":[null],"isRequired":true,"uniqueKey":"meta.pagination.offsets.next.oneOf.0","typeLabel":"integer"},{"type":"null","examples":[null],"isRequired":true,"uniqueKey":"meta.pagination.offsets.next.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"meta.pagination.offsets.next","typeLabel":"integer | null"},"previous":{"oneOf":[{"type":"integer","examples":[null],"isRequired":true,"uniqueKey":"meta.pagination.offsets.previous.oneOf.0","typeLabel":"integer"},{"type":"null","examples":[null],"isRequired":true,"uniqueKey":"meta.pagination.offsets.previous.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"meta.pagination.offsets.previous","typeLabel":"integer | null"}},"isRequired":true,"uniqueKey":"meta.pagination.offsets","typeLabel":"object"},"requested":{"type":"object","required":["limit","offset"],"properties":{"limit":{"type":"integer","examples":[10],"isRequired":true,"uniqueKey":"meta.pagination.requested.limit","typeLabel":"integer"},"offset":{"type":"integer","examples":[0],"isRequired":true,"uniqueKey":"meta.pagination.requested.offset","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"meta.pagination.requested","typeLabel":"object"}},"isRequired":true,"uniqueKey":"meta.pagination","typeLabel":"object"},"features":{"type":"object","description":"Represents feature configurations of the API","properties":{"include":{"type":"object","properties":{"options":{"type":"array","items":{"type":"string","examples":["related.resource"],"uniqueKey":"meta.features.include.options.items.[INDEX]","typeLabel":"string"},"uniqueKey":"meta.features.include.options","typeLabel":"string[]"}},"uniqueKey":"meta.features.include","typeLabel":"object"}},"uniqueKey":"meta.features","typeLabel":"object"}},"isRequired":true,"uniqueKey":"meta","typeLabel":"object"},"jsonapi":{"type":"object","required":["version"],"properties":{"version":{"type":"string","description":"The version of the JSON API specification","examples":["1.0"],"isRequired":true,"uniqueKey":"jsonapi.version","typeLabel":"string"}},"isRequired":true,"uniqueKey":"jsonapi","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":[{"id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","type":"cost-rollups","attributes":{"cost_centre_id":"7f3a2c18-64bd-4f0e-9a52-c8d1b73e0f45","cost_centre_type":"scheme-contracts","parent_cost_centre_id":"c000c344-8847-47da-a091-32e75902d3b1","parent_cost_centre_type":"scheme-contracts","name":"\u003cstring>","code":"\u003cstring>","has_cost_sheet":true,"direct":{"cost":{"amount":9250,"currency":"GBP"},"charge":{"amount":9250,"currency":"GBP"},"profit":{"amount":9250,"currency":"GBP"},"categories":{"material":{"amount":9250,"currency":"GBP"},"labour":{"amount":9250,"currency":"GBP"},"misc":{"amount":9250,"currency":"GBP"},"contractor":{"amount":9250,"currency":"GBP"}}},"rolled":{"cost":{"amount":9250,"currency":"GBP"},"charge":{"amount":9250,"currency":"GBP"},"profit":{"amount":9250,"currency":"GBP"},"categories":{"material":{"amount":9250,"currency":"GBP"},"labour":{"amount":9250,"currency":"GBP"},"misc":{"amount":9250,"currency":"GBP"},"contractor":{"amount":9250,"currency":"GBP"}}},"by_status":{"quoted":{"cost":{"amount":9250,"currency":"GBP"},"charge":{"amount":9250,"currency":"GBP"},"profit":{"amount":9250,"currency":"GBP"},"categories":{"material":{"amount":9250,"currency":"GBP"},"labour":{"amount":9250,"currency":"GBP"},"misc":{"amount":9250,"currency":"GBP"},"contractor":{"amount":9250,"currency":"GBP"}}},"approved":{"cost":{"amount":9250,"currency":"GBP"},"charge":{"amount":9250,"currency":"GBP"},"profit":{"amount":9250,"currency":"GBP"},"categories":{"material":{"amount":9250,"currency":"GBP"},"labour":{"amount":9250,"currency":"GBP"},"misc":{"amount":9250,"currency":"GBP"},"contractor":{"amount":9250,"currency":"GBP"}}},"completed":{"cost":{"amount":9250,"currency":"GBP"},"charge":{"amount":9250,"currency":"GBP"},"profit":{"amount":9250,"currency":"GBP"},"categories":{"material":{"amount":9250,"currency":"GBP"},"labour":{"amount":9250,"currency":"GBP"},"misc":{"amount":9250,"currency":"GBP"},"contractor":{"amount":9250,"currency":"GBP"}}}},"estimated":{"direct":{"cost":{"amount":9250,"currency":"GBP"},"charge":{"amount":9250,"currency":"GBP"},"profit":{"amount":9250,"currency":"GBP"},"categories":{"material":{"amount":9250,"currency":"GBP"},"labour":{"amount":9250,"currency":"GBP"},"misc":{"amount":9250,"currency":"GBP"},"contractor":{"amount":9250,"currency":"GBP"}}},"rolled":{"cost":{"amount":9250,"currency":"GBP"},"charge":{"amount":9250,"currency":"GBP"},"profit":{"amount":9250,"currency":"GBP"},"categories":{"material":{"amount":9250,"currency":"GBP"},"labour":{"amount":9250,"currency":"GBP"},"misc":{"amount":9250,"currency":"GBP"},"contractor":{"amount":9250,"currency":"GBP"}}}}}}],"meta":{"pagination":{"counts":{"pages":1,"resources":1},"current_page":1,"offsets":{"next":null,"previous":null},"requested":{"limit":10,"offset":0}},"features":{"include":{"options":["related.resource"]}}},"jsonapi":{"version":"1.0"}}}},"exampleType":"generated"}},"exampleType":"generated"},"b08019ae-bc2d-42ac-bbec-ead80d0b0c68":{"description":"There was an error with the request - this could be due to an invalid body, query parameters,\nor headers that were sent to the API.\n","headers":{"Content-Type":{"description":"The content type of the response","schema":{"type":"string"},"example":"application/vnd.api+json"},"Content-Length":{"description":"The length of the response body in bytes","schema":{"type":"integer","format":"int32"},"example":1234},"X-Request-ID":{"description":"An ID that can be provided when reporting bugs to help identify the issue","schema":{"type":"string"},"example":"8470f56af4cf25e22be08e72c70dbbdc"}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","description":"An error response","properties":{"id":{"description":"A unique identifier for this particular occurrence of the problem. If you encounter this, please provide us with the error ID and we can investigate it on our side.","type":"string","format":"uuid","examples":["05fc9c8d-73b9-4697-9337-57f7a567a48f"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].id","typeLabel":"string\u003cuuid>"},"status":{"description":"The status code for the error. This might not match the HTTP status code if there are more that one errors to return with different status codes.","type":"string","examples":["401","500"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].status","typeLabel":"string"},"title":{"description":"A human readable title for the error.","type":"string","examples":["You are not authorised to access this resource"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].title","typeLabel":"string"},"detail":{"description":"Where there is more detail that we can provide outside of the title, we will provide it here.","type":"string","examples":["In order to access this resource, you need the 'admin' role."],"uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"},"code":{"description":"A unique code for the error that may help us to diagnose the issue. Not all errors have codes, so this is usually empty.\n`CH.003.080` (403) means the organisation in `meta.organisation_id` requires two-factor authentication and the caller's session does not satisfy it. The caller must set up or use a second factor, or sign in through their organisation's SAML single sign-on. Other OIDC sign-ins do not count.","type":"string","examples":["AUTH.001","CH.003.080"],"uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"source":{"description":"A JSON object containing additional information about the error.","type":"object","properties":{"pointer":{"description":"A JSON Pointer to the value in the request that caused the error.","type":"string","examples":["/data/attributes/email"],"uniqueKey":"errors.items.[INDEX].source.pointer","typeLabel":"string"},"parameter":{"description":"A string indicating which query parameter in the request caused the error.","type":"string","examples":["include"],"uniqueKey":"errors.items.[INDEX].source.parameter","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX].source","typeLabel":"object"},"meta":{"description":"A JSON object containing additional information about the error.\nWhen a parameter caused the error, there will be a `resource` property with the name of the resource that caused the error.\nWhen `code` is `CH.003.080`, `organisation_id` names the organisation that requires two-factor authentication, which the caller's session does not satisfy.","type":"object","properties":{"resource":{"type":"string","description":"The resource a parameter error relates to, such as an unsupported include.","uniqueKey":"errors.items.[INDEX].meta.resource","typeLabel":"string"},"organisation_id":{"type":"string","format":"uuid","examples":["c000c344-8847-47da-a091-32e75902d3b1"],"uniqueKey":"errors.items.[INDEX].meta.organisation_id","typeLabel":"string\u003cuuid>"}},"additionalProperties":true,"uniqueKey":"errors.items.[INDEX].meta","typeLabel":"object"}},"required":["id","status","title"],"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"id":"98ca4a78-b66f-4234-9719-aaf832ee6669","status":"400","title":"A validation error was encountered","source":{"parameter":"include"},"meta":{"resource":"wrong_value"}},"examples":{"Example":{"title":"Example","value":{"id":"98ca4a78-b66f-4234-9719-aaf832ee6669","status":"400","title":"A validation error was encountered","source":{"parameter":"include"},"meta":{"resource":"wrong_value"}}}},"exampleType":"examples"}},"exampleType":"examples"},"70e3facf-f871-4c1b-a157-33e4a4d8d036":{"description":"Authentication failed","headers":{"Content-Type":{"description":"The content type of the response","schema":{"type":"string"},"example":"application/vnd.api+json"},"Content-Length":{"description":"The length of the response body in bytes","schema":{"type":"integer","format":"int32"},"example":1234},"X-Request-ID":{"description":"An ID that can be provided when reporting bugs to help identify the issue","schema":{"type":"string"},"example":"8470f56af4cf25e22be08e72c70dbbdc"}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","description":"An error response","properties":{"id":{"description":"A unique identifier for this particular occurrence of the problem. If you encounter this, please provide us with the error ID and we can investigate it on our side.","type":"string","format":"uuid","examples":["05fc9c8d-73b9-4697-9337-57f7a567a48f"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].id","typeLabel":"string\u003cuuid>"},"status":{"description":"The status code for the error. This might not match the HTTP status code if there are more that one errors to return with different status codes.","type":"string","examples":["401","500"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].status","typeLabel":"string"},"title":{"description":"A human readable title for the error.","type":"string","examples":["You are not authorised to access this resource"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].title","typeLabel":"string"},"detail":{"description":"Where there is more detail that we can provide outside of the title, we will provide it here.","type":"string","examples":["In order to access this resource, you need the 'admin' role."],"uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"},"code":{"description":"A unique code for the error that may help us to diagnose the issue. Not all errors have codes, so this is usually empty.\n`CH.003.080` (403) means the organisation in `meta.organisation_id` requires two-factor authentication and the caller's session does not satisfy it. The caller must set up or use a second factor, or sign in through their organisation's SAML single sign-on. Other OIDC sign-ins do not count.","type":"string","examples":["AUTH.001","CH.003.080"],"uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"source":{"description":"A JSON object containing additional information about the error.","type":"object","properties":{"pointer":{"description":"A JSON Pointer to the value in the request that caused the error.","type":"string","examples":["/data/attributes/email"],"uniqueKey":"errors.items.[INDEX].source.pointer","typeLabel":"string"},"parameter":{"description":"A string indicating which query parameter in the request caused the error.","type":"string","examples":["include"],"uniqueKey":"errors.items.[INDEX].source.parameter","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX].source","typeLabel":"object"},"meta":{"description":"A JSON object containing additional information about the error.\nWhen a parameter caused the error, there will be a `resource` property with the name of the resource that caused the error.\nWhen `code` is `CH.003.080`, `organisation_id` names the organisation that requires two-factor authentication, which the caller's session does not satisfy.","type":"object","properties":{"resource":{"type":"string","description":"The resource a parameter error relates to, such as an unsupported include.","uniqueKey":"errors.items.[INDEX].meta.resource","typeLabel":"string"},"organisation_id":{"type":"string","format":"uuid","examples":["c000c344-8847-47da-a091-32e75902d3b1"],"uniqueKey":"errors.items.[INDEX].meta.organisation_id","typeLabel":"string\u003cuuid>"}},"additionalProperties":true,"uniqueKey":"errors.items.[INDEX].meta","typeLabel":"object"}},"required":["id","status","title"],"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"id":"05fc9c8d-73b9-4697-9337-57f7a567a48f","status":"401","title":"You are not authorised to access this resource","detail":"In order to access this resource, you need the 'admin' role.","code":"AUTH.001"},"examples":{"Example":{"title":"Example","value":{"id":"05fc9c8d-73b9-4697-9337-57f7a567a48f","status":"401","title":"You are not authorised to access this resource","detail":"In order to access this resource, you need the 'admin' role.","code":"AUTH.001"}}},"exampleType":"examples"}},"exampleType":"examples"},"7e598112-1a9c-4bd6-92da-96da3e32dad5":{"description":"The authenticated principal does not hold the grant required for this action","headers":{"Content-Type":{"description":"The content type of the response","schema":{"type":"string"},"example":"application/vnd.api+json"},"Content-Length":{"description":"The length of the response body in bytes","schema":{"type":"integer","format":"int32"},"example":1234},"X-Request-ID":{"description":"An ID that can be provided when reporting bugs to help identify the issue","schema":{"type":"string"},"example":"8470f56af4cf25e22be08e72c70dbbdc"}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","description":"An error response","properties":{"id":{"description":"A unique identifier for this particular occurrence of the problem. If you encounter this, please provide us with the error ID and we can investigate it on our side.","type":"string","format":"uuid","examples":["05fc9c8d-73b9-4697-9337-57f7a567a48f"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].id","typeLabel":"string\u003cuuid>"},"status":{"description":"The status code for the error. This might not match the HTTP status code if there are more that one errors to return with different status codes.","type":"string","examples":["401","500"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].status","typeLabel":"string"},"title":{"description":"A human readable title for the error.","type":"string","examples":["You are not authorised to access this resource"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].title","typeLabel":"string"},"detail":{"description":"Where there is more detail that we can provide outside of the title, we will provide it here.","type":"string","examples":["In order to access this resource, you need the 'admin' role."],"uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"},"code":{"description":"A unique code for the error that may help us to diagnose the issue. Not all errors have codes, so this is usually empty.\n`CH.003.080` (403) means the organisation in `meta.organisation_id` requires two-factor authentication and the caller's session does not satisfy it. The caller must set up or use a second factor, or sign in through their organisation's SAML single sign-on. Other OIDC sign-ins do not count.","type":"string","examples":["AUTH.001","CH.003.080"],"uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"source":{"description":"A JSON object containing additional information about the error.","type":"object","properties":{"pointer":{"description":"A JSON Pointer to the value in the request that caused the error.","type":"string","examples":["/data/attributes/email"],"uniqueKey":"errors.items.[INDEX].source.pointer","typeLabel":"string"},"parameter":{"description":"A string indicating which query parameter in the request caused the error.","type":"string","examples":["include"],"uniqueKey":"errors.items.[INDEX].source.parameter","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX].source","typeLabel":"object"},"meta":{"description":"A JSON object containing additional information about the error.\nWhen a parameter caused the error, there will be a `resource` property with the name of the resource that caused the error.\nWhen `code` is `CH.003.080`, `organisation_id` names the organisation that requires two-factor authentication, which the caller's session does not satisfy.","type":"object","properties":{"resource":{"type":"string","description":"The resource a parameter error relates to, such as an unsupported include.","uniqueKey":"errors.items.[INDEX].meta.resource","typeLabel":"string"},"organisation_id":{"type":"string","format":"uuid","examples":["c000c344-8847-47da-a091-32e75902d3b1"],"uniqueKey":"errors.items.[INDEX].meta.organisation_id","typeLabel":"string\u003cuuid>"}},"additionalProperties":true,"uniqueKey":"errors.items.[INDEX].meta","typeLabel":"object"}},"required":["id","status","title"],"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"errors":[{"id":"1b3f2c30-2d56-4d3a-9c44-9be9c2cbf2f0","status":"403","title":"Forbidden","detail":"You do not hold the grant required for this action.","code":"AUTH.002"}]},"examples":{"Example":{"title":"Example","value":{"errors":[{"id":"1b3f2c30-2d56-4d3a-9c44-9be9c2cbf2f0","status":"403","title":"Forbidden","detail":"You do not hold the grant required for this action.","code":"AUTH.002"}]}}},"exampleType":"examples"}},"exampleType":"examples"},"ed3e5cf4-a982-44b4-9287-920ae92cffc7":{"description":"There was a problem handling the request on the server side","headers":{"Content-Type":{"description":"The content type of the response","schema":{"type":"string"},"example":"application/vnd.api+json"},"Content-Length":{"description":"The length of the response body in bytes","schema":{"type":"integer","format":"int32"},"example":1234},"X-Request-ID":{"description":"An ID that can be provided when reporting bugs to help identify the issue","schema":{"type":"string"},"example":"8470f56af4cf25e22be08e72c70dbbdc"}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","description":"An error response","properties":{"id":{"description":"A unique identifier for this particular occurrence of the problem. If you encounter this, please provide us with the error ID and we can investigate it on our side.","type":"string","format":"uuid","examples":["05fc9c8d-73b9-4697-9337-57f7a567a48f"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].id","typeLabel":"string\u003cuuid>"},"status":{"description":"The status code for the error. This might not match the HTTP status code if there are more that one errors to return with different status codes.","type":"string","examples":["401","500"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].status","typeLabel":"string"},"title":{"description":"A human readable title for the error.","type":"string","examples":["You are not authorised to access this resource"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].title","typeLabel":"string"},"detail":{"description":"Where there is more detail that we can provide outside of the title, we will provide it here.","type":"string","examples":["In order to access this resource, you need the 'admin' role."],"uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"},"code":{"description":"A unique code for the error that may help us to diagnose the issue. Not all errors have codes, so this is usually empty.\n`CH.003.080` (403) means the organisation in `meta.organisation_id` requires two-factor authentication and the caller's session does not satisfy it. The caller must set up or use a second factor, or sign in through their organisation's SAML single sign-on. Other OIDC sign-ins do not count.","type":"string","examples":["AUTH.001","CH.003.080"],"uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"source":{"description":"A JSON object containing additional information about the error.","type":"object","properties":{"pointer":{"description":"A JSON Pointer to the value in the request that caused the error.","type":"string","examples":["/data/attributes/email"],"uniqueKey":"errors.items.[INDEX].source.pointer","typeLabel":"string"},"parameter":{"description":"A string indicating which query parameter in the request caused the error.","type":"string","examples":["include"],"uniqueKey":"errors.items.[INDEX].source.parameter","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX].source","typeLabel":"object"},"meta":{"description":"A JSON object containing additional information about the error.\nWhen a parameter caused the error, there will be a `resource` property with the name of the resource that caused the error.\nWhen `code` is `CH.003.080`, `organisation_id` names the organisation that requires two-factor authentication, which the caller's session does not satisfy.","type":"object","properties":{"resource":{"type":"string","description":"The resource a parameter error relates to, such as an unsupported include.","uniqueKey":"errors.items.[INDEX].meta.resource","typeLabel":"string"},"organisation_id":{"type":"string","format":"uuid","examples":["c000c344-8847-47da-a091-32e75902d3b1"],"uniqueKey":"errors.items.[INDEX].meta.organisation_id","typeLabel":"string\u003cuuid>"}},"additionalProperties":true,"uniqueKey":"errors.items.[INDEX].meta","typeLabel":"object"}},"required":["id","status","title"],"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"id":"fe9d9a69-f0a7-4fdc-bb2c-176027f316c5","status":"500","title":"Internal Server Error","detail":"An unexpected error occurred on the server."},"examples":{"Example":{"title":"Example","value":{"id":"fe9d9a69-f0a7-4fdc-bb2c-176027f316c5","status":"500","title":"Internal Server Error","detail":"An unexpected error occurred on the server."}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"9d2df97b-7bb6-4af9-8d1d-e61f0b1217b9":{"Session":{"description":"Session token for authentication.\n","in":"header","name":"X-Session-Token","type":"apiKey","scopes":[],"schemeName":"Session"}},"25351aea-9665-4414-a575-78873fd3a2a9":{"OAuth2":{"description":"OAuth2 token for authentication.\n","flows":{"clientCredentials":{"scopes":{},"tokenUrl":"https://auth.ctrl-hub.com/oauth2/token"}},"type":"oauth2","scopes":[],"schemeName":"OAuth2"}},"06e64298-5164-46a5-abb3-8464b5c52235":{"Cookie":{"description":"Cookie token for authentication.\n","in":"cookie","name":"ctrl_hub_session","type":"apiKey","scopes":[],"schemeName":"Cookie"}}},"servers":{"1d37f2dd-0bd8-405c-8666-039935a8ee9b":{"description":"Production","url":"https://api.ctrl-hub.com"},"a9c1d015-9d04-44b7-bcdc-63e2b4b15709":{"description":"Staging","url":"https://api.ctrl-hub.dev"},"ef40f0bb-883c-4244-8d93-6849ac26e578":{"description":"Development","url":"https://api.ctrl-hub.run"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"description":"Session token for authentication.\n","in":"header","name":"X-Session-Token","type":"apiKey","scopes":[],"schemeName":"Session"},"schema":{"title":"X-Session-Token","type":"string","description":"Session token for authentication.\n","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"Session","name":"X-Session-Token"}],"title":"Session"},{"schemes":[{"scheme":{"description":"OAuth2 token for authentication.\n","flows":{"clientCredentials":{"scopes":{},"tokenUrl":"https://auth.ctrl-hub.com/oauth2/token"}},"type":"oauth2","scopes":[],"schemeName":"OAuth2"},"schema":{"title":"OAuth2 Auth","type":"string","isRequired":true,"description":"OAuth2 token for authentication.\n","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"OAuth2","name":"Authorization"}],"title":"OAuth2"},{"schemes":[{"scheme":{"description":"Cookie token for authentication.\n","in":"cookie","name":"ctrl_hub_session","type":"apiKey","scopes":[],"schemeName":"Cookie"},"schema":{"title":"ctrl_hub_session","type":"string","description":"Cookie token for authentication.\n","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"Cookie","name":"ctrl_hub_session"}],"title":"Cookie"}]},"originalFileLocation":"api-reference/openapi.yaml"},"subdomain":"ctrlhub-2ae4bef7","siteName":"Ctrl Hub","title":"List cost roll-ups - Ctrl Hub","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-03T17:16:26.879Z","originalFileLocation":"api-reference/costs/list-cost-roll-ups.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=\"Read what a node of the job hierarchy costs, and what everything beneath it costs. A roll-up is derived and read-only — there is no create, update or delete. It is keyed on the cost centre rather than on a cost sheet, so a contract nobody has costed directly still returns a real total from the work orders beneath it, without an empty sheet having to exist for it. Filter by organisation, cost_centre and cost_centre_type together for the node you want rolled up. All three are required as a set; supplying some but not all of them is rejected rather than answered. By default this returns exactly one element: the roll-up for the node named by the filter. Add eq(depth,all) to the filter to get one element per node in the subtree beneath and including that node instead, so a client can see which scheme, work order or operation is holding the money rather than only how much is below in total. Any other depth value is rejected rather than answered. Every element, in either mode, also carries parent_cost_centre_id and parent_cost_centre_type (both null on the subtree\u0026#x27;s root), name, code and has_cost_sheet — enough on its own to rebuild the shape of the subtree and label each node, since a depth=all response is otherwise just a bag of totals with no relationships between them. Each roll-up returns the node\u0026#x27;s own direct total, the rolled total that includes every descendant, and by_status — rolled split by the status of the sheet each line sits on, so a client can sum only the statuses it cares about without asking again. Soft-deleted nodes are left out of the walk. Totals are sums of the snapshots stored on the cost lines themselves, so revising a rate or a margin in the cost register never moves a roll-up. This read is gated on permission to view cost lines rather than cost sheets: a roll-up returns nothing but money.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Ctrl Hub\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/ctrlhub-2ae4bef7/3yP0v1Sa3ugLhZQi/_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/ctrlhub-2ae4bef7/3yP0v1Sa3ugLhZQi/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/ctrlhub-2ae4bef7/3yP0v1Sa3ugLhZQi/_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/ctrlhub-2ae4bef7/3yP0v1Sa3ugLhZQi/_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/ctrlhub-2ae4bef7/3yP0v1Sa3ugLhZQi/_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/ctrlhub-2ae4bef7/3yP0v1Sa3ugLhZQi/_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/ctrlhub-2ae4bef7/3yP0v1Sa3ugLhZQi/_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/ctrlhub-2ae4bef7/3yP0v1Sa3ugLhZQi/_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/ctrlhub-2ae4bef7/3yP0v1Sa3ugLhZQi/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"List cost roll-ups - Ctrl Hub\">\u003cmeta data-mint-head property=\"og:description\" content=\"Read what a node of the job hierarchy costs, and what everything beneath it costs. A roll-up is derived and read-only — there is no create, update or delete. It is keyed on the cost centre rather than on a cost sheet, so a contract nobody has costed directly still returns a real total from the work orders beneath it, without an empty sheet having to exist for it. Filter by organisation, cost_centre and cost_centre_type together for the node you want rolled up. All three are required as a set; supplying some but not all of them is rejected rather than answered. By default this returns exactly one element: the roll-up for the node named by the filter. Add eq(depth,all) to the filter to get one element per node in the subtree beneath and including that node instead, so a client can see which scheme, work order or operation is holding the money rather than only how much is below in total. Any other depth value is rejected rather than answered. Every element, in either mode, also carries parent_cost_centre_id and parent_cost_centre_type (both null on the subtree\u0026#x27;s root), name, code and has_cost_sheet — enough on its own to rebuild the shape of the subtree and label each node, since a depth=all response is otherwise just a bag of totals with no relationships between them. Each roll-up returns the node\u0026#x27;s own direct total, the rolled total that includes every descendant, and by_status — rolled split by the status of the sheet each line sits on, so a client can sum only the statuses it cares about without asking again. Soft-deleted nodes are left out of the walk. Totals are sums of the snapshots stored on the cost lines themselves, so revising a rate or a margin in the cost register never moves a roll-up. This read is gated on permission to view cost lines rather than cost sheets: a roll-up returns nothing but money.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Ctrl Hub\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.ctrl-hub.com/api-reference/costs/list-cost-roll-ups\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://ctrlhub-2ae4bef7.mintlify.app/_mintlify/api/og/v2?division=Costs\u0026amp;title=List+cost+roll-ups\u0026amp;description=Read+what+a+node+of+the+job+hierarchy+costs%2C+and+what+everything+beneath+it%0Acosts.%0A%0AA+roll-up+is+derived+and+read-only+%E2%80%94+there+is+no+create%2C+update+or+delete.+I\u0026amp;theme=4057edff07f86baa3a518be3\u0026amp;signature=d1e594a942a36dc44d322e73cb913c9a56d64f22f10e134719f1b9552f468170\">\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=\"List cost roll-ups - Ctrl Hub\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Read what a node of the job hierarchy costs, and what everything beneath it costs. A roll-up is derived and read-only — there is no create, update or delete. It is keyed on the cost centre rather than on a cost sheet, so a contract nobody has costed directly still returns a real total from the work orders beneath it, without an empty sheet having to exist for it. Filter by organisation, cost_centre and cost_centre_type together for the node you want rolled up. All three are required as a set; supplying some but not all of them is rejected rather than answered. By default this returns exactly one element: the roll-up for the node named by the filter. Add eq(depth,all) to the filter to get one element per node in the subtree beneath and including that node instead, so a client can see which scheme, work order or operation is holding the money rather than only how much is below in total. Any other depth value is rejected rather than answered. Every element, in either mode, also carries parent_cost_centre_id and parent_cost_centre_type (both null on the subtree\u0026#x27;s root), name, code and has_cost_sheet — enough on its own to rebuild the shape of the subtree and label each node, since a depth=all response is otherwise just a bag of totals with no relationships between them. Each roll-up returns the node\u0026#x27;s own direct total, the rolled total that includes every descendant, and by_status — rolled split by the status of the sheet each line sits on, so a client can sum only the statuses it cares about without asking again. Soft-deleted nodes are left out of the walk. Totals are sums of the snapshots stored on the cost lines themselves, so revising a rate or a margin in the cost register never moves a roll-up. This read is gated on permission to view cost lines rather than cost sheets: a roll-up returns nothing but money.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://ctrlhub-2ae4bef7.mintlify.app/_mintlify/api/og/v2?division=Costs\u0026amp;title=List+cost+roll-ups\u0026amp;description=Read+what+a+node+of+the+job+hierarchy+costs%2C+and+what+everything+beneath+it%0Acosts.%0A%0AA+roll-up+is+derived+and+read-only+%E2%80%94+there+is+no+create%2C+update+or+delete.+I\u0026amp;theme=4057edff07f86baa3a518be3\u0026amp;signature=d1e594a942a36dc44d322e73cb913c9a56d64f22f10e134719f1b9552f468170\">\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/ctrlhub-2ae4bef7/3yP0v1Sa3ugLhZQi/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Ctrl Hub\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#051737\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.ctrl-hub.com/api-reference/costs/list-cost-roll-ups\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/costs/list-cost-roll-ups.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.ctrl-hub.com/#organization\",\"name\":\"Ctrl Hub\",\"url\":\"https://docs.ctrl-hub.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/ctrlhub-2ae4bef7/PIDSeF8_-LaiA-F2/logo/light.svg?fit=max\u0026auto=format\u0026n=PIDSeF8_-LaiA-F2\u0026q=85\u0026s=042271625d0e2e8a33fea01ac79f26b9\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.ctrl-hub.com#website\",\"name\":\"Ctrl Hub\",\"url\":\"https://docs.ctrl-hub.com\",\"publisher\":{\"@id\":\"https://docs.ctrl-hub.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.ctrl-hub.com/api-reference/costs/list-cost-roll-ups#webpage\",\"url\":\"https://docs.ctrl-hub.com/api-reference/costs/list-cost-roll-ups\",\"name\":\"List cost roll-ups\",\"description\":\"Read what a node of the job hierarchy costs, and what everything beneath it costs. A roll-up is derived and read-only — there is no create, update or delete. It is keyed on the cost centre rather than on a cost sheet, so a contract nobody has costed directly still returns a real total from the work orders beneath it, without an empty sheet having to exist for it. Filter by organisation, cost_centre and cost_centre_type together for the node you want rolled up. All three are required as a set; supplying some but not all of them is rejected rather than answered. By default this returns exactly one element: the roll-up for the node named by the filter. Add eq(depth,all) to the filter to get one element per node in the subtree beneath and including that node instead, so a client can see which scheme, work order or operation is holding the money rather than only how much is below in total. Any other depth value is rejected rather than answered. Every element, in either mode, also carries parent_cost_centre_id and parent_cost_centre_type (both null on the subtree's root), name, code and has_cost_sheet — enough on its own to rebuild the shape of the subtree and label each node, since a depth=all response is otherwise just a bag of totals with no relationships between them. Each roll-up returns the node's own direct total, the rolled total that includes every descendant, and by_status — rolled split by the status of the sheet each line sits on, so a client can sum only the statuses it cares about without asking again. Soft-deleted nodes are left out of the walk. Totals are sums of the snapshots stored on the cost lines themselves, so revising a rate or a margin in the cost register never moves a roll-up. This read is gated on permission to view cost lines rather than cost sheets: a roll-up returns nothing but money.\",\"dateModified\":\"2026-11-03T17:16:26.879Z\",\"isPartOf\":{\"@id\":\"https://docs.ctrl-hub.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.ctrl-hub.com/api-reference/costs/list-cost-roll-ups#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.ctrl-hub.com/api-reference/costs/list-cost-roll-ups#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Costs\",\"item\":\"https://docs.ctrl-hub.com/api-reference/costs/list-cost-item-versions\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"List cost roll-ups\",\"item\":\"https://docs.ctrl-hub.com/api-reference/costs/list-cost-roll-ups\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.ctrl-hub.com/api-reference/costs/list-cost-roll-ups#apireference\",\"headline\":\"List cost roll-ups\",\"name\":\"List cost roll-ups\",\"description\":\"Read what a node of the job hierarchy costs, and what everything beneath it costs. A roll-up is derived and read-only — there is no create, update or delete. It is keyed on the cost centre rather than on a cost sheet, so a contract nobody has costed directly still returns a real total from the work orders beneath it, without an empty sheet having to exist for it. Filter by organisation, cost_centre and cost_centre_type together for the node you want rolled up. All three are required as a set; supplying some but not all of them is rejected rather than answered. By default this returns exactly one element: the roll-up for the node named by the filter. Add eq(depth,all) to the filter to get one element per node in the subtree beneath and including that node instead, so a client can see which scheme, work order or operation is holding the money rather than only how much is below in total. Any other depth value is rejected rather than answered. Every element, in either mode, also carries parent_cost_centre_id and parent_cost_centre_type (both null on the subtree's root), name, code and has_cost_sheet — enough on its own to rebuild the shape of the subtree and label each node, since a depth=all response is otherwise just a bag of totals with no relationships between them. Each roll-up returns the node's own direct total, the rolled total that includes every descendant, and by_status — rolled split by the status of the sheet each line sits on, so a client can sum only the statuses it cares about without asking again. Soft-deleted nodes are left out of the walk. Totals are sums of the snapshots stored on the cost lines themselves, so revising a rate or a margin in the cost register never moves a roll-up. This read is gated on permission to view cost lines rather than cost sheets: a roll-up returns nothing but money.\",\"url\":\"https://docs.ctrl-hub.com/api-reference/costs/list-cost-roll-ups\",\"mainEntityOfPage\":{\"@id\":\"https://docs.ctrl-hub.com/api-reference/costs/list-cost-roll-ups#webpage\"},\"dateModified\":\"2026-11-03T17:16:26.879Z\",\"publisher\":{\"@id\":\"https://docs.ctrl-hub.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.ctrl-hub.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Ctrl Hub\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Ctrl Hub","nav":{"global":null,"tabs":[{"tab":"Guides","icon":"square-terminal","pages":[{"title":"Guides","href":"/guides/what-is-ctrl-hub"}]},{"tab":"API Guide","icon":"square-terminal","pages":[{"title":"API Guide","href":"/api-reference/introduction"}]},{"tab":"API Reference","icon":"square-terminal","groups":[{"group":"Service Accounts","pages":[{"title":"List system service accounts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /admin/v3/service-accounts","href":"/api-reference/service-accounts/get-adminv3service-accounts"},{"title":"Create a system service account","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /admin/v3/service-accounts","href":"/api-reference/service-accounts/create-a-system-service-account"},{"title":"Get a system service account","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /admin/v3/service-accounts/{service_account_id}","href":"/api-reference/service-accounts/get-adminv3service-accounts-1"},{"title":"Create a key for a system service account","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /admin/v3/service-accounts/{service_account_id}/keys","href":"/api-reference/service-accounts/create-a-system-service-account-key"},{"title":"List service accounts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/orgs/{org_id}/iam/service-accounts","href":"/api-reference/service-accounts/get-v3orgs-iamservice-accounts"},{"title":"Create a service account","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/orgs/{org_id}/iam/service-accounts","href":"/api-reference/service-accounts/create-a-service-account"},{"title":"Get a service account","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/orgs/{org_id}/iam/service-accounts/{service_account_id}","href":"/api-reference/service-accounts/get-v3orgs-iamservice-accounts-1"},{"title":"Update a service account","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/orgs/{org_id}/iam/service-accounts/{service_account_id}","href":"/api-reference/service-accounts/update-a-service-accounts-enabled-status"},{"title":"Create a key for a service account","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/orgs/{org_id}/iam/service-accounts/{service_account_id}/keys","href":"/api-reference/service-accounts/create-a-service-account-key"},{"title":"Delete a key of a service account","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/orgs/{org_id}/iam/service-accounts/{service_account_id}/keys/{key_id}","href":"/api-reference/service-accounts/delete-a-service-account-key"},{"title":"List logs for a service account","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/orgs/{org_id}/iam/service-accounts/{service_account_id}/logs","href":"/api-reference/service-accounts/get-v3orgs-iamservice-accounts-logs"},{"title":"Get a log for a service account","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/orgs/{org_id}/iam/service-accounts/{service_account_id}/logs/{log_id}","href":"/api-reference/service-accounts/get-v3orgs-iamservice-accounts-logs-1"}]},{"group":"Specifications","pages":[{"title":"Get this spec (JSON)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /spec.json","href":"/api-reference/specifications/get-specjson"},{"title":"Get this spec (YAML)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /spec.yaml","href":"/api-reference/specifications/get-specyaml"}]},{"group":"Street Manager","pages":[{"title":"Create a new activity","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /street-manager/activities","href":"/api-reference/street-manager/post-street-manageractivities"},{"title":"Create a new permit","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /street-manager/permits","href":"/api-reference/street-manager/post-street-managerpermits"},{"title":"Create a new protection","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /street-manager/protections","href":"/api-reference/street-manager/post-street-managerprotections"},{"title":"List permits","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/street-manager/permits","href":"/api-reference/street-manager/get-v3street-managerpermits"},{"title":"Get a permit","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/street-manager/permits/{permit_id}","href":"/api-reference/street-manager/get-v3street-managerpermits-1"},{"title":"List versions of a permit","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/street-manager/permits/{permit_id}/versions","href":"/api-reference/street-manager/get-v3street-managerpermits-versions"},{"title":"Get a permit version","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/street-manager/permits/{permit_id}/versions/{version_id}","href":"/api-reference/street-manager/get-v3street-managerpermits-versions-1"}]},{"group":"Actions","pages":[{"title":"List actions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/actions","href":"/api-reference/actions/list-actions"},{"title":"Create an action","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/actions","href":"/api-reference/actions/create-a-new-action"},{"title":"Get an action","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/actions/{action_id}","href":"/api-reference/actions/get-an-action"},{"title":"Delete an action","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/actions/{action_id}","href":"/api-reference/actions/delete-an-action"},{"title":"Update an action","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/actions/{action_id}","href":"/api-reference/actions/update-an-action"},{"title":"Close an action","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/actions/{action_id}/close","href":"/api-reference/actions/close-an-action"},{"title":"Reopen an action","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/actions/{action_id}/reopen","href":"/api-reference/actions/reopen-an-action"}]},{"group":"Properties","pages":[{"title":"Resolve addresses","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/address-resolutions","href":"/api-reference/properties/resolve-addresses"},{"title":"List meters","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/meters","href":"/api-reference/properties/get-v3meters"},{"title":"Create a meter","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/meters","href":"/api-reference/properties/create-a-meter"},{"title":"Get a meter","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/meters/{meter_id}","href":"/api-reference/properties/get-v3meters-1"},{"title":"Update a meter","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/meters/{meter_id}","href":"/api-reference/properties/update-an-existing-meter"},{"title":"Delete a meter","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/meters/{meter_id}","href":"/api-reference/properties/delete-a-meter"},{"title":"Search by postcode","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/postcode-lookups/{postcode}","href":"/api-reference/properties/get-v3postcode-lookups"},{"title":"List properties","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/properties","href":"/api-reference/properties/get-v3properties"},{"title":"Get a property","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/properties/{property_id}","href":"/api-reference/properties/get-v3properties-1"},{"title":"Search for properties","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/property-search-results","href":"/api-reference/properties/get-v3property-search-results"},{"title":"List PSR records","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/psrs","href":"/api-reference/properties/get-v3psrs"},{"title":"Create a PSR record","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/psrs","href":"/api-reference/properties/create-a-psr-record"},{"title":"Get a PSR record","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/psrs/{psr_id}","href":"/api-reference/properties/get-v3psrs-1"},{"title":"Update a PSR record","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/psrs/{psr_id}","href":"/api-reference/properties/update-an-existing-psr-record"},{"title":"Delete a PSR record","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/psrs/{psr_id}","href":"/api-reference/properties/delete-a-psr-record"}]},{"group":"Agent Issues","pages":[{"title":"List agent issues","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/agent-issues","href":"/api-reference/agent-issues/get-v3agent-issues"},{"title":"Create an agent issue","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/agent-issues","href":"/api-reference/agent-issues/create-a-new-agent-issue"},{"title":"Get an agent issue","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/agent-issues/{agent_issue_id}","href":"/api-reference/agent-issues/get-v3agent-issues-1"},{"title":"Update an agent issue","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/agent-issues/{agent_issue_id}","href":"/api-reference/agent-issues/update-an-existing-agent-issue"}]},{"group":"Agent Templates","pages":[{"title":"List agent templates","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/agent-templates","href":"/api-reference/agent-templates/get-v3agent-templates"},{"title":"Get an agent template","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/agent-templates/{agent_template_id}","href":"/api-reference/agent-templates/get-v3agent-templates-1"}]},{"group":"Agents","pages":[{"title":"List agents","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/agents","href":"/api-reference/agents/get-v3agents"},{"title":"Create an agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/agents","href":"/api-reference/agents/create-a-new-agent"},{"title":"Get an agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/agents/{agent_id}","href":"/api-reference/agents/get-v3agents-1"},{"title":"Update an agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/agents/{agent_id}","href":"/api-reference/agents/update-an-existing-agent"}]},{"group":"Briefings","pages":[{"title":"List briefings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/agents/{agent_id}/briefings","href":"/api-reference/briefings/get-v3agents-briefings"},{"title":"Create a briefing","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/agents/{agent_id}/briefings","href":"/api-reference/briefings/create-a-new-briefing"},{"title":"Get a briefing","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/agents/{agent_id}/briefings/{briefing_id}","href":"/api-reference/briefings/get-v3agents-briefings-1"},{"title":"Generate a briefing","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/agents/{agent_id}/generate-briefing","href":"/api-reference/briefings/generate-a-briefing-using-ai"}]},{"group":"Qualifications","pages":[{"title":"List assessment definitions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/assessment-definitions","href":"/api-reference/qualifications/get-v3assessment-definitions"},{"title":"Create an assessment definition","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/assessment-definitions","href":"/api-reference/qualifications/create-a-new-assessment-definition"},{"title":"Get an assessment definition","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/assessment-definitions/{assessment_definition_id}","href":"/api-reference/qualifications/get-v3assessment-definitions-1"},{"title":"Update an assessment definition","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/assessment-definitions/{assessment_definition_id}","href":"/api-reference/qualifications/update-an-existing-assessment-definition"},{"title":"Delete an assessment definition","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/assessment-definitions/{assessment_definition_id}","href":"/api-reference/qualifications/delete-an-assessment-definition"},{"title":"List assessments","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/assessments","href":"/api-reference/qualifications/get-v3assessments"},{"title":"Create an assessment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/assessments","href":"/api-reference/qualifications/create-a-new-assessment"},{"title":"Get an assessment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/assessments/{assessment_id}","href":"/api-reference/qualifications/get-v3assessments-1"},{"title":"Update an assessment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/assessments/{assessment_id}","href":"/api-reference/qualifications/update-an-existing-assessment"},{"title":"List competency requirement specifications","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/competency-requirement-specifications","href":"/api-reference/qualifications/get-v3competency-requirement-specifications"},{"title":"Create a competency requirement specification","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/competency-requirement-specifications","href":"/api-reference/qualifications/create-a-new-competency-requirement-specification"},{"title":"Get a competency requirement specification","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/competency-requirement-specifications/{competency_requirement_specification_id}","href":"/api-reference/qualifications/get-v3competency-requirement-specifications-1"},{"title":"Update a competency requirement specification","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/competency-requirement-specifications/{competency_requirement_specification_id}","href":"/api-reference/qualifications/update-an-existing-competency-requirement-specification"},{"title":"Delete a competency requirement specification","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/competency-requirement-specifications/{competency_requirement_specification_id}","href":"/api-reference/qualifications/delete-a-competency-requirement-specification"},{"title":"Evaluate group compliance for a CRS","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/competency-requirement-specifications/{competency_requirement_specification_id}/compliance","href":"/api-reference/qualifications/post-v3competency-requirement-specifications-compliance"},{"title":"List induction completions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/induction-completions","href":"/api-reference/qualifications/get-v3induction-completions"},{"title":"Create an induction completion","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/induction-completions","href":"/api-reference/qualifications/create-a-new-induction-completion"},{"title":"Get an induction completion","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/induction-completions/{induction_completion_id}","href":"/api-reference/qualifications/get-v3induction-completions-1"},{"title":"Update an induction completion","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/induction-completions/{induction_completion_id}","href":"/api-reference/qualifications/update-an-existing-induction-completion"},{"title":"Delete an induction completion","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/induction-completions/{induction_completion_id}","href":"/api-reference/qualifications/delete-an-induction-completion"},{"title":"List inductions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/inductions","href":"/api-reference/qualifications/get-v3inductions"},{"title":"Create an induction","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/inductions","href":"/api-reference/qualifications/create-a-new-induction"},{"title":"Get an induction","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/inductions/{induction_id}","href":"/api-reference/qualifications/get-v3inductions-1"},{"title":"Update an induction","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/inductions/{induction_id}","href":"/api-reference/qualifications/update-an-existing-induction"},{"title":"Delete an induction","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/inductions/{induction_id}","href":"/api-reference/qualifications/delete-an-induction"},{"title":"List registrations","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/registrations","href":"/api-reference/qualifications/get-v3registrations"},{"title":"Create a registration","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/registrations","href":"/api-reference/qualifications/create-a-new-registration"},{"title":"Get a registration","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/registrations/{registration_id}","href":"/api-reference/qualifications/get-v3registrations-1"},{"title":"Update a registration","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/registrations/{registration_id}","href":"/api-reference/qualifications/update-an-existing-registration"},{"title":"Delete a registration","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/registrations/{registration_id}","href":"/api-reference/qualifications/delete-a-registration"},{"title":"List skills register scheme categories","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/skills-register-scheme-categories","href":"/api-reference/qualifications/get-v3skills-register-scheme-categories"},{"title":"Get a skills register scheme category","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/skills-register-scheme-categories/{skills_register_scheme_category_id}","href":"/api-reference/qualifications/get-v3skills-register-scheme-categories-1"},{"title":"List skills register schemes","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/skills-register-schemes","href":"/api-reference/qualifications/get-v3skills-register-schemes"},{"title":"Get a skills register scheme","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/skills-register-schemes/{skills_register_scheme_id}","href":"/api-reference/qualifications/get-v3skills-register-schemes-1"},{"title":"List skills registers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/skills-registers","href":"/api-reference/qualifications/get-v3skills-registers"},{"title":"Get a skills register","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/skills-registers/{skills_register_id}","href":"/api-reference/qualifications/get-v3skills-registers-1"},{"title":"List training items","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/training-items","href":"/api-reference/qualifications/get-v3training-items"},{"title":"Create a training item","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/training-items","href":"/api-reference/qualifications/create-a-new-training-item"},{"title":"Get a training item","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/training-items/{training_item_id}","href":"/api-reference/qualifications/get-v3training-items-1"},{"title":"Update a training item","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/training-items/{training_item_id}","href":"/api-reference/qualifications/update-an-existing-training-item"},{"title":"Delete a training item","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/training-items/{training_item_id}","href":"/api-reference/qualifications/delete-a-training-item"}]},{"group":"Workforce","pages":[{"title":"List assessment records","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/assessment-records","href":"/api-reference/workforce/get-v3assessment-records"},{"title":"Create an assessment record","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/assessment-records","href":"/api-reference/workforce/create-a-new-assessment-record"},{"title":"Get an assessment record","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/assessment-records/{assessment_record_id}","href":"/api-reference/workforce/get-v3assessment-records-1"},{"title":"Update an assessment record","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/assessment-records/{assessment_record_id}","href":"/api-reference/workforce/update-an-existing-assessment-record"},{"title":"Delete an assessment record","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/assessment-records/{assessment_record_id}","href":"/api-reference/workforce/delete-an-assessment-record"},{"title":"List category registrations","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/category-registrations","href":"/api-reference/workforce/get-v3category-registrations"},{"title":"Create a category registration","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/category-registrations","href":"/api-reference/workforce/create-a-new-category-registration"},{"title":"Get a category registration","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/category-registrations/{category_registration_id}","href":"/api-reference/workforce/get-v3category-registrations-1"},{"title":"Update a category registration","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/category-registrations/{category_registration_id}","href":"/api-reference/workforce/update-an-existing-category-registration"},{"title":"Delete a category registration","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/category-registrations/{category_registration_id}","href":"/api-reference/workforce/delete-a-category-registration"},{"title":"List scheme registrations","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/scheme-registrations","href":"/api-reference/workforce/get-v3scheme-registrations"},{"title":"Create a scheme registration","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/scheme-registrations","href":"/api-reference/workforce/create-a-new-scheme-registration"},{"title":"Get a scheme registration","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/scheme-registrations/{scheme_registration_id}","href":"/api-reference/workforce/get-v3scheme-registrations-1"},{"title":"Update a scheme registration","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/scheme-registrations/{scheme_registration_id}","href":"/api-reference/workforce/update-an-existing-scheme-registration"},{"title":"Delete a scheme registration","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/scheme-registrations/{scheme_registration_id}","href":"/api-reference/workforce/delete-a-scheme-registration"},{"title":"List training completions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/training-completions","href":"/api-reference/workforce/get-v3training-completions"},{"title":"Create a training completion","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/training-completions","href":"/api-reference/workforce/create-a-new-training-completion"},{"title":"Get a training completion","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/training-completions/{training_completion_id}","href":"/api-reference/workforce/get-v3training-completions-1"},{"title":"Update a training completion","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/training-completions/{training_completion_id}","href":"/api-reference/workforce/update-an-existing-training-completion"},{"title":"Delete a training completion","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/training-completions/{training_completion_id}","href":"/api-reference/workforce/delete-a-training-completion"},{"title":"List verifications","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/verifications","href":"/api-reference/workforce/list-verifications"},{"title":"Create a verification","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/verifications","href":"/api-reference/workforce/create-a-verification"},{"title":"Get a verification","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/verifications/{verification_id}","href":"/api-reference/workforce/retrieve-a-verification"}]},{"group":"Audit Events","pages":[{"title":"List audit events","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/audit-events","href":"/api-reference/audit-events/get-v3audit-events"},{"title":"Get an audit event","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/audit-events/{audit_event_id}","href":"/api-reference/audit-events/get-v3audit-events-1"}]},{"group":"Equipment","pages":[{"title":"List business areas","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/business-areas","href":"/api-reference/equipment/get-v3business-areas"},{"title":"Create a business area","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/business-areas","href":"/api-reference/equipment/create-a-new-business-area"},{"title":"Get a business area","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/business-areas/{business_area_id}","href":"/api-reference/equipment/get-v3business-areas-1"},{"title":"Update a business area","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/business-areas/{business_area_id}","href":"/api-reference/equipment/update-a-business-area"},{"title":"Delete a business area","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/business-areas/{business_area_id}","href":"/api-reference/equipment/delete-a-business-area"},{"title":"List equipment categories","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/equipment-categories","href":"/api-reference/equipment/get-v3equipment-categories"},{"title":"Create an equipment category","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/equipment-categories","href":"/api-reference/equipment/create-a-new-equipment-category"},{"title":"Get an equipment category","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/equipment-categories/{equipment_category_id}","href":"/api-reference/equipment/get-v3equipment-categories-1"},{"title":"Update an equipment category","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/equipment-categories/{equipment_category_id}","href":"/api-reference/equipment/update-an-equipment-category"},{"title":"Delete an equipment category","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/equipment-categories/{equipment_category_id}","href":"/api-reference/equipment/delete-an-equipment-category"},{"title":"List equipment certificates","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/equipment-certificates","href":"/api-reference/equipment/list-equipment-certificates"},{"title":"Create an equipment certificate","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/equipment-certificates","href":"/api-reference/equipment/create-a-new-equipment-certificate"},{"title":"Get an equipment certificate","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/equipment-certificates/{equipment_certificate_id}","href":"/api-reference/equipment/get-v3equipment-certificates"},{"title":"Update an equipment certificate","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/equipment-certificates/{equipment_certificate_id}","href":"/api-reference/equipment/update-an-equipment-certificate"},{"title":"Delete an equipment certificate","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/equipment-certificates/{equipment_certificate_id}","href":"/api-reference/equipment/delete-an-equipment-certificate"},{"title":"List equipment certifications","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/equipment-certifications","href":"/api-reference/equipment/get-v3equipment-certifications"},{"title":"Create an equipment certification","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/equipment-certifications","href":"/api-reference/equipment/create-a-new-equipment-certification"},{"title":"Get an equipment certification","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/equipment-certifications/{equipment_certification_id}","href":"/api-reference/equipment/get-v3equipment-certifications-1"},{"title":"Update an equipment certification","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/equipment-certifications/{equipment_certification_id}","href":"/api-reference/equipment/update-an-equipment-certification"},{"title":"Delete an equipment certification","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/equipment-certifications/{equipment_certification_id}","href":"/api-reference/equipment/delete-an-equipment-certification"},{"title":"List equipment items","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/equipment-items","href":"/api-reference/equipment/get-v3equipment-items"},{"title":"Create an equipment item","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/equipment-items","href":"/api-reference/equipment/create-a-new-equipment-item"},{"title":"Get an equipment item","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/equipment-items/{equipment_item_id}","href":"/api-reference/equipment/get-v3equipment-items-1"},{"title":"Update an equipment item","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/equipment-items/{equipment_item_id}","href":"/api-reference/equipment/update-an-equipment-item"},{"title":"Delete an equipment item","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/equipment-items/{equipment_item_id}","href":"/api-reference/equipment/delete-an-equipment-item"},{"title":"Get an equipment item's compliance","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/equipment-items/{equipment_item_id}/compliance","href":"/api-reference/equipment/get-v3equipment-items-compliance"},{"title":"Get v3equipment items pre allocations","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/equipment-items/{equipment_item_id}/pre-allocations","href":"/api-reference/equipment/get-v3equipment-items-pre-allocations"},{"title":"Create an equipment item pre-allocation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/equipment-items/{equipment_item_id}/pre-allocations","href":"/api-reference/equipment/create-an-equipment-item-pre-allocation"},{"title":"Cancel an equipment item pre-allocation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/equipment-items/{equipment_item_id}/pre-allocations/{pre_allocation_id}","href":"/api-reference/equipment/cancel-an-equipment-item-pre-allocation"},{"title":"location","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/equipment-items/{equipment_item_id}/relationships/allocated_location","href":"/api-reference/equipment/location"},{"title":"person","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/equipment-items/{equipment_item_id}/relationships/allocated_person","href":"/api-reference/equipment/person"},{"title":"scheme","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/equipment-items/{equipment_item_id}/relationships/allocated_scheme","href":"/api-reference/equipment/scheme"},{"title":"vehicle","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/equipment-items/{equipment_item_id}/relationships/allocated_vehicle","href":"/api-reference/equipment/vehicle"},{"title":"work order","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/equipment-items/{equipment_item_id}/relationships/allocated_work_order","href":"/api-reference/equipment/work-order"},{"title":"Attach certificates to an equipment item","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/equipment-items/{equipment_item_id}/relationships/certificates","href":"/api-reference/equipment/attach-certificates-to-an-equipment-item"},{"title":"Detach certificates from an equipment item","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/equipment-items/{equipment_item_id}/relationships/certificates","href":"/api-reference/equipment/detach-certificates-from-an-equipment-item"},{"title":"Add certifications to an equipment item","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/equipment-items/{equipment_item_id}/relationships/certifications","href":"/api-reference/equipment/add-certifications-to-an-equipment-item"},{"title":"Remove certifications from an equipment item","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/equipment-items/{equipment_item_id}/relationships/certifications","href":"/api-reference/equipment/remove-certifications-from-an-equipment-item"},{"title":"Replace an equipment item's certifications","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/equipment-items/{equipment_item_id}/relationships/certifications","href":"/api-reference/equipment/replace-an-equipment-items-certifications"},{"title":"List equipment manufacturers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/equipment-manufacturers","href":"/api-reference/equipment/get-v3equipment-manufacturers"},{"title":"Create an equipment manufacturer","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/equipment-manufacturers","href":"/api-reference/equipment/create-a-new-equipment-manufacturer"},{"title":"Get an equipment manufacturer","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/equipment-manufacturers/{equipment_manufacturer_id}","href":"/api-reference/equipment/get-v3equipment-manufacturers-1"},{"title":"Delete an equipment manufacturer","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/equipment-manufacturers/{equipment_manufacturer_id}","href":"/api-reference/equipment/delete-an-equipment-manufacturer"},{"title":"Update an equipment manufacturer","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/equipment-manufacturers/{equipment_manufacturer_id}","href":"/api-reference/equipment/update-an-equipment-manufacturer"},{"title":"List equipment models","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/equipment-models","href":"/api-reference/equipment/get-v3equipment-models"},{"title":"Create an equipment model","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/equipment-models","href":"/api-reference/equipment/create-a-new-equipment-model"},{"title":"Get an equipment model","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/equipment-models/{equipment_model_id}","href":"/api-reference/equipment/get-v3equipment-models-1"},{"title":"Delete an equipment model","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/equipment-models/{equipment_model_id}","href":"/api-reference/equipment/delete-an-equipment-model"},{"title":"Update an equipment model","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/equipment-models/{equipment_model_id}","href":"/api-reference/equipment/update-an-equipment-model"},{"title":"List equipment statuses","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/equipment-statuses","href":"/api-reference/equipment/get-v3equipment-statuses"},{"title":"Create an equipment status","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/equipment-statuses","href":"/api-reference/equipment/create-a-new-equipment-status"},{"title":"Get an equipment status","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/equipment-statuses/{equipment_status_id}","href":"/api-reference/equipment/get-v3equipment-statuses-1"},{"title":"Update an equipment status","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/equipment-statuses/{equipment_status_id}","href":"/api-reference/equipment/update-an-equipment-status"},{"title":"Delete an equipment status","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/equipment-statuses/{equipment_status_id}","href":"/api-reference/equipment/delete-an-equipment-status"},{"title":"List HAVS equipment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/havs-equipment","href":"/api-reference/equipment/get-v3havs-equipment"},{"title":"Get a HAVS equipment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/havs-equipment/{havs_equipment_id}","href":"/api-reference/equipment/get-v3havs-equipment-1"},{"title":"List HAVS exposures","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/havs-exposures","href":"/api-reference/equipment/list-havs-exposures"},{"title":"Record a HAVS exposure","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/havs-exposures","href":"/api-reference/equipment/record-a-havs-exposure"},{"title":"Get a HAVS exposure","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/havs-exposures/{havs_exposure_id}","href":"/api-reference/equipment/get-a-havs-exposure"},{"title":"Correct a HAVS exposure","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/havs-exposures/{havs_exposure_id}","href":"/api-reference/equipment/correct-a-havs-exposure"},{"title":"Delete a HAVS exposure","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/havs-exposures/{havs_exposure_id}","href":"/api-reference/equipment/delete-a-havs-exposure"},{"title":"List owners","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/owners","href":"/api-reference/equipment/get-v3owners"},{"title":"Create an owner","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/owners","href":"/api-reference/equipment/create-a-new-owner"},{"title":"Get an owner","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/owners/{owner_id}","href":"/api-reference/equipment/get-v3owners-1"},{"title":"Update an owner","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/owners/{owner_id}","href":"/api-reference/equipment/update-an-owner"},{"title":"Delete an owner","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/owners/{owner_id}","href":"/api-reference/equipment/delete-an-owner"}]},{"group":"Comments","pages":[{"title":"List comments","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/comments","href":"/api-reference/comments/get-v3comments"},{"title":"Create a comment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/comments","href":"/api-reference/comments/create-a-new-comment"},{"title":"Get a comment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/comments/{comment_id}","href":"/api-reference/comments/get-v3comments-1"},{"title":"Delete a comment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/comments/{comment_id}","href":"/api-reference/comments/delete-a-comment"},{"title":"Update a comment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/comments/{comment_id}","href":"/api-reference/comments/update-a-comment"}]},{"group":"Competency","pages":[{"title":"List expiring competency records","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/competency-expiring-records","href":"/api-reference/competency/get-v3competency-expiring-records"},{"title":"List competency holders","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/competency-holders","href":"/api-reference/competency/get-v3competency-holders"}]},{"group":"Construction Phase Plans","pages":[{"title":"List construction phase plan risk resources","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/construction-phase-plan-risks","href":"/api-reference/construction-phase-plans/list-construction-phase-plan-risk-resources"},{"title":"Create a construction phase plan risk","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/construction-phase-plan-risks","href":"/api-reference/construction-phase-plans/create-a-construction-phase-plan-risk"},{"title":"Get a construction phase plan risk","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/construction-phase-plan-risks/{construction_phase_plan_risk_id}","href":"/api-reference/construction-phase-plans/get-a-construction-phase-plan-risk"},{"title":"Delete a construction phase plan risk","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/construction-phase-plan-risks/{construction_phase_plan_risk_id}","href":"/api-reference/construction-phase-plans/delete-a-construction-phase-plan-risk"},{"title":"Update a construction phase plan risk","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/construction-phase-plan-risks/{construction_phase_plan_risk_id}","href":"/api-reference/construction-phase-plans/update-a-construction-phase-plan-risk"},{"title":"Attach a file to a construction phase plan risk","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/construction-phase-plan-risks/{construction_phase_plan_risk_id}/attachments","href":"/api-reference/construction-phase-plans/attach-a-file-to-a-construction-phase-plan-risk"},{"title":"Remove a file from a construction phase plan risk","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/construction-phase-plan-risks/{construction_phase_plan_risk_id}/attachments/{document_id}","href":"/api-reference/construction-phase-plans/remove-a-file-from-a-construction-phase-plan-risk"},{"title":"List construction phase plan resources","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/construction-phase-plans","href":"/api-reference/construction-phase-plans/list-construction-phase-plan-resources"},{"title":"Create a construction phase plan","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/construction-phase-plans","href":"/api-reference/construction-phase-plans/create-a-construction-phase-plan"},{"title":"Get a construction phase plan","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/construction-phase-plans/{construction_phase_plan_id}","href":"/api-reference/construction-phase-plans/get-a-construction-phase-plan"},{"title":"Update a construction phase plan","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/construction-phase-plans/{construction_phase_plan_id}","href":"/api-reference/construction-phase-plans/update-a-construction-phase-plan"},{"title":"Sign off a construction phase plan section","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/construction-phase-plans/{construction_phase_plan_id}/attestations","href":"/api-reference/construction-phase-plans/sign-off-a-construction-phase-plan-section"},{"title":"Hand over a construction phase plan","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/construction-phase-plans/{construction_phase_plan_id}/handover","href":"/api-reference/construction-phase-plans/hand-over-a-construction-phase-plan"},{"title":"List the changes proposed to a construction phase plan","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/construction-phase-plans/{construction_phase_plan_id}/proposed-changes","href":"/api-reference/construction-phase-plans/list-the-changes-proposed-to-a-construction-phase-plan"},{"title":"Propose a change to a construction phase plan","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/construction-phase-plans/{construction_phase_plan_id}/proposed-changes","href":"/api-reference/construction-phase-plans/propose-a-change-to-a-construction-phase-plan"},{"title":"Get a change proposed to a construction phase plan","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/construction-phase-plans/{construction_phase_plan_id}/proposed-changes/{construction_phase_plan_proposed_change_id}","href":"/api-reference/construction-phase-plans/get-a-change-proposed-to-a-construction-phase-plan"},{"title":"Accept a change proposed to a construction phase plan","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/construction-phase-plans/{construction_phase_plan_id}/proposed-changes/{construction_phase_plan_proposed_change_id}/acceptance","href":"/api-reference/construction-phase-plans/accept-a-change-proposed-to-a-construction-phase-plan"},{"title":"Reject a change proposed to a construction phase plan","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/construction-phase-plans/{construction_phase_plan_id}/proposed-changes/{construction_phase_plan_proposed_change_id}/rejection","href":"/api-reference/construction-phase-plans/reject-a-change-proposed-to-a-construction-phase-plan"},{"title":"List a construction phase plan's revisions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/construction-phase-plans/{construction_phase_plan_id}/revisions","href":"/api-reference/construction-phase-plans/list-a-construction-phase-plans-revisions"},{"title":"Read a construction phase plan as at a revision","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/construction-phase-plans/{construction_phase_plan_id}/revisions/{revision_number}","href":"/api-reference/construction-phase-plans/read-a-construction-phase-plan-as-at-a-revision"}]},{"group":"Costs","pages":[{"title":"List cost item versions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/cost-item-versions","href":"/api-reference/costs/list-cost-item-versions"},{"title":"Create a cost item version","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/cost-item-versions","href":"/api-reference/costs/create-a-cost-item-version"},{"title":"Get a cost item version","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/cost-item-versions/{cost_item_version_id}","href":"/api-reference/costs/get-a-cost-item-version"},{"title":"Update a cost item version","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/cost-item-versions/{cost_item_version_id}","href":"/api-reference/costs/update-a-cost-item-version"},{"title":"Delete a cost item version","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/cost-item-versions/{cost_item_version_id}","href":"/api-reference/costs/delete-a-cost-item-version"},{"title":"List cost items","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/cost-items","href":"/api-reference/costs/list-cost-items"},{"title":"Create a cost item","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/cost-items","href":"/api-reference/costs/create-a-cost-item"},{"title":"Get a cost item","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/cost-items/{cost_item_id}","href":"/api-reference/costs/get-a-cost-item"},{"title":"Update a cost item","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/cost-items/{cost_item_id}","href":"/api-reference/costs/update-a-cost-item"},{"title":"Delete a cost item","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/cost-items/{cost_item_id}","href":"/api-reference/costs/delete-a-cost-item"},{"title":"List cost kit lines","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/cost-kit-lines","href":"/api-reference/costs/list-cost-kit-lines"},{"title":"Add a rate code to a cost kit","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/cost-kit-lines","href":"/api-reference/costs/add-a-rate-code-to-a-cost-kit"},{"title":"Get a cost kit line","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/cost-kit-lines/{cost_kit_line_id}","href":"/api-reference/costs/get-a-cost-kit-line"},{"title":"Update a cost kit line","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/cost-kit-lines/{cost_kit_line_id}","href":"/api-reference/costs/update-a-cost-kit-line"},{"title":"Remove a rate code from a cost kit","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/cost-kit-lines/{cost_kit_line_id}","href":"/api-reference/costs/remove-a-rate-code-from-a-cost-kit"},{"title":"List cost kits","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/cost-kits","href":"/api-reference/costs/list-cost-kits"},{"title":"Create a cost kit","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/cost-kits","href":"/api-reference/costs/create-a-cost-kit"},{"title":"Get a cost kit","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/cost-kits/{cost_kit_id}","href":"/api-reference/costs/get-a-cost-kit"},{"title":"Update a cost kit","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/cost-kits/{cost_kit_id}","href":"/api-reference/costs/update-a-cost-kit"},{"title":"Delete a cost kit","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/cost-kits/{cost_kit_id}","href":"/api-reference/costs/delete-a-cost-kit"},{"title":"Apply a cost kit","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/cost-kits/{cost_kit_id}/apply","href":"/api-reference/costs/apply-a-cost-kit-to-a-cost-sheet"},{"title":"List cost lines","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/cost-lines","href":"/api-reference/costs/list-cost-lines"},{"title":"Create a cost line","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/cost-lines","href":"/api-reference/costs/create-a-cost-line"},{"title":"Get a cost line","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/cost-lines/{cost_line_id}","href":"/api-reference/costs/get-a-cost-line"},{"title":"Update a cost line","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/cost-lines/{cost_line_id}","href":"/api-reference/costs/update-a-cost-line"},{"title":"Delete a cost line","description":"Delete a cost line, removing it from its cost sheet's total.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/cost-lines/{cost_line_id}","href":"/api-reference/costs/delete-a-cost-line"},{"title":"List cost roll-ups","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/cost-rollups","href":"/api-reference/costs/list-cost-roll-ups"},{"title":"List cost sheets","description":"List the cost sheets visible to the caller.\n\nA sheet carries no money of its own — the cost is on its cost lines, which are\npermissioned separately, so a caller who can see that a job has been costed may\nstill not be able to see what it cost.\n\nFilter by `cost_centre` and `cost_centre_type` together for the sheet attached\nto a particular work order or operation.\n","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/cost-sheets","href":"/api-reference/costs/list-cost-sheets"},{"title":"Create a cost sheet","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/cost-sheets","href":"/api-reference/costs/create-a-cost-sheet"},{"title":"Get a cost sheet","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/cost-sheets/{cost_sheet_id}","href":"/api-reference/costs/get-a-cost-sheet"},{"title":"Update a cost sheet","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/cost-sheets/{cost_sheet_id}","href":"/api-reference/costs/update-a-cost-sheet"},{"title":"Delete a cost sheet","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/cost-sheets/{cost_sheet_id}","href":"/api-reference/costs/delete-a-cost-sheet"}]},{"group":"Dashboards","pages":[{"title":"List dashboards","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/dashboards","href":"/api-reference/dashboards/get-v3dashboards"},{"title":"Create a dashboard","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/dashboards","href":"/api-reference/dashboards/create-a-new-dashboard"},{"title":"Get a dashboard","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/dashboards/{dashboard_id}","href":"/api-reference/dashboards/get-v3dashboards-1"},{"title":"Update a dashboard","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/dashboards/{dashboard_id}","href":"/api-reference/dashboards/update-an-existing-dashboard"},{"title":"Delete a dashboard","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/dashboards/{dashboard_id}","href":"/api-reference/dashboards/delete-a-dashboard"}]},{"group":"Device Backups","pages":[{"title":"List device backups","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/device-backups","href":"/api-reference/device-backups/get-v3device-backups"},{"title":"Send a device backup","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/device-backups","href":"/api-reference/device-backups/send-a-devices-database-to-ctrl-hub"},{"title":"Get a device backup","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/device-backups/{device_backup_id}","href":"/api-reference/device-backups/get-v3device-backups-1"},{"title":"Download a device backup","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/device-backups/{device_backup_id}/download","href":"/api-reference/device-backups/download-a-device-backups-database"}]},{"group":"Documents","pages":[{"title":"List downloads for all documents","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/document-downloads","href":"/api-reference/documents/get-v3document-downloads"},{"title":"Upload a document","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/document-uploads","href":"/api-reference/documents/upload-a-document"},{"title":"List documents","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/documents","href":"/api-reference/documents/get-v3documents"},{"title":"Create a document","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/documents","href":"/api-reference/documents/create-a-document"},{"title":"Get a document","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/documents/{document_id}","href":"/api-reference/documents/get-v3documents-1"},{"title":"Update a document","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/documents/{document_id}","href":"/api-reference/documents/update-an-existing-document"},{"title":"Delete a document","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/documents/{document_id}","href":"/api-reference/documents/delete-a-document"},{"title":"List document contents","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/documents/{document_id}/contents","href":"/api-reference/documents/get-v3documents-contents"},{"title":"Add content to a document","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/documents/{document_id}/contents","href":"/api-reference/documents/create-document-content"},{"title":"Create the content of a document","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/documents/{document_id}/contents/{document_content_id}","href":"/api-reference/documents/get-v3documents-contents-1"},{"title":"Download the content of a document","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/documents/{document_id}/contents/{document_content_id}/download","href":"/api-reference/documents/download-document-content"},{"title":"List downloads of a document","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/documents/{document_id}/downloads","href":"/api-reference/documents/get-v3documents-downloads"},{"title":"Change a documents folder","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/documents/{document_id}/relationships/folder","href":"/api-reference/documents/update-the-folder-that-a-document-is-in"}]},{"group":"Document Reviews","pages":[{"title":"Make a decision for a review","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/document-review-decisions/{document_review_decision_id}","href":"/api-reference/document-reviews/submit-a-review-decision"},{"title":"List request for document reviews","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/document-review-requests","href":"/api-reference/document-reviews/get-v3document-review-requests"},{"title":"Request a document review","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/document-review-requests","href":"/api-reference/document-reviews/create-a-document-review-request"},{"title":"Get a request for a document review","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/document-review-requests/{document_review_request_id}","href":"/api-reference/document-reviews/get-v3document-review-requests-1"},{"title":"Update a request for a document review","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/document-review-requests/{document_review_request_id}","href":"/api-reference/document-reviews/put-v3document-review-requests"},{"title":"Delete a request for a document review","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/document-review-requests/{document_review_request_id}","href":"/api-reference/document-reviews/delete-v3document-review-requests"}]},{"group":"Organisations","pages":[{"title":"List reviewers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/document-reviewers","href":"/api-reference/organisations/get-v3document-reviewers"},{"title":"List organisations","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/orgs","href":"/api-reference/organisations/get-v3orgs"},{"title":"Create an organisation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/orgs","href":"/api-reference/organisations/create-an-organisation"},{"title":"Get an organisation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/orgs/{org_id}","href":"/api-reference/organisations/get-v3orgs-1"},{"title":"Get member stats","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/orgs/{org_id}/iam/member-stats","href":"/api-reference/organisations/get-v3orgs-iammember-stats"},{"title":"List members","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/orgs/{org_id}/iam/members","href":"/api-reference/organisations/get-v3orgs-iammembers"},{"title":"Get a member","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/orgs/{org_id}/iam/members/{member_id}","href":"/api-reference/organisations/get-v3orgs-iammembers-1"},{"title":"Update a member","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/orgs/{org_id}/iam/members/{member_id}","href":"/api-reference/organisations/update-a-members-status"},{"title":"List my people","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/orgs/{org_id}/iam/my-people","href":"/api-reference/organisations/get-v3orgs-iammy-people"},{"title":"Update organisation document settings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/orgs/{org_id}/settings/documents","href":"/api-reference/organisations/update-an-organisations-document-settings"},{"title":"Update organisation team settings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/orgs/{org_id}/settings/teams","href":"/api-reference/organisations/update-an-organisations-team-settings"}]},{"group":"Exports","pages":[{"title":"List exports","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/exports","href":"/api-reference/exports/get-v3exports"},{"title":"Request an export","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/exports","href":"/api-reference/exports/request-an-export"},{"title":"Get an export","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/exports/{export_id}","href":"/api-reference/exports/get-v3exports-1"},{"title":"Download an export's artefact","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/exports/{export_id}/download","href":"/api-reference/exports/download-an-exports-artefact"}]},{"group":"Pre-Construction Information","pages":[{"title":"List F10 notification resources","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/f10-notifications","href":"/api-reference/pre-construction-information/list-f10-notification-resources"},{"title":"Record an F10 notification","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/f10-notifications","href":"/api-reference/pre-construction-information/record-an-f10-notification"},{"title":"Get an F10 notification","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/f10-notifications/{f10_notification_id}","href":"/api-reference/pre-construction-information/get-an-f10-notification"},{"title":"Attach a file to an F10 notification","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/f10-notifications/{f10_notification_id}/attachments","href":"/api-reference/pre-construction-information/attach-a-file-to-an-f10-notification"},{"title":"List pre-construction information hazard resources","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/pre-construction-information-hazards","href":"/api-reference/pre-construction-information/list-pre-construction-information-hazard-resources"},{"title":"Create a pre-construction information hazard","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/pre-construction-information-hazards","href":"/api-reference/pre-construction-information/create-a-pre-construction-information-hazard"},{"title":"Get a pre-construction information hazard","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/pre-construction-information-hazards/{pre_construction_information_hazard_id}","href":"/api-reference/pre-construction-information/get-a-pre-construction-information-hazard"},{"title":"Delete a pre-construction information hazard","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/pre-construction-information-hazards/{pre_construction_information_hazard_id}","href":"/api-reference/pre-construction-information/delete-a-pre-construction-information-hazard"},{"title":"Update a pre-construction information hazard","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/pre-construction-information-hazards/{pre_construction_information_hazard_id}","href":"/api-reference/pre-construction-information/update-a-pre-construction-information-hazard"},{"title":"Attach a file to a pre-construction information hazard","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/pre-construction-information-hazards/{pre_construction_information_hazard_id}/attachments","href":"/api-reference/pre-construction-information/attach-a-file-to-a-pre-construction-information-hazard"},{"title":"Remove a file from a pre-construction information hazard","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/pre-construction-information-hazards/{pre_construction_information_hazard_id}/attachments/{document_id}","href":"/api-reference/pre-construction-information/remove-a-file-from-a-pre-construction-information-hazard"},{"title":"List pre-construction information resources","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/pre-construction-informations","href":"/api-reference/pre-construction-information/list-pre-construction-information-resources"},{"title":"Create a pre-construction information","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/pre-construction-informations","href":"/api-reference/pre-construction-information/create-a-pre-construction-information"},{"title":"Get a pre-construction information","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/pre-construction-informations/{pre_construction_information_id}","href":"/api-reference/pre-construction-information/get-a-pre-construction-information"},{"title":"Update a pre-construction information","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/pre-construction-informations/{pre_construction_information_id}","href":"/api-reference/pre-construction-information/update-a-pre-construction-information"},{"title":"Sign off a pre-construction information section","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/pre-construction-informations/{pre_construction_information_id}/attestations","href":"/api-reference/pre-construction-information/sign-off-a-pre-construction-information-section"},{"title":"Hand over a pre-construction information","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/pre-construction-informations/{pre_construction_information_id}/handover","href":"/api-reference/pre-construction-information/hand-over-a-pre-construction-information"},{"title":"List the changes proposed to a pre-construction information","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/pre-construction-informations/{pre_construction_information_id}/proposed-changes","href":"/api-reference/pre-construction-information/list-the-changes-proposed-to-a-pre-construction-information"},{"title":"Propose a change to a pre-construction information","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/pre-construction-informations/{pre_construction_information_id}/proposed-changes","href":"/api-reference/pre-construction-information/propose-a-change-to-a-pre-construction-information"},{"title":"Get a change proposed to a pre-construction information","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/pre-construction-informations/{pre_construction_information_id}/proposed-changes/{pre_construction_information_proposed_change_id}","href":"/api-reference/pre-construction-information/get-a-change-proposed-to-a-pre-construction-information"},{"title":"Accept a change proposed to a pre-construction information","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/pre-construction-informations/{pre_construction_information_id}/proposed-changes/{pre_construction_information_proposed_change_id}/acceptance","href":"/api-reference/pre-construction-information/accept-a-change-proposed-to-a-pre-construction-information"},{"title":"Reject a change proposed to a pre-construction information","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/pre-construction-informations/{pre_construction_information_id}/proposed-changes/{pre_construction_information_proposed_change_id}/rejection","href":"/api-reference/pre-construction-information/reject-a-change-proposed-to-a-pre-construction-information"},{"title":"List a pre-construction information's revisions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/pre-construction-informations/{pre_construction_information_id}/revisions","href":"/api-reference/pre-construction-information/list-a-pre-construction-informations-revisions"},{"title":"Read a pre-construction information as at a revision","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/pre-construction-informations/{pre_construction_information_id}/revisions/{revision_number}","href":"/api-reference/pre-construction-information/read-a-pre-construction-information-as-at-a-revision"}]},{"group":"Feature Configurations","pages":[{"title":"List feature configurations","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/feature-configurations","href":"/api-reference/feature-configurations/get-v3feature-configurations"},{"title":"Get a feature configuration","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/feature-configurations/{feature_configuration_id}","href":"/api-reference/feature-configurations/get-v3feature-configurations-1"}]},{"group":"Feature Registry","pages":[{"title":"List features","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/features","href":"/api-reference/feature-registry/get-v3features"}]},{"group":"Folders","pages":[{"title":"List folders","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/folders","href":"/api-reference/folders/get-v3folders"},{"title":"Create a folder","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/folders","href":"/api-reference/folders/create-a-folder"},{"title":"Get a folder","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/folders/{folder_id}","href":"/api-reference/folders/get-v3folders-1"},{"title":"Update a folder","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/folders/{folder_id}","href":"/api-reference/folders/update-an-existing-folder"},{"title":"Delete a folder","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/folders/{folder_id}","href":"/api-reference/folders/delete-a-folder"},{"title":"Change a folders parent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/folders/{folder_id}/relationships/parent","href":"/api-reference/folders/update-the-parent-of-an-existing-folder"}]},{"group":"Forms, Schemas and Categories","pages":[{"title":"List form categories","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/form-categories","href":"/api-reference/forms-schemas-and-categories/get-v3form-categories"},{"title":"Create a form category","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/form-categories","href":"/api-reference/forms-schemas-and-categories/create-a-new-form-category"},{"title":"Get a form category","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/form-categories/{form_category_id}","href":"/api-reference/forms-schemas-and-categories/get-v3form-categories-1"},{"title":"Add a form to a category","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/form-categories/{form_category_id}/relationships/forms","href":"/api-reference/forms-schemas-and-categories/post-v3form-categories-relationshipsforms"},{"title":"Remove a form from a category","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/form-categories/{form_category_id}/relationships/forms","href":"/api-reference/forms-schemas-and-categories/delete-v3form-categories-relationshipsforms"},{"title":"Update the category for a form","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/form-categories/{form_category_id}/relationships/forms","href":"/api-reference/forms-schemas-and-categories/patch-v3form-categories-relationshipsforms"},{"title":"List form field maps","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/form-field-maps","href":"/api-reference/forms-schemas-and-categories/list-form-field-maps"},{"title":"Create a form field map version","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/form-field-maps","href":"/api-reference/forms-schemas-and-categories/create-a-form-field-map-version"},{"title":"Get a form field map","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/form-field-maps/{form_field_map_id}","href":"/api-reference/forms-schemas-and-categories/get-a-form-field-map"},{"title":"List form schemas","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/form-schemas","href":"/api-reference/forms-schemas-and-categories/get-v3form-schemas"},{"title":"Create a schema for a form","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/form-schemas","href":"/api-reference/forms-schemas-and-categories/create-a-new-form-schema"},{"title":"Get a form schema","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/form-schemas/{schema_id}","href":"/api-reference/forms-schemas-and-categories/get-v3form-schemas-1"},{"title":"List x-source options","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/form-schemas/{schema_id}/x-sources/{field_id}/options","href":"/api-reference/forms-schemas-and-categories/get-v3form-schemas-x-sources-options"},{"title":"List forms","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/forms","href":"/api-reference/forms-schemas-and-categories/get-v3forms"},{"title":"Create a form","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/forms","href":"/api-reference/forms-schemas-and-categories/create-a-new-form"},{"title":"Get a form","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/forms/{form_id}","href":"/api-reference/forms-schemas-and-categories/get-v3forms-1"},{"title":"Update a form","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/forms/{form_id}","href":"/api-reference/forms-schemas-and-categories/update-an-existing-form"}]},{"group":"Submissions","pages":[{"title":"List archived submission documents","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/form-submission-artefacts","href":"/api-reference/submissions/list-archived-submission-documents"},{"title":"Save a draft submission for a form","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/form-submission-drafts","href":"/api-reference/submissions/save-a-draft-form-submission"},{"title":"Get form submission stats","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/form-submission-stats","href":"/api-reference/submissions/get-v3form-submission-stats"},{"title":"Get all versions of form submissions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/form-submission-versions","href":"/api-reference/submissions/get-v3form-submission-versions"},{"title":"Create a submission for a form","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/form-submission-versions","href":"/api-reference/submissions/create-a-form-submission"},{"title":"Get a version of a form submission","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/form-submission-versions/{version_id}","href":"/api-reference/submissions/get-v3form-submission-versions-1"},{"title":"Download a submitted version's archived document","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/form-submission-versions/{version_id}/artefact","href":"/api-reference/submissions/download-a-submitted-versions-archived-document"},{"title":"List all submissions for a form","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/form-submissions","href":"/api-reference/submissions/get-v3form-submissions"},{"title":"Get a form submission","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/form-submissions/{submission_id}","href":"/api-reference/submissions/get-v3form-submissions-1"},{"title":"Delete a draft submission","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/form-submissions/{submission_id}","href":"/api-reference/submissions/delete-a-draft-submission"},{"title":"Search submissions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/form-submissions/search","href":"/api-reference/submissions/post-v3form-submissionssearch"}]},{"group":"Streets","pages":[{"title":"List streets","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/geo/streets","href":"/api-reference/streets/get-v3geostreets"},{"title":"Get a street","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/geo/streets/{street_id}","href":"/api-reference/streets/get-v3geostreets-1"}]},{"group":"IAM Grants","pages":[{"title":"List grants","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/grants","href":"/api-reference/iam-grants/get-v3grants"},{"title":"Create a grant","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/grants","href":"/api-reference/iam-grants/create-a-grant"},{"title":"Get a grant","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/grants/{grant_id}","href":"/api-reference/iam-grants/get-v3grants-1"},{"title":"Update a grant","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/grants/{grant_id}","href":"/api-reference/iam-grants/update-an-existing-grant"},{"title":"Delete a grant","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/grants/{grant_id}","href":"/api-reference/iam-grants/delete-a-grant"}]},{"group":"IAM Role Groups","pages":[{"title":"List role group members","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/groups/{group_id}/members","href":"/api-reference/iam-role-groups/get-v3groups-members"},{"title":"List role groups","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/orgs/{org_id}/iam/groups","href":"/api-reference/iam-role-groups/get-v3orgs-iamgroups"},{"title":"Create a role group","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/orgs/{org_id}/iam/groups","href":"/api-reference/iam-role-groups/create-a-role-group"},{"title":"Get a role group","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/orgs/{org_id}/iam/groups/{group_id}","href":"/api-reference/iam-role-groups/get-v3orgs-iamgroups-1"},{"title":"Update a role group","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/orgs/{org_id}/iam/groups/{group_id}","href":"/api-reference/iam-role-groups/update-a-role-group"},{"title":"Replace group members","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/orgs/{org_id}/iam/groups/{group_id}/relationships/members","href":"/api-reference/iam-role-groups/patch-v3orgs-iamgroups-relationshipsmembers"}]},{"group":"Whoami","pages":[{"title":"Get information about the currently authenticated principal","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/iam/whoami","href":"/api-reference/whoami/get-v3iamwhoami"},{"title":"Get the authenticated user's grants","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/whatcanido","href":"/api-reference/whoami/get-v3whatcanido"},{"title":"Get information about the currently authenticated principal","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/whoami","href":"/api-reference/whoami/get-v3whoami"}]},{"group":"Images","pages":[{"title":"List images","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/images","href":"/api-reference/images/get-v3images"},{"title":"Create an image","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/images","href":"/api-reference/images/creates-a-new-image"},{"title":"Get an image","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/images/{image_id}","href":"/api-reference/images/get-v3images-1"},{"title":"Get an image at a specified size","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/images/{image_id}/{size}","href":"/api-reference/images/get-v3images-"}]},{"group":"Import Templates","pages":[{"title":"List import templates","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/import-templates","href":"/api-reference/import-templates/get-v3import-templates"},{"title":"Create an import template","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/import-templates","href":"/api-reference/import-templates/create-an-import-template"},{"title":"Get import template","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/import-templates/{import_template_id}","href":"/api-reference/import-templates/get-v3import-templates-1"},{"title":"Update an import template","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/import-templates/{import_template_id}","href":"/api-reference/import-templates/update-an-import-template"},{"title":"Delete import template","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/import-templates/{import_template_id}","href":"/api-reference/import-templates/delete-v3import-templates"}]},{"group":"Job Roles","pages":[{"title":"List job role assignments","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/job-role-assignments","href":"/api-reference/job-roles/retrieve-job-role-assignments"},{"title":"Assign a job role","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/job-role-assignments","href":"/api-reference/job-roles/create-a-new-job-role-assignment"},{"title":"Get a job role assignment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/job-role-assignments/{job_role_assignment_id}","href":"/api-reference/job-roles/retrieve-a-job-role-assignment"},{"title":"Unassign a job role","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/job-role-assignments/{job_role_assignment_id}","href":"/api-reference/job-roles/delete-a-job-role-assignment"},{"title":"List job role subject assignments","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/job-role-subject-assignments","href":"/api-reference/job-roles/list-job-role-subject-assignments"},{"title":"Create a job role subject assignment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/job-role-subject-assignments","href":"/api-reference/job-roles/create-a-new-job-role-subject-assignment"},{"title":"Get a job role subject assignment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/job-role-subject-assignments/{job_role_subject_assignment_id}","href":"/api-reference/job-roles/get-a-job-role-subject-assignment"},{"title":"Delete a job role subject assignment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/job-role-subject-assignments/{job_role_subject_assignment_id}","href":"/api-reference/job-roles/delete-a-job-role-subject-assignment"},{"title":"List job roles","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/job-roles","href":"/api-reference/job-roles/retrieve-job-roles"},{"title":"Create a job role","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/job-roles","href":"/api-reference/job-roles/create-a-new-job-role"},{"title":"Get a job role","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/job-roles/{job_role_id}","href":"/api-reference/job-roles/retrieve-a-job-role"},{"title":"Update a job role","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/job-roles/{job_role_id}","href":"/api-reference/job-roles/update-an-existing-job-role"},{"title":"Delete a job role","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/job-roles/{job_role_id}","href":"/api-reference/job-roles/delete-a-job-role"},{"title":"List suggested job role permissions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/job-roles/{job_role_id}/suggested-permissions","href":"/api-reference/job-roles/get-v3job-roles-suggested-permissions"}]},{"group":"Learnings","pages":[{"title":"List learnings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/learnings","href":"/api-reference/learnings/get-v3learnings"},{"title":"Create a learning","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/learnings","href":"/api-reference/learnings/create-a-new-learning"},{"title":"Get a learning","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/learnings/{learning_id}","href":"/api-reference/learnings/get-v3learnings-1"},{"title":"Delete a learning","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/learnings/{learning_id}","href":"/api-reference/learnings/delete-a-learning"},{"title":"Update a learning","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/learnings/{learning_id}","href":"/api-reference/learnings/update-an-existing-learning"}]},{"group":"Location Imports","pages":[{"title":"List location imports","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/location-imports","href":"/api-reference/location-imports/get-v3location-imports"},{"title":"Load a file of locations","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/location-imports","href":"/api-reference/location-imports/load-a-file-of-locations"},{"title":"Get a location import","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/location-imports/{location_import_id}","href":"/api-reference/location-imports/get-v3location-imports-1"}]},{"group":"Locations","pages":[{"title":"List location types","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/location-types","href":"/api-reference/locations/get-v3location-types"},{"title":"Create a location type","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/location-types","href":"/api-reference/locations/create-a-new-location-type"},{"title":"Get a location type","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/location-types/{location_type_id}","href":"/api-reference/locations/get-v3location-types-1"},{"title":"Update a location type","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/location-types/{location_type_id}","href":"/api-reference/locations/update-a-location-type"},{"title":"Delete a location type","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/location-types/{location_type_id}","href":"/api-reference/locations/delete-a-location-type"},{"title":"List locations","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/locations","href":"/api-reference/locations/get-v3locations"},{"title":"Create a location","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/locations","href":"/api-reference/locations/create-a-new-location"},{"title":"Get a location","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/locations/{location_id}","href":"/api-reference/locations/get-v3locations-1"},{"title":"Update a location","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/locations/{location_id}","href":"/api-reference/locations/update-a-location"},{"title":"Delete a location","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/locations/{location_id}","href":"/api-reference/locations/delete-a-location"}]},{"group":"Management","pages":[{"title":"List management relationships","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/management-relationships","href":"/api-reference/management/list-management-relationships"},{"title":"Create a management relationship","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/management-relationships","href":"/api-reference/management/create-a-management-relationship"},{"title":"Get a management relationship","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/management-relationships/{management_relationship_id}","href":"/api-reference/management/get-a-management-relationship"},{"title":"Update a management relationship","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/management-relationships/{management_relationship_id}","href":"/api-reference/management/update-a-management-relationship"},{"title":"Delete a management relationship","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/management-relationships/{management_relationship_id}","href":"/api-reference/management/delete-a-management-relationship"},{"title":"List manager roles","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/manager-roles","href":"/api-reference/management/list-manager-roles"},{"title":"Create a manager role","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/manager-roles","href":"/api-reference/management/create-a-manager-role"},{"title":"Get a manager role","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/manager-roles/{manager_role_id}","href":"/api-reference/management/get-a-manager-role"},{"title":"Update a manager role","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/manager-roles/{manager_role_id}","href":"/api-reference/management/update-a-manager-role"},{"title":"Delete a manager role","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/manager-roles/{manager_role_id}","href":"/api-reference/management/delete-a-manager-role"}]},{"group":"Settings","pages":[{"title":"Create nomenclature","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/nomenclature","href":"/api-reference/settings/create-nomenclature-settings"},{"title":"Update nomenclature","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/nomenclature/{nomenclature_id}","href":"/api-reference/settings/update-nomenclature-settings"},{"title":"List time bands","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/orgs/{org_id}/settings/time-bands","href":"/api-reference/settings/get-v3orgs-settingstime-bands"},{"title":"Create a time band","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/orgs/{org_id}/settings/time-bands","href":"/api-reference/settings/create-a-new-time-band"},{"title":"Get a time band","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/orgs/{org_id}/settings/time-bands/{time_band_id}","href":"/api-reference/settings/get-v3orgs-settingstime-bands-1"},{"title":"Update a time band","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/orgs/{org_id}/settings/time-bands/{time_band_id}","href":"/api-reference/settings/update-an-existing-time-band"}]},{"group":"Notifications","pages":[{"title":"List your notifications","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/notifications","href":"/api-reference/notifications/list-your-notifications"},{"title":"Update several notifications","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/notifications","href":"/api-reference/notifications/update-several-of-your-notifications"},{"title":"Get a notification","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/notifications/{notification_id}","href":"/api-reference/notifications/get-one-of-your-notifications"},{"title":"Update a notification","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/notifications/{notification_id}","href":"/api-reference/notifications/update-one-of-your-notifications"},{"title":"Archive everything you have read","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/notifications/archive-all-read","href":"/api-reference/notifications/archive-everything-you-have-read"},{"title":"Mark your inbox read","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/notifications/mark-all-read","href":"/api-reference/notifications/mark-your-whole-inbox-read"}]},{"group":"Operations","pages":[{"title":"List operation types","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/operation-types","href":"/api-reference/operations/list-operation-types"},{"title":"Create an operation type","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/operation-types","href":"/api-reference/operations/create-an-operation-type"},{"title":"Get an operation type","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/operation-types/{operation_type_id}","href":"/api-reference/operations/get-an-operation-type"},{"title":"Update an operation type","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/operation-types/{operation_type_id}","href":"/api-reference/operations/update-an-operation-type"},{"title":"Delete an operation type","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/operation-types/{operation_type_id}","href":"/api-reference/operations/delete-an-operation-type"},{"title":"List operations","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/operations","href":"/api-reference/operations/get-v3operations"},{"title":"Create an operation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/operations","href":"/api-reference/operations/create-a-new-operation"},{"title":"Get an operation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/operations/{operation_id}","href":"/api-reference/operations/get-v3operations-1"},{"title":"Update an operation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/operations/{operation_id}","href":"/api-reference/operations/update-an-existing-operation"},{"title":"Delete an operation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/operations/{operation_id}","href":"/api-reference/operations/delete-an-operation"},{"title":"Patch an operation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/operations/{operation_id}","href":"/api-reference/operations/partially-update-an-existing-operation"},{"title":"Allocate an operation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/operations/{operation_id}/allocate","href":"/api-reference/operations/allocate-an-operation-to-a-work-order"},{"title":"Replace the appointment on an operation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/operations/{operation_id}/relationships/appointment","href":"/api-reference/operations/patch-v3operations-relationshipsappointment"},{"title":"Assign users to an operation","deprecated":true,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/operations/{operation_id}/relationships/assignees","href":"/api-reference/operations/post-v3operations-relationshipsassignees"},{"title":"Remove assignees from an operation","deprecated":true,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/operations/{operation_id}/relationships/assignees","href":"/api-reference/operations/delete-v3operations-relationshipsassignees"},{"title":"Replace assignees to an operation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/operations/{operation_id}/relationships/assignees","href":"/api-reference/operations/patch-v3operations-relationshipsassignees"},{"title":"Assign locations to an operation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/operations/{operation_id}/relationships/locations","href":"/api-reference/operations/post-v3operations-relationshipslocations"},{"title":"Remove locations from an operation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/operations/{operation_id}/relationships/locations","href":"/api-reference/operations/delete-v3operations-relationshipslocations"},{"title":"Replace locations on an operation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/operations/{operation_id}/relationships/locations","href":"/api-reference/operations/patch-v3operations-relationshipslocations"},{"title":"Assign permits to an operation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/operations/{operation_id}/relationships/permits","href":"/api-reference/operations/post-v3operations-relationshipspermits"},{"title":"Remove permits from an operation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/operations/{operation_id}/relationships/permits","href":"/api-reference/operations/delete-v3operations-relationshipspermits"},{"title":"Replace the permits on an operation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/operations/{operation_id}/relationships/permits","href":"/api-reference/operations/patch-v3operations-relationshipspermits"},{"title":"Assign properties to an operation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/operations/{operation_id}/relationships/properties","href":"/api-reference/operations/post-v3operations-relationshipsproperties"},{"title":"Remove properties from an operation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/operations/{operation_id}/relationships/properties","href":"/api-reference/operations/delete-v3operations-relationshipsproperties"},{"title":"Replace properties on an operation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/operations/{operation_id}/relationships/properties","href":"/api-reference/operations/patch-v3operations-relationshipsproperties"},{"title":"Assign streets to an operation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/operations/{operation_id}/relationships/streets","href":"/api-reference/operations/post-v3operations-relationshipsstreets"},{"title":"Remove streets from an operation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/operations/{operation_id}/relationships/streets","href":"/api-reference/operations/delete-v3operations-relationshipsstreets"},{"title":"Replace the streets on an operation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/operations/{operation_id}/relationships/streets","href":"/api-reference/operations/patch-v3operations-relationshipsstreets"},{"title":"Assign teams to an operation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/operations/{operation_id}/relationships/teams","href":"/api-reference/operations/post-v3operations-relationshipsteams"},{"title":"Remove teams from an operation","deprecated":true,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/operations/{operation_id}/relationships/teams","href":"/api-reference/operations/delete-v3operations-relationshipsteams"},{"title":"Replace the teams on an operation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/operations/{operation_id}/relationships/teams","href":"/api-reference/operations/patch-v3operations-relationshipsteams"},{"title":"List operation templates","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/orgs/{org_id}/projects/operation-templates","href":"/api-reference/operations/get-v3orgs-projectsoperation-templates"},{"title":"Create an operation template","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/orgs/{org_id}/projects/operation-templates","href":"/api-reference/operations/create-a-new-operation-template"},{"title":"Get an operation template","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/orgs/{org_id}/projects/operation-templates/{template_id}","href":"/api-reference/operations/get-v3orgs-projectsoperation-templates-1"},{"title":"Update an operation template","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/orgs/{org_id}/projects/operation-templates/{template_id}","href":"/api-reference/operations/update-an-existing-operation-template"}]},{"group":"Customer Accounts and Contacts","pages":[{"title":"List accounts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/orgs/{org_id}/customers/accounts","href":"/api-reference/customer-accounts-and-contacts/get-v3orgs-customersaccounts"},{"title":"Create an account","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/orgs/{org_id}/customers/accounts","href":"/api-reference/customer-accounts-and-contacts/post-v3orgs-customersaccounts"},{"title":"Get an account","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/orgs/{org_id}/customers/accounts/{customer_account_id}","href":"/api-reference/customer-accounts-and-contacts/get-v3orgs-customersaccounts-1"},{"title":"Update an account","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/orgs/{org_id}/customers/accounts/{customer_account_id}","href":"/api-reference/customer-accounts-and-contacts/put-v3orgs-customersaccounts"},{"title":"Associate a contact to an account","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/orgs/{org_id}/customers/accounts/{customer_account_id}/relationships/contacts","href":"/api-reference/customer-accounts-and-contacts/post-v3orgs-customersaccounts-relationshipscontacts"},{"title":"Remove contacts from an account","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/orgs/{org_id}/customers/accounts/{customer_account_id}/relationships/contacts","href":"/api-reference/customer-accounts-and-contacts/delete-v3orgs-customersaccounts-relationshipscontacts"},{"title":"Update the contacts for an account","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/orgs/{org_id}/customers/accounts/{customer_account_id}/relationships/contacts","href":"/api-reference/customer-accounts-and-contacts/patch-v3orgs-customersaccounts-relationshipscontacts"},{"title":"Associate a property to an account","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/orgs/{org_id}/customers/accounts/{customer_account_id}/relationships/properties","href":"/api-reference/customer-accounts-and-contacts/post-v3orgs-customersaccounts-relationshipsproperties"},{"title":"Remove properties from an account","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/orgs/{org_id}/customers/accounts/{customer_account_id}/relationships/properties","href":"/api-reference/customer-accounts-and-contacts/delete-v3orgs-customersaccounts-relationshipsproperties"},{"title":"Update the properties for an account","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/orgs/{org_id}/customers/accounts/{customer_account_id}/relationships/properties","href":"/api-reference/customer-accounts-and-contacts/patch-v3orgs-customersaccounts-relationshipsproperties"},{"title":"List contacts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/orgs/{org_id}/customers/contacts","href":"/api-reference/customer-accounts-and-contacts/get-v3orgs-customerscontacts"},{"title":"Create a contact","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/orgs/{org_id}/customers/contacts","href":"/api-reference/customer-accounts-and-contacts/post-v3orgs-customerscontacts"},{"title":"Get a contact","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/orgs/{org_id}/customers/contacts/{contact_id}","href":"/api-reference/customer-accounts-and-contacts/get-v3orgs-customerscontacts-1"},{"title":"Update a contact","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/orgs/{org_id}/customers/contacts/{contact_id}","href":"/api-reference/customer-accounts-and-contacts/put-v3orgs-customerscontacts"}]},{"group":"Customer Appointments","pages":[{"title":"List appointments","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/orgs/{org_id}/customers/appointments","href":"/api-reference/customer-appointments/get-v3orgs-customersappointments"},{"title":"Create an appointment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/orgs/{org_id}/customers/appointments","href":"/api-reference/customer-appointments/post-v3orgs-customersappointments"},{"title":"Get an appointment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/orgs/{org_id}/customers/appointments/{appointment_id}","href":"/api-reference/customer-appointments/get-v3orgs-customersappointments-1"},{"title":"Update an appointment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/orgs/{org_id}/customers/appointments/{appointment_id}","href":"/api-reference/customer-appointments/put-v3orgs-customersappointments"},{"title":"Cancel an appointment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/orgs/{org_id}/customers/appointments/{appointment_id}/actions/cancel","href":"/api-reference/customer-appointments/post-v3orgs-customersappointments-actionscancel"},{"title":"Update appointment interactions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/orgs/{org_id}/customers/appointments/{appointment_id}/relationships/interaction","href":"/api-reference/customer-appointments/patch-v3orgs-customersappointments-relationshipsinteraction"},{"title":"Update appointment operations","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/orgs/{org_id}/customers/appointments/{appointment_id}/relationships/operation","href":"/api-reference/customer-appointments/patch-v3orgs-customersappointments-relationshipsoperation"},{"title":"Update an appointment time band","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/orgs/{org_id}/customers/appointments/{appointment_id}/relationships/time-band","href":"/api-reference/customer-appointments/patch-v3orgs-customersappointments-relationshipstime-band"}]},{"group":"Customer Interactions","pages":[{"title":"List interactions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/orgs/{org_id}/customers/interactions","href":"/api-reference/customer-interactions/get-v3orgs-customersinteractions"},{"title":"Create an interaction","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/orgs/{org_id}/customers/interactions","href":"/api-reference/customer-interactions/post-v3orgs-customersinteractions"},{"title":"Get an interaction","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/orgs/{org_id}/customers/interactions/{customer_interaction_id}","href":"/api-reference/customer-interactions/get-v3orgs-customersinteractions-1"},{"title":"Update an interaction","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/orgs/{org_id}/customers/interactions/{customer_interaction_id}","href":"/api-reference/customer-interactions/put-v3orgs-customersinteractions"},{"title":"Update the account for an interaction","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/orgs/{org_id}/customers/interactions/{customer_interaction_id}/relationships/account","href":"/api-reference/customer-interactions/patch-v3orgs-customersinteractions-relationshipsaccount"},{"title":"Update the contact for an interaction","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/orgs/{org_id}/customers/interactions/{customer_interaction_id}/relationships/contact","href":"/api-reference/customer-interactions/patch-v3orgs-customersinteractions-relationshipscontact"},{"title":"Update the property for an interaction","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/orgs/{org_id}/customers/interactions/{customer_interaction_id}/relationships/property","href":"/api-reference/customer-interactions/patch-v3orgs-customersinteractions-relationshipsproperty"},{"title":"Update the prepresentative for an interaction","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/orgs/{org_id}/customers/interactions/{customer_interaction_id}/relationships/representative","href":"/api-reference/customer-interactions/patch-v3orgs-customersinteractions-relationshipsrepresentative"}]},{"group":"Bridges","pages":[{"title":"List bridge requests","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/orgs/{org_id}/organisation-bridge-requests","href":"/api-reference/bridges/get-v3orgs-organisation-bridge-requests"},{"title":"Create a bridge request","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/orgs/{org_id}/organisation-bridge-requests","href":"/api-reference/bridges/generate-a-code-that-will-allow-another-organisation-to-request-a-bridge-to-your-organisation"},{"title":"Get a bridge request","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/orgs/{org_id}/organisation-bridge-requests/{bridge_request_id}","href":"/api-reference/bridges/get-v3orgs-organisation-bridge-requests-1"},{"title":"Update a bridge request","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/orgs/{org_id}/organisation-bridge-requests/{bridge_request_id}","href":"/api-reference/bridges/update-an-existing-organisation-bridge-request"},{"title":"List bridges","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/orgs/{org_id}/organisation-bridges","href":"/api-reference/bridges/get-v3orgs-organisation-bridges"},{"title":"Get a bridge","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/orgs/{org_id}/organisation-bridges/{bridge_id}","href":"/api-reference/bridges/get-v3orgs-organisation-bridges-1"},{"title":"Replace bridge notification recipients","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/orgs/{org_id}/organisation-bridges/{bridge_id}/relationships/notification-recipients","href":"/api-reference/bridges/patch-v3orgs-organisation-bridges-relationshipsnotification-recipients"}]},{"group":"Teams","pages":[{"title":"List teams","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/orgs/{org_id}/people/teams","href":"/api-reference/teams/get-v3orgs-peopleteams"},{"title":"Create a team","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/orgs/{org_id}/people/teams","href":"/api-reference/teams/create-a-team"},{"title":"Get a team","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/orgs/{org_id}/people/teams/{team_id}","href":"/api-reference/teams/get-v3orgs-peopleteams-1"},{"title":"Update a team","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/orgs/{org_id}/people/teams/{team_id}","href":"/api-reference/teams/update-a-team"},{"title":"Replace team members","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/orgs/{org_id}/people/teams/{team_id}/relationships/members","href":"/api-reference/teams/patch-v3orgs-peopleteams-relationshipsmembers"}]},{"group":"Permits","pages":[{"title":"List permits","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/orgs/{org_id}/projects/permits","href":"/api-reference/permits/get-v3orgs-projectspermits"},{"title":"Create a permit","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/orgs/{org_id}/projects/permits","href":"/api-reference/permits/create-a-new-permit"},{"title":"Get a permit","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/orgs/{org_id}/projects/permits/{permit_id}","href":"/api-reference/permits/get-v3orgs-projectspermits-1"},{"title":"Get permit insights","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/permit-insights","href":"/api-reference/permits/get-v3permit-insights"}]},{"group":"Schemes","pages":[{"title":"List scheme templates","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/orgs/{org_id}/projects/scheme-templates","href":"/api-reference/schemes/get-v3orgs-projectsscheme-templates"},{"title":"Get a scheme template","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/orgs/{org_id}/projects/scheme-templates","href":"/api-reference/schemes/create-a-new-scheme-template"},{"title":"Get a scheme template","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/orgs/{org_id}/projects/scheme-templates/{template_id}","href":"/api-reference/schemes/get-v3orgs-projectsscheme-templates-1"},{"title":"Update a scheme template","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/orgs/{org_id}/projects/scheme-templates/{template_id}","href":"/api-reference/schemes/update-an-existing-scheme-template"},{"title":"List schemes","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/orgs/{org_id}/projects/schemes","href":"/api-reference/schemes/get-v3orgs-projectsschemes"},{"title":"Create a scheme","deprecated":true,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/orgs/{org_id}/projects/schemes","href":"/api-reference/schemes/create-a-new-scheme"},{"title":"Get a scheme","deprecated":true,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/orgs/{org_id}/projects/schemes/{scheme_id}","href":"/api-reference/schemes/get-v3orgs-projectsschemes-1"},{"title":"Update a scheme","deprecated":true,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/orgs/{org_id}/projects/schemes/{scheme_id}","href":"/api-reference/schemes/update-an-existing-scheme"},{"title":"List schemes","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/schemes","href":"/api-reference/schemes/get-v3schemes"},{"title":"Get a scheme","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/schemes/{scheme_id}","href":"/api-reference/schemes/get-v3schemes-1"},{"title":"Delete a scheme","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/schemes/{scheme_id}","href":"/api-reference/schemes/delete-a-scheme"}]},{"group":"Work Orders","pages":[{"title":"List work order templates","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/orgs/{org_id}/projects/work-order-templates","href":"/api-reference/work-orders/get-v3orgs-projectswork-order-templates"},{"title":"Create a work order template","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/orgs/{org_id}/projects/work-order-templates","href":"/api-reference/work-orders/create-a-new-work-order-template"},{"title":"Get a work order template","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/orgs/{org_id}/projects/work-order-templates/{template_id}","href":"/api-reference/work-orders/get-v3orgs-projectswork-order-templates-1"},{"title":"Update a work order template","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/orgs/{org_id}/projects/work-order-templates/{template_id}","href":"/api-reference/work-orders/update-an-existing-work-order-template"},{"title":"List work orders","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/work-orders","href":"/api-reference/work-orders/get-v3work-orders"},{"title":"Create a work order","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/work-orders","href":"/api-reference/work-orders/create-a-new-work-order"},{"title":"Get a work order","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/work-orders/{work_order_id}","href":"/api-reference/work-orders/get-v3work-orders-1"},{"title":"Update a work order","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/work-orders/{work_order_id}","href":"/api-reference/work-orders/update-an-existing-work-order"},{"title":"Delete a work order","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/work-orders/{work_order_id}","href":"/api-reference/work-orders/delete-a-work-order"},{"title":"Assign permits to a work order","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/work-orders/{work_order_id}/relationships/permits","href":"/api-reference/work-orders/post-v3work-orders-relationshipspermits"},{"title":"Remove permits from a work order","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/work-orders/{work_order_id}/relationships/permits","href":"/api-reference/work-orders/delete-v3work-orders-relationshipspermits"},{"title":"Replace permits on a work order","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/work-orders/{work_order_id}/relationships/permits","href":"/api-reference/work-orders/patch-v3work-orders-relationshipspermits"},{"title":"Assign site managers to a work order","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/work-orders/{work_order_id}/relationships/site-managers","href":"/api-reference/work-orders/post-v3work-orders-relationshipssite-managers"},{"title":"Remove site managers from a work order","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/work-orders/{work_order_id}/relationships/site-managers","href":"/api-reference/work-orders/delete-v3work-orders-relationshipssite-managers"},{"title":"Replace site managers on a work order","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/work-orders/{work_order_id}/relationships/site-managers","href":"/api-reference/work-orders/patch-v3work-orders-relationshipssite-managers"}]},{"group":"IAM Permissions","pages":[{"title":"List permissions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/permissions","href":"/api-reference/iam-permissions/get-v3permissions"},{"title":"Get a permission","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/permissions/{permission_id}","href":"/api-reference/iam-permissions/get-v3permissions-1"}]},{"group":"Plane Goals","pages":[{"title":"List plane goals","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/plane-goals","href":"/api-reference/plane-goals/get-v3plane-goals"},{"title":"Create a plane goal","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/plane-goals","href":"/api-reference/plane-goals/create-a-new-plane-goal"},{"title":"Get a plane goal","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/plane-goals/{plane_goal_id}","href":"/api-reference/plane-goals/get-v3plane-goals-1"},{"title":"Update a plane goal","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/plane-goals/{plane_goal_id}","href":"/api-reference/plane-goals/update-an-existing-plane-goal"}]},{"group":"Plane Plans","pages":[{"title":"List plane plans","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/plane-plans","href":"/api-reference/plane-plans/get-v3plane-plans"},{"title":"Create a plane plan","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/plane-plans","href":"/api-reference/plane-plans/create-a-new-plane-plan"},{"title":"Get a plane plan","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/plane-plans/{plane_plan_id}","href":"/api-reference/plane-plans/get-v3plane-plans-1"},{"title":"Update a plane plan","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/plane-plans/{plane_plan_id}","href":"/api-reference/plane-plans/update-an-existing-plane-plan"}]},{"group":"Plane Projects","pages":[{"title":"List plane projects","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/plane-projects","href":"/api-reference/plane-projects/get-v3plane-projects"},{"title":"Create a plane project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/plane-projects","href":"/api-reference/plane-projects/create-a-new-plane-project"},{"title":"Get a plane project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/plane-projects/{plane_project_id}","href":"/api-reference/plane-projects/get-v3plane-projects-1"},{"title":"Update a plane project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/plane-projects/{plane_project_id}","href":"/api-reference/plane-projects/update-an-existing-plane-project"}]},{"group":"Plane Session Events","pages":[{"title":"List plane session events","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/plane-session-events","href":"/api-reference/plane-session-events/get-v3plane-session-events"},{"title":"Create a plane session event","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/plane-session-events","href":"/api-reference/plane-session-events/create-a-new-plane-session-event"},{"title":"Get a plane session event","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/plane-session-events/{plane_session_event_id}","href":"/api-reference/plane-session-events/get-v3plane-session-events-1"}]},{"group":"Plane Sessions","pages":[{"title":"List plane sessions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/plane-sessions","href":"/api-reference/plane-sessions/get-v3plane-sessions"},{"title":"Create a plane session","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/plane-sessions","href":"/api-reference/plane-sessions/create-a-new-plane-session"},{"title":"Get a plane session","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/plane-sessions/{plane_session_id}","href":"/api-reference/plane-sessions/get-v3plane-sessions-1"},{"title":"Update a plane session","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/plane-sessions/{plane_session_id}","href":"/api-reference/plane-sessions/update-an-existing-plane-session"}]},{"group":"Queries","pages":[{"title":"List queries","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/queries","href":"/api-reference/queries/get-v3queries"},{"title":"Create a query","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/queries","href":"/api-reference/queries/create-a-new-query"},{"title":"Get a query","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/queries/{query_id}","href":"/api-reference/queries/get-v3queries-1"},{"title":"Delete a query","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/queries/{query_id}","href":"/api-reference/queries/delete-a-query"},{"title":"Update a query","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/queries/{query_id}","href":"/api-reference/queries/update-an-existing-query"},{"title":"Export a query as CSV","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/queries/{query_id}/export","href":"/api-reference/queries/get-v3queries-export"},{"title":"Run a query","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/queries/{query_id}/results","href":"/api-reference/queries/get-v3queries-results"},{"title":"Preview a query","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/queries/preview","href":"/api-reference/queries/post-v3queriespreview"},{"title":"X-source resolution catalog","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/query-resolution-catalogue","href":"/api-reference/queries/get-v3query-resolution-catalogue"}]},{"group":"Reports","pages":[{"title":"List report runs","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/report-runs","href":"/api-reference/reports/get-v3report-runs"},{"title":"Get a report run","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/report-runs/{report_run_id}","href":"/api-reference/reports/get-v3report-runs-1"},{"title":"Download a report run's artifact","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/report-runs/{report_run_id}/artifact","href":"/api-reference/reports/download-a-report-runs-artifact"},{"title":"List reports","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/reports","href":"/api-reference/reports/get-v3reports"},{"title":"Create a report","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/reports","href":"/api-reference/reports/create-a-new-report"},{"title":"Get a report","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/reports/{report_id}","href":"/api-reference/reports/get-v3reports-1"},{"title":"Delete a report","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/reports/{report_id}","href":"/api-reference/reports/delete-a-report"},{"title":"Update a report","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/reports/{report_id}","href":"/api-reference/reports/update-a-report"},{"title":"Run a report now","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/reports/{report_id}/run","href":"/api-reference/reports/run-a-report-now"}]},{"group":"IAM Roles","pages":[{"title":"List roles","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/roles","href":"/api-reference/iam-roles/get-v3roles"},{"title":"Get a role","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/roles/{role_id}","href":"/api-reference/iam-roles/get-v3roles-1"}]},{"group":"Scheme Contracts","pages":[{"title":"List scheme contracts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/scheme-contracts","href":"/api-reference/scheme-contracts/list-scheme-contracts"},{"title":"Create a scheme contract","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/scheme-contracts","href":"/api-reference/scheme-contracts/create-a-new-scheme-contract"},{"title":"Get a scheme contract","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/scheme-contracts/{scheme_contract_id}","href":"/api-reference/scheme-contracts/get-a-scheme-contract"},{"title":"Update a scheme contract","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/scheme-contracts/{scheme_contract_id}","href":"/api-reference/scheme-contracts/update-an-existing-scheme-contract"},{"title":"Delete a scheme contract","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/scheme-contracts/{scheme_contract_id}","href":"/api-reference/scheme-contracts/delete-a-scheme-contract"}]},{"group":"Scheme Shares","pages":[{"title":"List scheme shares","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/scheme-shares","href":"/api-reference/scheme-shares/list-scheme-share-resources"},{"title":"Create a scheme share","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/scheme-shares","href":"/api-reference/scheme-shares/create-a-new-resource-share-between-2-organisations"},{"title":"Get a scheme share","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/scheme-shares/{scheme_share_id}","href":"/api-reference/scheme-shares/get-a-scheme-share-resource"},{"title":"Update a scheme share","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/scheme-shares/{scheme_share_id}","href":"/api-reference/scheme-shares/update-an-existing-scheme-share"},{"title":"Delete a scheme share","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/scheme-shares/{scheme_share_id}","href":"/api-reference/scheme-shares/delete-a-scheme-share"},{"title":"Get the removal impact of a scheme share","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/scheme-shares/{scheme_share_id}/removal-impact","href":"/api-reference/scheme-shares/get-the-removal-impact-of-a-scheme-share"}]},{"group":"Search","pages":[{"title":"Perform a search","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/search","href":"/api-reference/search/get-v3search"},{"title":"Search shared resources","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/shared-search","href":"/api-reference/search/get-v3shared-search"}]},{"group":"Security Settings","pages":[{"title":"List security settings impacts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/security-settings-impacts","href":"/api-reference/security-settings/list-who-requiring-mfa-would-affect"},{"title":"Update security settings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/security-settings/{security_settings_id}","href":"/api-reference/security-settings/update-an-organisations-security-settings"}]},{"group":"Site Attendances","pages":[{"title":"List site attendances","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/site-attendances","href":"/api-reference/site-attendances/list-site-attendance-resources"},{"title":"Sign a person in to site","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/site-attendances","href":"/api-reference/site-attendances/sign-a-person-in-to-site"},{"title":"Get a site attendance","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/site-attendances/{site_attendance_id}","href":"/api-reference/site-attendances/get-a-site-attendance-resource"},{"title":"Sign a person out of site","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/site-attendances/{site_attendance_id}","href":"/api-reference/site-attendances/sign-a-person-out-or-correct-their-attendance"},{"title":"Sign several people out of site","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/site-attendances/sign-out","href":"/api-reference/site-attendances/sign-several-people-out-of-site-at-once"}]},{"group":"SSO Providers","pages":[{"title":"Match an SSO provider","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/sso-provider-matches","href":"/api-reference/sso-providers/get-v3sso-provider-matches"},{"title":"List SSO providers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/sso-providers","href":"/api-reference/sso-providers/get-v3sso-providers"},{"title":"Create an SSO provider","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/sso-providers","href":"/api-reference/sso-providers/create-an-sso-provider"},{"title":"Get an SSO provider","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/sso-providers/{sso_provider_id}","href":"/api-reference/sso-providers/get-v3sso-providers-1"},{"title":"Update an SSO provider","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/sso-providers/{sso_provider_id}","href":"/api-reference/sso-providers/update-an-existing-sso-provider"},{"title":"Delete an SSO provider","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/sso-providers/{sso_provider_id}","href":"/api-reference/sso-providers/delete-an-sso-provider"}]},{"group":"Status","pages":[{"title":"Status","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/status","href":"/api-reference/status/get-v3status"}]},{"group":"Geo","pages":[{"title":"Search for streets","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/street-search-results","href":"/api-reference/geo/get-v3street-search-results"}]},{"group":"Uploads","pages":[{"title":"Upload a file","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/uploads","href":"/api-reference/uploads/upload-a-file"}]},{"group":"Invitations","pages":[{"title":"List invitations","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/user-invitations","href":"/api-reference/invitations/get-v3user-invitations"},{"title":"Invite a user","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/user-invitations","href":"/api-reference/invitations/creates-a-user-invitation-to-join-the-organisation"},{"title":"Get an invitation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/user-invitations/{user_invitation_id}","href":"/api-reference/invitations/get-v3user-invitations-1"},{"title":"Delete an invitation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/user-invitations/{user_invitation_id}","href":"/api-reference/invitations/delete-a-user-invitation"},{"title":"Update an invitation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/user-invitations/{user_invitation_id}","href":"/api-reference/invitations/update-an-existing-user-invitation"},{"title":"Send an invitation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/user-invitations/{user_invitation_id}/send","href":"/api-reference/invitations/send-the-invitation-email-for-a-user-invitation"}]},{"group":"Users","pages":[{"title":"List users","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/users","href":"/api-reference/users/list-users"},{"title":"Create a managed user","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/users","href":"/api-reference/users/create-a-new-managed-user"},{"title":"Update a user","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/users/{user_id}","href":"/api-reference/users/update-a-user"},{"title":"Change a seat class","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/users/{user_id}/seat-class-changes","href":"/api-reference/users/change-a-members-seat-class"},{"title":"Send an access email","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/users/{user_id}/send-access-email","href":"/api-reference/users/send-a-setup-or-password-reset-email-to-a-member"}]},{"group":"IAM","pages":[{"title":"List the app versions a user has used","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/users/{user_id}/app-versions","href":"/api-reference/iam/list-the-app-versions-a-user-has-used"},{"title":"Get v3users grants","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/users/{user_id}/grants","href":"/api-reference/iam/get-v3users-grants"}]},{"group":"Vehicles","pages":[{"title":"List vehicle categories","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/vehicle-categories","href":"/api-reference/vehicles/get-v3vehicle-categories"},{"title":"Create a vehicle category","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/vehicle-categories","href":"/api-reference/vehicles/create-a-new-vehicle-category"},{"title":"Get a vehicle category","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/vehicle-categories/{vehicle_category_id}","href":"/api-reference/vehicles/get-v3vehicle-categories-1"},{"title":"Delete a vehicle category","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/vehicle-categories/{vehicle_category_id}","href":"/api-reference/vehicles/delete-a-vehicle-category"},{"title":"Update a vehicle category","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/vehicle-categories/{vehicle_category_id}","href":"/api-reference/vehicles/update-a-vehicle-category"},{"title":"Add certifications to a vehicle category","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/vehicle-categories/{vehicle_category_id}/relationships/certifications","href":"/api-reference/vehicles/add-certifications-to-a-vehicle-category"},{"title":"Remove certifications from a vehicle category","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/vehicle-categories/{vehicle_category_id}/relationships/certifications","href":"/api-reference/vehicles/remove-certifications-from-a-vehicle-category"},{"title":"Replace a vehicle category's certifications","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/vehicle-categories/{vehicle_category_id}/relationships/certifications","href":"/api-reference/vehicles/replace-a-vehicle-categorys-certifications"},{"title":"List vehicle certificates","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/vehicle-certificates","href":"/api-reference/vehicles/get-v3vehicle-certificates"},{"title":"Create a vehicle certificate","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/vehicle-certificates","href":"/api-reference/vehicles/create-a-new-vehicle-certificate"},{"title":"Get a vehicle certificate","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/vehicle-certificates/{vehicle_certificate_id}","href":"/api-reference/vehicles/get-v3vehicle-certificates-1"},{"title":"Delete a vehicle certificate","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/vehicle-certificates/{vehicle_certificate_id}","href":"/api-reference/vehicles/delete-a-vehicle-certificate"},{"title":"Update a vehicle certificate","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/vehicle-certificates/{vehicle_certificate_id}","href":"/api-reference/vehicles/update-a-vehicle-certificate"},{"title":"List vehicle certifications","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/vehicle-certifications","href":"/api-reference/vehicles/get-v3vehicle-certifications"},{"title":"Create a vehicle certification","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/vehicle-certifications","href":"/api-reference/vehicles/create-a-new-vehicle-certification"},{"title":"Get a vehicle certification","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/vehicle-certifications/{vehicle_certification_id}","href":"/api-reference/vehicles/get-v3vehicle-certifications-1"},{"title":"Delete a vehicle certification","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/vehicle-certifications/{vehicle_certification_id}","href":"/api-reference/vehicles/delete-a-vehicle-certification"},{"title":"Update a vehicle certification","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/vehicle-certifications/{vehicle_certification_id}","href":"/api-reference/vehicles/update-a-vehicle-certification"},{"title":"List vehicle enquiries","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/vehicle-enquiries","href":"/api-reference/vehicles/get-v3vehicle-enquiries"},{"title":"Perform a vehicle enquiry","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/vehicle-enquiries","href":"/api-reference/vehicles/perform-a-new-vehicle-enquiry"},{"title":"Get a vehicle enquiry","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/vehicle-enquiries/{vehicle_enquiry_id}","href":"/api-reference/vehicles/get-v3vehicle-enquiries-1"},{"title":"List vehicle inspections","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/vehicle-inspections","href":"/api-reference/vehicles/get-v3vehicle-inspections"},{"title":"Create a vehicle inspection","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/vehicle-inspections","href":"/api-reference/vehicles/create-a-new-vehicle-inspection"},{"title":"Get a vehicle inspection","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/vehicle-inspections/{vehicle_inspection_id}","href":"/api-reference/vehicles/get-v3vehicle-inspections-1"},{"title":"Delete a vehicle inspection","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/vehicle-inspections/{vehicle_inspection_id}","href":"/api-reference/vehicles/delete-a-vehicle-inspection"},{"title":"Update a vehicle inspection","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/vehicle-inspections/{vehicle_inspection_id}","href":"/api-reference/vehicles/update-a-vehicle-inspection"},{"title":"List vehicle inventory checks","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/vehicle-inventory-checks","href":"/api-reference/vehicles/get-v3vehicle-inventory-checks"},{"title":"Create a vehicle inventory check","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/vehicle-inventory-checks","href":"/api-reference/vehicles/create-a-new-vehicle-inventory-check"},{"title":"Get a vehicle inventory check","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/vehicle-inventory-checks/{vehicle_inventory_check_id}","href":"/api-reference/vehicles/get-v3vehicle-inventory-checks-1"},{"title":"Delete a vehicle inventory check","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/vehicle-inventory-checks/{vehicle_inventory_check_id}","href":"/api-reference/vehicles/delete-a-vehicle-inventory-check"},{"title":"Update a vehicle inventory check","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/vehicle-inventory-checks/{vehicle_inventory_check_id}","href":"/api-reference/vehicles/update-a-vehicle-inventory-check"},{"title":"List vehicle manufacturers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/vehicle-manufacturers","href":"/api-reference/vehicles/get-v3vehicle-manufacturers"},{"title":"Create a vehicle manufacturer","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/vehicle-manufacturers","href":"/api-reference/vehicles/create-a-new-vehicle-manufacturer"},{"title":"Get a vehicle manufacturer","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/vehicle-manufacturers/{vehicle_manufacturer_id}","href":"/api-reference/vehicles/get-v3vehicle-manufacturers-1"},{"title":"Delete a vehicle manufacturer","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/vehicle-manufacturers/{vehicle_manufacturer_id}","href":"/api-reference/vehicles/delete-a-vehicle-manufacturer"},{"title":"Update a vehicle manufacturer","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/vehicle-manufacturers/{vehicle_manufacturer_id}","href":"/api-reference/vehicles/update-a-vehicle-manufacturer"},{"title":"List vehicle models","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/vehicle-models","href":"/api-reference/vehicles/get-v3vehicle-models"},{"title":"Create a vehicle model","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/vehicle-models","href":"/api-reference/vehicles/create-a-new-vehicle-model"},{"title":"Get a vehicle model","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/vehicle-models/{vehicle_model_id}","href":"/api-reference/vehicles/get-v3vehicle-models-1"},{"title":"Delete a vehicle model","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/vehicle-models/{vehicle_model_id}","href":"/api-reference/vehicles/delete-a-vehicle-model"},{"title":"Update a vehicle model","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/vehicle-models/{vehicle_model_id}","href":"/api-reference/vehicles/update-a-vehicle-model"},{"title":"List MOT records","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/vehicle-mot-records","href":"/api-reference/vehicles/get-v3vehicle-mot-records"},{"title":"Get an MOT record","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/vehicle-mot-records/{vehicle_mot_record_id}","href":"/api-reference/vehicles/get-v3vehicle-mot-records-1"},{"title":"List vehicle specifications","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/vehicle-specifications","href":"/api-reference/vehicles/get-v3vehicle-specifications"},{"title":"Create a vehicle specification","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/vehicle-specifications","href":"/api-reference/vehicles/create-a-new-vehicle-specification"},{"title":"Get a vehicle specification","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/vehicle-specifications/{vehicle_specification_id}","href":"/api-reference/vehicles/get-v3vehicle-specifications-1"},{"title":"Delete a vehicle specification","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/vehicle-specifications/{vehicle_specification_id}","href":"/api-reference/vehicles/delete-a-vehicle-specification"},{"title":"Update a vehicle specification","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/vehicle-specifications/{vehicle_specification_id}","href":"/api-reference/vehicles/update-a-vehicle-specification"},{"title":"List vehicles","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/vehicles","href":"/api-reference/vehicles/get-v3vehicles"},{"title":"Create a vehicle","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/vehicles","href":"/api-reference/vehicles/create-a-new-vehicle"},{"title":"Get a vehicle","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/vehicles/{vehicle_id}","href":"/api-reference/vehicles/get-v3vehicles-1"},{"title":"Delete a vehicle","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/vehicles/{vehicle_id}","href":"/api-reference/vehicles/delete-a-vehicle"},{"title":"Update a vehicle","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/vehicles/{vehicle_id}","href":"/api-reference/vehicles/update-a-vehicle"},{"title":"Get a vehicle's compliance","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/vehicles/{vehicle_id}/compliance","href":"/api-reference/vehicles/get-v3vehicles-compliance"},{"title":"Get v3vehicles pre allocations","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/vehicles/{vehicle_id}/pre-allocations","href":"/api-reference/vehicles/get-v3vehicles-pre-allocations"},{"title":"Create a vehicle pre-allocation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/vehicles/{vehicle_id}/pre-allocations","href":"/api-reference/vehicles/create-a-vehicle-pre-allocation"},{"title":"Cancel a vehicle pre-allocation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/vehicles/{vehicle_id}/pre-allocations/{pre_allocation_id}","href":"/api-reference/vehicles/cancel-a-vehicle-pre-allocation"},{"title":"location","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/vehicles/{vehicle_id}/relationships/allocated_location","href":"/api-reference/vehicles/location"},{"title":"person","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/vehicles/{vehicle_id}/relationships/allocated_person","href":"/api-reference/vehicles/person"},{"title":"scheme","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/vehicles/{vehicle_id}/relationships/allocated_scheme","href":"/api-reference/vehicles/scheme"},{"title":"work order","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/vehicles/{vehicle_id}/relationships/allocated_work_order","href":"/api-reference/vehicles/work-order"},{"title":"Add categories to a vehicle","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/vehicles/{vehicle_id}/relationships/categories","href":"/api-reference/vehicles/add-categories-to-a-vehicle"},{"title":"Remove categories from a vehicle","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/vehicles/{vehicle_id}/relationships/categories","href":"/api-reference/vehicles/remove-categories-from-a-vehicle"},{"title":"Replace a vehicle's categories","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/vehicles/{vehicle_id}/relationships/categories","href":"/api-reference/vehicles/replace-a-vehicles-categories"},{"title":"Attach certificate records to a vehicle","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/vehicles/{vehicle_id}/relationships/certificates","href":"/api-reference/vehicles/attach-certificate-records-to-a-vehicle"},{"title":"Detach certificate records from a vehicle","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/vehicles/{vehicle_id}/relationships/certificates","href":"/api-reference/vehicles/detach-certificate-records-from-a-vehicle"},{"title":"Add certifications to a vehicle","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/vehicles/{vehicle_id}/relationships/certifications","href":"/api-reference/vehicles/add-certifications-to-a-vehicle"},{"title":"Remove certifications from a vehicle","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/vehicles/{vehicle_id}/relationships/certifications","href":"/api-reference/vehicles/remove-certifications-from-a-vehicle"},{"title":"Replace a vehicle's certifications","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/vehicles/{vehicle_id}/relationships/certifications","href":"/api-reference/vehicles/replace-a-vehicles-certifications"}]},{"group":"Videos","pages":[{"title":"List videos","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/videos","href":"/api-reference/videos/get-v3videos"},{"title":"Create a video","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/videos","href":"/api-reference/videos/create-a-video"},{"title":"Get a video","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/videos/{video_id}","href":"/api-reference/videos/get-v3videos-1"},{"title":"Get a video poster","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/videos/{video_id}/poster.jpg","href":"/api-reference/videos/get-v3videos-posterjpg"},{"title":"Stream a video","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/videos/{video_id}/stream","href":"/api-reference/videos/get-v3videos-stream"}]},{"group":"Waste Brokers","pages":[{"title":"Get v3waste brokers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/waste-brokers","href":"/api-reference/waste-brokers/get-v3waste-brokers"},{"title":"Create a waste broker for an organisation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/waste-brokers","href":"/api-reference/waste-brokers/create-a-waste-broker-for-an-organisation"},{"title":"Get v3waste brokers 1","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/waste-brokers/{waste_broker_id}","href":"/api-reference/waste-brokers/get-v3waste-brokers-1"},{"title":"Delete a waste broker","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/waste-brokers/{waste_broker_id}","href":"/api-reference/waste-brokers/delete-a-waste-broker"},{"title":"Update a waste broker","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/waste-brokers/{waste_broker_id}","href":"/api-reference/waste-brokers/update-a-waste-broker"}]},{"group":"Waste Carriers","pages":[{"title":"Get v3waste carriers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/waste-carriers","href":"/api-reference/waste-carriers/get-v3waste-carriers"},{"title":"Create a waste carrier for an organisation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/waste-carriers","href":"/api-reference/waste-carriers/create-a-waste-carrier-for-an-organisation"},{"title":"Get v3waste carriers 1","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/waste-carriers/{waste_carrier_id}","href":"/api-reference/waste-carriers/get-v3waste-carriers-1"},{"title":"Delete a waste carrier","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/waste-carriers/{waste_carrier_id}","href":"/api-reference/waste-carriers/delete-a-waste-carrier"},{"title":"Update a waste carrier","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/waste-carriers/{waste_carrier_id}","href":"/api-reference/waste-carriers/update-a-waste-carrier"}]},{"group":"Waste Reference Data","pages":[{"title":"Get v3waste container types","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/waste-container-types","href":"/api-reference/waste-reference-data/get-v3waste-container-types"},{"title":"Get v3waste disposal recovery codes","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/waste-disposal-recovery-codes","href":"/api-reference/waste-reference-data/get-v3waste-disposal-recovery-codes"},{"title":"Get v3waste ewc codes","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/waste-ewc-codes","href":"/api-reference/waste-reference-data/get-v3waste-ewc-codes"},{"title":"Get v3waste hazardous property codes","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/waste-hazardous-property-codes","href":"/api-reference/waste-reference-data/get-v3waste-hazardous-property-codes"},{"title":"Get v3waste pop names","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/waste-pop-names","href":"/api-reference/waste-reference-data/get-v3waste-pop-names"}]},{"group":"Waste Movements","pages":[{"title":"Get v3waste movements","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/waste-movements","href":"/api-reference/waste-movements/get-v3waste-movements"},{"title":"Create a new waste movement","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/waste-movements","href":"/api-reference/waste-movements/create-a-new-waste-movement"},{"title":"Get v3waste movements 1","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/waste-movements/{waste_movement_id}","href":"/api-reference/waste-movements/get-v3waste-movements-1"},{"title":"Update an existing waste movement","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/waste-movements/{waste_movement_id}","href":"/api-reference/waste-movements/update-an-existing-waste-movement"}]},{"group":"Waste Settings","pages":[{"title":"Get v3waste settings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/waste-settings","href":"/api-reference/waste-settings/get-v3waste-settings"},{"title":"Create waste settings for an organisation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/waste-settings","href":"/api-reference/waste-settings/create-waste-settings-for-an-organisation"},{"title":"Get v3waste settings 1","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/waste-settings/{waste_settings_id}","href":"/api-reference/waste-settings/get-v3waste-settings-1"},{"title":"Update an organisation's waste settings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/waste-settings/{waste_settings_id}","href":"/api-reference/waste-settings/update-an-organisations-waste-settings"}]},{"group":"Waste Sites","pages":[{"title":"Get v3waste sites","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/waste-sites","href":"/api-reference/waste-sites/get-v3waste-sites"},{"title":"Create a waste site for an organisation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/waste-sites","href":"/api-reference/waste-sites/create-a-waste-site-for-an-organisation"},{"title":"Get v3waste sites 1","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/waste-sites/{waste_site_id}","href":"/api-reference/waste-sites/get-v3waste-sites-1"},{"title":"Delete a waste site","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v3/waste-sites/{waste_site_id}","href":"/api-reference/waste-sites/delete-a-waste-site"},{"title":"Update a waste site","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/waste-sites/{waste_site_id}","href":"/api-reference/waste-sites/update-a-waste-site"}]},{"group":"Waste Submissions","pages":[{"title":"Get v3waste submissions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/waste-submissions","href":"/api-reference/waste-submissions/get-v3waste-submissions"},{"title":"Get v3waste submissions 1","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/waste-submissions/{waste_submission_id}","href":"/api-reference/waste-submissions/get-v3waste-submissions-1"}]},{"group":"Work Permits","pages":[{"title":"List work permits","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/work-permits","href":"/api-reference/work-permits/list-work-permits"},{"title":"Create a work permit","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/work-permits","href":"/api-reference/work-permits/create-a-work-permit"},{"title":"Get a work permit","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/work-permits/{work_permit_id}","href":"/api-reference/work-permits/get-a-work-permit"},{"title":"Update a work permit","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v3/work-permits/{work_permit_id}","href":"/api-reference/work-permits/update-a-work-permit"}]},{"group":"Workflows","pages":[{"title":"List workflow versions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/workflow-definition-versions","href":"/api-reference/workflows/get-v3workflow-definition-versions"},{"title":"Create a workflow version","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/workflow-definition-versions","href":"/api-reference/workflows/creates-a-new-workflow-definition-version"},{"title":"Get a workflow version","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/workflow-definition-versions/{workflow_definition_version_id}","href":"/api-reference/workflows/get-v3workflow-definition-versions-1"},{"title":"List workflows","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/workflow-definitions","href":"/api-reference/workflows/get-v3workflow-definitions"},{"title":"Create a workflow","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/workflow-definitions","href":"/api-reference/workflows/creates-a-new-workflow-definition"},{"title":"Get a workflow","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/workflow-definitions/{workflow_definition_id}","href":"/api-reference/workflows/get-v3workflow-definitions-1"},{"title":"Update a workflow","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v3/workflow-definitions/{workflow_definition_id}","href":"/api-reference/workflows/update-an-existing-workflow-definition"},{"title":"Get workflow insights","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/workflow-definitions/{workflow_definition_id}/insights","href":"/api-reference/workflows/get-v3workflow-definitions-insights"},{"title":"List workflow submission journeys","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/workflow-definitions/{workflow_definition_id}/insights/submissions","href":"/api-reference/workflows/get-v3workflow-definitions-insightssubmissions"},{"title":"Revert a workflow instance","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/workflow-instances/{workflow_instance_id}/revert","href":"/api-reference/workflows/revert-a-workflow-instance-out-of-a-terminal-step"},{"title":"List workflow transition records","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/workflow-transition-records","href":"/api-reference/workflows/get-v3workflow-transition-records"},{"title":"Create a workflow transition record","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/workflow-transition-records","href":"/api-reference/workflows/post-v3workflow-transition-records"},{"title":"Get a workflow transition record","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v3/workflow-transition-records/{workflow_transition_record_id}","href":"/api-reference/workflows/get-v3workflow-transition-records-1"}]}]},{"tab":"What's Next","icon":"square-terminal","hidden":true,"pages":[{"title":"What's Next","href":"/roadmap/whats-next"}]},{"tab":"Changelog","icon":"square-terminal","hidden":true,"pages":[{"title":"Changelog","href":"/changelog/v3"}]}]},"basePath":"","title":"List cost roll-ups - Ctrl Hub","buildId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","deploymentId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DCDCdBVX.js","utils-ME8dDnLe.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-0e84ACsd.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-wgRBj-ia.js","snippetPresets-C11Sgb-o.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-C0lapOpP.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-ZeRQV8fF.js","shallow-BupWh095.js","getApiPlaygroundDisplay-BnYQO2Ss.js","CodeSnippet-RKKOc8c_.js","CodeSnippets-Drf_m8wS.js","Page-Bevw23-4.js","getPastedJson-u6QiPzNZ.js","icon-Bb-CBSxO.js","MethodPill-F7l5AI7V.js","DuplicateIcon-IiAXkdSg.js","createIcon-FliI8EBc.js","DynamicMarkdown-B62XqCSI.js","SectionHeading-Dj31pT03.js","axios-vUo_bRtp.js","Markdown-BOgQCTwD.js","clsx-BIWXJmsZ.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-DKZWslLH.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-UDqbR6xh.js"]}