Creates one job (the job object as the body) or several ({"jobs": [...]}).
A job whose externalId matches an existing job of the company is updated with the fields sent instead of creating a duplicate (upsert), and is set back to normal if it was archived. A job that was deleted in Hellotracks stays deleted: it is not changed, and the answer lists it with status: "deleted". The answer lists one job per job sent, in the same order.
Jobs without a location get the location of their place, else their address is geocoded in the background, so the response can still show location 0/0. Jobs that are assigned and dated drop the worker’s saved route for that day, workers get the updated jobs, and the company’s job webhooks fire. Unknown fields are refused with 400.
{"docsConfig":{"$schema":"https://mintlify.com/docs.json","theme":"mint","name":"Hellotracks developer docs","colors":{"primary":"#22C328","light":"#FFFFFF","dark":"#333333"},"favicon":"https://mintcdn.com/hellotracks/Ef0Eqx61i3dR12gk/favicon.svg?fit=max\u0026auto=format\u0026n=Ef0Eqx61i3dR12gk\u0026q=85\u0026s=4e8e85079ee3de8a26be874f20121f8a","logo":{"light":"https://mintcdn.com/hellotracks/Ef0Eqx61i3dR12gk/logo/light.svg?fit=max\u0026auto=format\u0026n=Ef0Eqx61i3dR12gk\u0026q=85\u0026s=3402609a99cee9b7f7698ffe4729c386","dark":"https://mintcdn.com/hellotracks/Ef0Eqx61i3dR12gk/logo/dark.svg?fit=max\u0026auto=format\u0026n=Ef0Eqx61i3dR12gk\u0026q=85\u0026s=cdd51138facbdd7cf7c929d073805a3a"},"api":{"mdx":{"server":"https://api.hellotracks.com/api","auth":{"method":"key","name":"API-Key"}}},"background":{"decoration":null,"color":{"light":null,"dark":"#090014"}},"navbar":{"links":[],"primary":{"type":"button","label":"Back to Website","href":"https://hellotracks.com"}},"footer":{"socials":{}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"hellotracks","hasAudioNarration":false,"actualSubdomain":"hellotracks","customDomains":["api-docs.hellotracks.com"],"gitSource":{"type":"github","owner":"hellotracks","repo":"api-docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae89276883d97e41aaefb51","collectionId":"a125913e-8abd-4296-9de2-499e8390fa79","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae89276883d97e41aaefb51"},"entitlements":{},"buildId":"6ae89a94eb73d12669c29c07","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"REST API","count":92},{"language":"default","tag":"JSON API","count":26},{"language":"default","tag":"Reports","count":19},{"language":"default","tag":"Forms","count":12},{"language":"default","tag":"Get Started","count":11},{"language":"default","tag":"Alerts","count":10},{"language":"default","tag":"Jobs","count":8},{"language":"default","tag":"ETA pages","count":7},{"language":"default","tag":"Job Management","count":6},{"language":"default","tag":"Maps","count":6}]},"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":"v1/reference/jobs/create-jobs","slug":"/v1/reference/jobs/create-jobs","pageMetadata":{"title":"Create jobs","openapi":"v1/openapi.json POST /jobs","description":"Creates one job (the job object as the body) or several (`{\"jobs\": [...]}`).\n\nA job whose externalId matches an existing job of the company is updated with the fields sent instead of creating a duplicate (upsert), and is set back to normal if it was archived. A job that was deleted in Hellotracks stays deleted: it is not changed, and the answer lists it with `status: \"deleted\"`. The answer lists one job per job sent, in the same order.\n\nJobs without a location get the location of their place, else their address is geocoded in the background, so the response can still show location 0/0. Jobs that are assigned and dated drop the worker's saved route for that day, workers get the updated jobs, and the company's job webhooks fire. Unknown fields are refused with 400.","href":"/v1/reference/jobs/create-jobs"},"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: [\"Creates one job (the job object as the body) or several (\", _jsx(_components.code, {\n children: \"{\\\"jobs\\\": [...]}\"\n }), \").\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"A job whose externalId matches an existing job of the company is updated with the fields sent instead of creating a duplicate (upsert), and is set back to normal if it was archived. A job that was deleted in Hellotracks stays deleted: it is not changed, and the answer lists it with \", _jsx(_components.code, {\n children: \"status: \\\"deleted\\\"\"\n }), \". The answer lists one job per job sent, in the same order.\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"Jobs without a location get the location of their place, else their address is geocoded in the background, so the response can still show location 0/0. Jobs that are assigned and dated drop the worker’s saved route for that day, workers get the updated jobs, and the company’s job webhooks fire. Unknown fields are refused with 400.\"\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 jobs","openapi":"v1/openapi.json POST /jobs","description":"Creates one job (the job object as the body) or several (`{\"jobs\": [...]}`).\n\nA job whose externalId matches an existing job of the company is updated with the fields sent instead of creating a duplicate (upsert), and is set back to normal if it was archived. A job that was deleted in Hellotracks stays deleted: it is not changed, and the answer lists it with `status: \"deleted\"`. The answer lists one job per job sent, in the same order.\n\nJobs without a location get the location of their place, else their address is geocoded in the background, so the response can still show location 0/0. Jobs that are assigned and dated drop the worker's saved route for that day, workers get the updated jobs, and the company's job webhooks fire. Unknown fields are refused with 400.","href":"/v1/reference/jobs/create-jobs"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"createJobs","tags":["Jobs"],"summary":"Create jobs","description":"Creates one job (the job object as the body) or several (`{\"jobs\": [...]}`).\n\nA job whose externalId matches an existing job of the company is updated with the fields sent instead of creating a duplicate (upsert), and is set back to normal if it was archived. A job that was deleted in Hellotracks stays deleted: it is not changed, and the answer lists it with `status: \"deleted\"`. The answer lists one job per job sent, in the same order.\n\nJobs without a location get the location of their place, else their address is geocoded in the background, so the response can still show location 0/0. Jobs that are assigned and dated drop the worker's saved route for that day, workers get the updated jobs, and the company's job webhooks fire. Unknown fields are refused with 400.","requestBody":"c523958a-9a88-493a-8074-d3a49100346c","responses":{"201":"c8c017ef-ba72-4a3b-bc00-aaa34df277e6","400":"29711191-069e-4ab8-8ff7-efcca8356c79","401":"3e28a243-b948-43da-a1ee-87ae1a1907ea","403":"3cb20546-8d80-40af-9c6c-0b6327f20b38","429":"01ca815b-1698-4efd-b52e-9516010609e5","500":"0faa15f4-d3c4-4a6e-a776-488281a805de"},"method":"post","type":"path","servers":["58bcea14-c37e-4bbc-bd59-e61bb9978210"],"security":["82c7e45e-4c5c-4eb3-8d32-71a74101e06c"],"path":"/jobs","baseUrlOptions":["https://api.hellotracks.com/v1"],"title":"Create jobs","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"oneOf":[{"type":"object","description":"Job fields for create and update. Unknown fields are refused with 400. On update only the fields sent change.","example":{"externalId":"ORDER-1001","title":"Install water heater","address":"500 Market St, San Francisco, CA 94105","assigneeId":"a1b2c3","date":"2026-11-02","timeWindow":{"start":"09:00","end":"12:00"},"onSiteDurationSeconds":3600,"priority":2,"notes":"Ring at the side door.","contact":{"name":"Sam Lee","phone":"+14155550102","email":"sam@example.com"},"customFields":{"PO":"4711"}},"properties":{"id":{"type":"string","description":"Job id. Only used by PATCH /jobs (single form); ignored elsewhere.","uniqueKey":"oneOf.0.id","typeLabel":"string"},"title":{"type":"string","uniqueKey":"oneOf.0.title","typeLabel":"string"},"externalId":{"type":"string","description":"Your own id. On POST /jobs an existing job of the company with the same externalId is updated instead of creating a new one.","uniqueKey":"oneOf.0.externalId","typeLabel":"string"},"address":{"type":"string","description":"Geocoded in the background when no location is given.","uniqueKey":"oneOf.0.address","typeLabel":"string"},"location":{"type":"object","additionalProperties":false,"properties":{"lat":{"oneOf":[{"type":"number","description":"Number or numeric string.","uniqueKey":"oneOf.0.location.lat.oneOf.0","typeLabel":"number"},{"type":"string","description":"Number or numeric string.","uniqueKey":"oneOf.0.location.lat.oneOf.1","typeLabel":"string"}],"uniqueKey":"oneOf.0.location.lat","typeLabel":"number | string"},"lng":{"oneOf":[{"type":"number","description":"Number or numeric string.","uniqueKey":"oneOf.0.location.lng.oneOf.0","typeLabel":"number"},{"type":"string","description":"Number or numeric string.","uniqueKey":"oneOf.0.location.lng.oneOf.1","typeLabel":"string"}],"uniqueKey":"oneOf.0.location.lng","typeLabel":"number | string"}},"uniqueKey":"oneOf.0.location","typeLabel":"object"},"placeId":{"type":"string","description":"Link the job to a place. A job without location takes the place's location, a job without title the place's name.","uniqueKey":"oneOf.0.placeId","typeLabel":"string"},"assigneeId":{"type":"string","description":"Member id to assign. An empty string unassigns. Do not send together with assigneeUsername.","uniqueKey":"oneOf.0.assigneeId","typeLabel":"string"},"assigneeUsername":{"type":"string","description":"Member username to assign. An unknown username is ignored. Do not send together with assigneeId.","uniqueKey":"oneOf.0.assigneeUsername","typeLabel":"string"},"date":{"oneOf":[{"type":"string","format":"date","description":"YYYY-MM-DD. An empty string removes the date; null leaves it as it is.","uniqueKey":"oneOf.0.date.oneOf.0","typeLabel":"string\u003cdate>"},{"type":"null","format":"date","description":"YYYY-MM-DD. An empty string removes the date; null leaves it as it is.","uniqueKey":"oneOf.0.date.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.date","typeLabel":"string\u003cdate> | null"},"timeWindow":{"oneOf":[{"type":"object","additionalProperties":false,"properties":{"start":{"type":"string","description":"HH:mm (00:00 to 24:00).","uniqueKey":"oneOf.0.timeWindow.oneOf.0.start","typeLabel":"string"},"end":{"type":"string","description":"HH:mm (00:00 to 24:00).","uniqueKey":"oneOf.0.timeWindow.oneOf.0.end","typeLabel":"string"}},"uniqueKey":"oneOf.0.timeWindow.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":false,"properties":{"start":{"type":"string","description":"HH:mm (00:00 to 24:00)."},"end":{"type":"string","description":"HH:mm (00:00 to 24:00)."}},"uniqueKey":"oneOf.0.timeWindow.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.timeWindow","typeLabel":"object | null"},"onSiteDurationSeconds":{"oneOf":[{"type":"integer","minimum":0,"description":"Non-negative integer (or digits as a string).","uniqueKey":"oneOf.0.onSiteDurationSeconds.oneOf.0","typeLabel":"integer"},{"type":"string","minimum":0,"description":"Non-negative integer (or digits as a string).","uniqueKey":"oneOf.0.onSiteDurationSeconds.oneOf.1","typeLabel":"string"},{"type":"null","minimum":0,"description":"Non-negative integer (or digits as a string).","uniqueKey":"oneOf.0.onSiteDurationSeconds.oneOf.2","typeLabel":"null"}],"uniqueKey":"oneOf.0.onSiteDurationSeconds","typeLabel":"integer | string | null"},"priority":{"oneOf":[{"type":"integer","minimum":0,"maximum":10,"description":"0 to 10 (or digits as a string).","uniqueKey":"oneOf.0.priority.oneOf.0","typeLabel":"integer"},{"type":"string","minimum":0,"maximum":10,"description":"0 to 10 (or digits as a string).","uniqueKey":"oneOf.0.priority.oneOf.1","typeLabel":"string"},{"type":"null","minimum":0,"maximum":10,"description":"0 to 10 (or digits as a string).","uniqueKey":"oneOf.0.priority.oneOf.2","typeLabel":"null"}],"uniqueKey":"oneOf.0.priority","typeLabel":"integer | string | null"},"notes":{"type":"string","uniqueKey":"oneOf.0.notes","typeLabel":"string"},"contact":{"oneOf":[{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","uniqueKey":"oneOf.0.contact.oneOf.0.name","typeLabel":"string"},"phone":{"type":"string","uniqueKey":"oneOf.0.contact.oneOf.0.phone","typeLabel":"string"},"email":{"type":"string","uniqueKey":"oneOf.0.contact.oneOf.0.email","typeLabel":"string"}},"uniqueKey":"oneOf.0.contact.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":false,"properties":{"name":{"type":"string"},"phone":{"type":"string"},"email":{"type":"string"}},"uniqueKey":"oneOf.0.contact.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.contact","typeLabel":"object | null"},"customFields":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"oneOf.0.customFields.additionalProperties","typeLabel":"string"},"description":"Replaces the job's whole set of custom fields: names left out are removed. Values are stored as text.","uniqueKey":"oneOf.0.customFields","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","required":["jobs"],"properties":{"jobs":{"type":"array","items":{"type":"object","additionalProperties":false,"description":"Job fields for create and update. Unknown fields are refused with 400. On update only the fields sent change.","properties":{"id":{"type":"string","description":"Job id. Only used by PATCH /jobs (single form); ignored elsewhere.","uniqueKey":"oneOf.1.jobs.items.[INDEX].id","typeLabel":"string"},"title":{"type":"string","uniqueKey":"oneOf.1.jobs.items.[INDEX].title","typeLabel":"string"},"externalId":{"type":"string","description":"Your own id. On POST /jobs an existing job of the company with the same externalId is updated instead of creating a new one.","uniqueKey":"oneOf.1.jobs.items.[INDEX].externalId","typeLabel":"string"},"address":{"type":"string","description":"Geocoded in the background when no location is given.","uniqueKey":"oneOf.1.jobs.items.[INDEX].address","typeLabel":"string"},"location":{"type":"object","additionalProperties":false,"properties":{"lat":{"oneOf":[{"type":"number","description":"Number or numeric string.","uniqueKey":"oneOf.1.jobs.items.[INDEX].location.lat.oneOf.0","typeLabel":"number"},{"type":"string","description":"Number or numeric string.","uniqueKey":"oneOf.1.jobs.items.[INDEX].location.lat.oneOf.1","typeLabel":"string"}],"uniqueKey":"oneOf.1.jobs.items.[INDEX].location.lat","typeLabel":"number | string"},"lng":{"oneOf":[{"type":"number","description":"Number or numeric string.","uniqueKey":"oneOf.1.jobs.items.[INDEX].location.lng.oneOf.0","typeLabel":"number"},{"type":"string","description":"Number or numeric string.","uniqueKey":"oneOf.1.jobs.items.[INDEX].location.lng.oneOf.1","typeLabel":"string"}],"uniqueKey":"oneOf.1.jobs.items.[INDEX].location.lng","typeLabel":"number | string"}},"uniqueKey":"oneOf.1.jobs.items.[INDEX].location","typeLabel":"object"},"placeId":{"type":"string","description":"Link the job to a place. A job without location takes the place's location, a job without title the place's name.","uniqueKey":"oneOf.1.jobs.items.[INDEX].placeId","typeLabel":"string"},"assigneeId":{"type":"string","description":"Member id to assign. An empty string unassigns. Do not send together with assigneeUsername.","uniqueKey":"oneOf.1.jobs.items.[INDEX].assigneeId","typeLabel":"string"},"assigneeUsername":{"type":"string","description":"Member username to assign. An unknown username is ignored. Do not send together with assigneeId.","uniqueKey":"oneOf.1.jobs.items.[INDEX].assigneeUsername","typeLabel":"string"},"date":{"oneOf":[{"type":"string","format":"date","description":"YYYY-MM-DD. An empty string removes the date; null leaves it as it is.","uniqueKey":"oneOf.1.jobs.items.[INDEX].date.oneOf.0","typeLabel":"string\u003cdate>"},{"type":"null","format":"date","description":"YYYY-MM-DD. An empty string removes the date; null leaves it as it is.","uniqueKey":"oneOf.1.jobs.items.[INDEX].date.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.jobs.items.[INDEX].date","typeLabel":"string\u003cdate> | null"},"timeWindow":{"oneOf":[{"type":"object","additionalProperties":false,"properties":{"start":{"type":"string","description":"HH:mm (00:00 to 24:00).","uniqueKey":"oneOf.1.jobs.items.[INDEX].timeWindow.oneOf.0.start","typeLabel":"string"},"end":{"type":"string","description":"HH:mm (00:00 to 24:00).","uniqueKey":"oneOf.1.jobs.items.[INDEX].timeWindow.oneOf.0.end","typeLabel":"string"}},"uniqueKey":"oneOf.1.jobs.items.[INDEX].timeWindow.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":false,"properties":{"start":{"type":"string","description":"HH:mm (00:00 to 24:00)."},"end":{"type":"string","description":"HH:mm (00:00 to 24:00)."}},"uniqueKey":"oneOf.1.jobs.items.[INDEX].timeWindow.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.jobs.items.[INDEX].timeWindow","typeLabel":"object | null"},"onSiteDurationSeconds":{"oneOf":[{"type":"integer","minimum":0,"description":"Non-negative integer (or digits as a string).","uniqueKey":"oneOf.1.jobs.items.[INDEX].onSiteDurationSeconds.oneOf.0","typeLabel":"integer"},{"type":"string","minimum":0,"description":"Non-negative integer (or digits as a string).","uniqueKey":"oneOf.1.jobs.items.[INDEX].onSiteDurationSeconds.oneOf.1","typeLabel":"string"},{"type":"null","minimum":0,"description":"Non-negative integer (or digits as a string).","uniqueKey":"oneOf.1.jobs.items.[INDEX].onSiteDurationSeconds.oneOf.2","typeLabel":"null"}],"uniqueKey":"oneOf.1.jobs.items.[INDEX].onSiteDurationSeconds","typeLabel":"integer | string | null"},"priority":{"oneOf":[{"type":"integer","minimum":0,"maximum":10,"description":"0 to 10 (or digits as a string).","uniqueKey":"oneOf.1.jobs.items.[INDEX].priority.oneOf.0","typeLabel":"integer"},{"type":"string","minimum":0,"maximum":10,"description":"0 to 10 (or digits as a string).","uniqueKey":"oneOf.1.jobs.items.[INDEX].priority.oneOf.1","typeLabel":"string"},{"type":"null","minimum":0,"maximum":10,"description":"0 to 10 (or digits as a string).","uniqueKey":"oneOf.1.jobs.items.[INDEX].priority.oneOf.2","typeLabel":"null"}],"uniqueKey":"oneOf.1.jobs.items.[INDEX].priority","typeLabel":"integer | string | null"},"notes":{"type":"string","uniqueKey":"oneOf.1.jobs.items.[INDEX].notes","typeLabel":"string"},"contact":{"oneOf":[{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","uniqueKey":"oneOf.1.jobs.items.[INDEX].contact.oneOf.0.name","typeLabel":"string"},"phone":{"type":"string","uniqueKey":"oneOf.1.jobs.items.[INDEX].contact.oneOf.0.phone","typeLabel":"string"},"email":{"type":"string","uniqueKey":"oneOf.1.jobs.items.[INDEX].contact.oneOf.0.email","typeLabel":"string"}},"uniqueKey":"oneOf.1.jobs.items.[INDEX].contact.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":false,"properties":{"name":{"type":"string"},"phone":{"type":"string"},"email":{"type":"string"}},"uniqueKey":"oneOf.1.jobs.items.[INDEX].contact.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.jobs.items.[INDEX].contact","typeLabel":"object | null"},"customFields":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"oneOf.1.jobs.items.[INDEX].customFields.additionalProperties","typeLabel":"string"},"description":"Replaces the job's whole set of custom fields: names left out are removed. Values are stored as text.","uniqueKey":"oneOf.1.jobs.items.[INDEX].customFields","typeLabel":"object"}},"example":{"externalId":"ORDER-1001","title":"Install water heater","address":"500 Market St, San Francisco, CA 94105","assigneeId":"a1b2c3","date":"2026-11-02","timeWindow":{"start":"09:00","end":"12:00"},"onSiteDurationSeconds":3600,"priority":2,"notes":"Ring at the side door.","contact":{"name":"Sam Lee","phone":"+14155550102","email":"sam@example.com"},"customFields":{"PO":"4711"}},"uniqueKey":"oneOf.1.jobs.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"oneOf.1.jobs","typeLabel":"object[]"}},"additionalProperties":false,"uniqueKey":"oneOf.1","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"example":{"jobs":[{"externalId":"ORDER-1001","title":"Install water heater","address":"500 Market St, San Francisco, CA 94105","assigneeId":"a1b2c3","date":"2026-11-02","timeWindow":{"start":"09:00","end":"12:00"},"onSiteDurationSeconds":3600,"priority":2,"notes":"Ring at the side door.","contact":{"name":"Sam Lee","phone":"+14155550102","email":"sam@example.com"},"customFields":{"PO":"4711"}}]},"examples":{"Example":{"title":"Example","value":{"jobs":[{"externalId":"ORDER-1001","title":"Install water heater","address":"500 Market St, San Francisco, CA 94105","assigneeId":"a1b2c3","date":"2026-11-02","timeWindow":{"start":"09:00","end":"12:00"},"onSiteDurationSeconds":3600,"priority":2,"notes":"Ring at the side door.","contact":{"name":"Sam Lee","phone":"+14155550102","email":"sam@example.com"},"customFields":{"PO":"4711"}}]}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"c8c017ef-ba72-4a3b-bc00-aaa34df277e6":{"description":"Created (or updated by externalId).","content":{"application/json":{"schema":{"type":"object","required":["data","error","meta"],"properties":{"data":{"type":"object","required":["items"],"properties":{"items":{"type":"array","items":{"type":"object","required":["id","progress","timeWindow","location","assignee","contact","customFields","linkedForms"],"properties":{"id":{"type":"string","description":"Job id (24 hex characters).","isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].id","typeLabel":"string"},"progress":{"type":"string","enum":["unassigned","scheduled","accepted","in_progress","success","failed"],"description":"Derived from the job's timestamps: success when completed, failed when marked failed, in_progress when accepted and checked in, accepted when accepted, unassigned when nobody is assigned, otherwise scheduled (assigned, not yet accepted).","isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].progress","typeLabel":"enum\u003cstring>"},"timeWindow":{"type":"object","description":"Time window on the job's date, local time of the company, as HH:mm strings (24:00 allowed as the end).","properties":{"start":{"type":"string","pattern":"^\\d{2}:\\d{2}$","description":"HH:mm. 00:00 when not set.","example":"09:00","uniqueKey":"data.\\items.items.[INDEX].timeWindow.start","typeLabel":"string"},"end":{"type":"string","pattern":"^\\d{2}:\\d{2}$","description":"HH:mm. 24:00 when not set.","example":"12:00","uniqueKey":"data.\\items.items.[INDEX].timeWindow.end","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].timeWindow","typeLabel":"object"},"location":{"type":"object","description":"Destination coordinates. 0/0 when the job has no location yet (for example while its address is still being geocoded).","properties":{"lat":{"type":"number","format":"double","example":37.7897,"uniqueKey":"data.\\items.items.[INDEX].location.lat","typeLabel":"number\u003cdouble>"},"lng":{"type":"number","format":"double","example":-122.4,"uniqueKey":"data.\\items.items.[INDEX].location.lng","typeLabel":"number\u003cdouble>"}},"isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].location","typeLabel":"object"},"assignee":{"type":"object","description":"The assigned member. Empty object when the job is unassigned.","properties":{"id":{"type":"string","description":"Member id.","uniqueKey":"data.\\items.items.[INDEX].assignee.id","typeLabel":"string"},"username":{"type":"string","uniqueKey":"data.\\items.items.[INDEX].assignee.username","typeLabel":"string"},"name":{"type":"string","uniqueKey":"data.\\items.items.[INDEX].assignee.name","typeLabel":"string"},"email":{"type":"string","uniqueKey":"data.\\items.items.[INDEX].assignee.email","typeLabel":"string"},"phone":{"type":"string","uniqueKey":"data.\\items.items.[INDEX].assignee.phone","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].assignee","typeLabel":"object"},"contact":{"type":"object","description":"On-site contact. Fields that are not set are left out.","properties":{"name":{"type":"string","uniqueKey":"data.\\items.items.[INDEX].contact.name","typeLabel":"string"},"phone":{"type":"string","uniqueKey":"data.\\items.items.[INDEX].contact.phone","typeLabel":"string"},"email":{"type":"string","uniqueKey":"data.\\items.items.[INDEX].contact.email","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].contact","typeLabel":"object"},"customFields":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"data.\\items.items.[INDEX].customFields.additionalProperties","typeLabel":"string"},"description":"Custom field names and values.","isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].customFields","typeLabel":"object"},"linkedForms":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Form template id.","uniqueKey":"data.\\items.items.[INDEX].linkedForms.items.[INDEX].id","typeLabel":"string"},"title":{"type":"string","uniqueKey":"data.\\items.items.[INDEX].linkedForms.items.[INDEX].title","typeLabel":"string"}},"uniqueKey":"data.\\items.items.[INDEX].linkedForms.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].linkedForms","typeLabel":"object[]"},"externalId":{"type":"string","description":"Your own id for the job; left out when not set.","uniqueKey":"data.\\items.items.[INDEX].externalId","typeLabel":"string"},"title":{"type":"string","uniqueKey":"data.\\items.items.[INDEX].title","typeLabel":"string"},"address":{"type":"string","uniqueKey":"data.\\items.items.[INDEX].address","typeLabel":"string"},"notes":{"type":"string","description":"Notes from the dispatcher to the worker.","uniqueKey":"data.\\items.items.[INDEX].notes","typeLabel":"string"},"issueText":{"type":"string","description":"Text the worker entered on the job.","uniqueKey":"data.\\items.items.[INDEX].issueText","typeLabel":"string"},"createdAt":{"type":"integer","format":"int64","description":"ms timestamp.","uniqueKey":"data.\\items.items.[INDEX].createdAt","typeLabel":"integer\u003cint64>"},"updatedAt":{"type":"integer","format":"int64","description":"ms timestamp: the latest of saved, created, assigned, accepted, scheduled, check-in, check-out, failed and completed.","uniqueKey":"data.\\items.items.[INDEX].updatedAt","typeLabel":"integer\u003cint64>"},"scheduledAt":{"type":"integer","format":"int64","description":"ms timestamp, 0 when not set.","uniqueKey":"data.\\items.items.[INDEX].scheduledAt","typeLabel":"integer\u003cint64>"},"assignedAt":{"type":"integer","format":"int64","description":"ms timestamp, 0 when not set.","uniqueKey":"data.\\items.items.[INDEX].assignedAt","typeLabel":"integer\u003cint64>"},"acceptedAt":{"type":"integer","format":"int64","description":"ms timestamp, 0 when not accepted.","uniqueKey":"data.\\items.items.[INDEX].acceptedAt","typeLabel":"integer\u003cint64>"},"completedAt":{"type":"integer","format":"int64","description":"ms timestamp of success, 0 when not completed.","uniqueKey":"data.\\items.items.[INDEX].completedAt","typeLabel":"integer\u003cint64>"},"failedAt":{"type":"integer","format":"int64","description":"ms timestamp of failure, 0 when not failed.","uniqueKey":"data.\\items.items.[INDEX].failedAt","typeLabel":"integer\u003cint64>"},"status":{"type":"string","enum":["archived","deleted"],"description":"Only on archived or deleted jobs; normal jobs have no status. A deleted job only shows up in the answer to a create whose externalId matches it.","uniqueKey":"data.\\items.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"date":{"oneOf":[{"type":"string","format":"date","description":"YYYY-MM-DD, null when the job has no date.","uniqueKey":"data.\\items.items.[INDEX].date.oneOf.0","typeLabel":"string\u003cdate>"},{"type":"null","format":"date","description":"YYYY-MM-DD, null when the job has no date.","uniqueKey":"data.\\items.items.[INDEX].date.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.\\items.items.[INDEX].date","typeLabel":"string\u003cdate> | null"},"priority":{"type":"integer","minimum":0,"maximum":10,"uniqueKey":"data.\\items.items.[INDEX].priority","typeLabel":"integer"},"onSiteDurationSeconds":{"type":"integer","minimum":0,"uniqueKey":"data.\\items.items.[INDEX].onSiteDurationSeconds","typeLabel":"integer"},"placeId":{"type":"string","description":"The place the job belongs to; left out when none.","uniqueKey":"data.\\items.items.[INDEX].placeId","typeLabel":"string"},"etaSessionId":{"type":"string","description":"Id of the job's active ETA session (not revoked, not expired); left out when there is none.","uniqueKey":"data.\\items.items.[INDEX].etaSessionId","typeLabel":"string"},"etaUrl":{"type":"string","format":"uri","description":"Public eta.page link of that session; left out when there is none.","uniqueKey":"data.\\items.items.[INDEX].etaUrl","typeLabel":"string\u003curi>"}},"example":{"id":"650000000000000000000001","externalId":"ORDER-1001","title":"Install water heater","address":"500 Market St, San Francisco, CA 94105","notes":"Ring at the side door.","issueText":"","createdAt":1793520000000,"updatedAt":1793523600000,"scheduledAt":0,"assignedAt":1793520000000,"acceptedAt":0,"completedAt":0,"failedAt":0,"progress":"scheduled","date":"2026-11-02","priority":2,"timeWindow":{"start":"09:00","end":"12:00"},"onSiteDurationSeconds":3600,"location":{"lat":37.7897,"lng":-122.4},"assignee":{"id":"a1b2c3","username":"alex@example.com","name":"Alex Rivera","email":"alex@example.com","phone":"+14155550101"},"placeId":"p1q2r3","contact":{"name":"Sam Lee","phone":"+14155550102","email":"sam@example.com"},"customFields":{"PO":"4711"},"linkedForms":[{"id":"f1a2b3","title":"Install checklist"}],"etaSessionId":"eta_k7m2p9x4q8r3","etaUrl":"https://eta.page/K7M2-P9X4-Q8R3"},"uniqueKey":"data.\\items.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.\\items","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"data","typeLabel":"object"},"error":{"type":"null","isRequired":true,"uniqueKey":"error","typeLabel":"null"},"meta":{"type":"object","properties":{"path":{"type":"string","description":"The request path, without /v1.","example":"/jobs","uniqueKey":"meta.path","typeLabel":"string"},"method":{"type":"string","example":"GET","uniqueKey":"meta.method","typeLabel":"string"}},"isRequired":true,"uniqueKey":"meta","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"data":{"items":[{"id":"650000000000000000000001","externalId":"ORDER-1001","title":"Install water heater","address":"500 Market St, San Francisco, CA 94105","notes":"Ring at the side door.","issueText":"","createdAt":1793520000000,"updatedAt":1793523600000,"scheduledAt":0,"assignedAt":1793520000000,"acceptedAt":0,"completedAt":0,"failedAt":0,"progress":"scheduled","date":"2026-11-02","priority":2,"timeWindow":{"start":"09:00","end":"12:00"},"onSiteDurationSeconds":3600,"location":{"lat":37.7897,"lng":-122.4},"assignee":{"id":"a1b2c3","username":"alex@example.com","name":"Alex Rivera","email":"alex@example.com","phone":"+14155550101"},"placeId":"p1q2r3","contact":{"name":"Sam Lee","phone":"+14155550102","email":"sam@example.com"},"customFields":{"PO":"4711"},"linkedForms":[{"id":"f1a2b3","title":"Install checklist"}],"etaSessionId":"eta_k7m2p9x4q8r3","etaUrl":"https://eta.page/K7M2-P9X4-Q8R3"}]},"error":null,"meta":{"path":"/v1/jobs","method":"POST"}},"examples":{"Example":{"title":"Example","value":{"data":{"items":[{"id":"650000000000000000000001","externalId":"ORDER-1001","title":"Install water heater","address":"500 Market St, San Francisco, CA 94105","notes":"Ring at the side door.","issueText":"","createdAt":1793520000000,"updatedAt":1793523600000,"scheduledAt":0,"assignedAt":1793520000000,"acceptedAt":0,"completedAt":0,"failedAt":0,"progress":"scheduled","date":"2026-11-02","priority":2,"timeWindow":{"start":"09:00","end":"12:00"},"onSiteDurationSeconds":3600,"location":{"lat":37.7897,"lng":-122.4},"assignee":{"id":"a1b2c3","username":"alex@example.com","name":"Alex Rivera","email":"alex@example.com","phone":"+14155550101"},"placeId":"p1q2r3","contact":{"name":"Sam Lee","phone":"+14155550102","email":"sam@example.com"},"customFields":{"PO":"4711"},"linkedForms":[{"id":"f1a2b3","title":"Install checklist"}],"etaSessionId":"eta_k7m2p9x4q8r3","etaUrl":"https://eta.page/K7M2-P9X4-Q8R3"}]},"error":null,"meta":{"path":"/v1/jobs","method":"POST"}}}},"exampleType":"examples"}},"exampleType":"examples"},"29711191-069e-4ab8-8ff7-efcca8356c79":{"description":"The request is invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"null","uniqueKey":"data","typeLabel":"null"},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable error code for programs.","enum":["invalid_request","invalid_format","invalid_data","invalid_api_key","unknown_user","authentication_failed","forbidden","not_found","already_exists","throttled","not_ready","clock_invalid","force_logout","internal_error","unknown_error"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Why it failed, for people.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"uniqueKey":"error","typeLabel":"object"},"meta":{"type":"object","properties":{"path":{"type":"string","description":"The request path, without /v1.","example":"/jobs","uniqueKey":"meta.path","typeLabel":"string"},"method":{"type":"string","example":"GET","uniqueKey":"meta.method","typeLabel":"string"}},"uniqueKey":"meta","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"data":null,"error":{"code":"invalid_request","message":"date must be YYYY-MM-DD"},"meta":{"path":"/jobs","method":"GET"}},"examples":{"Example":{"title":"Example","value":{"data":null,"error":{"code":"invalid_request","message":"date must be YYYY-MM-DD"},"meta":{"path":"/jobs","method":"GET"}}}},"exampleType":"examples"}},"exampleType":"examples"},"3e28a243-b948-43da-a1ee-87ae1a1907ea":{"description":"The API key is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"null","uniqueKey":"data","typeLabel":"null"},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable error code for programs.","enum":["invalid_request","invalid_format","invalid_data","invalid_api_key","unknown_user","authentication_failed","forbidden","not_found","already_exists","throttled","not_ready","clock_invalid","force_logout","internal_error","unknown_error"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Why it failed, for people.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"uniqueKey":"error","typeLabel":"object"},"meta":{"type":"object","properties":{"path":{"type":"string","description":"The request path, without /v1.","example":"/jobs","uniqueKey":"meta.path","typeLabel":"string"},"method":{"type":"string","example":"GET","uniqueKey":"meta.method","typeLabel":"string"}},"uniqueKey":"meta","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"data":null,"error":{"code":"invalid_api_key","message":"Invalid Hellotracks API key."},"meta":{"path":"/jobs","method":"GET"}},"examples":{"Example":{"title":"Example","value":{"data":null,"error":{"code":"invalid_api_key","message":"Invalid Hellotracks API key."},"meta":{"path":"/jobs","method":"GET"}}}},"exampleType":"examples"}},"exampleType":"examples"},"3cb20546-8d80-40af-9c6c-0b6327f20b38":{"description":"The key may not do this.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"null","uniqueKey":"data","typeLabel":"null"},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable error code for programs.","enum":["invalid_request","invalid_format","invalid_data","invalid_api_key","unknown_user","authentication_failed","forbidden","not_found","already_exists","throttled","not_ready","clock_invalid","force_logout","internal_error","unknown_error"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Why it failed, for people.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"uniqueKey":"error","typeLabel":"object"},"meta":{"type":"object","properties":{"path":{"type":"string","description":"The request path, without /v1.","example":"/jobs","uniqueKey":"meta.path","typeLabel":"string"},"method":{"type":"string","example":"GET","uniqueKey":"meta.method","typeLabel":"string"}},"uniqueKey":"meta","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"data":null,"error":{"code":"forbidden","message":"No permission."},"meta":{"path":"/jobs","method":"GET"}},"examples":{"Example":{"title":"Example","value":{"data":null,"error":{"code":"forbidden","message":"No permission."},"meta":{"path":"/jobs","method":"GET"}}}},"exampleType":"examples"}},"exampleType":"examples"},"01ca815b-1698-4efd-b52e-9516010609e5":{"description":"Too many requests; slow down.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"null","uniqueKey":"data","typeLabel":"null"},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable error code for programs.","enum":["invalid_request","invalid_format","invalid_data","invalid_api_key","unknown_user","authentication_failed","forbidden","not_found","already_exists","throttled","not_ready","clock_invalid","force_logout","internal_error","unknown_error"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Why it failed, for people.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"uniqueKey":"error","typeLabel":"object"},"meta":{"type":"object","properties":{"path":{"type":"string","description":"The request path, without /v1.","example":"/jobs","uniqueKey":"meta.path","typeLabel":"string"},"method":{"type":"string","example":"GET","uniqueKey":"meta.method","typeLabel":"string"}},"uniqueKey":"meta","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"data":null,"error":{"code":"throttled","message":"Too many requests."},"meta":{"path":"/jobs","method":"GET"}},"examples":{"Example":{"title":"Example","value":{"data":null,"error":{"code":"throttled","message":"Too many requests."},"meta":{"path":"/jobs","method":"GET"}}}},"exampleType":"examples"}},"exampleType":"examples"},"0faa15f4-d3c4-4a6e-a776-488281a805de":{"description":"Hellotracks failed; retry later.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"null","uniqueKey":"data","typeLabel":"null"},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable error code for programs.","enum":["invalid_request","invalid_format","invalid_data","invalid_api_key","unknown_user","authentication_failed","forbidden","not_found","already_exists","throttled","not_ready","clock_invalid","force_logout","internal_error","unknown_error"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Why it failed, for people.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"uniqueKey":"error","typeLabel":"object"},"meta":{"type":"object","properties":{"path":{"type":"string","description":"The request path, without /v1.","example":"/jobs","uniqueKey":"meta.path","typeLabel":"string"},"method":{"type":"string","example":"GET","uniqueKey":"meta.method","typeLabel":"string"}},"uniqueKey":"meta","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"data":null,"error":{"code":"internal_error","message":"Hellotracks API is temporarily unavailable."},"meta":{"path":"/jobs","method":"GET"}},"examples":{"Example":{"title":"Example","value":{"data":null,"error":{"code":"internal_error","message":"Hellotracks API is temporarily unavailable."},"meta":{"path":"/jobs","method":"GET"}}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"82c7e45e-4c5c-4eb3-8d32-71a74101e06c":{"ApiKey":{"type":"apiKey","in":"header","name":"API-Key","description":"Your API key, from More → API \u0026 Integrations in the dashboard, or from ht signup / ht auth login.","scopes":[],"schemeName":"ApiKey"}}},"servers":{"58bcea14-c37e-4bbc-bd59-e61bb9978210":{"url":"https://api.hellotracks.com/v1"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"API-Key","description":"Your API key, from More → API \u0026 Integrations in the dashboard, or from ht signup / ht auth login.","scopes":[],"schemeName":"ApiKey"},"schema":{"title":"API-Key","type":"string","description":"Your API key, from More → API \u0026 Integrations in the dashboard, or from ht signup / ht auth login.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKey","name":"API-Key"}],"title":"ApiKey"}]},"originalFileLocation":"v1/openapi.json"},"subdomain":"hellotracks","siteName":"Hellotracks developer docs","title":"Create jobs - Hellotracks developer docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-02T13:39:17.894Z","originalFileLocation":"v1/reference/jobs/create-jobs.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=\"Creates one job (the job object as the body) or several ({\u0026quot;jobs\u0026quot;: [...]}). A job whose externalId matches an existing job of the company is updated with the fields sent instead of creating a duplicate (upsert), and is set back to normal if it was archived. A job that was deleted in Hellotracks stays deleted: it is not changed, and the answer lists it with status: \u0026quot;deleted\u0026quot;. The answer lists one job per job sent, in the same order. Jobs without a location get the location of their place, else their address is geocoded in the background, so the response can still show location 0/0. Jobs that are assigned and dated drop the worker\u0026#x27;s saved route for that day, workers get the updated jobs, and the company\u0026#x27;s job webhooks fire. Unknown fields are refused with 400.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Hellotracks developer 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/hellotracks/Mukku1hgsB6vFQWq/_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/hellotracks/Mukku1hgsB6vFQWq/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/hellotracks/Mukku1hgsB6vFQWq/_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/hellotracks/Mukku1hgsB6vFQWq/_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/hellotracks/Mukku1hgsB6vFQWq/_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/hellotracks/Mukku1hgsB6vFQWq/_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/hellotracks/Mukku1hgsB6vFQWq/_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/hellotracks/Mukku1hgsB6vFQWq/_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/hellotracks/Mukku1hgsB6vFQWq/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create jobs - Hellotracks developer docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Creates one job (the job object as the body) or several ({\u0026quot;jobs\u0026quot;: [...]}). A job whose externalId matches an existing job of the company is updated with the fields sent instead of creating a duplicate (upsert), and is set back to normal if it was archived. A job that was deleted in Hellotracks stays deleted: it is not changed, and the answer lists it with status: \u0026quot;deleted\u0026quot;. The answer lists one job per job sent, in the same order. Jobs without a location get the location of their place, else their address is geocoded in the background, so the response can still show location 0/0. Jobs that are assigned and dated drop the worker\u0026#x27;s saved route for that day, workers get the updated jobs, and the company\u0026#x27;s job webhooks fire. Unknown fields are refused with 400.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Hellotracks developer docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://api-docs.hellotracks.com/v1/reference/jobs/create-jobs\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://hellotracks.mintlify.app/_mintlify/api/og/v2?division=Jobs\u0026amp;title=Create+jobs\u0026amp;description=Creates+one+job+%28the+job+object+as+the+body%29+or+several+%28%60%7B%22jobs%22%3A+%5B...%5D%7D%60%29.%0A%0AA+job+whose+externalId+matches+an+existing+job+of+the+company+is+updated+with+the+\u0026amp;theme=8e96cdb371124c7fdc0c80f1\u0026amp;signature=e4c592dbf0033c1a8ebb5d91e625b3e2c21ec917e605aaef63a9fd905721ed09\">\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 jobs - Hellotracks developer docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Creates one job (the job object as the body) or several ({\u0026quot;jobs\u0026quot;: [...]}). A job whose externalId matches an existing job of the company is updated with the fields sent instead of creating a duplicate (upsert), and is set back to normal if it was archived. A job that was deleted in Hellotracks stays deleted: it is not changed, and the answer lists it with status: \u0026quot;deleted\u0026quot;. The answer lists one job per job sent, in the same order. Jobs without a location get the location of their place, else their address is geocoded in the background, so the response can still show location 0/0. Jobs that are assigned and dated drop the worker\u0026#x27;s saved route for that day, workers get the updated jobs, and the company\u0026#x27;s job webhooks fire. Unknown fields are refused with 400.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://hellotracks.mintlify.app/_mintlify/api/og/v2?division=Jobs\u0026amp;title=Create+jobs\u0026amp;description=Creates+one+job+%28the+job+object+as+the+body%29+or+several+%28%60%7B%22jobs%22%3A+%5B...%5D%7D%60%29.%0A%0AA+job+whose+externalId+matches+an+existing+job+of+the+company+is+updated+with+the+\u0026amp;theme=8e96cdb371124c7fdc0c80f1\u0026amp;signature=e4c592dbf0033c1a8ebb5d91e625b3e2c21ec917e605aaef63a9fd905721ed09\">\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/hellotracks/Mukku1hgsB6vFQWq/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Hellotracks developer docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#22C328\">\u003clink data-mint-head rel=\"canonical\" href=\"https://api-docs.hellotracks.com/v1/reference/jobs/create-jobs\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/v1/reference/jobs/create-jobs.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://api-docs.hellotracks.com/#organization\",\"name\":\"Hellotracks developer docs\",\"url\":\"https://api-docs.hellotracks.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/hellotracks/Ef0Eqx61i3dR12gk/logo/light.svg?fit=max\u0026auto=format\u0026n=Ef0Eqx61i3dR12gk\u0026q=85\u0026s=3402609a99cee9b7f7698ffe4729c386\"}},{\"@type\":\"WebSite\",\"@id\":\"https://api-docs.hellotracks.com#website\",\"name\":\"Hellotracks developer docs\",\"url\":\"https://api-docs.hellotracks.com\",\"publisher\":{\"@id\":\"https://api-docs.hellotracks.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://api-docs.hellotracks.com/v1/reference/jobs/create-jobs#webpage\",\"url\":\"https://api-docs.hellotracks.com/v1/reference/jobs/create-jobs\",\"name\":\"Create jobs\",\"description\":\"Creates one job (the job object as the body) or several ({\\\"jobs\\\": [...]}). A job whose externalId matches an existing job of the company is updated with the fields sent instead of creating a duplicate (upsert), and is set back to normal if it was archived. A job that was deleted in Hellotracks stays deleted: it is not changed, and the answer lists it with status: \\\"deleted\\\". The answer lists one job per job sent, in the same order. Jobs without a location get the location of their place, else their address is geocoded in the background, so the response can still show location 0/0. Jobs that are assigned and dated drop the worker's saved route for that day, workers get the updated jobs, and the company's job webhooks fire. Unknown fields are refused with 400.\",\"dateModified\":\"2026-11-02T13:39:17.894Z\",\"isPartOf\":{\"@id\":\"https://api-docs.hellotracks.com#website\"},\"breadcrumb\":{\"@id\":\"https://api-docs.hellotracks.com/v1/reference/jobs/create-jobs#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://api-docs.hellotracks.com/v1/reference/jobs/create-jobs#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Jobs\",\"item\":\"https://api-docs.hellotracks.com/v1/reference/jobs/list-jobs\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create jobs\",\"item\":\"https://api-docs.hellotracks.com/v1/reference/jobs/create-jobs\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://api-docs.hellotracks.com/v1/reference/jobs/create-jobs#apireference\",\"headline\":\"Create jobs\",\"name\":\"Create jobs\",\"description\":\"Creates one job (the job object as the body) or several ({\\\"jobs\\\": [...]}). A job whose externalId matches an existing job of the company is updated with the fields sent instead of creating a duplicate (upsert), and is set back to normal if it was archived. A job that was deleted in Hellotracks stays deleted: it is not changed, and the answer lists it with status: \\\"deleted\\\". The answer lists one job per job sent, in the same order. Jobs without a location get the location of their place, else their address is geocoded in the background, so the response can still show location 0/0. Jobs that are assigned and dated drop the worker's saved route for that day, workers get the updated jobs, and the company's job webhooks fire. Unknown fields are refused with 400.\",\"url\":\"https://api-docs.hellotracks.com/v1/reference/jobs/create-jobs\",\"mainEntityOfPage\":{\"@id\":\"https://api-docs.hellotracks.com/v1/reference/jobs/create-jobs#webpage\"},\"dateModified\":\"2026-11-02T13:39:17.894Z\",\"publisher\":{\"@id\":\"https://api-docs.hellotracks.com/#organization\"},\"isPartOf\":{\"@id\":\"https://api-docs.hellotracks.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Hellotracks developer docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Hellotracks developer docs","nav":{"global":null,"tabs":[{"tab":"Overview","pages":[{"title":"Overview","href":"/introduction"}]},{"tab":"JSON API","pages":[{"title":"JSON API","href":"/api-reference/overview"}]},{"tab":"REST API","groups":[{"group":"Get Started","pages":[{"title":"REST API overview","href":"/v1/overview"},{"title":"No-code connectors","href":"/v1/no-code-connectors"}]},{"group":"Sign-up and sign-in","pages":[{"title":"Start a sign-up","openapi":"v1/openapi.json POST /signup","href":"/v1/reference/sign-up-and-sign-in/create-signup"},{"title":"Finish a sign-up","openapi":"v1/openapi.json POST /signup/verify","href":"/v1/reference/sign-up-and-sign-in/verify-signup"},{"title":"Email a sign-in code","openapi":"v1/openapi.json POST /auth/email-code","href":"/v1/reference/sign-up-and-sign-in/request-email-code"},{"title":"Sign in with the code","openapi":"v1/openapi.json POST /auth/email-code/verify","href":"/v1/reference/sign-up-and-sign-in/verify-email-code"},{"title":"Show the key's account","openapi":"v1/openapi.json GET /auth/whoami","href":"/v1/reference/sign-up-and-sign-in/get-who-am-i"}]},{"group":"Company","pages":[{"title":"Get the company","openapi":"v1/openapi.json GET /company","href":"/v1/reference/company/get-company"},{"title":"Change the company","openapi":"v1/openapi.json PATCH /company","href":"/v1/reference/company/update-company"}]},{"group":"Members","pages":[{"title":"List members","openapi":"v1/openapi.json GET /members","href":"/v1/reference/members/list-members"},{"title":"Add a member","openapi":"v1/openapi.json POST /members","href":"/v1/reference/members/create-member"},{"title":"Get a member","openapi":"v1/openapi.json GET /members/{id}","href":"/v1/reference/members/get-member"},{"title":"Change a member","openapi":"v1/openapi.json PATCH /members/{id}","href":"/v1/reference/members/update-member"},{"title":"Remove a member","openapi":"v1/openapi.json DELETE /members/{id}","href":"/v1/reference/members/delete-member"}]},{"group":"API keys","pages":[{"title":"List API keys","openapi":"v1/openapi.json GET /apikeys","href":"/v1/reference/api-keys/list-api-keys"},{"title":"Create an API key","openapi":"v1/openapi.json POST /apikeys","href":"/v1/reference/api-keys/create-api-key"},{"title":"Revoke an API key","openapi":"v1/openapi.json POST /apikeys/{id}/revoke","href":"/v1/reference/api-keys/revoke-api-key"},{"title":"Delete an API key","openapi":"v1/openapi.json DELETE /apikeys/{id}","href":"/v1/reference/api-keys/delete-api-key"}]},{"group":"Jobs","pages":[{"title":"List jobs","openapi":"v1/openapi.json GET /jobs","description":"Lists the company's jobs.\n\nTwo modes:\n- **Day list** (none of limit, skip, createdSince, updatedSince, progress): the jobs of one day, `date` or today in the caller's time zone, ordered by route position, at most 5,000. Archived jobs only with includeArchived=true.\n- **Paged list** (any of limit, skip, createdSince, updatedSince, progress): all dates unless `date` is given, newest first (by last save, or by creation with createdSince), `limit` default 100, with totalCount and hasMore. Archived jobs are left out unless includeArchived=true.\n\nDeleted jobs never come back. Looking up by `id` or `externalId` returns the job whatever its archive status and ignores date and assignee; no match gives an empty list.\n\nWorkers without the company setting workersViewJobCalendar may only list today (give or take four hours); other dates give 403.","href":"/v1/reference/jobs/list-jobs"},{"title":"Create jobs","openapi":"v1/openapi.json POST /jobs","href":"/v1/reference/jobs/create-jobs"},{"title":"Update jobs","openapi":"v1/openapi.json PATCH /jobs","description":"Updates one job (the job fields plus its `id` in the body) or several (`{\"jobs\": {\"\u003cid>\": {...}}}`). Only the fields sent change.\n\nAlways notifies the assigned worker and sends route changes. When the address changes (and no location is sent) the job is re-geocoded in the background. Unknown job ids are skipped and not in the response. Workers may only change today's jobs unless the company allows workersEditJob; their other jobs are skipped, and changing the date without that setting gives 403.","href":"/v1/reference/jobs/update-jobs"},{"title":"Get a job","openapi":"v1/openapi.json GET /jobs/{id}","href":"/v1/reference/jobs/get-job"},{"title":"Update a job","openapi":"v1/openapi.json PATCH /jobs/{id}","href":"/v1/reference/jobs/update-job"},{"title":"Delete a job","openapi":"v1/openapi.json DELETE /jobs/{id}","href":"/v1/reference/jobs/delete-job"},{"title":"Archive a job","openapi":"v1/openapi.json POST /jobs/{id}/archive","href":"/v1/reference/jobs/archive-job"},{"title":"Restore a job","openapi":"v1/openapi.json POST /jobs/{id}/restore","href":"/v1/reference/jobs/restore-job"}]},{"group":"Places","pages":[{"title":"List places","openapi":"v1/openapi.json GET /places","href":"/v1/reference/places/list-places"},{"title":"Create a place","openapi":"v1/openapi.json POST /places","href":"/v1/reference/places/create-place"},{"title":"Get a place","openapi":"v1/openapi.json GET /places/{id}","href":"/v1/reference/places/get-place"},{"title":"Update a place","openapi":"v1/openapi.json PATCH /places/{id}","href":"/v1/reference/places/update-place"},{"title":"Delete a place","openapi":"v1/openapi.json DELETE /places/{id}","href":"/v1/reference/places/delete-place"}]},{"group":"Zones","pages":[{"title":"List zones","openapi":"v1/openapi.json GET /zones","href":"/v1/reference/zones/list-zones"}]},{"group":"Routing","pages":[{"title":"Optimize a route","openapi":"v1/openapi.json POST /routing/optimize","href":"/v1/reference/routing/optimize-route"}]},{"group":"ETA pages","pages":[{"title":"List ETA sessions","openapi":"v1/openapi.json GET /eta/sessions","href":"/v1/reference/eta-pages/list-eta-sessions"},{"title":"Create an ETA session","openapi":"v1/openapi.json POST /eta/sessions","href":"/v1/reference/eta-pages/create-eta-session"},{"title":"Get an ETA session","openapi":"v1/openapi.json GET /eta/sessions/{id}","href":"/v1/reference/eta-pages/get-eta-session"},{"title":"Update an ETA session","openapi":"v1/openapi.json PATCH /eta/sessions/{id}","href":"/v1/reference/eta-pages/update-eta-session"},{"title":"Revoke an ETA session","openapi":"v1/openapi.json DELETE /eta/sessions/{id}","href":"/v1/reference/eta-pages/revoke-eta-session"},{"title":"Refresh an ETA session","openapi":"v1/openapi.json POST /eta/sessions/{id}/refresh","href":"/v1/reference/eta-pages/refresh-eta-session"},{"title":"List ETA session events","openapi":"v1/openapi.json GET /eta/sessions/{id}/events","href":"/v1/reference/eta-pages/list-eta-session-events"}]},{"group":"Maps","pages":[{"title":"List map layers","openapi":"v1/openapi.json GET /maps/layers","href":"/v1/reference/maps/list-map-layers"},{"title":"Render a map","openapi":"v1/openapi.json POST /maps/render","href":"/v1/reference/maps/render-map"},{"title":"List map shares","openapi":"v1/openapi.json GET /maps/shares","href":"/v1/reference/maps/list-map-shares"},{"title":"Create a map share","openapi":"v1/openapi.json POST /maps/shares","href":"/v1/reference/maps/create-map-share"},{"title":"Get a map share","openapi":"v1/openapi.json GET /maps/shares/{token}","href":"/v1/reference/maps/get-map-share"},{"title":"Revoke a map share","openapi":"v1/openapi.json DELETE /maps/shares/{token}","href":"/v1/reference/maps/revoke-map-share"}]},{"group":"Timesheets","pages":[{"title":"List timesheet entries","openapi":"v1/openapi.json GET /timesheets","href":"/v1/reference/timesheets/list-timesheets"},{"title":"Add a timesheet entry","openapi":"v1/openapi.json POST /timesheets/entries","href":"/v1/reference/timesheets/create-timesheet-entry"},{"title":"Change a timesheet entry","openapi":"v1/openapi.json PATCH /timesheets/entries/{id}","href":"/v1/reference/timesheets/update-timesheet-entry"},{"title":"Delete a timesheet entry","openapi":"v1/openapi.json DELETE /timesheets/entries/{id}","href":"/v1/reference/timesheets/delete-timesheet-entry"}]},{"group":"Forms","pages":[{"title":"List form templates","openapi":"v1/openapi.json GET /forms/templates","href":"/v1/reference/forms/list-form-templates"},{"title":"Create a form template","openapi":"v1/openapi.json POST /forms/templates","href":"/v1/reference/forms/create-form-template"},{"title":"Get a form template","openapi":"v1/openapi.json GET /forms/templates/{id}","href":"/v1/reference/forms/get-form-template"},{"title":"Update a form template","openapi":"v1/openapi.json PATCH /forms/templates/{id}","href":"/v1/reference/forms/update-form-template"},{"title":"Delete a form template","openapi":"v1/openapi.json DELETE /forms/templates/{id}","href":"/v1/reference/forms/delete-form-template"},{"title":"List form submissions","openapi":"v1/openapi.json GET /forms/submissions","href":"/v1/reference/forms/list-form-submissions"},{"title":"Submit a form","openapi":"v1/openapi.json POST /forms/submissions","href":"/v1/reference/forms/create-form-submission"},{"title":"Get a form submission","openapi":"v1/openapi.json GET /forms/submissions/{id}","href":"/v1/reference/forms/get-form-submission"},{"title":"Upload a form attachment","openapi":"v1/openapi.json POST /forms/attachments","href":"/v1/reference/forms/upload-form-attachment"},{"title":"List linked forms","openapi":"v1/openapi.json GET /forms/links","href":"/v1/reference/forms/list-form-links"},{"title":"Link a form","openapi":"v1/openapi.json POST /forms/links","href":"/v1/reference/forms/link-form"},{"title":"Unlink a form","openapi":"v1/openapi.json DELETE /forms/links","href":"/v1/reference/forms/unlink-form"}]},{"group":"Alerts","pages":[{"title":"List alert actions","openapi":"v1/openapi.json GET /alerts/actions","href":"/v1/reference/alerts/list-alert-actions"},{"title":"List alert rules","openapi":"v1/openapi.json GET /alerts/configs","href":"/v1/reference/alerts/list-alert-configs"},{"title":"Create an alert rule","openapi":"v1/openapi.json POST /alerts/configs","href":"/v1/reference/alerts/create-alert-config"},{"title":"Get an alert rule","openapi":"v1/openapi.json GET /alerts/configs/{id}","href":"/v1/reference/alerts/get-alert-config"},{"title":"Update an alert rule","openapi":"v1/openapi.json PATCH /alerts/configs/{id}","href":"/v1/reference/alerts/update-alert-config"},{"title":"Delete an alert rule","openapi":"v1/openapi.json DELETE /alerts/configs/{id}","href":"/v1/reference/alerts/delete-alert-config"},{"title":"List alerts","openapi":"v1/openapi.json GET /alerts/instances","href":"/v1/reference/alerts/list-alert-instances"},{"title":"Get an alert","openapi":"v1/openapi.json GET /alerts/instances/{id}","href":"/v1/reference/alerts/get-alert-instance"},{"title":"Update an alert","openapi":"v1/openapi.json PATCH /alerts/instances/{id}","href":"/v1/reference/alerts/update-alert-instance"},{"title":"Delete an alert","openapi":"v1/openapi.json DELETE /alerts/instances/{id}","href":"/v1/reference/alerts/delete-alert-instance"}]},{"group":"Reports","pages":[{"title":"List newer reports","openapi":"v1/openapi.json GET /reports/catalog","href":"/v1/reference/reports/list-report-catalog"},{"title":"Preview a report","openapi":"v1/openapi.json POST /reports/preview","href":"/v1/reference/reports/preview-report"},{"title":"Start a report run","openapi":"v1/openapi.json POST /reports/run","href":"/v1/reference/reports/run-report"},{"title":"Get a report run","openapi":"v1/openapi.json GET /reports/run/{id}","href":"/v1/reference/reports/get-report-run"},{"title":"List saved reports","openapi":"v1/openapi.json GET /reports/saved","href":"/v1/reference/reports/list-saved-reports"},{"title":"Save a report","openapi":"v1/openapi.json POST /reports/saved","href":"/v1/reference/reports/create-saved-report"},{"title":"Replace a saved report","openapi":"v1/openapi.json PATCH /reports/saved/{id}","href":"/v1/reference/reports/update-saved-report"},{"title":"Delete a saved report","openapi":"v1/openapi.json DELETE /reports/saved/{id}","href":"/v1/reference/reports/delete-saved-report"},{"title":"Send a saved report now","openapi":"v1/openapi.json POST /reports/saved/{id}/send","href":"/v1/reference/reports/send-saved-report"},{"title":"List older report types","openapi":"v1/openapi.json GET /reports/types","href":"/v1/reference/reports/list-report-types"},{"title":"Generate an older report","openapi":"v1/openapi.json POST /reports/generate","href":"/v1/reference/reports/generate-report"},{"title":"List open report jobs","openapi":"v1/openapi.json GET /reports/jobs","href":"/v1/reference/reports/list-report-jobs"},{"title":"Get a report job","openapi":"v1/openapi.json GET /reports/jobs/{id}","href":"/v1/reference/reports/get-report-job"},{"title":"List report files","openapi":"v1/openapi.json GET /reports/uploads","href":"/v1/reference/reports/list-report-uploads"},{"title":"List recurring reports","openapi":"v1/openapi.json GET /reports/recurring","href":"/v1/reference/reports/list-recurring-reports"},{"title":"Create a recurring report","openapi":"v1/openapi.json POST /reports/recurring","href":"/v1/reference/reports/create-recurring-report"},{"title":"Update a recurring report","openapi":"v1/openapi.json PATCH /reports/recurring/{id}","href":"/v1/reference/reports/update-recurring-report"},{"title":"Delete a recurring report","openapi":"v1/openapi.json DELETE /reports/recurring/{id}","href":"/v1/reference/reports/delete-recurring-report"}]},{"group":"Webhooks","pages":[{"title":"List webhooks","openapi":"v1/openapi.json GET /webhooks","href":"/v1/reference/webhooks/list-webhooks"},{"title":"Set webhooks","openapi":"v1/openapi.json PUT /webhooks","href":"/v1/reference/webhooks/set-webhooks"}]}]},{"tab":"CLI","pages":[{"title":"CLI","href":"/cli/overview"}]}]},"basePath":"","title":"Create jobs - Hellotracks developer docs","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CS552b7R.js","utils-DDTCYAF2.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-De8ttokP.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-DrwRDvAh.js","snippetPresets-DtAN0nWx.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-D5rWArI6.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-O2i12wsz.js","shallow-DV8xABTt.js","getApiPlaygroundDisplay-DBZ0B5Jx.js","CodeSnippet-BVi0tPUX.js","CodeSnippets-CqASbIwY.js","Page-m07pfKpT.js","getPastedJson-DG9vsMS8.js","icon-CXzRSCr8.js","MethodPill-BdKVtEuX.js","DuplicateIcon-CZlmBrJI.js","createIcon-biFEUKPL.js","DynamicMarkdown-B54_zNBF.js","SectionHeading-DwwHK3Pt.js","axios-vUo_bRtp.js","Markdown-DfhCTwyA.js","clsx-xpJZXxdP.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BTZUMDnx.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-DqdKa2R4.js"]}