Checks the request and starts making the report in the background in up to 3 formats. Answers 202 with the queued run; follow it with GET /reports/run/ until status is done (files with signed links) or failed. The body is , or the ReportRequest fields directly. Without formats, request.format or the report’s default format is used. Admins, operators and the company key may call it; workers get 403 permission_denied. jobs, form-answers and visit-report need a Dispatch plan (403 on a Location plan). Same envelope; errors here use the codes invalid_request (400), permission_denied (403) and internal_error (500).
What a report is asked for. A period is either a relative period (resolved against the company's today when the report runs) or fixed days fromDay/untilDay. With neither, last week is used. The period may not be longer than the report's maxDays.
{"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/reports/run-report","slug":"/v1/reference/reports/run-report","pageMetadata":{"title":"Start a report run","openapi":"v1/openapi.json POST /reports/run","description":"Checks the request and starts making the report in the background in up to 3 formats. Answers 202 with the queued run; follow it with GET /reports/run/{id} until status is done (files with signed links) or failed. The body is {request, formats}, or the ReportRequest fields directly. Without formats, request.format or the report's default format is used. Admins, operators and the company key may call it; workers get 403 permission_denied. jobs, form-answers and visit-report need a Dispatch plan (403 on a Location plan). Same {data, error, meta} envelope; errors here use the codes invalid_request (400), permission_denied (403) and internal_error (500).","href":"/v1/reference/reports/run-report"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Checks the request and starts making the report in the background in up to 3 formats. Answers 202 with the queued run; follow it with GET /reports/run/\", \" until status is done (files with signed links) or failed. The body is \", \", or the ReportRequest fields directly. Without formats, request.format or the report’s default format is used. Admins, operators and the company key may call it; workers get 403 permission_denied. jobs, form-answers and visit-report need a Dispatch plan (403 on a Location plan). Same \", \" envelope; errors here use the codes invalid_request (400), permission_denied (403) and internal_error (500).\"]\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":"Start a report run","openapi":"v1/openapi.json POST /reports/run","description":"Checks the request and starts making the report in the background in up to 3 formats. Answers 202 with the queued run; follow it with GET /reports/run/{id} until status is done (files with signed links) or failed. The body is {request, formats}, or the ReportRequest fields directly. Without formats, request.format or the report's default format is used. Admins, operators and the company key may call it; workers get 403 permission_denied. jobs, form-answers and visit-report need a Dispatch plan (403 on a Location plan). Same {data, error, meta} envelope; errors here use the codes invalid_request (400), permission_denied (403) and internal_error (500).","href":"/v1/reference/reports/run-report"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Reports"],"operationId":"runReport","summary":"Start a report run","description":"Checks the request and starts making the report in the background in up to 3 formats. Answers 202 with the queued run; follow it with GET /reports/run/{id} until status is done (files with signed links) or failed. The body is {request, formats}, or the ReportRequest fields directly. Without formats, request.format or the report's default format is used. Admins, operators and the company key may call it; workers get 403 permission_denied. jobs, form-answers and visit-report need a Dispatch plan (403 on a Location plan). Same {data, error, meta} envelope; errors here use the codes invalid_request (400), permission_denied (403) and internal_error (500).","requestBody":"b0f0554d-89d8-410c-ba72-6c3a5ee9f5b9","responses":{"202":"798939f7-8991-42f9-9727-819a456a6707","400":"9d8bd9d5-bed1-4566-8507-90ebbb8a2bef","401":"824faff0-973a-4dd9-bbe9-47bad9910513","403":"37b688f4-725b-481d-9947-c1d98bf92f22","429":"8a47b5b2-7650-4db5-b974-b57eaa4392e8","500":"66fa813d-ad5b-414d-b6a4-70fe5b462eef"},"method":"post","type":"path","servers":["58bcea14-c37e-4bbc-bd59-e61bb9978210"],"security":["82c7e45e-4c5c-4eb3-8d32-71a74101e06c"],"path":"/reports/run","baseUrlOptions":["https://api.hellotracks.com/v1"],"title":"Start a report run","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"request":{"type":"object","description":"What a report is asked for. A period is either a relative period (resolved against the company's today when the report runs) or fixed days fromDay/untilDay. With neither, last week is used. The period may not be longer than the report's maxDays.","required":["report"],"properties":{"report":{"type":"string","enum":["team-week","jobs","place-visits","timesheet","mileage","alerts","form-answers","visit-report"],"isRequired":true,"uniqueKey":"request.report","typeLabel":"enum\u003cstring>"},"view":{"type":"string","description":"One of the report's views; empty = the first view.","uniqueKey":"request.view","typeLabel":"string"},"period":{"type":"string","enum":["today","yesterday","thisWeek","lastWeek","thisMonth","lastMonth","last7Days","last30Days"],"description":"Weeks start on Monday; \"last\" periods never include today.","uniqueKey":"request.period","typeLabel":"enum\u003cstring>"},"fromDay":{"type":"integer","description":"First day as a number YYYYMMDD (e.g. 20261001). Used when period is empty.","example":20261001,"uniqueKey":"request.fromDay","typeLabel":"integer"},"untilDay":{"type":"integer","description":"Last day as a number YYYYMMDD, inclusive.","example":20261031,"uniqueKey":"request.untilDay","typeLabel":"integer"},"compare":{"type":"boolean","default":true,"description":"Compare with the period before.","uniqueKey":"request.compare","typeLabel":"boolean"},"who":{"type":"object","description":"People in the report. Missing = everyone the caller may see.","properties":{"kind":{"type":"string","enum":["everyone","teams","people"],"default":"everyone","uniqueKey":"request.who.kind","typeLabel":"enum\u003cstring>"},"teamIds":{"type":"array","items":{"type":"integer","uniqueKey":"request.who.teamIds.items.[INDEX]","typeLabel":"integer"},"uniqueKey":"request.who.teamIds","typeLabel":"integer[]"},"memberUids":{"type":"array","items":{"type":"string","uniqueKey":"request.who.memberUids.items.[INDEX]","typeLabel":"string"},"uniqueKey":"request.who.memberUids","typeLabel":"string[]"}},"uniqueKey":"request.who","typeLabel":"object"},"places":{"type":"object","description":"Places in the report (reports with the places scope). Missing = all active places.","properties":{"kind":{"type":"string","enum":["all","field","teams","list"],"default":"all","uniqueKey":"request.places.kind","typeLabel":"enum\u003cstring>"},"field":{"type":"string","description":"Custom field name, for kind field.","uniqueKey":"request.places.field","typeLabel":"string"},"value":{"type":"string","description":"Custom field value, for kind field.","uniqueKey":"request.places.value","typeLabel":"string"},"teamIds":{"type":"array","items":{"type":"integer","uniqueKey":"request.places.teamIds.items.[INDEX]","typeLabel":"integer"},"uniqueKey":"request.places.teamIds","typeLabel":"integer[]"},"placeUids":{"type":"array","items":{"type":"string","uniqueKey":"request.places.placeUids.items.[INDEX]","typeLabel":"string"},"uniqueKey":"request.places.placeUids","typeLabel":"string[]"}},"uniqueKey":"request.places","typeLabel":"object"},"jobId":{"type":"string","description":"The job, for visit-report.","uniqueKey":"request.jobId","typeLabel":"string"},"options":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"request.options.additionalProperties","typeLabel":"string"},"description":"Report options; values are read as strings. Known keys: language (e.g. \"de\"), formId (form template id, form-answers), status (jobs filter, comma-separated), table (which table the CSV holds), columns (a list of {key, name}, as JSON text or an array).","uniqueKey":"request.options","typeLabel":"object"},"format":{"type":"string","enum":["pdf","xlsx","csv","json"],"description":"For preview: csv shows the CSV table; for run: used when formats is empty.","uniqueKey":"request.format","typeLabel":"enum\u003cstring>"}},"uniqueKey":"request","typeLabel":"object"},"formats":{"type":"array","maxItems":3,"items":{"type":"string","enum":["pdf","xlsx","csv","json"],"uniqueKey":"formats.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"Each must be offered by the report; duplicates are dropped.","uniqueKey":"formats","typeLabel":"enum\u003cstring>[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"request":{"report":"timesheet","view":"perPerson","period":"lastWeek","compare":true,"who":{"kind":"people","teamIds":[],"memberUids":["a1b2c3"]},"places":{"kind":"all","field":"","value":"","teamIds":[],"placeUids":[]},"options":{},"format":"xlsx"},"formats":["xlsx","pdf"]},"examples":{"Example":{"title":"Example","value":{"request":{"report":"timesheet","view":"perPerson","period":"lastWeek","compare":true,"who":{"kind":"people","teamIds":[],"memberUids":["a1b2c3"]},"places":{"kind":"all","field":"","value":"","teamIds":[],"placeUids":[]},"options":{},"format":"xlsx"},"formats":["xlsx","pdf"]}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"798939f7-8991-42f9-9727-819a456a6707":{"description":"Accepted: the run is queued.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","description":"The payload.","properties":{"run":{"type":"object","description":"A report being made in the background.","properties":{"id":{"type":"string","uniqueKey":"data.run.id","typeLabel":"string"},"status":{"type":"string","enum":["queued","running","done","failed"],"uniqueKey":"data.run.status","typeLabel":"enum\u003cstring>"},"title":{"type":"string","uniqueKey":"data.run.title","typeLabel":"string"},"source":{"type":"string","description":"api for POST /reports/run, manual for POST /reports/saved/{id}/send.","uniqueKey":"data.run.source","typeLabel":"string"},"savedId":{"oneOf":[{"type":"string","uniqueKey":"data.run.savedId.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"data.run.savedId.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.run.savedId","typeLabel":"string | null"},"formats":{"type":"array","items":{"type":"string","enum":["pdf","xlsx","csv","json"],"uniqueKey":"data.run.formats.items.[INDEX]","typeLabel":"enum\u003cstring>"},"uniqueKey":"data.run.formats","typeLabel":"enum\u003cstring>[]"},"createdTs":{"type":"integer","format":"int64","description":"Milliseconds since the epoch.","uniqueKey":"data.run.createdTs","typeLabel":"integer\u003cint64>"},"completedTs":{"oneOf":[{"type":"integer","format":"int64","uniqueKey":"data.run.completedTs.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"null","format":"int64","uniqueKey":"data.run.completedTs.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.run.completedTs","typeLabel":"integer\u003cint64> | null"},"request":{"type":"object","description":"What a report is asked for. A period is either a relative period (resolved against the company's today when the report runs) or fixed days fromDay/untilDay. With neither, last week is used. The period may not be longer than the report's maxDays.","required":["report"],"properties":{"report":{"type":"string","enum":["team-week","jobs","place-visits","timesheet","mileage","alerts","form-answers","visit-report"],"isRequired":true,"uniqueKey":"data.run.request.report","typeLabel":"enum\u003cstring>"},"view":{"type":"string","description":"One of the report's views; empty = the first view.","uniqueKey":"data.run.request.view","typeLabel":"string"},"period":{"type":"string","enum":["today","yesterday","thisWeek","lastWeek","thisMonth","lastMonth","last7Days","last30Days"],"description":"Weeks start on Monday; \"last\" periods never include today.","uniqueKey":"data.run.request.period","typeLabel":"enum\u003cstring>"},"fromDay":{"type":"integer","description":"First day as a number YYYYMMDD (e.g. 20261001). Used when period is empty.","example":20261001,"uniqueKey":"data.run.request.fromDay","typeLabel":"integer"},"untilDay":{"type":"integer","description":"Last day as a number YYYYMMDD, inclusive.","example":20261031,"uniqueKey":"data.run.request.untilDay","typeLabel":"integer"},"compare":{"type":"boolean","default":true,"description":"Compare with the period before.","uniqueKey":"data.run.request.compare","typeLabel":"boolean"},"who":{"type":"object","description":"People in the report. Missing = everyone the caller may see.","properties":{"kind":{"type":"string","enum":["everyone","teams","people"],"default":"everyone","uniqueKey":"data.run.request.who.kind","typeLabel":"enum\u003cstring>"},"teamIds":{"type":"array","items":{"type":"integer","uniqueKey":"data.run.request.who.teamIds.items.[INDEX]","typeLabel":"integer"},"uniqueKey":"data.run.request.who.teamIds","typeLabel":"integer[]"},"memberUids":{"type":"array","items":{"type":"string","uniqueKey":"data.run.request.who.memberUids.items.[INDEX]","typeLabel":"string"},"uniqueKey":"data.run.request.who.memberUids","typeLabel":"string[]"}},"uniqueKey":"data.run.request.who","typeLabel":"object"},"places":{"type":"object","description":"Places in the report (reports with the places scope). Missing = all active places.","properties":{"kind":{"type":"string","enum":["all","field","teams","list"],"default":"all","uniqueKey":"data.run.request.places.kind","typeLabel":"enum\u003cstring>"},"field":{"type":"string","description":"Custom field name, for kind field.","uniqueKey":"data.run.request.places.field","typeLabel":"string"},"value":{"type":"string","description":"Custom field value, for kind field.","uniqueKey":"data.run.request.places.value","typeLabel":"string"},"teamIds":{"type":"array","items":{"type":"integer","uniqueKey":"data.run.request.places.teamIds.items.[INDEX]","typeLabel":"integer"},"uniqueKey":"data.run.request.places.teamIds","typeLabel":"integer[]"},"placeUids":{"type":"array","items":{"type":"string","uniqueKey":"data.run.request.places.placeUids.items.[INDEX]","typeLabel":"string"},"uniqueKey":"data.run.request.places.placeUids","typeLabel":"string[]"}},"uniqueKey":"data.run.request.places","typeLabel":"object"},"jobId":{"type":"string","description":"The job, for visit-report.","uniqueKey":"data.run.request.jobId","typeLabel":"string"},"options":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"data.run.request.options.additionalProperties","typeLabel":"string"},"description":"Report options; values are read as strings. Known keys: language (e.g. \"de\"), formId (form template id, form-answers), status (jobs filter, comma-separated), table (which table the CSV holds), columns (a list of {key, name}, as JSON text or an array).","uniqueKey":"data.run.request.options","typeLabel":"object"},"format":{"type":"string","enum":["pdf","xlsx","csv","json"],"description":"For preview: csv shows the CSV table; for run: used when formats is empty.","uniqueKey":"data.run.request.format","typeLabel":"enum\u003cstring>"}},"uniqueKey":"data.run.request","typeLabel":"object"},"error":{"type":"object","description":"Only when status is failed.","properties":{"code":{"type":"string","uniqueKey":"data.run.error.code","typeLabel":"string"},"message":{"type":"string","uniqueKey":"data.run.error.message","typeLabel":"string"}},"uniqueKey":"data.run.error","typeLabel":"object"},"files":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","uniqueKey":"data.run.files.items.[INDEX].id","typeLabel":"string"},"name":{"type":"string","description":"File name.","uniqueKey":"data.run.files.items.[INDEX].name","typeLabel":"string"},"title":{"type":"string","uniqueKey":"data.run.files.items.[INDEX].title","typeLabel":"string"},"report":{"type":"string","uniqueKey":"data.run.files.items.[INDEX].report","typeLabel":"string"},"format":{"type":"string","enum":["pdf","xlsx","csv","json"],"uniqueKey":"data.run.files.items.[INDEX].format","typeLabel":"enum\u003cstring>"},"contentType":{"type":"string","uniqueKey":"data.run.files.items.[INDEX].contentType","typeLabel":"string"},"bytes":{"type":"integer","uniqueKey":"data.run.files.items.[INDEX].bytes","typeLabel":"integer"},"createdTs":{"type":"integer","format":"int64","description":"Milliseconds since the epoch.","uniqueKey":"data.run.files.items.[INDEX].createdTs","typeLabel":"integer\u003cint64>"},"savedId":{"oneOf":[{"type":"string","uniqueKey":"data.run.files.items.[INDEX].savedId.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"data.run.files.items.[INDEX].savedId.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.run.files.items.[INDEX].savedId","typeLabel":"string | null"},"path":{"type":"string","description":"Signed path, valid 30 days.","uniqueKey":"data.run.files.items.[INDEX].path","typeLabel":"string"},"url":{"type":"string","format":"uri","description":"Signed absolute link to download the file, valid 30 days.","uniqueKey":"data.run.files.items.[INDEX].url","typeLabel":"string\u003curi>"},"madeBy":{"type":"string","description":"Member id that asked for the file.","uniqueKey":"data.run.files.items.[INDEX].madeBy","typeLabel":"string"},"source":{"type":"string","uniqueKey":"data.run.files.items.[INDEX].source","typeLabel":"string"}},"uniqueKey":"data.run.files.items.[INDEX]","typeLabel":"object"},"description":"Filled when status is done.","uniqueKey":"data.run.files","typeLabel":"object[]"}},"uniqueKey":"data.run","typeLabel":"object"}},"uniqueKey":"data","typeLabel":"object"},"error":{"type":"null","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"}},"uniqueKey":"meta","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"data":{"run":{"id":"6560000000000000000000a1","status":"queued","title":"Timesheet","source":"api","savedId":null,"formats":["xlsx","pdf"],"createdTs":1761901100000,"completedTs":null,"request":{"report":"timesheet","view":"perPerson","period":"lastWeek","compare":true,"who":{"kind":"people","teamIds":[],"memberUids":["a1b2c3"]},"places":{"kind":"all","field":"","value":"","teamIds":[],"placeUids":[]},"options":{},"format":"xlsx"},"files":[]}},"error":null,"meta":{"path":"/v1/reports/run","method":"POST"}},"examples":{"Example":{"title":"Example","value":{"data":{"run":{"id":"6560000000000000000000a1","status":"queued","title":"Timesheet","source":"api","savedId":null,"formats":["xlsx","pdf"],"createdTs":1761901100000,"completedTs":null,"request":{"report":"timesheet","view":"perPerson","period":"lastWeek","compare":true,"who":{"kind":"people","teamIds":[],"memberUids":["a1b2c3"]},"places":{"kind":"all","field":"","value":"","teamIds":[],"placeUids":[]},"options":{},"format":"xlsx"},"files":[]}},"error":null,"meta":{"path":"/v1/reports/run","method":"POST"}}}},"exampleType":"examples"}},"exampleType":"examples"},"9d8bd9d5-bed1-4566-8507-90ebbb8a2bef":{"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"},"824faff0-973a-4dd9-bbe9-47bad9910513":{"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"},"37b688f4-725b-481d-9947-c1d98bf92f22":{"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"},"8a47b5b2-7650-4db5-b974-b57eaa4392e8":{"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"},"66fa813d-ad5b-414d-b6a4-70fe5b462eef":{"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":"Start a report run - Hellotracks developer docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-02T13:39:17.248Z","originalFileLocation":"v1/reference/reports/run-report.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=\"Checks the request and starts making the report in the background in up to 3 formats. Answers 202 with the queued run; follow it with GET /reports/run/{id} until status is done (files with signed links) or failed. The body is {request, formats}, or the ReportRequest fields directly. Without formats, request.format or the report\u0026#x27;s default format is used. Admins, operators and the company key may call it; workers get 403 permission_denied. jobs, form-answers and visit-report need a Dispatch plan (403 on a Location plan). Same {data, error, meta} envelope; errors here use the codes invalid_request (400), permission_denied (403) and internal_error (500).\">\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=\"Start a report run - Hellotracks developer docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Checks the request and starts making the report in the background in up to 3 formats. Answers 202 with the queued run; follow it with GET /reports/run/{id} until status is done (files with signed links) or failed. The body is {request, formats}, or the ReportRequest fields directly. Without formats, request.format or the report\u0026#x27;s default format is used. Admins, operators and the company key may call it; workers get 403 permission_denied. jobs, form-answers and visit-report need a Dispatch plan (403 on a Location plan). Same {data, error, meta} envelope; errors here use the codes invalid_request (400), permission_denied (403) and internal_error (500).\">\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/reports/run-report\">\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=Reports\u0026amp;title=Start+a+report+run\u0026amp;description=Checks+the+request+and+starts+making+the+report+in+the+background+in+up+to+3+formats.+Answers+202+with+the+queued+run%3B+follow+it+with+GET+%2Freports%2Frun%2F%7Bid%7D+unti\u0026amp;theme=8e96cdb371124c7fdc0c80f1\u0026amp;signature=729eeb6eb6a08cbe909d57f8659f27ac31678af53b08a96b4dbfd8e3b8163dbc\">\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=\"Start a report run - Hellotracks developer docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Checks the request and starts making the report in the background in up to 3 formats. Answers 202 with the queued run; follow it with GET /reports/run/{id} until status is done (files with signed links) or failed. The body is {request, formats}, or the ReportRequest fields directly. Without formats, request.format or the report\u0026#x27;s default format is used. Admins, operators and the company key may call it; workers get 403 permission_denied. jobs, form-answers and visit-report need a Dispatch plan (403 on a Location plan). Same {data, error, meta} envelope; errors here use the codes invalid_request (400), permission_denied (403) and internal_error (500).\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://hellotracks.mintlify.app/_mintlify/api/og/v2?division=Reports\u0026amp;title=Start+a+report+run\u0026amp;description=Checks+the+request+and+starts+making+the+report+in+the+background+in+up+to+3+formats.+Answers+202+with+the+queued+run%3B+follow+it+with+GET+%2Freports%2Frun%2F%7Bid%7D+unti\u0026amp;theme=8e96cdb371124c7fdc0c80f1\u0026amp;signature=729eeb6eb6a08cbe909d57f8659f27ac31678af53b08a96b4dbfd8e3b8163dbc\">\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/reports/run-report\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/v1/reference/reports/run-report.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/reports/run-report#webpage\",\"url\":\"https://api-docs.hellotracks.com/v1/reference/reports/run-report\",\"name\":\"Start a report run\",\"description\":\"Checks the request and starts making the report in the background in up to 3 formats. Answers 202 with the queued run; follow it with GET /reports/run/{id} until status is done (files with signed links) or failed. The body is {request, formats}, or the ReportRequest fields directly. Without formats, request.format or the report's default format is used. Admins, operators and the company key may call it; workers get 403 permission_denied. jobs, form-answers and visit-report need a Dispatch plan (403 on a Location plan). Same {data, error, meta} envelope; errors here use the codes invalid_request (400), permission_denied (403) and internal_error (500).\",\"dateModified\":\"2026-11-02T13:39:17.248Z\",\"isPartOf\":{\"@id\":\"https://api-docs.hellotracks.com#website\"},\"breadcrumb\":{\"@id\":\"https://api-docs.hellotracks.com/v1/reference/reports/run-report#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://api-docs.hellotracks.com/v1/reference/reports/run-report#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Reports\",\"item\":\"https://api-docs.hellotracks.com/v1/reference/reports/list-report-catalog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Start a report run\",\"item\":\"https://api-docs.hellotracks.com/v1/reference/reports/run-report\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://api-docs.hellotracks.com/v1/reference/reports/run-report#apireference\",\"headline\":\"Start a report run\",\"name\":\"Start a report run\",\"description\":\"Checks the request and starts making the report in the background in up to 3 formats. Answers 202 with the queued run; follow it with GET /reports/run/{id} until status is done (files with signed links) or failed. The body is {request, formats}, or the ReportRequest fields directly. Without formats, request.format or the report's default format is used. Admins, operators and the company key may call it; workers get 403 permission_denied. jobs, form-answers and visit-report need a Dispatch plan (403 on a Location plan). Same {data, error, meta} envelope; errors here use the codes invalid_request (400), permission_denied (403) and internal_error (500).\",\"url\":\"https://api-docs.hellotracks.com/v1/reference/reports/run-report\",\"mainEntityOfPage\":{\"@id\":\"https://api-docs.hellotracks.com/v1/reference/reports/run-report#webpage\"},\"dateModified\":\"2026-11-02T13:39:17.248Z\",\"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","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","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","description":"Builds a report right away and returns its model (tables limited to 50 rows) and its first page as HTML; with format csv the HTML is the CSV table. team-week and mileage read only the first 40 people (and 400 places) in a preview; the model says when it was sampled. The body is a ReportRequest, either directly or wrapped as {\"request\": {...}}. Admins, operators and the company key may call it; workers get 403 permission_denied. jobs, form-answers and visit-report need a Dispatch plan (403 on a Location plan). Same {data, error, meta} envelope; errors here use the codes invalid_request (400), permission_denied (403) and internal_error (500).","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}","description":"Returns a run's status and, when done, its files with signed download links (valid 30 days). An unknown or foreign id is answered with 403 permission_denied. Admins, operators and the company key may call it; workers get 403 permission_denied. jobs, form-answers and visit-report need a Dispatch plan (403 on a Location plan). Same {data, error, meta} envelope; errors here use the codes invalid_request (400), permission_denied (403) and internal_error (500).","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":"Start a report run - 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"]}