{
"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"
}
{
"id": "7b4c8f12-3e9a-4d5b-8c6f-1a2b3c4d5e6f",
"status": "404",
"title": "Resource not found",
"detail": "The requested resource could not be found or does not exist.",
"code": "NOT_FOUND.001"
}
{
"id": "8e2f9a34-b5c6-4d7e-9f8a-2b3c4d5e6f7g",
"status": "409",
"title": "Conflict",
"detail": "The request conflicts with the current state of the resource.",
"code": "CONFLICT.001"
}
{
"id": "fe9d9a69-f0a7-4fdc-bb2c-176027f316c5",
"status": "500",
"title": "Internal Server Error",
"detail": "An unexpected error occurred on the server."
}
Costs
Create a cost line
Add a costed line to a cost sheet. The rate is resolved by the server from the
cost item’s register version in force on work_date, and the resolved rate,
the line amount and the version reference are all persisted as a snapshot —
revising the rate later never changes an existing line.
The request will fail with a 400 Bad Request if the cost item has no rate in
force on work_date.
{
"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"
}
{
"id": "7b4c8f12-3e9a-4d5b-8c6f-1a2b3c4d5e6f",
"status": "404",
"title": "Resource not found",
"detail": "The requested resource could not be found or does not exist.",
"code": "NOT_FOUND.001"
}
{
"id": "8e2f9a34-b5c6-4d7e-9f8a-2b3c4d5e6f7g",
"status": "409",
"title": "Conflict",
"detail": "The request conflicts with the current state of the resource.",
"code": "CONFLICT.001"
}
{
"id": "fe9d9a69-f0a7-4fdc-bb2c-176027f316c5",
"status": "500",
"title": "Internal Server Error",
"detail": "An unexpected error occurred on the server."
}
The cost line to create. The line amount, the charge and the profit are always
worked out by the server from the rate, the quantity and the margin — none of
them can be sent by the client.
There are three valid shapes, and the one rule behind them is that a line may
supply its own rate:
A rate code, priced from the register. Send cost_item and no rate.
The server resolves the rate from the register version in force on
work_date, records that version as cost_item_version, and copies the
rate code into cost_item_snapshot. If no version covers work_date the
request is refused with CH.004.208.
A rate code, priced on this job. Send cost_itemandrate. The
register is not consulted for a version at all, so cost_item_version comes
back null and a rate code carrying no versions is perfectly usable — the
code, name and category are still governed by the register, and the price is
this job's. cost_item_snapshot must not be sent; the server copies it.
Ad hoc. Send rate and cost_item_snapshot, and no cost_item. A cost
with no rate code behind it: the client supplies both the price and the
description that gives it meaning. Both are required, and so is
cost_item_snapshot.category within it — a line nothing can attribute would
break the roll-up's category split.
Anything else is refused with CH.004.215.
Whichever shape it is, the price is frozen the moment the line is written.
Revising the register afterwards changes what future work costs and leaves
recorded work exactly as recorded.
margin_override works the same way in all three: it pins what this particular
line sells at, and the charge it produces is still worked out by the server.
A cost line — one costed entry on a cost sheet: a quantity of a rate code,
priced at the rate that was in force on the day the work was done.
The pricing is a snapshot, on both sides. rate and amount are resolved
once, on write, from the register version in force on work_date, and that
version is referenced by the cost_item_version relationship. margin and
charge — what the line sells for — are frozen at the same moment. None of
them are ever recomputed: revising a rate or a margin in the register changes
what future lines cost and sell for, and leaves every existing line exactly as
it was recorded.
This resource carries monetary values and is permissioned separately from the
cost sheet it belongs to.
Related resources that can be included when a cost line is returned.
cost-items and cost-item-versions are both optional on a line, so asking
for either simply yields nothing for the lines that have none — an ad-hoc line
has no rate code, and a line priced on the job has no register version behind
its rate. Neither is an error, and a request for both across a mixed collection
comes back with whatever exists.
An organisation
Option 1
Option 2
Option 3
Option 4
Show child attributes
{"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/create-a-cost-line","slug":"/api-reference/costs/create-a-cost-line","pageMetadata":{"title":"Create a cost line","description":"Add a costed line to a cost sheet. The rate is resolved by the server from the\ncost item's register version in force on `work_date`, and the resolved rate,\nthe line amount and the version reference are all persisted as a snapshot —\nrevising the rate later never changes an existing line.\n\nThe request will fail with a `400 Bad Request` if the cost item has no rate in\nforce on `work_date`.\n","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/cost-lines","href":"/api-reference/costs/create-a-cost-line","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: [_jsxs(_components.p, {\n children: [\"Add a costed line to a cost sheet. The rate is resolved by the server from the\\ncost item’s register version in force on \", _jsx(_components.code, {\n children: \"work_date\"\n }), \", and the resolved rate,\\nthe line amount and the version reference are all persisted as a snapshot —\\nrevising the rate later never changes an existing line.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"The request will fail with a \", _jsx(_components.code, {\n children: \"400 Bad Request\"\n }), \" if the cost item has no rate in\\nforce on \", _jsx(_components.code, {\n children: \"work_date\"\n }), \".\"]\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":"Create a cost line","description":"Add a costed line to a cost sheet. The rate is resolved by the server from the\ncost item's register version in force on `work_date`, and the resolved rate,\nthe line amount and the version reference are all persisted as a snapshot —\nrevising the rate later never changes an existing line.\n\nThe request will fail with a `400 Bad Request` if the cost item has no rate in\nforce on `work_date`.\n","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v3/cost-lines","href":"/api-reference/costs/create-a-cost-line","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"description":"Add a costed line to a cost sheet. The rate is resolved by the server from the\ncost item's register version in force on `work_date`, and the resolved rate,\nthe line amount and the version reference are all persisted as a snapshot —\nrevising the rate later never changes an existing line.\n\nThe request will fail with a `400 Bad Request` if the cost item has no rate in\nforce on `work_date`.\n","operationId":"CreateCostLine","requestBody":"81eb5b35-0deb-4cd0-817d-2fc19d35f53e","responses":{"201":"80a97c97-a3c3-4199-9346-a03892ec73ee","400":"37ac6591-dcbc-4b52-8f1e-d3d6eec3da64","401":"f6067936-c1ce-42e1-9133-88824de37f98","404":"453ed10c-e9f8-4d29-94c2-68b376e3ad7f","409":"a190efd3-073f-461d-8b08-49b32eec7ea3","500":"3cfaf179-bd66-40f4-abd7-1b2508c1361f"},"security":["74d4ed63-472a-457b-9ef9-408de0f4d84f","2a614bd1-5dbd-485a-b726-9b2e9f69533d","b357c1ed-612a-455e-a368-8182bdd90874"],"summary":"Create a cost line","tags":["Costs"],"x-ctrl-hub":{"domain":"projects"},"x-mint":{"metadata":{"title":"Create a cost line"}},"method":"post","type":"path","servers":["1d37f2dd-0bd8-405c-8666-039935a8ee9b","a9c1d015-9d04-44b7-bcdc-63e2b4b15709","ef40f0bb-883c-4244-8d93-6849ac26e578"],"path":"/v3/cost-lines","baseUrlOptions":["https://api.ctrl-hub.com","https://api.ctrl-hub.dev","https://api.ctrl-hub.run"],"title":"Create a cost line","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"description":"The cost line to create. The line amount, the charge and the profit are always\nworked out by the server from the rate, the quantity and the margin — none of\nthem can be sent by the client.\n\nThere are three valid shapes, and the one rule behind them is that a line may\nsupply its own rate:\n\n1. **A rate code, priced from the register.** Send `cost_item` and no `rate`.\n The server resolves the rate from the register version in force on\n `work_date`, records that version as `cost_item_version`, and copies the\n rate code into `cost_item_snapshot`. If no version covers `work_date` the\n request is refused with `CH.004.208`.\n2. **A rate code, priced on this job.** Send `cost_item` **and** `rate`. The\n register is not consulted for a version at all, so `cost_item_version` comes\n back null and a rate code carrying no versions is perfectly usable — the\n code, name and category are still governed by the register, and the price is\n this job's. `cost_item_snapshot` must not be sent; the server copies it.\n3. **Ad hoc.** Send `rate` and `cost_item_snapshot`, and no `cost_item`. A cost\n with no rate code behind it: the client supplies both the price and the\n description that gives it meaning. Both are required, and so is\n `cost_item_snapshot.category` within it — a line nothing can attribute would\n break the roll-up's category split.\n\nAnything else is refused with `CH.004.215`.\n\nWhichever shape it is, the price is frozen the moment the line is written.\nRevising the register afterwards changes what future work costs and leaves\nrecorded work exactly as recorded.\n\n`margin_override` works the same way in all three: it pins what this particular\nline sells at, and the charge it produces is still worked out by the server.\n","content":{"application/vnd.api+json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["type","attributes","relationships"],"properties":{"type":{"type":"string","const":"cost-lines","isRequired":true,"uniqueKey":"data.type","typeLabel":"string"},"attributes":{"type":"object","required":["quantity"],"properties":{"quantity":{"type":"integer","format":"int64","description":"The quantity of the cost item, in thousandths. 3.5 hours is\n`3500` and 12.75 metres is `12750`.\n","examples":[3500],"isRequired":true,"uniqueKey":"data.attributes.quantity","typeLabel":"integer\u003cint64>"},"line_type":{"type":"string","description":"Optional. Whether this line is a planned estimate or a\nrecorded actual. Defaults to `actual` when omitted, so\nexisting clients that predate estimates keep working\nunchanged. Immutable once the line is created.\n","enum":["estimated","actual"],"example":"actual","uniqueKey":"data.attributes.line_type","typeLabel":"enum\u003cstring>"},"work_date":{"type":"string","format":"date","description":"The day the work was carried out, which the rate is resolved\nagainst. Defaults to today when omitted.\n","examples":["2026-03-14"],"uniqueKey":"data.attributes.work_date","typeLabel":"string\u003cdate>"},"description":{"type":"string","description":"An optional note describing what this line covers","examples":["Two operatives, second reinstatement visit"],"uniqueKey":"data.attributes.description","typeLabel":"string"},"margin_override":{"oneOf":[{"type":"object","description":"Optional. The markup this line sells at, overriding the cost\nitem's own margin and its category default. Omit it to take\nwhatever the register says — or, on an ad-hoc line, the\ncategory default, since there is no rate code to ask.\n\nPercentages are basis points, so 15% is `1500`.\n","required":["type"],"example":{"type":"percentage","percentage":1500},"properties":{"type":{"type":"string","description":"Whether the markup is a proportion of the cost or a flat amount","enum":["percentage","fixed"],"isRequired":true,"uniqueKey":"data.attributes.margin_override.oneOf.0.type","typeLabel":"enum\u003cstring>"},"percentage":{"oneOf":[{"type":"integer","description":"The markup in basis points when `type` is `percentage` — 1200 is 12.00%.\nBasis points keep a margin expressed to two decimal places exact.\n","minimum":0,"examples":[1200],"uniqueKey":"data.attributes.margin_override.oneOf.0.percentage.oneOf.0","typeLabel":"integer"},{"type":"null","description":"The markup in basis points when `type` is `percentage` — 1200 is 12.00%.\nBasis points keep a margin expressed to two decimal places exact.\n","minimum":0,"examples":[1200],"uniqueKey":"data.attributes.margin_override.oneOf.0.percentage.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.attributes.margin_override.oneOf.0.percentage","typeLabel":"integer | null"},"fixed":{"oneOf":[{"type":"object","description":"The flat amount added to the cost when `type` is `fixed`","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.attributes.margin_override.oneOf.0.fixed.oneOf.0.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.attributes.margin_override.oneOf.0.fixed.oneOf.0.currency","typeLabel":"string"}},"uniqueKey":"data.attributes.margin_override.oneOf.0.fixed.oneOf.0","typeLabel":"object"},{"type":"null","description":"The flat amount added to the cost when `type` is `fixed`","uniqueKey":"data.attributes.margin_override.oneOf.0.fixed.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.attributes.margin_override.oneOf.0.fixed","typeLabel":"object | null"}},"uniqueKey":"data.attributes.margin_override.oneOf.0","typeLabel":"object"},{"type":"null","description":"Optional. The markup this line sells at, overriding the cost\nitem's own margin and its category default. Omit it to take\nwhatever the register says — or, on an ad-hoc line, the\ncategory default, since there is no rate code to ask.\n\nPercentages are basis points, so 15% is `1500`.\n","example":{"type":"percentage","percentage":1500},"uniqueKey":"data.attributes.margin_override.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.attributes.margin_override","typeLabel":"object | null"},"rate":{"type":"object","description":"The unit price this line is costed at, in the currency's\nminor units.\n\nOptional where `cost_item` is sent — supplying it prices that\nrate code on this job instead of from its register versions,\nwhich is how a rate code carrying no price of its own is\nused. **Required where `cost_item` is not sent**, because\nnothing else could produce a price for an ad-hoc line.\n\nZero is a real value — work done at no cost — and is honoured\nas one rather than read as \"resolve this from the register\".\nNegative is a credit.\n\nIt is frozen once written. Correcting it means deleting the\nline and entering it again.\n","required":["amount","currency"],"example":{"amount":45000,"currency":"GBP"},"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.attributes.rate.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.attributes.rate.currency","typeLabel":"string"}},"uniqueKey":"data.attributes.rate","typeLabel":"object"},"cost_item_snapshot":{"type":"object","description":"What this line bought. **Required where `cost_item` is not\nsent, and refused where it is** — a rate code already\ndescribes itself and the server copies it, so accepting a\nsecond description would put two answers on the line with\nnothing to say which is true.\n","required":["category"],"properties":{"category":{"type":"string","description":"Required. The kind of spend this line is attributed to.\n\nIt is mandatory rather than defaulted because a roll-up's three category\ntotals must add up to its cost exactly. A line nothing could attribute\nwould be counted in the cost and in none of the categories, and the split\nwould stop reconciling without anything failing.\n","enum":["material","labour","misc","contractor"],"isRequired":true,"uniqueKey":"data.attributes.cost_item_snapshot.category","typeLabel":"enum\u003cstring>"},"code":{"type":"string","description":"Optional. A short identifier for this cost, filling the same column a rate\ncode does in a list of lines.\n","examples":["SUBBIE"],"uniqueKey":"data.attributes.cost_item_snapshot.code","typeLabel":"string"},"name":{"type":"string","description":"Optional. What this cost was.","examples":["JNC — civils, Bridge St"],"uniqueKey":"data.attributes.cost_item_snapshot.name","typeLabel":"string"},"unit":{"type":"string","description":"Optional. What the quantity is counted in, so the line reads \"3.5 days\"\nrather than \"3.5\". Free text rather than a metering enum: `volume` derives\nno unit, and that is exactly the case that needs one written down.\n","examples":["day"],"uniqueKey":"data.attributes.cost_item_snapshot.unit","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"data.attributes.cost_item_snapshot","typeLabel":"object"}},"isRequired":true,"uniqueKey":"data.attributes","typeLabel":"object"},"relationships":{"type":"object","required":["organisation","cost_sheet"],"properties":{"organisation":{"type":"object","required":["data"],"properties":{"data":{"type":"object","description":"Represents a relationship to an organisation","required":["id","type"],"properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier of the organisation","isRequired":true,"uniqueKey":"data.relationships.organisation.data.id","typeLabel":"string\u003cuuid>"},"type":{"type":"string","const":"organisations","isRequired":true,"uniqueKey":"data.relationships.organisation.data.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.relationships.organisation.data","typeLabel":"object"}},"isRequired":true,"uniqueKey":"data.relationships.organisation","typeLabel":"object"},"cost_sheet":{"type":"object","required":["data"],"properties":{"data":{"type":"object","description":"Represents a relationship to a cost sheet","required":["id","type"],"properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier of the cost sheet","isRequired":true,"uniqueKey":"data.relationships.cost_sheet.data.id","typeLabel":"string\u003cuuid>"},"type":{"type":"string","const":"cost-sheets","isRequired":true,"uniqueKey":"data.relationships.cost_sheet.data.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.relationships.cost_sheet.data","typeLabel":"object"}},"isRequired":true,"uniqueKey":"data.relationships.cost_sheet","typeLabel":"object"},"cost_item":{"type":"object","description":"The rate code this line is written against. Omit it for an\nad-hoc cost — its absence is what makes the line one, and\n`rate` and `cost_item_snapshot` then become required.\n","required":["data"],"properties":{"data":{"type":"object","description":"Represents a relationship to a cost item","required":["id","type"],"properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier of the cost item","isRequired":true,"uniqueKey":"data.relationships.cost_item.data.id","typeLabel":"string\u003cuuid>"},"type":{"type":"string","const":"cost-items","isRequired":true,"uniqueKey":"data.relationships.cost_item.data.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.relationships.cost_item.data","typeLabel":"object"}},"uniqueKey":"data.relationships.cost_item","typeLabel":"object"}},"isRequired":true,"uniqueKey":"data.relationships","typeLabel":"object"}},"isRequired":true,"uniqueKey":"data","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":{"type":"cost-lines","attributes":{"quantity":3500,"line_type":"actual","work_date":"2026-03-14","description":"Two operatives, second reinstatement visit","margin_override":{"type":"percentage","percentage":1500},"rate":{"amount":45000,"currency":"GBP"}},"relationships":{"organisation":{"data":{"id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","type":"organisations"}},"cost_sheet":{"data":{"id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","type":"cost-sheets"}}}}}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"80a97c97-a3c3-4199-9346-a03892ec73ee":{"description":"An individual cost line.","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","data"],"properties":{"data":{"type":"object","description":"A cost line — one costed entry on a cost sheet: a quantity of a rate code,\npriced at the rate that was in force on the day the work was done.\n\nThe pricing is a snapshot, on both sides. `rate` and `amount` are resolved\nonce, on write, from the register version in force on `work_date`, and that\nversion is referenced by the `cost_item_version` relationship. `margin` and\n`charge` — what the line sells for — are frozen at the same moment. None of\nthem are ever recomputed: revising a rate or a margin in the register changes\nwhat future lines cost and sell for, and leaves every existing line exactly as\nit was recorded.\n\nThis resource carries monetary values and is permissioned separately from the\ncost sheet it belongs to.\n","required":["id","type","attributes","meta","relationships"],"properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier of the cost line.","isRequired":true,"uniqueKey":"data.id","typeLabel":"string\u003cuuid>"},"type":{"type":"string","const":"cost-lines","isRequired":true,"uniqueKey":"data.type","typeLabel":"string"},"attributes":{"type":"object","description":"Attributes for a cost line","required":["quantity","work_date","rate","amount","margin","margin_override","margin_source","charge","profit","line_type","cost_item_snapshot"],"properties":{"line_type":{"type":"string","description":"Whether this line is a planned estimate or a recorded actual. Set once\nwhen the line is created — defaulting to `actual` if the request omits\nit — and immutable afterwards: correcting one means deleting the line\nand entering it again, not changing this value in place.\n\nA line written before this field existed carries no stored value and\nreads as `actual` — every line recorded before estimates existed was\none, by definition.\n","enum":["estimated","actual"],"example":"actual","isRequired":true,"uniqueKey":"data.attributes.line_type","typeLabel":"enum\u003cstring>"},"quantity":{"type":"integer","format":"int64","description":"The quantity of the cost item, in thousandths. 3.5 hours is `3500` and\n12.75 metres is `12750`.\n\nQuantities are scaled integers rather than decimals for the same reason\nmoney is: the line's amount is the quantity multiplied by a rate, so a\nfractional quantity would put rounding error straight into a currency\namount.\n","examples":[3500],"isRequired":true,"uniqueKey":"data.attributes.quantity","typeLabel":"integer\u003cint64>"},"work_date":{"type":"string","format":"date","description":"The day the work was carried out. The rate is resolved from the register\nversion in force on this date. Defaults to today when the request omits\nit.\n","examples":["2026-03-14"],"isRequired":true,"uniqueKey":"data.attributes.work_date","typeLabel":"string\u003cdate>"},"rate":{"type":"object","description":"The unit rate the line was priced at, frozen when the line was written.\nRevising the register later never changes it.\n\nWhere it came from depends on the line. Where `cost_item_version` is set,\nit is a snapshot of the register version in force on `work_date`, resolved\nby the server. Where `cost_item_version` is null, the client supplied it —\neither pricing a rate code on this job, or recording an ad-hoc cost with no\nrate code at all.\n\n**A client can never change it.** An update may send it back unchanged so a\nclient can round-trip the whole resource, but a different value is refused\nwith `CH.004.216`: the amount, the charge and the profit were all struck\nagainst this number, so a line entered at the wrong price is deleted and\nentered again rather than corrected in place.\n\n**The server replaces it in exactly one case.** Moving `work_date` on a line\nthat was priced from the register re-resolves the rate from the version in\nforce on the new date — the line is now saying the work happened on a day a\ndifferent rate applied, so the old snapshot was taken against the wrong\nversion. A line whose rate was supplied has no version to re-resolve and\nkeeps its rate whatever the date.\n\nSo \"frozen\" means frozen against register revisions and against clients. It\ndoes not mean the number can never move: re-dating a register-priced line\nis a deliberate re-pricing, and it is the only one.\n","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.attributes.rate.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.attributes.rate.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.attributes.rate","typeLabel":"object"},"amount":{"type":"object","description":"The line total: `rate` multiplied by `quantity`, rounded half away from\nzero, once, on the total. Resolved by the server; revising the register\nlater never changes it.\n","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.attributes.amount.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.attributes.amount.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.attributes.amount","typeLabel":"object"},"margin":{"type":"object","description":"The markup the line was sold at — a snapshot of the margin resolved from\nthe cost item when the line was written, its own if it set one, otherwise\nits category's default. Always present: unlike a cost item, a line always\nhas a margin resolved.\n\nResolved by the server. Revising a margin in the register changes what\nfuture work sells for and leaves recorded work alone, so correcting a\nmargin that was wrong does not retrospectively fix lines already recorded\nagainst it.\n","required":["type"],"properties":{"type":{"type":"string","description":"Whether the markup is a proportion of the cost or a flat amount","enum":["percentage","fixed"],"isRequired":true,"uniqueKey":"data.attributes.margin.type","typeLabel":"enum\u003cstring>"},"percentage":{"oneOf":[{"type":"integer","description":"The markup in basis points when `type` is `percentage` — 1200 is 12.00%.\nBasis points keep a margin expressed to two decimal places exact.\n","minimum":0,"examples":[1200],"uniqueKey":"data.attributes.margin.percentage.oneOf.0","typeLabel":"integer"},{"type":"null","description":"The markup in basis points when `type` is `percentage` — 1200 is 12.00%.\nBasis points keep a margin expressed to two decimal places exact.\n","minimum":0,"examples":[1200],"uniqueKey":"data.attributes.margin.percentage.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.attributes.margin.percentage","typeLabel":"integer | null"},"fixed":{"oneOf":[{"type":"object","description":"The flat amount added to the cost when `type` is `fixed`","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.attributes.margin.fixed.oneOf.0.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.attributes.margin.fixed.oneOf.0.currency","typeLabel":"string"}},"uniqueKey":"data.attributes.margin.fixed.oneOf.0","typeLabel":"object"},{"type":"null","description":"The flat amount added to the cost when `type` is `fixed`","uniqueKey":"data.attributes.margin.fixed.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.attributes.margin.fixed","typeLabel":"object | null"}},"isRequired":true,"uniqueKey":"data.attributes.margin","typeLabel":"object"},"charge":{"type":"object","description":"What the line sells for: `rate` marked up by `margin`, multiplied by\n`quantity`, rounded half away from zero, once, on the total — the same\narithmetic `amount` uses, so the cost and sell sides of a line never\ndisagree. Resolved by the server; revising the register later never\nchanges it.\n","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.attributes.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.attributes.charge.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.attributes.charge","typeLabel":"object"},"margin_override":{"oneOf":[{"type":"object","description":"The markup pinned onto this line when it was recorded, overriding whatever\nthe cost item says. Null where the line took the register's margin.\n\nThis is the one part of a line's pricing a client sets. The amounts it\nproduces — `charge`, and therefore `profit` — are still worked out by the\nserver.\n","required":["type"],"properties":{"type":{"type":"string","description":"Whether the markup is a proportion of the cost or a flat amount","enum":["percentage","fixed"],"isRequired":true,"uniqueKey":"data.attributes.margin_override.oneOf.0.type","typeLabel":"enum\u003cstring>"},"percentage":{"oneOf":[{"type":"integer","description":"The markup in basis points when `type` is `percentage` — 1200 is 12.00%.\nBasis points keep a margin expressed to two decimal places exact.\n","minimum":0,"examples":[1200],"uniqueKey":"data.attributes.margin_override.oneOf.0.percentage.oneOf.0","typeLabel":"integer"},{"type":"null","description":"The markup in basis points when `type` is `percentage` — 1200 is 12.00%.\nBasis points keep a margin expressed to two decimal places exact.\n","minimum":0,"examples":[1200],"uniqueKey":"data.attributes.margin_override.oneOf.0.percentage.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.attributes.margin_override.oneOf.0.percentage","typeLabel":"integer | null"},"fixed":{"oneOf":[{"type":"object","description":"The flat amount added to the cost when `type` is `fixed`","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.attributes.margin_override.oneOf.0.fixed.oneOf.0.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.attributes.margin_override.oneOf.0.fixed.oneOf.0.currency","typeLabel":"string"}},"uniqueKey":"data.attributes.margin_override.oneOf.0.fixed.oneOf.0","typeLabel":"object"},{"type":"null","description":"The flat amount added to the cost when `type` is `fixed`","uniqueKey":"data.attributes.margin_override.oneOf.0.fixed.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.attributes.margin_override.oneOf.0.fixed","typeLabel":"object | null"}},"isRequired":true,"uniqueKey":"data.attributes.margin_override.oneOf.0","typeLabel":"object"},{"type":"null","description":"The markup pinned onto this line when it was recorded, overriding whatever\nthe cost item says. Null where the line took the register's margin.\n\nThis is the one part of a line's pricing a client sets. The amounts it\nproduces — `charge`, and therefore `profit` — are still worked out by the\nserver.\n","isRequired":true,"uniqueKey":"data.attributes.margin_override.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.attributes.margin_override","typeLabel":"object | null"},"margin_source":{"type":"string","description":"Which of the three produced `margin` — the override pinned onto this line,\nthe rate code's own margin, or its category's default. Read it with\n`margin_override` and `cost_item_snapshot.margin` to answer \"why is this\njob selling at this markup\" without comparing against the register and\nguessing.\n","enum":["override","item","category"],"example":"override","isRequired":true,"uniqueKey":"data.attributes.margin_source","typeLabel":"enum\u003cstring>"},"profit":{"type":"object","description":"`charge` less `amount` — what the line made. Zero where the line sells at\ncost, which a zero margin does; negative where it sells for less than it\ncost, which a credit line correcting an over-recorded quantity does.\nDerived from the two frozen amounts rather than stored, so it cannot\ndisagree with them.\n","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.attributes.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.attributes.profit.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.attributes.profit","typeLabel":"object"},"cost_item_snapshot":{"type":"object","description":"What this line bought, frozen alongside its price so the line records what\nwas bought and not only what it cost.\n\nWhere `cost_item` is set it is the rate code as it stood when the line was\nwritten, copied by the server and not settable by a client. Where\n`cost_item` is null the line is ad-hoc and the client supplied it — see\n`CostItemSnapshotWritable` for the part it may set, which is narrower than\nwhat is presented here.\n\nA caller cannot tell the two apart by reading this block; `cost_item` is\nwhat answers that, and an ad-hoc `code` is free text that may coincide with\na real rate code.\n","required":["code","name","description","category","metering","unit","margin"],"properties":{"code":{"type":"string","description":"The rate code's short identifier, as it read when the line was written.","examples":["MAT-001"],"isRequired":true,"uniqueKey":"data.attributes.cost_item_snapshot.code","typeLabel":"string"},"name":{"type":"string","description":"The rate code's name, as it read when the line was written.","examples":["Cold lay tarmac"],"isRequired":true,"uniqueKey":"data.attributes.cost_item_snapshot.name","typeLabel":"string"},"description":{"type":"string","description":"The rate code's description, as it read when the line was written.","isRequired":true,"uniqueKey":"data.attributes.cost_item_snapshot.description","typeLabel":"string"},"category":{"type":"string","description":"The kind of spend the line is attributed to. Roll-up totals read this\nrather than the register, which is what stops recategorising a rate code\nmoving money between the categories of jobs costed years ago.\n","enum":["material","labour","misc","contractor"],"isRequired":true,"uniqueKey":"data.attributes.cost_item_snapshot.category","typeLabel":"enum\u003cstring>"},"metering":{"type":"string","description":"How the rate code is measured.","enum":["time","day_rate","volume","fixed"],"isRequired":true,"uniqueKey":"data.attributes.cost_item_snapshot.metering","typeLabel":"enum\u003cstring>"},"unit":{"type":"string","description":"The unit the quantity is counted in.","examples":["tonne"],"isRequired":true,"uniqueKey":"data.attributes.cost_item_snapshot.unit","typeLabel":"string"},"margin":{"oneOf":[{"type":"object","description":"The rate code's OWN margin, null where it set none and its category's\ndefault applied.\n\nThis is not the margin the line was priced at — that is `margin`, already\nresolved and frozen, and it may be an override ignoring this entirely.\nThis records what the register was offering, which is what makes\n`margin_source` `item` and `category` tellable apart.\n","required":["type"],"properties":{"type":{"type":"string","description":"Whether the markup is a proportion of the cost or a flat amount","enum":["percentage","fixed"],"isRequired":true,"uniqueKey":"data.attributes.cost_item_snapshot.margin.oneOf.0.type","typeLabel":"enum\u003cstring>"},"percentage":{"oneOf":[{"type":"integer","description":"The markup in basis points when `type` is `percentage` — 1200 is 12.00%.\nBasis points keep a margin expressed to two decimal places exact.\n","minimum":0,"examples":[1200],"uniqueKey":"data.attributes.cost_item_snapshot.margin.oneOf.0.percentage.oneOf.0","typeLabel":"integer"},{"type":"null","description":"The markup in basis points when `type` is `percentage` — 1200 is 12.00%.\nBasis points keep a margin expressed to two decimal places exact.\n","minimum":0,"examples":[1200],"uniqueKey":"data.attributes.cost_item_snapshot.margin.oneOf.0.percentage.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.attributes.cost_item_snapshot.margin.oneOf.0.percentage","typeLabel":"integer | null"},"fixed":{"oneOf":[{"type":"object","description":"The flat amount added to the cost when `type` is `fixed`","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.attributes.cost_item_snapshot.margin.oneOf.0.fixed.oneOf.0.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.attributes.cost_item_snapshot.margin.oneOf.0.fixed.oneOf.0.currency","typeLabel":"string"}},"uniqueKey":"data.attributes.cost_item_snapshot.margin.oneOf.0.fixed.oneOf.0","typeLabel":"object"},{"type":"null","description":"The flat amount added to the cost when `type` is `fixed`","uniqueKey":"data.attributes.cost_item_snapshot.margin.oneOf.0.fixed.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.attributes.cost_item_snapshot.margin.oneOf.0.fixed","typeLabel":"object | null"}},"isRequired":true,"uniqueKey":"data.attributes.cost_item_snapshot.margin.oneOf.0","typeLabel":"object"},{"type":"null","description":"The rate code's OWN margin, null where it set none and its category's\ndefault applied.\n\nThis is not the margin the line was priced at — that is `margin`, already\nresolved and frozen, and it may be an override ignoring this entirely.\nThis records what the register was offering, which is what makes\n`margin_source` `item` and `category` tellable apart.\n","isRequired":true,"uniqueKey":"data.attributes.cost_item_snapshot.margin.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.attributes.cost_item_snapshot.margin","typeLabel":"object | null"}},"isRequired":true,"uniqueKey":"data.attributes.cost_item_snapshot","typeLabel":"object"},"description":{"type":"string","description":"An optional note describing what this line covers","examples":["Two operatives, second reinstatement visit"],"uniqueKey":"data.attributes.description","typeLabel":"string"},"cost_kit":{"oneOf":[{"type":"object","description":"The kit that wrote this line, frozen at the moment it was applied, and null\non a line entered by hand.\n\nIt is an attribute rather than a relationship on purpose: it records what\nwas applied rather than pointing at something live. The kit may since have\nbeen renamed or deleted without that making this line wrong.\n","required":["id","code","name"],"properties":{"id":{"type":"string","format":"uuid","description":"The identifier of the kit as it was when the line was written.","isRequired":true,"uniqueKey":"data.attributes.cost_kit.oneOf.0.id","typeLabel":"string\u003cuuid>"},"code":{"type":"string","description":"The kit's code at the time it was applied.","examples":["KIT-002"],"isRequired":true,"uniqueKey":"data.attributes.cost_kit.oneOf.0.code","typeLabel":"string"},"name":{"type":"string","description":"The kit's name at the time it was applied.","examples":["Footway reinstatement"],"isRequired":true,"uniqueKey":"data.attributes.cost_kit.oneOf.0.name","typeLabel":"string"}},"uniqueKey":"data.attributes.cost_kit.oneOf.0","typeLabel":"object"},{"type":"null","description":"The kit that wrote this line, frozen at the moment it was applied, and null\non a line entered by hand.\n\nIt is an attribute rather than a relationship on purpose: it records what\nwas applied rather than pointing at something live. The kit may since have\nbeen renamed or deleted without that making this line wrong.\n","uniqueKey":"data.attributes.cost_kit.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.attributes.cost_kit","typeLabel":"object | null"},"cost_kit_application_id":{"oneOf":[{"type":"string","format":"uuid","description":"Groups the lines written by one application of a kit, so a client can show\nthem together and remove them together. Null on a line entered by hand.\n\nApplying the same kit twice produces two groups with different ids: each is\na separate event with its own work date, quantity and line type.\n","readOnly":true,"examples":["7f3a2c18-9d40-4b6e-8a51-c2e07b4f9d63"],"uniqueKey":"data.attributes.cost_kit_application_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","description":"Groups the lines written by one application of a kit, so a client can show\nthem together and remove them together. Null on a line entered by hand.\n\nApplying the same kit twice produces two groups with different ids: each is\na separate event with its own work date, quantity and line type.\n","readOnly":true,"examples":["7f3a2c18-9d40-4b6e-8a51-c2e07b4f9d63"],"uniqueKey":"data.attributes.cost_kit_application_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.attributes.cost_kit_application_id","typeLabel":"string\u003cuuid> | null"}},"isRequired":true,"uniqueKey":"data.attributes","typeLabel":"object"},"meta":{"type":"object","description":"Metadata for a cost line","required":["created_at","updated_at"],"properties":{"created_at":{"type":"string","format":"date-time","description":"The date and time when the cost line was created","isRequired":true,"uniqueKey":"data.meta.created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","description":"The date and time when the cost line was last updated","isRequired":true,"uniqueKey":"data.meta.updated_at","typeLabel":"string\u003cdate-time>"}},"isRequired":true,"uniqueKey":"data.meta","typeLabel":"object"},"relationships":{"type":"object","description":"Relationships for a cost line","properties":{"organisation":{"type":"object","required":["data"],"properties":{"data":{"type":"object","description":"Represents a relationship to an organisation","required":["id","type"],"properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier of the organisation","isRequired":true,"uniqueKey":"data.relationships.organisation.data.id","typeLabel":"string\u003cuuid>"},"type":{"type":"string","const":"organisations","isRequired":true,"uniqueKey":"data.relationships.organisation.data.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.relationships.organisation.data","typeLabel":"object"}},"uniqueKey":"data.relationships.organisation","typeLabel":"object"},"cost_sheet":{"type":"object","required":["data"],"properties":{"data":{"type":"object","description":"Represents a relationship to a cost sheet","required":["id","type"],"properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier of the cost sheet","isRequired":true,"uniqueKey":"data.relationships.cost_sheet.data.id","typeLabel":"string\u003cuuid>"},"type":{"type":"string","const":"cost-sheets","isRequired":true,"uniqueKey":"data.relationships.cost_sheet.data.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.relationships.cost_sheet.data","typeLabel":"object"}},"uniqueKey":"data.relationships.cost_sheet","typeLabel":"object"},"cost_item":{"type":"object","description":"The rate code this line was written against, null on an ad-hoc line.\n\nThis is the discriminator: a line is ad-hoc when this is null, and never\nbecause of anything in `cost_item_snapshot`. An ad-hoc line's code is free\ntext and may coincide with a real rate code, so it can never be trusted to\nanswer the question.\n","required":["data"],"properties":{"data":{"oneOf":[{"type":"object","description":"Represents a relationship to a cost item","required":["id","type"],"properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier of the cost item","isRequired":true,"uniqueKey":"data.relationships.cost_item.data.oneOf.0.id","typeLabel":"string\u003cuuid>"},"type":{"type":"string","const":"cost-items","isRequired":true,"uniqueKey":"data.relationships.cost_item.data.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.relationships.cost_item.data.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.relationships.cost_item.data.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.relationships.cost_item.data","typeLabel":"object | null"}},"uniqueKey":"data.relationships.cost_item","typeLabel":"object"},"cost_item_version":{"type":"object","description":"The register version the line's rate was snapshotted from, and what makes\nthat price auditable. Resolved by the server from the cost item and\n`work_date`; it cannot be set by the client.\n\nNull wherever the rate was supplied rather than resolved — on an ad-hoc\nline, and on a rate code priced on this job. It is therefore also what says\nwhether re-dating the line can re-price it: with no version behind the\nrate, there is no register reading to revisit.\n","required":["data"],"readOnly":true,"properties":{"data":{"oneOf":[{"type":"object","description":"Represents a relationship to a cost item version","required":["id","type"],"properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier of the cost item version","isRequired":true,"uniqueKey":"data.relationships.cost_item_version.data.oneOf.0.id","typeLabel":"string\u003cuuid>"},"type":{"type":"string","const":"cost-item-versions","isRequired":true,"uniqueKey":"data.relationships.cost_item_version.data.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.relationships.cost_item_version.data.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.relationships.cost_item_version.data.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.relationships.cost_item_version.data","typeLabel":"object | null"}},"uniqueKey":"data.relationships.cost_item_version","typeLabel":"object"}},"isRequired":true,"uniqueKey":"data.relationships","typeLabel":"object"}},"isRequired":true,"uniqueKey":"data","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"},"included":{"type":"array","description":"Related resources that can be included when a cost line is returned.\n\n`cost-items` and `cost-item-versions` are both optional on a line, so asking\nfor either simply yields nothing for the lines that have none — an ad-hoc line\nhas no rate code, and a line priced on the job has no register version behind\nits rate. Neither is an error, and a request for both across a mixed collection\ncomes back with whatever exists.\n","items":{"oneOf":[{"type":"object","description":"An organisation","required":["id","type","attributes","meta"],"properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier of the organisation.","isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.0.id","typeLabel":"string\u003cuuid>"},"type":{"type":"string","const":"organisations","isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.0.type","typeLabel":"string"},"attributes":{"type":"object","description":"Attributes for an organisation","required":["name","slug","sandbox"],"properties":{"name":{"type":"string","description":"The name of the organisation.","examples":["Acme Construction Ltd"],"isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.0.attributes.name","typeLabel":"string"},"slug":{"type":"string","description":"The URL-friendly identifier for the organisation.","examples":["acme-construction"],"isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.0.attributes.slug","typeLabel":"string"},"sandbox":{"type":"boolean","description":"Whether the organisation is a sandbox (i.e. a test organisation)","examples":[false],"isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.0.attributes.sandbox","typeLabel":"boolean"},"description":{"type":"string","description":"A short description of the organisation.","examples":["Leading construction company specializing in infrastructure projects"],"uniqueKey":"included.items.[INDEX].oneOf.0.attributes.description","typeLabel":"string"},"settings":{"type":"object","required":["documents"],"properties":{"documents":{"type":"object","description":"Document settings for the organisation.","required":["expiry_threshold_days","expiry_recipient_teams"],"properties":{"expiry_threshold_days":{"type":"array","description":"Lead times, in whole days before a document expires, at which\nits expiry is notified, in ascending order. Empty when none\nare set.\n","items":{"type":"integer","minimum":1,"maximum":365,"uniqueKey":"included.items.[INDEX].oneOf.0.attributes.settings.documents.expiry_threshold_days.items.[INDEX]","typeLabel":"integer"},"uniqueItems":true,"examples":[[7,30]],"isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.0.attributes.settings.documents.expiry_threshold_days","typeLabel":"integer[]"},"expiry_recipient_teams":{"type":"array","description":"IDs of teams within this organisation whose members are\nnotified before a document expires. Empty when none are set,\nand then nobody is notified.\n","items":{"type":"string","format":"uuid","uniqueKey":"included.items.[INDEX].oneOf.0.attributes.settings.documents.expiry_recipient_teams.items.[INDEX]","typeLabel":"string\u003cuuid>"},"uniqueItems":true,"examples":[["b234c567-8901-2345-6789-abcdef012345"]],"isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.0.attributes.settings.documents.expiry_recipient_teams","typeLabel":"string\u003cuuid>[]"}},"isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.0.attributes.settings.documents","typeLabel":"object"},"teams":{"type":"object","description":"Team-related settings for the organisation.","properties":{"customer_representatives":{"type":"array","description":"IDs of teams within this organisation whose members act as\ncustomer service representatives. Each entry must reference a\nteam that belongs to this organisation.\n","items":{"type":"string","format":"uuid","uniqueKey":"included.items.[INDEX].oneOf.0.attributes.settings.teams.customer_representatives.items.[INDEX]","typeLabel":"string\u003cuuid>"},"uniqueItems":true,"examples":[["b234c567-8901-2345-6789-abcdef012345"]],"uniqueKey":"included.items.[INDEX].oneOf.0.attributes.settings.teams.customer_representatives","typeLabel":"string\u003cuuid>[]"}},"uniqueKey":"included.items.[INDEX].oneOf.0.attributes.settings.teams","typeLabel":"object"},"security":{"type":"object","description":"Security settings for the organisation.","properties":{"require_mfa":{"type":"boolean","description":"Whether people must use a second factor to see this organisation's data:\nits members, and anyone working in it through a grant without being a\nmember, such as a contractor. A SAML single sign-on sign-in counts as\none; other OIDC sign-ins do not. Service accounts are exempt.\n","examples":[false],"uniqueKey":"included.items.[INDEX].oneOf.0.attributes.settings.security.require_mfa","typeLabel":"boolean"}},"uniqueKey":"included.items.[INDEX].oneOf.0.attributes.settings.security","typeLabel":"object"}},"uniqueKey":"included.items.[INDEX].oneOf.0.attributes.settings","typeLabel":"object"}},"isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.0.attributes","typeLabel":"object"},"meta":{"type":"object","description":"Meta information for an organisation","required":["v3","status"],"properties":{"v3":{"type":"boolean","description":"Whether the organisation is using version 3 exclusively.","examples":[true],"isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.0.meta.v3","typeLabel":"boolean"},"status":{"type":"string","enum":["active","inactive"],"default":"active","description":"The current status of the organisation.","examples":["active"],"isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.0.meta.status","typeLabel":"enum\u003cstring>"},"created_at":{"type":"string","format":"date-time","description":"The creation time of the organisation.","examples":["2023-01-15T10:30:00.000Z"],"uniqueKey":"included.items.[INDEX].oneOf.0.meta.created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","description":"The last update time of the organisation.","examples":["2023-02-20T14:45:00.000Z"],"uniqueKey":"included.items.[INDEX].oneOf.0.meta.updated_at","typeLabel":"string\u003cdate-time>"},"features":{"type":"array","description":"Available features and their limits for the organisation.","items":{"type":"object","properties":{"name":{"type":"string","description":"The name of the feature.","examples":["advanced_reporting"],"uniqueKey":"included.items.[INDEX].oneOf.0.meta.features.items.[INDEX].name","typeLabel":"string"},"enabled":{"type":"boolean","description":"Whether the feature is enabled.","examples":[true],"uniqueKey":"included.items.[INDEX].oneOf.0.meta.features.items.[INDEX].enabled","typeLabel":"boolean"},"limit":{"type":"integer","description":"The usage limit for this feature (if applicable).","examples":[1000],"uniqueKey":"included.items.[INDEX].oneOf.0.meta.features.items.[INDEX].limit","typeLabel":"integer"}},"uniqueKey":"included.items.[INDEX].oneOf.0.meta.features.items.[INDEX]","typeLabel":"object"},"uniqueKey":"included.items.[INDEX].oneOf.0.meta.features","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.0.meta","typeLabel":"object"},"relationships":{"type":"object","description":"Relationships for an organisation","properties":{"users":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","description":"Represents a relationship to a user","required":["id","type"],"properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier of the user","isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.0.relationships.users.data.items.[INDEX].id","typeLabel":"string\u003cuuid>"},"type":{"type":"string","const":"users","isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.0.relationships.users.data.items.[INDEX].type","typeLabel":"string"}},"uniqueKey":"included.items.[INDEX].oneOf.0.relationships.users.data.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.0.relationships.users.data","typeLabel":"object[]"}},"uniqueKey":"included.items.[INDEX].oneOf.0.relationships.users","typeLabel":"object"},"service_accounts":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","description":"Represents a relationship to a service account","required":["id","type"],"properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier of the service account","isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.0.relationships.service_accounts.data.items.[INDEX].id","typeLabel":"string\u003cuuid>"},"type":{"type":"string","const":"service-accounts","isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.0.relationships.service_accounts.data.items.[INDEX].type","typeLabel":"string"}},"uniqueKey":"included.items.[INDEX].oneOf.0.relationships.service_accounts.data.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.0.relationships.service_accounts.data","typeLabel":"object[]"}},"uniqueKey":"included.items.[INDEX].oneOf.0.relationships.service_accounts","typeLabel":"object"},"groups":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","description":"Represents a relationship to a group","required":["id","type"],"properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier of the group","isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.0.relationships.groups.data.items.[INDEX].id","typeLabel":"string\u003cuuid>"},"type":{"type":"string","const":"groups","isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.0.relationships.groups.data.items.[INDEX].type","typeLabel":"string"}},"uniqueKey":"included.items.[INDEX].oneOf.0.relationships.groups.data.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.0.relationships.groups.data","typeLabel":"object[]"}},"uniqueKey":"included.items.[INDEX].oneOf.0.relationships.groups","typeLabel":"object"},"teams":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","description":"Represents a relationship to a team","required":["id","type"],"properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier of the team","isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.0.relationships.teams.data.items.[INDEX].id","typeLabel":"string\u003cuuid>"},"type":{"type":"string","const":"teams","isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.0.relationships.teams.data.items.[INDEX].type","typeLabel":"string"}},"uniqueKey":"included.items.[INDEX].oneOf.0.relationships.teams.data.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.0.relationships.teams.data","typeLabel":"object[]"}},"uniqueKey":"included.items.[INDEX].oneOf.0.relationships.teams","typeLabel":"object"},"nomenclature":{"type":"object","required":["data"],"properties":{"data":{"oneOf":[{"type":"object","description":"Represents a relationship to a nomenclature resource","required":["id","type"],"properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier of the nomenclature resource","isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.0.relationships.nomenclature.data.oneOf.0.id","typeLabel":"string\u003cuuid>"},"type":{"type":"string","const":"nomenclature","isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.0.relationships.nomenclature.data.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.0.relationships.nomenclature.data.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.0.relationships.nomenclature.data.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.0.relationships.nomenclature.data","typeLabel":"object | null"}},"uniqueKey":"included.items.[INDEX].oneOf.0.relationships.nomenclature","typeLabel":"object"}},"uniqueKey":"included.items.[INDEX].oneOf.0.relationships","typeLabel":"object"}},"uniqueKey":"included.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","description":"A cost sheet — the costing of one node of the job hierarchy.\n\nA sheet holds no money itself. The cost lives on its cost lines, which are a\nseparately permissioned resource, so a principal may be allowed to see that a\njob has been costed without being allowed to see what it cost.\n\nThe link to the node it costs is polymorphic: `cost_centre_type` names the\nresource type and `cost_centre_id` identifies the record.\n","required":["id","type","attributes","meta","relationships"],"properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier of the cost sheet.","isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.1.id","typeLabel":"string\u003cuuid>"},"type":{"type":"string","const":"cost-sheets","isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.1.type","typeLabel":"string"},"attributes":{"type":"object","description":"Attributes for a cost sheet","required":["cost_centre_id","cost_centre_type","status"],"properties":{"cost_centre_id":{"type":"string","format":"uuid","description":"The unique identifier of the node being costed. Read it together with\n`cost_centre_type`, which names the resource type it points at.\n","examples":["9c1d5e42-8f30-4a6b-b7c9-15e8d0a3f627"],"isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.1.attributes.cost_centre_id","typeLabel":"string\u003cuuid>"},"cost_centre_type":{"type":"string","description":"The level of the job hierarchy a cost sheet is attached to. Each value is the\nJSON:API resource type of the entity the sheet costs, so a sheet's target can\nbe resolved from the `cost_centre_type` / `cost_centre_id` pair without a\nlookup table.\n","enum":["scheme-contracts","schemes","work-orders","operations"],"isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.1.attributes.cost_centre_type","typeLabel":"enum\u003cstring>"},"status":{"type":"string","description":"How far a cost sheet has progressed through costing.\n\n- `quoted` — a priced estimate that has not been agreed\n- `approved` — agreed, and the work can proceed\n- `completed` — finished, and its costs are final\n","enum":["quoted","approved","completed"],"isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.1.attributes.status","typeLabel":"enum\u003cstring>"},"notes":{"type":"string","description":"Free text notes about the costing of this cost centre","examples":["Priced from the March rate card, pending client approval."],"uniqueKey":"included.items.[INDEX].oneOf.1.attributes.notes","typeLabel":"string"},"additional_margin":{"oneOf":[{"type":"integer","description":"An uplift on this sheet's cost, in basis points — 500 is 5.00%. Null where\nthe sheet has none.\n\nIt is taken as a percentage of cost, the same way a margin marks up a\nrate, and it moves charge and profit only — never the cost it is taken\nfrom. Taking it off the already marked-up charge instead would compound\nthe sheet's uplift with each line's own margin. The money it produces is\nnot on this resource: it appears in the roll-up, which is gated on the\npermission that hides monetary values. That is why the uplift is a\npercentage rather than a margin that could carry a fixed amount — a cost\nsheet is readable by principals who must never receive an amount.\n","minimum":0,"examples":[500],"uniqueKey":"included.items.[INDEX].oneOf.1.attributes.additional_margin.oneOf.0","typeLabel":"integer"},{"type":"null","description":"An uplift on this sheet's cost, in basis points — 500 is 5.00%. Null where\nthe sheet has none.\n\nIt is taken as a percentage of cost, the same way a margin marks up a\nrate, and it moves charge and profit only — never the cost it is taken\nfrom. Taking it off the already marked-up charge instead would compound\nthe sheet's uplift with each line's own margin. The money it produces is\nnot on this resource: it appears in the roll-up, which is gated on the\npermission that hides monetary values. That is why the uplift is a\npercentage rather than a margin that could carry a fixed amount — a cost\nsheet is readable by principals who must never receive an amount.\n","minimum":0,"examples":[500],"uniqueKey":"included.items.[INDEX].oneOf.1.attributes.additional_margin.oneOf.1","typeLabel":"null"}],"uniqueKey":"included.items.[INDEX].oneOf.1.attributes.additional_margin","typeLabel":"integer | null"}},"isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.1.attributes","typeLabel":"object"},"meta":{"type":"object","description":"Metadata for a cost sheet","required":["created_at","updated_at"],"properties":{"created_at":{"type":"string","format":"date-time","description":"The date and time when the cost sheet was created","isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.1.meta.created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","description":"The date and time when the cost sheet was last updated","isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.1.meta.updated_at","typeLabel":"string\u003cdate-time>"}},"isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.1.meta","typeLabel":"object"},"relationships":{"type":"object","description":"Relationships for a cost sheet","properties":{"organisation":{"type":"object","required":["data"],"properties":{"data":{"type":"object","description":"Represents a relationship to an organisation","required":["id","type"],"properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier of the organisation","isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.1.relationships.organisation.data.id","typeLabel":"string\u003cuuid>"},"type":{"type":"string","const":"organisations","isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.1.relationships.organisation.data.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.1.relationships.organisation.data","typeLabel":"object"}},"uniqueKey":"included.items.[INDEX].oneOf.1.relationships.organisation","typeLabel":"object"}},"isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.1.relationships","typeLabel":"object"}},"uniqueKey":"included.items.[INDEX].oneOf.1","typeLabel":"object"},{"type":"object","description":"A cost item — a rate code in the central cost register","required":["id","type","attributes","meta","relationships"],"properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier of the cost item.","isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.2.id","typeLabel":"string\u003cuuid>"},"type":{"type":"string","const":"cost-items","isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.2.type","typeLabel":"string"},"attributes":{"type":"object","description":"Attributes for a cost item","required":["code","name","category","metering","unit"],"properties":{"code":{"type":"string","description":"The rate code, unique within the organisation","examples":["MAT-001"],"isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.2.attributes.code","typeLabel":"string"},"name":{"type":"string","description":"The name of the cost item","examples":["Cold lay tarmac"],"isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.2.attributes.name","typeLabel":"string"},"category":{"type":"string","description":"The kind of spend a cost item represents","enum":["material","labour","misc","contractor"],"isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.2.attributes.category","typeLabel":"enum\u003cstring>"},"metering":{"type":"string","description":"How a cost item is measured when it is applied to a job.\n\n- `time` — charged for the time spent, billed by the hour\n- `day_rate` — charged as a flat rate for each working day\n- `volume` — charged by the quantity of material used\n- `fixed` — a fixed charge applied once\n","enum":["time","day_rate","volume","fixed"],"isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.2.attributes.metering","typeLabel":"enum\u003cstring>"},"unit":{"type":"string","description":"The unit the rate is priced against","examples":["tonne"],"isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.2.attributes.unit","typeLabel":"string"},"description":{"type":"string","description":"An optional description of the cost item","uniqueKey":"included.items.[INDEX].oneOf.2.attributes.description","typeLabel":"string"},"margin":{"oneOf":[{"type":"object","description":"The markup applied to the base rate. Null when the cost item does not set\none, in which case the consuming application applies its own default.\n","required":["type"],"properties":{"type":{"type":"string","description":"Whether the markup is a proportion of the cost or a flat amount","enum":["percentage","fixed"],"isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.2.attributes.margin.oneOf.0.type","typeLabel":"enum\u003cstring>"},"percentage":{"oneOf":[{"type":"integer","description":"The markup in basis points when `type` is `percentage` — 1200 is 12.00%.\nBasis points keep a margin expressed to two decimal places exact.\n","minimum":0,"examples":[1200],"uniqueKey":"included.items.[INDEX].oneOf.2.attributes.margin.oneOf.0.percentage.oneOf.0","typeLabel":"integer"},{"type":"null","description":"The markup in basis points when `type` is `percentage` — 1200 is 12.00%.\nBasis points keep a margin expressed to two decimal places exact.\n","minimum":0,"examples":[1200],"uniqueKey":"included.items.[INDEX].oneOf.2.attributes.margin.oneOf.0.percentage.oneOf.1","typeLabel":"null"}],"uniqueKey":"included.items.[INDEX].oneOf.2.attributes.margin.oneOf.0.percentage","typeLabel":"integer | null"},"fixed":{"oneOf":[{"type":"object","description":"The flat amount added to the cost when `type` is `fixed`","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":"included.items.[INDEX].oneOf.2.attributes.margin.oneOf.0.fixed.oneOf.0.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":"included.items.[INDEX].oneOf.2.attributes.margin.oneOf.0.fixed.oneOf.0.currency","typeLabel":"string"}},"uniqueKey":"included.items.[INDEX].oneOf.2.attributes.margin.oneOf.0.fixed.oneOf.0","typeLabel":"object"},{"type":"null","description":"The flat amount added to the cost when `type` is `fixed`","uniqueKey":"included.items.[INDEX].oneOf.2.attributes.margin.oneOf.0.fixed.oneOf.1","typeLabel":"null"}],"uniqueKey":"included.items.[INDEX].oneOf.2.attributes.margin.oneOf.0.fixed","typeLabel":"object | null"}},"uniqueKey":"included.items.[INDEX].oneOf.2.attributes.margin.oneOf.0","typeLabel":"object"},{"type":"null","description":"The markup applied to the base rate. Null when the cost item does not set\none, in which case the consuming application applies its own default.\n","uniqueKey":"included.items.[INDEX].oneOf.2.attributes.margin.oneOf.1","typeLabel":"null"}],"uniqueKey":"included.items.[INDEX].oneOf.2.attributes.margin","typeLabel":"object | null"}},"isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.2.attributes","typeLabel":"object"},"meta":{"type":"object","description":"Metadata for a cost item","required":["created_at","updated_at"],"properties":{"created_at":{"type":"string","format":"date-time","description":"The date and time when the cost item was created","isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.2.meta.created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","description":"The date and time when the cost item was last updated","isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.2.meta.updated_at","typeLabel":"string\u003cdate-time>"}},"isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.2.meta","typeLabel":"object"},"relationships":{"type":"object","description":"Relationships for a cost item","properties":{"organisation":{"type":"object","required":["data"],"properties":{"data":{"type":"object","description":"Represents a relationship to an organisation","required":["id","type"],"properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier of the organisation","isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.2.relationships.organisation.data.id","typeLabel":"string\u003cuuid>"},"type":{"type":"string","const":"organisations","isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.2.relationships.organisation.data.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.2.relationships.organisation.data","typeLabel":"object"}},"uniqueKey":"included.items.[INDEX].oneOf.2.relationships.organisation","typeLabel":"object"}},"isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.2.relationships","typeLabel":"object"}},"uniqueKey":"included.items.[INDEX].oneOf.2","typeLabel":"object"},{"type":"object","description":"A cost item version — one time-bound rate for a cost item. A new version starts\nwhenever the rate changes, so work costed after the fact can be priced at the\nrate that was in force on the day it was carried out.\n\nThis resource carries monetary values and is permissioned separately from the\ncost item itself.\n","required":["id","type","attributes","meta","relationships"],"properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier of the cost item version.","isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.3.id","typeLabel":"string\u003cuuid>"},"type":{"type":"string","const":"cost-item-versions","isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.3.type","typeLabel":"string"},"attributes":{"type":"object","description":"Attributes for a cost item version","required":["version","rate","effective_from"],"properties":{"version":{"type":"integer","description":"The sequential version number within the cost item, oldest first. Assigned\nby the server; it cannot be set by the client.\n","readOnly":true,"examples":[2],"isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.3.attributes.version","typeLabel":"integer"},"rate":{"type":"object","description":"A monetary amount held in the currency's minor units (pence for GBP) alongside\nits ISO 4217 currency code. Amounts are never decimals, so repeated arithmetic\ncannot accumulate rounding error.\n","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":"included.items.[INDEX].oneOf.3.attributes.rate.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":"included.items.[INDEX].oneOf.3.attributes.rate.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.3.attributes.rate","typeLabel":"object"},"effective_from":{"type":"string","format":"date","description":"The first day the rate applies, inclusive","examples":["2026-01-01"],"isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.3.attributes.effective_from","typeLabel":"string\u003cdate>"},"effective_to":{"oneOf":[{"type":"string","format":"date","description":"The last day the rate applies, inclusive. Null while the version is open\nended and still in force.\n","examples":["2026-12-31"],"uniqueKey":"included.items.[INDEX].oneOf.3.attributes.effective_to.oneOf.0","typeLabel":"string\u003cdate>"},{"type":"null","format":"date","description":"The last day the rate applies, inclusive. Null while the version is open\nended and still in force.\n","examples":["2026-12-31"],"uniqueKey":"included.items.[INDEX].oneOf.3.attributes.effective_to.oneOf.1","typeLabel":"null"}],"uniqueKey":"included.items.[INDEX].oneOf.3.attributes.effective_to","typeLabel":"string\u003cdate> | null"},"note":{"type":"string","description":"A short note on why the rate changed","examples":["Annual price review"],"uniqueKey":"included.items.[INDEX].oneOf.3.attributes.note","typeLabel":"string"}},"isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.3.attributes","typeLabel":"object"},"meta":{"type":"object","description":"Metadata for a cost item version","required":["status","created_at","updated_at"],"properties":{"status":{"type":"string","description":"Where a rate version sits relative to today.\n\n- `active` — in force today\n- `scheduled` — agreed but not started yet\n- `superseded` — closed off by a later rate\n","enum":["active","scheduled","superseded"],"isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.3.meta.status","typeLabel":"enum\u003cstring>"},"created_at":{"type":"string","format":"date-time","description":"The date and time when the cost item version was created","isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.3.meta.created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","description":"The date and time when the cost item version was last updated","isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.3.meta.updated_at","typeLabel":"string\u003cdate-time>"}},"isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.3.meta","typeLabel":"object"},"relationships":{"type":"object","description":"Relationships for a cost item version","properties":{"organisation":{"type":"object","required":["data"],"properties":{"data":{"type":"object","description":"Represents a relationship to an organisation","required":["id","type"],"properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier of the organisation","isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.3.relationships.organisation.data.id","typeLabel":"string\u003cuuid>"},"type":{"type":"string","const":"organisations","isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.3.relationships.organisation.data.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.3.relationships.organisation.data","typeLabel":"object"}},"uniqueKey":"included.items.[INDEX].oneOf.3.relationships.organisation","typeLabel":"object"},"cost_item":{"type":"object","required":["data"],"properties":{"data":{"type":"object","description":"Represents a relationship to a cost item","required":["id","type"],"properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier of the cost item","isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.3.relationships.cost_item.data.id","typeLabel":"string\u003cuuid>"},"type":{"type":"string","const":"cost-items","isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.3.relationships.cost_item.data.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.3.relationships.cost_item.data","typeLabel":"object"}},"uniqueKey":"included.items.[INDEX].oneOf.3.relationships.cost_item","typeLabel":"object"}},"isRequired":true,"uniqueKey":"included.items.[INDEX].oneOf.3.relationships","typeLabel":"object"}},"uniqueKey":"included.items.[INDEX].oneOf.3","typeLabel":"object"}],"uniqueKey":"included.items.[INDEX]","typeLabel":"object"},"uniqueKey":"included","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":{"id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","type":"cost-lines","attributes":{"line_type":"actual","quantity":3500,"work_date":"2026-03-14","rate":{"amount":9250,"currency":"GBP"},"amount":{"amount":9250,"currency":"GBP"},"margin":{"type":"percentage","percentage":1200,"fixed":{"amount":9250,"currency":"GBP"}},"charge":{"amount":9250,"currency":"GBP"},"margin_override":{"type":"percentage","percentage":1200,"fixed":{"amount":9250,"currency":"GBP"}},"margin_source":"override","profit":{"amount":9250,"currency":"GBP"},"cost_item_snapshot":{"code":"MAT-001","name":"Cold lay tarmac","description":"\u003cstring>","category":"material","metering":"time","unit":"tonne","margin":{"type":"percentage","percentage":1200,"fixed":{"amount":9250,"currency":"GBP"}}},"description":"Two operatives, second reinstatement visit","cost_kit":{"id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","code":"KIT-002","name":"Footway reinstatement"},"cost_kit_application_id":"7f3a2c18-9d40-4b6e-8a51-c2e07b4f9d63"},"meta":{"created_at":"2023-11-07T05:31:56Z","updated_at":"2023-11-07T05:31:56Z"},"relationships":{"organisation":{"data":{"id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","type":"organisations"}},"cost_sheet":{"data":{"id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","type":"cost-sheets"}},"cost_item":{"data":{"id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","type":"cost-items"}},"cost_item_version":{"data":{"id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","type":"cost-item-versions"}}}},"jsonapi":{"version":"1.0"},"included":[{"id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","type":"organisations","attributes":{"name":"Acme Construction Ltd","slug":"acme-construction","sandbox":false,"description":"Leading construction company specializing in infrastructure projects","settings":{"documents":{"expiry_threshold_days":[7,30],"expiry_recipient_teams":["b234c567-8901-2345-6789-abcdef012345"]},"teams":{"customer_representatives":["b234c567-8901-2345-6789-abcdef012345"]},"security":{"require_mfa":false}}},"meta":{"v3":true,"status":"active","created_at":"2023-01-15T10:30:00.000Z","updated_at":"2023-02-20T14:45:00.000Z","features":[{"name":"advanced_reporting","enabled":true,"limit":1000}]},"relationships":{"users":{"data":[{"id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","type":"users"}]},"service_accounts":{"data":[{"id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","type":"service-accounts"}]},"groups":{"data":[{"id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","type":"groups"}]},"teams":{"data":[{"id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","type":"teams"}]},"nomenclature":{"data":{"id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","type":"nomenclature"}}}}]}}},"exampleType":"generated"}},"exampleType":"generated"},"37ac6591-dcbc-4b52-8f1e-d3d6eec3da64":{"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"},"f6067936-c1ce-42e1-9133-88824de37f98":{"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"},"453ed10c-e9f8-4d29-94c2-68b376e3ad7f":{"description":"The requested resource could not be found","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":"7b4c8f12-3e9a-4d5b-8c6f-1a2b3c4d5e6f","status":"404","title":"Resource not found","detail":"The requested resource could not be found or does not exist.","code":"NOT_FOUND.001"},"examples":{"Example":{"title":"Example","value":{"id":"7b4c8f12-3e9a-4d5b-8c6f-1a2b3c4d5e6f","status":"404","title":"Resource not found","detail":"The requested resource could not be found or does not exist.","code":"NOT_FOUND.001"}}},"exampleType":"examples"}},"exampleType":"examples"},"a190efd3-073f-461d-8b08-49b32eec7ea3":{"description":"The request conflicts with the current state of the resource","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":"8e2f9a34-b5c6-4d7e-9f8a-2b3c4d5e6f7g","status":"409","title":"Conflict","detail":"The request conflicts with the current state of the resource.","code":"CONFLICT.001"},"examples":{"Example":{"title":"Example","value":{"id":"8e2f9a34-b5c6-4d7e-9f8a-2b3c4d5e6f7g","status":"409","title":"Conflict","detail":"The request conflicts with the current state of the resource.","code":"CONFLICT.001"}}},"exampleType":"examples"}},"exampleType":"examples"},"3cfaf179-bd66-40f4-abd7-1b2508c1361f":{"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":{"74d4ed63-472a-457b-9ef9-408de0f4d84f":{"Session":{"description":"Session token for authentication.\n","in":"header","name":"X-Session-Token","type":"apiKey","scopes":[],"schemeName":"Session"}},"2a614bd1-5dbd-485a-b726-9b2e9f69533d":{"OAuth2":{"description":"OAuth2 token for authentication.\n","flows":{"clientCredentials":{"scopes":{},"tokenUrl":"https://auth.ctrl-hub.com/oauth2/token"}},"type":"oauth2","scopes":[],"schemeName":"OAuth2"}},"b357c1ed-612a-455e-a368-8182bdd90874":{"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":"Create a cost line - Ctrl Hub","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-03T17:16:26.824Z","originalFileLocation":"api-reference/costs/create-a-cost-line.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=\"Add a costed line to a cost sheet. The rate is resolved by the server from the cost item\u0026#x27;s register version in force on work_date, and the resolved rate, the line amount and the version reference are all persisted as a snapshot — revising the rate later never changes an existing line. The request will fail with a 400 Bad Request if the cost item has no rate in force on work_date.\">\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=\"Create a cost line - Ctrl Hub\">\u003cmeta data-mint-head property=\"og:description\" content=\"Add a costed line to a cost sheet. The rate is resolved by the server from the cost item\u0026#x27;s register version in force on work_date, and the resolved rate, the line amount and the version reference are all persisted as a snapshot — revising the rate later never changes an existing line. The request will fail with a 400 Bad Request if the cost item has no rate in force on work_date.\">\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/create-a-cost-line\">\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=Create+a+cost+line\u0026amp;description=Add+a+costed+line+to+a+cost+sheet.+The+rate+is+resolved+by+the+server+from+the%0Acost+item%27s+register+version+in+force+on+%60work_date%60%2C+and+the+resolved+rate%2C%0Athe+\u0026amp;theme=4057edff07f86baa3a518be3\u0026amp;signature=da21659227921d3881b808a7fa86b7dc2076be9dff81ead3dff0983248e19ee1\">\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=\"Create a cost line - Ctrl Hub\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Add a costed line to a cost sheet. The rate is resolved by the server from the cost item\u0026#x27;s register version in force on work_date, and the resolved rate, the line amount and the version reference are all persisted as a snapshot — revising the rate later never changes an existing line. The request will fail with a 400 Bad Request if the cost item has no rate in force on work_date.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://ctrlhub-2ae4bef7.mintlify.app/_mintlify/api/og/v2?division=Costs\u0026amp;title=Create+a+cost+line\u0026amp;description=Add+a+costed+line+to+a+cost+sheet.+The+rate+is+resolved+by+the+server+from+the%0Acost+item%27s+register+version+in+force+on+%60work_date%60%2C+and+the+resolved+rate%2C%0Athe+\u0026amp;theme=4057edff07f86baa3a518be3\u0026amp;signature=da21659227921d3881b808a7fa86b7dc2076be9dff81ead3dff0983248e19ee1\">\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/create-a-cost-line\">\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/create-a-cost-line.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/create-a-cost-line#webpage\",\"url\":\"https://docs.ctrl-hub.com/api-reference/costs/create-a-cost-line\",\"name\":\"Create a cost line\",\"description\":\"Add a costed line to a cost sheet. The rate is resolved by the server from the cost item's register version in force on work_date, and the resolved rate, the line amount and the version reference are all persisted as a snapshot — revising the rate later never changes an existing line. The request will fail with a 400 Bad Request if the cost item has no rate in force on work_date.\",\"dateModified\":\"2026-11-03T17:16:26.824Z\",\"isPartOf\":{\"@id\":\"https://docs.ctrl-hub.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.ctrl-hub.com/api-reference/costs/create-a-cost-line#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.ctrl-hub.com/api-reference/costs/create-a-cost-line#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\":\"Create a cost line\",\"item\":\"https://docs.ctrl-hub.com/api-reference/costs/create-a-cost-line\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.ctrl-hub.com/api-reference/costs/create-a-cost-line#apireference\",\"headline\":\"Create a cost line\",\"name\":\"Create a cost line\",\"description\":\"Add a costed line to a cost sheet. The rate is resolved by the server from the cost item's register version in force on work_date, and the resolved rate, the line amount and the version reference are all persisted as a snapshot — revising the rate later never changes an existing line. The request will fail with a 400 Bad Request if the cost item has no rate in force on work_date.\",\"url\":\"https://docs.ctrl-hub.com/api-reference/costs/create-a-cost-line\",\"mainEntityOfPage\":{\"@id\":\"https://docs.ctrl-hub.com/api-reference/costs/create-a-cost-line#webpage\"},\"dateModified\":\"2026-11-03T17:16:26.824Z\",\"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","description":"List the cost lines visible to the caller.\n\nThis resource carries monetary values and is permissioned separately from the\ncost sheets themselves, 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_sheet` for the lines that make up one sheet's cost.\n","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","description":"Get an individual cost line by its ID.","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","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","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":"Create a cost line - 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"]}