Errors are returned as JSON, with a top-level error object that includes code, message, status and optionally docs_url.
Here’s an example:
{ "error": { "code": "duplicate_team_name", "docs_url": "http://docs.shiftkeeper.io/api-reference/teams/create-a-team", "message": "A team with this name already exists", "status": 422 }}
{"docsConfig":{"$schema":"https://mintlify.com/docs.json","theme":"mint","name":"Shiftkeeper docs","colors":{"primary":"#4338CA","light":"#899FEB","dark":"#4338CA"},"favicon":"/favicon.svg","logo":{"light":"https://mintcdn.com/shiftkeeper/0UjY-yTrwVupDEok/logo/light.svg?fit=max\u0026auto=format\u0026n=0UjY-yTrwVupDEok\u0026q=85\u0026s=4056d85cb2884e804ac421d7d096ffe1","dark":"https://mintcdn.com/shiftkeeper/0UjY-yTrwVupDEok/logo/dark.svg?fit=max\u0026auto=format\u0026n=0UjY-yTrwVupDEok\u0026q=85\u0026s=512033acf1aa24f832e91b54d48935f6","href":"https://shiftkeeper.io"},"background":{"decoration":null,"color":{"light":"#FDFDFF","dark":"#20202E"}},"navbar":{"links":[{"label":"Contact","href":"mailto:hello@shiftkeeper.io"}],"primary":{"type":"button","label":"Open app","href":"https://app.shiftkeeper.io"}},"footer":{"socials":{"x":"https://x.com/shiftkeeper","linkedin":"https://linkedin.com/company/shiftkeeper","website":"https://shiftkeeper.io"}},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"shiftkeeper","hasAudioNarration":false,"actualSubdomain":"shiftkeeper","customDomains":["docs.shiftkeeper.io"],"gitSource":{"type":"github","owner":"shiftkeeper","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6a21a71e3d3709865082f189","collectionId":"898c6e70-34de-4409-8b9b-df99e4112827","schemaVersion":"v2"},"entitlements":{},"buildId":"6a21a71e3d3709865082f189:success","clientVersion":"0.0.3966","searchFilterCounts":[{"language":"default","tag":"API Reference","count":38},{"language":"default","tag":"Schedules","count":17},{"language":"default","tag":"Guides","count":13},{"language":"default","tag":"Using Shiftkeeper","count":11},{"language":"default","tag":"Teams","count":9},{"language":"default","tag":"Coverage","count":6},{"language":"default","tag":"Overrides","count":4},{"language":"default","tag":"Using the API","count":3},{"language":"default","tag":"Workspace","count":3},{"language":"default","tag":"Users","count":3}]},"assistantConfig":{},"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":"editor-v7-file-tree","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":"pause-universal-search-reconcile","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":"per-site-search-delta","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":"editor-private-page-search","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":"editor-nav-generations","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":"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":"editor-agent-model-picker","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":"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}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/errors","slug":"/api-reference/errors","pageMetadata":{"title":"Errors","description":"Understanding API errors and status codes","href":"/api-reference/errors"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Understanding API errors and status codes\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{CodeBlock,Heading,Table}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`We follow standard HTTP status codes to indicate API response status:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Status`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`400`})}),_jsx(_components.td,{children:`Failed validating your request`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`401`})}),_jsx(_components.td,{children:`There’s an issue with your API key`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`404`})}),_jsx(_components.td,{children:`The resource you’re trying to access doesn’t exist`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`422`})}),_jsx(_components.td,{children:`The request cannot be processed, check the error code for more details`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`429`})}),_jsx(_components.td,{children:`You’ve exceeded the rate limits`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`500`})}),_jsx(_components.td,{children:`An internal error occurred in our system`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`error-shape`,children:`Error shape`}),`\n`,_jsxs(_components.p,{children:[`Errors are returned as JSON, with a top-level `,_jsx(_components.code,{children:`error`}),` object that includes `,_jsx(_components.code,{children:`code`}),`, `,_jsx(_components.code,{children:`message`}),`, `,_jsx(_components.code,{children:`status`}),` and optionally `,_jsx(_components.code,{children:`docs_url`}),`.\nHere’s an example:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`8`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`8`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"error\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"code\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"duplicate_team_name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"docs_url\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"http://docs.shiftkeeper.io/api-reference/teams/create-a-team\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"message\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"A team with this name already exists\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"status\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`422`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`error-codes`,children:`Error codes`}),`\n`,_jsx(_components.p,{children:`This section provides a list of error codes that the API might return.`}),`\n`,_jsx(Heading,{level:`3`,id:`bad_request`,children:_jsx(_components.code,{children:`bad_request`})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{}),_jsx(_components.th,{})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Status`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:`400`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Description`})}),_jsx(_components.td,{children:`Request is invalid.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Remedy`})}),_jsx(_components.td,{children:`Adjust the request body \u0026 parameters and try again.`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`unauthorized`,children:_jsx(_components.code,{children:`unauthorized`})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{}),_jsx(_components.th,{})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Status`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:`401`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Description`})}),_jsx(_components.td,{children:`Authorization failed.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Remedy`})}),_jsx(_components.td,{children:`Verify that your API key is correct and you’re passing it correctly in the request.`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`not_found`,children:_jsx(_components.code,{children:`not_found`})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{}),_jsx(_components.th,{})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Status`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:`404`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Description`})}),_jsx(_components.td,{children:`Resource not found.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Remedy`})}),_jsx(_components.td,{children:`Check the resource URL.`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`coverage_request_not_pending`,children:_jsx(_components.code,{children:`coverage_request_not_pending`})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{}),_jsx(_components.th,{})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Status`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:`422`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Description`})}),_jsxs(_components.td,{children:[`Cannot take action on a coverage request that is not in the `,_jsx(_components.code,{children:`pending`}),` state.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Remedy`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:`-`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`coverage_request_self_owned`,children:_jsx(_components.code,{children:`coverage_request_self_owned`})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{}),_jsx(_components.th,{})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Status`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:`422`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Description`})}),_jsx(_components.td,{children:`Cannot accept or decline own coverage request.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Remedy`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:`-`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`too_many_shifts_in_coverage_request`,children:_jsx(_components.code,{children:`too_many_shifts_in_coverage_request`})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{}),_jsx(_components.th,{})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Status`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:`422`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Description`})}),_jsx(_components.td,{children:`There are too many shifts in the coverage request you are trying to create.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Remedy`})}),_jsx(_components.td,{children:`Adjust the time interval for the coverage request so that it contains no more than 500 shifts.`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`override_already_finished`,children:_jsx(_components.code,{children:`override_already_finished`})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{}),_jsx(_components.th,{})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Status`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:`422`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Description`})}),_jsx(_components.td,{children:`Overrides that have already finished cannot be updated or deleted. They can only be read.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Remedy`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:`-`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`duplicate_schedule_name`,children:_jsx(_components.code,{children:`duplicate_schedule_name`})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{}),_jsx(_components.th,{})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Status`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:`422`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Description`})}),_jsx(_components.td,{children:`A schedule with this name already exists.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Remedy`})}),_jsx(_components.td,{children:`Try a different name.`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`invalid_user_reference`,children:_jsx(_components.code,{children:`invalid_user_reference`})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{}),_jsx(_components.th,{})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Status`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:`422`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Description`})}),_jsx(_components.td,{children:`At least one of the provided user references refers to a user that does not exist.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Remedy`})}),_jsx(_components.td,{children:`Adjust the user references and try again.`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`duplicate_team_name`,children:_jsx(_components.code,{children:`duplicate_team_name`})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{}),_jsx(_components.th,{})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Status`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:`422`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Description`})}),_jsx(_components.td,{children:`A team with this name already exists.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Remedy`})}),_jsx(_components.td,{children:`Try a different name.`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`slack_group_permission_denied`,children:_jsx(_components.code,{children:`slack_group_permission_denied`})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{}),_jsx(_components.th,{})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Status`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:`422`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Description`})}),_jsx(_components.td,{children:`Missing permissions to create user groups.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Remedy`})}),_jsxs(_components.td,{children:[`Check `,_jsx(_components.a,{href:`/shiftkeeper/schedules/slack-user-groups#troubleshooting-permission-issues`,children:`our guide`}),` to troubleshoot Slack permissions for user groups.`]})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`slack_group_only_available_for_paid_teams`,children:_jsx(_components.code,{children:`slack_group_only_available_for_paid_teams`})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{}),_jsx(_components.th,{})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Status`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:`422`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Description`})}),_jsx(_components.td,{children:`User groups are available only on paid Slack plans.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Remedy`})}),_jsx(_components.td,{children:`Upgrade your Slack workspace to a paid plan.`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`slack_group_duplicate_handle_name`,children:_jsx(_components.code,{children:`slack_group_duplicate_handle_name`})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{}),_jsx(_components.th,{})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Status`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:`422`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Description`})}),_jsx(_components.td,{children:`A Slack user group with this handle already exists.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Remedy`})}),_jsx(_components.td,{children:`Try a different handle.`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`slack_group_duplicate_name`,children:_jsx(_components.code,{children:`slack_group_duplicate_name`})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{}),_jsx(_components.th,{})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Status`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:`422`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Description`})}),_jsx(_components.td,{children:`A Slack user group with this name already exists.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Remedy`})}),_jsx(_components.td,{children:`Try a different name.`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`too_many_requests`,children:_jsx(_components.code,{children:`too_many_requests`})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{}),_jsx(_components.th,{})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Status`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:`429`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Description`})}),_jsx(_components.td,{children:`Rate limit exceeded.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Remedy`})}),_jsx(_components.td,{children:`Wait for the rate limit to reset.`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`internal_server_error`,children:_jsx(_components.code,{children:`internal_server_error`})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{}),_jsx(_components.th,{})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Status`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:`500`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Description`})}),_jsx(_components.td,{children:`An internal error occurred in our system.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Remedy`})}),_jsx(_components.td,{children:`Try again later.`})]})]})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Errors","description":"Understanding API errors and status codes","href":"/api-reference/errors"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Error shape","slug":"error-shape","depth":2,"children":[]},{"title":"Error codes","slug":"error-codes","depth":2,"children":[{"title":"bad_request","slug":"bad_request","depth":3,"children":[]},{"title":"unauthorized","slug":"unauthorized","depth":3,"children":[]},{"title":"not_found","slug":"not_found","depth":3,"children":[]},{"title":"coverage_request_not_pending","slug":"coverage_request_not_pending","depth":3,"children":[]},{"title":"coverage_request_self_owned","slug":"coverage_request_self_owned","depth":3,"children":[]},{"title":"too_many_shifts_in_coverage_request","slug":"too_many_shifts_in_coverage_request","depth":3,"children":[]},{"title":"override_already_finished","slug":"override_already_finished","depth":3,"children":[]},{"title":"duplicate_schedule_name","slug":"duplicate_schedule_name","depth":3,"children":[]},{"title":"invalid_user_reference","slug":"invalid_user_reference","depth":3,"children":[]},{"title":"duplicate_team_name","slug":"duplicate_team_name","depth":3,"children":[]},{"title":"slack_group_permission_denied","slug":"slack_group_permission_denied","depth":3,"children":[]},{"title":"slack_group_only_available_for_paid_teams","slug":"slack_group_only_available_for_paid_teams","depth":3,"children":[]},{"title":"slack_group_duplicate_handle_name","slug":"slack_group_duplicate_handle_name","depth":3,"children":[]},{"title":"slack_group_duplicate_name","slug":"slack_group_duplicate_name","depth":3,"children":[]},{"title":"too_many_requests","slug":"too_many_requests","depth":3,"children":[]},{"title":"internal_server_error","slug":"internal_server_error","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":[],"subdomain":"shiftkeeper","siteName":"Shiftkeeper docs","title":"Errors - Shiftkeeper docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2025-11-30T22:06:27.895Z","originalFileLocation":"api-reference/errors.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=\"Understanding API errors and status codes\">\u003cmeta data-mint-head name=\"application-name\" content=\"Shiftkeeper docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/shiftkeeper/vHUPlLWMitlofGOK/_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/shiftkeeper/vHUPlLWMitlofGOK/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/shiftkeeper/vHUPlLWMitlofGOK/_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/shiftkeeper/vHUPlLWMitlofGOK/_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/shiftkeeper/vHUPlLWMitlofGOK/_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/shiftkeeper/vHUPlLWMitlofGOK/_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/shiftkeeper/vHUPlLWMitlofGOK/_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/shiftkeeper/vHUPlLWMitlofGOK/_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/shiftkeeper/vHUPlLWMitlofGOK/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Errors - Shiftkeeper docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Understanding API errors and status codes\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Shiftkeeper docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.shiftkeeper.io/api-reference/errors\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://shiftkeeper.mintlify.app/_mintlify/api/og/v2?division=Using+the+API\u0026amp;title=Errors\u0026amp;description=Understanding+API+errors+and+status+codes\u0026amp;theme=b9522b741d445c95c52edea2\u0026amp;signature=985af7d51b4a735661ec7d73b0e4591e7aa42efd0d8c156d76f3683e3d8ec678\">\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=\"Errors - Shiftkeeper docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Understanding API errors and status codes\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://shiftkeeper.mintlify.app/_mintlify/api/og/v2?division=Using+the+API\u0026amp;title=Errors\u0026amp;description=Understanding+API+errors+and+status+codes\u0026amp;theme=b9522b741d445c95c52edea2\u0026amp;signature=985af7d51b4a735661ec7d73b0e4591e7aa42efd0d8c156d76f3683e3d8ec678\">\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/shiftkeeper/vHUPlLWMitlofGOK/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Shiftkeeper docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#4338CA\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.shiftkeeper.io/api-reference/errors\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/errors.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.shiftkeeper.io/#organization\",\"name\":\"Shiftkeeper docs\",\"url\":\"https://docs.shiftkeeper.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/shiftkeeper/0UjY-yTrwVupDEok/logo/light.svg?fit=max\u0026auto=format\u0026n=0UjY-yTrwVupDEok\u0026q=85\u0026s=4056d85cb2884e804ac421d7d096ffe1\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.shiftkeeper.io#website\",\"name\":\"Shiftkeeper docs\",\"url\":\"https://docs.shiftkeeper.io\",\"publisher\":{\"@id\":\"https://docs.shiftkeeper.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.shiftkeeper.io/api-reference/errors#webpage\",\"url\":\"https://docs.shiftkeeper.io/api-reference/errors\",\"name\":\"Errors\",\"description\":\"Understanding API errors and status codes\",\"dateModified\":\"2025-11-30T22:06:27.895Z\",\"isPartOf\":{\"@id\":\"https://docs.shiftkeeper.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.shiftkeeper.io/api-reference/errors#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.shiftkeeper.io/api-reference/errors#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Using the API\",\"item\":\"https://docs.shiftkeeper.io/api-reference/getting-started\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Errors\",\"item\":\"https://docs.shiftkeeper.io/api-reference/errors\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.shiftkeeper.io/api-reference/errors#article\",\"headline\":\"Errors\",\"name\":\"Errors\",\"description\":\"Understanding API errors and status codes\",\"url\":\"https://docs.shiftkeeper.io/api-reference/errors\",\"mainEntityOfPage\":{\"@id\":\"https://docs.shiftkeeper.io/api-reference/errors#webpage\"},\"dateModified\":\"2025-11-30T22:06:27.895Z\",\"publisher\":{\"@id\":\"https://docs.shiftkeeper.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.shiftkeeper.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Shiftkeeper docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Shiftkeeper docs","nav":{"global":null,"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":"/getting-started/introduction"}]},{"tab":"API Reference","groups":[{"group":"Using the API","pages":[{"title":"Getting started","href":"/api-reference/getting-started"},{"title":"Versions","description":"Learn about how we version our API","href":"/api-reference/versions"},{"title":"Errors","href":"/api-reference/errors"}]},{"group":"Schedules","pages":[{"title":"List schedules","description":"List all schedules in your organization.","deprecated":null,"version":null,"openapi":"https://api.shiftkeeper.io/openapi.json get /schedules/","href":"/api-reference/schedules/list-schedules"},{"title":"Create a schedule","deprecated":null,"version":null,"openapi":"https://api.shiftkeeper.io/openapi.json post /schedules/","href":"/api-reference/schedules/create-a-schedule"},{"title":"Get a schedule","deprecated":null,"version":null,"openapi":"https://api.shiftkeeper.io/openapi.json get /schedules/{schedule_id}","href":"/api-reference/schedules/get-a-schedule"},{"title":"Delete a schedule","deprecated":null,"version":null,"openapi":"https://api.shiftkeeper.io/openapi.json delete /schedules/{schedule_id}","href":"/api-reference/schedules/delete-a-schedule"},{"title":"Update a schedule","deprecated":null,"version":null,"openapi":"https://api.shiftkeeper.io/openapi.json patch /schedules/{schedule_id}","href":"/api-reference/schedules/update-a-schedule"},{"title":"List schedule shifts","deprecated":null,"version":null,"openapi":"https://api.shiftkeeper.io/openapi.json get /schedules/{schedule_id}/shifts/","href":"/api-reference/schedules/list-schedule-shifts"},{"title":"Get the Slack user group for a schedule","deprecated":null,"version":null,"openapi":"https://api.shiftkeeper.io/openapi.json get /schedules/{schedule_id}/slack_user_group/","href":"/api-reference/schedules/get-the-slack-user-group-for-a-schedule"},{"title":"Attach or update the Slack user group for a schedule","deprecated":null,"version":null,"openapi":"https://api.shiftkeeper.io/openapi.json put /schedules/{schedule_id}/slack_user_group/","href":"/api-reference/schedules/attach-or-update-the-slack-user-group-for-a-schedule"},{"title":"Detach the Slack user group from a schedule","deprecated":null,"version":null,"openapi":"https://api.shiftkeeper.io/openapi.json delete /schedules/{schedule_id}/slack_user_group/","href":"/api-reference/schedules/detach-the-slack-user-group-from-a-schedule"},{"title":"List linked schedule Slack channels","deprecated":null,"version":null,"openapi":"https://api.shiftkeeper.io/openapi.json get /schedules/{schedule_id}/slack_channels/","href":"/api-reference/schedules/list-linked-schedule-slack-channels"},{"title":"Link a Slack channel to a schedule","deprecated":null,"version":null,"openapi":"https://api.shiftkeeper.io/openapi.json put /schedules/{schedule_id}/slack_channels/{channel_id}","href":"/api-reference/schedules/link-a-slack-channel-to-a-schedule"},{"title":"Unlink a Slack channel from a schedule","deprecated":null,"version":null,"openapi":"https://api.shiftkeeper.io/openapi.json delete /schedules/{schedule_id}/slack_channels/{channel_id}","href":"/api-reference/schedules/unlink-a-slack-channel-from-a-schedule"}]},{"group":"Overrides","pages":[{"title":"List schedule overrides","deprecated":null,"version":null,"openapi":"https://api.shiftkeeper.io/openapi.json get /schedules/{schedule_id}/overrides/","href":"/api-reference/overrides/list-schedule-overrides"},{"title":"Override a schedule shift","deprecated":null,"version":null,"openapi":"https://api.shiftkeeper.io/openapi.json post /schedules/{schedule_id}/overrides/","href":"/api-reference/overrides/override-a-schedule-shift"},{"title":"Get a schedule override","deprecated":null,"version":null,"openapi":"https://api.shiftkeeper.io/openapi.json get /schedules/{schedule_id}/overrides/{override_id}","href":"/api-reference/overrides/get-a-schedule-override"},{"title":"Delete a schedule override","deprecated":null,"version":null,"openapi":"https://api.shiftkeeper.io/openapi.json delete /schedules/{schedule_id}/overrides/{override_id}","href":"/api-reference/overrides/delete-a-schedule-override"}]},{"group":"Coverage","pages":[{"title":"List coverage requests","deprecated":null,"version":null,"openapi":"https://api.shiftkeeper.io/openapi.json get /coverage_requests/","href":"/api-reference/coverage/list-coverage-requests"},{"title":"Get a coverage request","deprecated":null,"version":null,"openapi":"https://api.shiftkeeper.io/openapi.json get /coverage_requests/{coverage_request_id}","href":"/api-reference/coverage/get-a-coverage-request"},{"title":"Accept or decline a coverage request","deprecated":null,"version":null,"openapi":"https://api.shiftkeeper.io/openapi.json post /coverage_requests/events/","href":"/api-reference/coverage/accept-or-decline-a-coverage-request"},{"title":"List coverage requests for the authenticated user","deprecated":null,"version":null,"openapi":"https://api.shiftkeeper.io/openapi.json get /user/coverage_requests/","href":"/api-reference/coverage/list-coverage-requests-for-the-authenticated-user"},{"title":"Request coverage","deprecated":null,"version":null,"openapi":"https://api.shiftkeeper.io/openapi.json post /user/coverage_requests/","href":"/api-reference/coverage/request-coverage"},{"title":"Cancel a coverage request","deprecated":null,"version":null,"openapi":"https://api.shiftkeeper.io/openapi.json delete /user/coverage_requests/{coverage_request_id}","href":"/api-reference/coverage/cancel-a-coverage-request"}]},{"group":"Shifts","pages":[{"title":"List on-call shifts for the authenticated user","deprecated":null,"version":null,"openapi":"https://api.shiftkeeper.io/openapi.json get /user/shifts/","href":"/api-reference/shifts/list-on-call-shifts-for-the-authenticated-user"}]},{"group":"Users","pages":[{"title":"Get the authenticated user","deprecated":null,"version":null,"openapi":"https://api.shiftkeeper.io/openapi.json get /user/","href":"/api-reference/users/get-the-authenticated-user"},{"title":"List users","deprecated":null,"version":null,"openapi":"https://api.shiftkeeper.io/openapi.json get /users/","href":"/api-reference/users/list-users"},{"title":"Get a user","deprecated":null,"version":null,"openapi":"https://api.shiftkeeper.io/openapi.json get /users/{user_id}","href":"/api-reference/users/get-a-user"}]},{"group":"Teams","pages":[{"title":"List teams","deprecated":null,"version":null,"openapi":"https://api.shiftkeeper.io/openapi.json get /teams/","href":"/api-reference/teams/list-teams"},{"title":"Create a team","deprecated":null,"version":null,"openapi":"https://api.shiftkeeper.io/openapi.json post /teams/","href":"/api-reference/teams/create-a-team"},{"title":"Get a team","deprecated":null,"version":null,"openapi":"https://api.shiftkeeper.io/openapi.json get /teams/{team_id}","href":"/api-reference/teams/get-a-team"},{"title":"Delete a team","deprecated":null,"version":null,"openapi":"https://api.shiftkeeper.io/openapi.json delete /teams/{team_id}","href":"/api-reference/teams/delete-a-team"},{"title":"Update a team","deprecated":null,"version":null,"openapi":"https://api.shiftkeeper.io/openapi.json patch /teams/{team_id}","href":"/api-reference/teams/update-a-team"},{"title":"List team members","deprecated":null,"version":null,"openapi":"https://api.shiftkeeper.io/openapi.json get /teams/{team_id}/members/","href":"/api-reference/teams/list-team-members"},{"title":"Get team member","deprecated":null,"version":null,"openapi":"https://api.shiftkeeper.io/openapi.json get /teams/{team_id}/members/{user_id}","href":"/api-reference/teams/get-team-member"},{"title":"Add team member","deprecated":null,"version":null,"openapi":"https://api.shiftkeeper.io/openapi.json put /teams/{team_id}/members/{user_id}","href":"/api-reference/teams/add-team-member"},{"title":"Remove team member","deprecated":null,"version":null,"openapi":"https://api.shiftkeeper.io/openapi.json delete /teams/{team_id}/members/{user_id}","href":"/api-reference/teams/remove-team-member"}]}]}]},"title":"Errors - Shiftkeeper docs","buildId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","deploymentId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","dynamics":[],"chunks":[]}