Get chat history for a job (paginated, oldest-first)
Returns persisted chat messages. Use the before cursor for backward
pagination. Primary chat delivery is via Socket.IO chat:message events;
this endpoint serves history on load and as a REST fallback.
GET
/
jobs
/
{jobId}
/
comms
/
messages
Get chat history for a job (paginated, oldest-first)
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"MechZie API","description":"Internal API documentation for the MechZie roadside mechanic dispatch service","colors":{"primary":"#FF5500","light":"#FF7733","dark":"#CC4400"},"logo":{"light":"https://mintcdn.com/mechzapp/AW5e4c-ZxQ_CiOZ1/public/logo/mechzie-logo.png?fit=max\u0026auto=format\u0026n=AW5e4c-ZxQ_CiOZ1\u0026q=85\u0026s=0810304356723e03968d9e3f18cbfcbc","dark":"https://mintcdn.com/mechzapp/AW5e4c-ZxQ_CiOZ1/public/logo/mechzie-logo.png?fit=max\u0026auto=format\u0026n=AW5e4c-ZxQ_CiOZ1\u0026q=85\u0026s=0810304356723e03968d9e3f18cbfcbc"},"favicon":"https://mintlify.s3.us-west-1.amazonaws.com/mechzapp/favicon.png","background":{"decoration":"gradient"},"navbar":{"links":[{"href":"mailto:support@mechzie.in","label":"Support"}]},"footer":{"socials":{"github":"https://github.com/MechZie"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"interaction":{"drilldown":false},"metadata":{"timestamp":false},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"GitHub","icon":"github","href":"https://github.com/MechZie"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"mechzapp","hasAudioNarration":false,"actualSubdomain":"mechzapp","customDomains":["internal.mechzie.in"],"gitSource":{"type":"github","owner":"mechzie","repo":"mechzie-api","deployBranch":"dev","contentDirectory":"mintlify-docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aad0d1e3487b42e1d562d36","collectionId":"627dcf6e-29e0-4ff4-973f-2ef1ebc4c62b","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aad0d1e3487b42e1d562d36"},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{},"buildId":"6aad0d1e3487b42e1d562d36","clientVersion":"0.0.4067","searchFilterCounts":[{"language":"default","tag":"API Reference","count":99},{"language":"default","tag":"Documentation","count":16},{"language":"default","tag":"admin","count":15},{"language":"default","tag":"jobs","count":15},{"language":"default","tag":"Guides","count":12},{"language":"default","tag":"wallet","count":11},{"language":"default","tag":"mechanics","count":9},{"language":"default","tag":"payments","count":6},{"language":"default","tag":"auth","count":5},{"language":"default","tag":"call","count":5}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"/docs","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":"rbac-expansion","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":"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":"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},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"custom.css","content":"#navbar img{width:85px!important;max-width:none!important;height:auto!important}#navbar{height:72px!important}"}],"page":{"pagePath":"api-reference/comms/get-chat-history-for-a-job-paginated-oldest-first","slug":"/api-reference/comms/get-chat-history-for-a-job-paginated-oldest-first","pageMetadata":{"title":"Get chat history for a job (paginated, oldest-first)","description":"Returns persisted chat messages. Use the `before` cursor for backward\npagination. Primary chat delivery is via Socket.IO `chat:message` events;\nthis endpoint serves history on load and as a REST fallback.\n","deprecated":null,"version":null,"openapi":"/openapi.yaml get /jobs/{jobId}/comms/messages","href":"/api-reference/comms/get-chat-history-for-a-job-paginated-oldest-first","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {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(_components.p, {\n children: [\"Returns persisted chat messages. Use the \", _jsx(_components.code, {\n children: \"before\"\n }), \" cursor for backward\\npagination. Primary chat delivery is via Socket.IO \", _jsx(_components.code, {\n children: \"chat:message\"\n }), \" events;\\nthis endpoint serves history on load and as a REST fallback.\"]\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":"Get chat history for a job (paginated, oldest-first)","description":"Returns persisted chat messages. Use the `before` cursor for backward\npagination. Primary chat delivery is via Socket.IO `chat:message` events;\nthis endpoint serves history on load and as a REST fallback.\n","deprecated":null,"version":null,"openapi":"/openapi.yaml get /jobs/{jobId}/comms/messages","href":"/api-reference/comms/get-chat-history-for-a-job-paginated-oldest-first","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["comms"],"summary":"Get chat history for a job (paginated, oldest-first)","description":"Returns persisted chat messages. Use the `before` cursor for backward\npagination. Primary chat delivery is via Socket.IO `chat:message` events;\nthis endpoint serves history on load and as a REST fallback.\n","parameters":["3551422b-0a49-405e-b8ff-6a8bb6798d5c","58a397a1-995c-4397-b57c-d0dcbf56ed0c","ceb4a7ca-db73-4ef2-8fba-7bba78584d3e"],"responses":{"200":"bb29bfe1-17cc-42c6-b4e9-dfb68d41bf65","401":"059c872c-0e53-45f8-bb49-35bd406c5bf3","403":"fdc22f59-6355-4935-b699-fd9f4d0d3bdf","404":"9b71668a-369d-486f-bb88-90651760141c"},"method":"get","type":"path","servers":["b829669c-57b9-4b5d-8c81-aa7f69c011f1","53cd5873-72c5-4846-ac7b-51b78d0299db"],"security":["4880f4b0-2af8-46df-8dc5-5c378d694397"],"path":"/jobs/{jobId}/comms/messages","baseUrlOptions":["http://localhost:3000","https://mechzie-api-399967621389.asia-south1.run.app/api/v1"],"title":"Get chat history for a job (paginated, oldest-first)","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"3551422b-0a49-405e-b8ff-6a8bb6798d5c":{"name":"jobId","in":"path","required":true,"schema":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"","typeLabel":"string\u003cuuid>"}},"58a397a1-995c-4397-b57c-d0dcbf56ed0c":{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":50,"description":"Number of messages to return","uniqueKey":"","typeLabel":"integer"},"description":"Number of messages to return"},"ceb4a7ca-db73-4ef2-8fba-7bba78584d3e":{"name":"before","in":"query","schema":{"type":"string","format":"date-time","description":"Return messages created before this ISO-8601 timestamp (cursor pagination)","uniqueKey":"","typeLabel":"string\u003cdate-time>"},"description":"Return messages created before this ISO-8601 timestamp (cursor pagination)"}},"responses":{"bb29bfe1-17cc-42c6-b4e9-dfb68d41bf65":{"description":"Chat messages","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","description":"A persistent chat or call-event message saved to the database","properties":{"id":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"data.items.[INDEX].id","typeLabel":"string\u003cuuid>"},"job_id":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"data.items.[INDEX].job_id","typeLabel":"string\u003cuuid>"},"content":{"type":"string","maxLength":2000,"isRequired":true,"uniqueKey":"data.items.[INDEX].content","typeLabel":"string"},"message_type":{"type":"string","enum":["chat","call_event"],"default":"chat","description":"chat for regular messages; call_event for signaling audit entries","isRequired":true,"uniqueKey":"data.items.[INDEX].message_type","typeLabel":"enum\u003cstring>"},"created_at":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"data.items.[INDEX].created_at","typeLabel":"string\u003cdate-time>"},"sender_id":{"oneOf":[{"type":"string","format":"uuid","description":"User ID of the message sender; null for system-generated call events (call_missed, call_ended)","uniqueKey":"data.items.[INDEX].sender_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","description":"User ID of the message sender; null for system-generated call events (call_missed, call_ended)","uniqueKey":"data.items.[INDEX].sender_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.items.[INDEX].sender_id","typeLabel":"string\u003cuuid> | null"}},"required":["id","job_id","content","message_type","created_at"],"uniqueKey":"data.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":[{"id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","job_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","content":"\u003cstring>","message_type":"chat","created_at":"2023-11-07T05:31:56Z","sender_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a"}]}}},"exampleType":"generated"}},"exampleType":"generated"},"059c872c-0e53-45f8-bb49-35bd406c5bf3":{"description":"Missing or invalid authentication token","content":{"application/json":{"schema":{"type":"object","description":"Standard error envelope returned by all error responses","properties":{"success":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"success","typeLabel":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code (e.g. NOT_FOUND, UNAUTHORIZED)","example":"NOT_FOUND","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable description of the error","example":"Resource not found","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"errors":{"type":"object","description":"Field-level validation errors (only present on 422)","additionalProperties":{"type":"array","items":{"type":"string","uniqueKey":"error.errors.additionalProperties.items.[INDEX]","typeLabel":"string"},"uniqueKey":"error.errors.additionalProperties","typeLabel":"string[]"},"uniqueKey":"error.errors","typeLabel":"object"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["success","error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"success":false,"error":{"code":"NOT_FOUND","message":"Resource not found","errors":{}}}}},"exampleType":"generated"}},"exampleType":"generated"},"fdc22f59-6355-4935-b699-fd9f4d0d3bdf":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","description":"Standard error envelope returned by all error responses","properties":{"success":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"success","typeLabel":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code (e.g. NOT_FOUND, UNAUTHORIZED)","example":"NOT_FOUND","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable description of the error","example":"Resource not found","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"errors":{"type":"object","description":"Field-level validation errors (only present on 422)","additionalProperties":{"type":"array","items":{"type":"string","uniqueKey":"error.errors.additionalProperties.items.[INDEX]","typeLabel":"string"},"uniqueKey":"error.errors.additionalProperties","typeLabel":"string[]"},"uniqueKey":"error.errors","typeLabel":"object"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["success","error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"success":false,"error":{"code":"NOT_FOUND","message":"Resource not found","errors":{}}}}},"exampleType":"generated"}},"exampleType":"generated"},"9b71668a-369d-486f-bb88-90651760141c":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","description":"Standard error envelope returned by all error responses","properties":{"success":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"success","typeLabel":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code (e.g. NOT_FOUND, UNAUTHORIZED)","example":"NOT_FOUND","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable description of the error","example":"Resource not found","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"errors":{"type":"object","description":"Field-level validation errors (only present on 422)","additionalProperties":{"type":"array","items":{"type":"string","uniqueKey":"error.errors.additionalProperties.items.[INDEX]","typeLabel":"string"},"uniqueKey":"error.errors.additionalProperties","typeLabel":"string[]"},"uniqueKey":"error.errors","typeLabel":"object"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["success","error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"success":false,"error":{"code":"NOT_FOUND","message":"Resource not found","errors":{}}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"4880f4b0-2af8-46df-8dc5-5c378d694397":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"JWT access token from /auth/verify-otp","scopes":[]}}},"servers":{"b829669c-57b9-4b5d-8c81-aa7f69c011f1":{"url":"http://localhost:3000","description":"Local development"},"53cd5873-72c5-4846-ac7b-51b78d0299db":{"url":"https://mechzie-api-399967621389.asia-south1.run.app/api/v1","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"JWT access token from /auth/verify-otp","scopes":[]},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"JWT access token from /auth/verify-otp","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"openapi.yaml"},"subdomain":"mechzapp","siteName":"MechZie API","title":"Get chat history for a job (paginated, oldest-first) - MechZie API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-18T10:06:35.990Z","originalFileLocation":"api-reference/comms/get-chat-history-for-a-job-paginated-oldest-first.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=\"Returns persisted chat messages. Use the before cursor for backward pagination. Primary chat delivery is via Socket.IO chat:message events; this endpoint serves history on load and as a REST fallback.\">\u003cmeta data-mint-head name=\"application-name\" content=\"MechZie API\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/mechzapp/favicon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/mechzapp/favicon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/mechzapp/favicon.png\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/png\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/mechzapp/favicon.png\">\u003cmeta data-mint-head property=\"og:title\" content=\"Get chat history for a job (paginated, oldest-first) - MechZie API\">\u003cmeta data-mint-head property=\"og:description\" content=\"Returns persisted chat messages. Use the before cursor for backward pagination. Primary chat delivery is via Socket.IO chat:message events; this endpoint serves history on load and as a REST fallback.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"MechZie API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://internal.mechzie.in/docs/api-reference/comms/get-chat-history-for-a-job-paginated-oldest-first\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://mechzapp.mintlify.app/_mintlify/api/og/v2?division=comms\u0026amp;title=Get+chat+history+for+a+job+%28paginated%2C+oldest-first%29\u0026amp;description=Returns+persisted+chat+messages.+Use+the+%60before%60+cursor+for+backward%0Apagination.+Primary+chat+delivery+is+via+Socket.IO+%60chat%3Amessage%60+events%3B%0Athis+endpoint+se\u0026amp;theme=b17b2ab41e1e8981da9bb6bd\u0026amp;signature=0eafb11db7cf0da5e19878e15264f910c32a1099455acfdc2bf5075d7b89d67d\">\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=\"Get chat history for a job (paginated, oldest-first) - MechZie API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Returns persisted chat messages. Use the before cursor for backward pagination. Primary chat delivery is via Socket.IO chat:message events; this endpoint serves history on load and as a REST fallback.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://mechzapp.mintlify.app/_mintlify/api/og/v2?division=comms\u0026amp;title=Get+chat+history+for+a+job+%28paginated%2C+oldest-first%29\u0026amp;description=Returns+persisted+chat+messages.+Use+the+%60before%60+cursor+for+backward%0Apagination.+Primary+chat+delivery+is+via+Socket.IO+%60chat%3Amessage%60+events%3B%0Athis+endpoint+se\u0026amp;theme=b17b2ab41e1e8981da9bb6bd\u0026amp;signature=0eafb11db7cf0da5e19878e15264f910c32a1099455acfdc2bf5075d7b89d67d\">\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=\"https://mintlify.s3.us-west-1.amazonaws.com/mechzapp/_generated/favicon/browserconfig.xml?v=3\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"MechZie API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#FF5500\">\u003clink data-mint-head rel=\"canonical\" href=\"https://internal.mechzie.in/docs/api-reference/comms/get-chat-history-for-a-job-paginated-oldest-first\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/api-reference/comms/get-chat-history-for-a-job-paginated-oldest-first.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://internal.mechzie.in/#organization\",\"name\":\"MechZie API\",\"url\":\"https://internal.mechzie.in\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/mechzapp/AW5e4c-ZxQ_CiOZ1/public/logo/mechzie-logo.png?fit=max\u0026auto=format\u0026n=AW5e4c-ZxQ_CiOZ1\u0026q=85\u0026s=0810304356723e03968d9e3f18cbfcbc\"}},{\"@type\":\"WebSite\",\"@id\":\"https://internal.mechzie.in/docs#website\",\"name\":\"MechZie API\",\"url\":\"https://internal.mechzie.in/docs\",\"publisher\":{\"@id\":\"https://internal.mechzie.in/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://internal.mechzie.in/docs/api-reference/comms/get-chat-history-for-a-job-paginated-oldest-first#webpage\",\"url\":\"https://internal.mechzie.in/docs/api-reference/comms/get-chat-history-for-a-job-paginated-oldest-first\",\"name\":\"Get chat history for a job (paginated, oldest-first)\",\"description\":\"Returns persisted chat messages. Use the before cursor for backward pagination. Primary chat delivery is via Socket.IO chat:message events; this endpoint serves history on load and as a REST fallback.\",\"dateModified\":\"2026-09-18T10:06:35.990Z\",\"isPartOf\":{\"@id\":\"https://internal.mechzie.in/docs#website\"},\"breadcrumb\":{\"@id\":\"https://internal.mechzie.in/docs/api-reference/comms/get-chat-history-for-a-job-paginated-oldest-first#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://internal.mechzie.in/docs/api-reference/comms/get-chat-history-for-a-job-paginated-oldest-first#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"comms\",\"item\":\"https://internal.mechzie.in/docs/api-reference/comms/get-or-create-a-100ms-audio-call-room-and-return-an-auth-token\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Get chat history for a job (paginated, oldest-first)\",\"item\":\"https://internal.mechzie.in/docs/api-reference/comms/get-chat-history-for-a-job-paginated-oldest-first\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://internal.mechzie.in/docs/api-reference/comms/get-chat-history-for-a-job-paginated-oldest-first#apireference\",\"headline\":\"Get chat history for a job (paginated, oldest-first)\",\"name\":\"Get chat history for a job (paginated, oldest-first)\",\"description\":\"Returns persisted chat messages. Use the before cursor for backward pagination. Primary chat delivery is via Socket.IO chat:message events; this endpoint serves history on load and as a REST fallback.\",\"url\":\"https://internal.mechzie.in/docs/api-reference/comms/get-chat-history-for-a-job-paginated-oldest-first\",\"mainEntityOfPage\":{\"@id\":\"https://internal.mechzie.in/docs/api-reference/comms/get-chat-history-for-a-job-paginated-oldest-first#webpage\"},\"dateModified\":\"2026-09-18T10:06:35.990Z\",\"publisher\":{\"@id\":\"https://internal.mechzie.in/#organization\"},\"isPartOf\":{\"@id\":\"https://internal.mechzie.in/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"MechZie API\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"MechZie API","nav":{"global":{"anchors":[{"anchor":"GitHub","icon":"github","href":"https://github.com/MechZie"}]},"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":""}]},{"tab":"API Reference","groups":[{"group":"health","pages":[{"title":"Liveness check","deprecated":null,"version":null,"openapi":"/openapi.yaml get /health","href":"/api-reference/health/liveness-check"},{"title":"Readiness check with DB and Redis probes","deprecated":null,"version":null,"openapi":"/openapi.yaml get /health/ready","href":"/api-reference/health/readiness-check-with-db-and-redis-probes"}]},{"group":"auth","pages":[{"title":"Exchange Firebase ID token for JWT pair","deprecated":null,"version":null,"openapi":"/openapi.yaml post /auth/verify-otp","href":"/api-reference/auth/exchange-firebase-id-token-for-jwt-pair"},{"title":"Rotate refresh token and get new access token","deprecated":null,"version":null,"openapi":"/openapi.yaml post /auth/refresh","href":"/api-reference/auth/rotate-refresh-token-and-get-new-access-token"},{"title":"Revoke refresh token","deprecated":null,"version":null,"openapi":"/openapi.yaml post /auth/logout","href":"/api-reference/auth/revoke-refresh-token"},{"title":"Admin email login via Firebase","deprecated":null,"version":null,"openapi":"/openapi.yaml post /auth/admin-login","href":"/api-reference/auth/admin-email-login-via-firebase"},{"title":"Complete admin account setup via invite token","deprecated":null,"version":null,"openapi":"/openapi.yaml post /auth/complete-admin-invite","href":"/api-reference/auth/complete-admin-account-setup-via-invite-token"}]},{"group":"users","pages":[{"title":"Get current user profile","deprecated":null,"version":null,"openapi":"/openapi.yaml get /users/me","href":"/api-reference/users/get-current-user-profile"},{"title":"Update current user profile","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /users/me","href":"/api-reference/users/update-current-user-profile"},{"title":"Get user by ID (admin only)","deprecated":null,"version":null,"openapi":"/openapi.yaml get /users/{id}","href":"/api-reference/users/get-user-by-id-admin-only"},{"title":"List emergency contacts","deprecated":null,"version":null,"openapi":"/openapi.yaml get /users/me/emergency-contacts","href":"/api-reference/users/list-emergency-contacts"},{"title":"Upsert emergency contacts (replace all, max 2)","deprecated":null,"version":null,"openapi":"/openapi.yaml put /users/me/emergency-contacts","href":"/api-reference/users/upsert-emergency-contacts-replace-all-max-2"}]},{"group":"vehicles","pages":[{"title":"List own vehicles","deprecated":null,"version":null,"openapi":"/openapi.yaml get /vehicles","href":"/api-reference/vehicles/list-own-vehicles"},{"title":"Add new vehicle","deprecated":null,"version":null,"openapi":"/openapi.yaml post /vehicles","href":"/api-reference/vehicles/add-new-vehicle"},{"title":"Get specific vehicle","deprecated":null,"version":null,"openapi":"/openapi.yaml get /vehicles/{id}","href":"/api-reference/vehicles/get-specific-vehicle"},{"title":"Delete vehicle","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /vehicles/{id}","href":"/api-reference/vehicles/delete-vehicle"},{"title":"Update vehicle","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /vehicles/{id}","href":"/api-reference/vehicles/update-vehicle"}]},{"group":"mechanics","pages":[{"title":"Get public mechanic profile","deprecated":null,"version":null,"openapi":"/openapi.yaml get /mechanics/{id}","href":"/api-reference/mechanics/get-public-mechanic-profile"},{"title":"Submit mechanic profile, vehicle types, and documents for verification","deprecated":null,"version":null,"openapi":"/openapi.yaml post /mechanics/register","href":"/api-reference/mechanics/submit-mechanic-profile-vehicle-types-and-documents-for-verification"},{"title":"Get own mechanic profile","deprecated":null,"version":null,"openapi":"/openapi.yaml get /mechanics/me","href":"/api-reference/mechanics/get-own-mechanic-profile"},{"title":"Update mechanic vehicle type preferences","deprecated":null,"version":null,"openapi":"/openapi.yaml put /mechanics/vehicle-types","href":"/api-reference/mechanics/update-mechanic-vehicle-type-preferences"},{"title":"Update mechanic service category selection","deprecated":null,"version":null,"openapi":"/openapi.yaml put /mechanics/service-categories","href":"/api-reference/mechanics/update-mechanic-service-category-selection"},{"title":"Toggle online/offline status","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /mechanics/availability","href":"/api-reference/mechanics/toggle-onlineoffline-status"},{"title":"Update mechanic location (HTTP fallback)","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /mechanics/location","href":"/api-reference/mechanics/update-mechanic-location-http-fallback"},{"title":"Get mechanic statistics","deprecated":null,"version":null,"openapi":"/openapi.yaml get /mechanics/me/stats","href":"/api-reference/mechanics/get-mechanic-statistics"},{"title":"List own uploaded documents","deprecated":null,"version":null,"openapi":"/openapi.yaml get /mechanics/me/documents","href":"/api-reference/mechanics/list-own-uploaded-documents"}]},{"group":"jobs","pages":[{"title":"List own jobs (paginated)","deprecated":null,"version":null,"openapi":"/openapi.yaml get /jobs","href":"/api-reference/jobs/list-own-jobs-paginated"},{"title":"Create job and trigger dispatch (customer only)","deprecated":null,"version":null,"openapi":"/openapi.yaml post /jobs","href":"/api-reference/jobs/create-job-and-trigger-dispatch-customer-only"},{"title":"Get job details","deprecated":null,"version":null,"openapi":"/openapi.yaml get /jobs/{id}","href":"/api-reference/jobs/get-job-details"},{"title":"Mechanic accepts job offer","deprecated":null,"version":null,"openapi":"/openapi.yaml post /jobs/{id}/accept","href":"/api-reference/jobs/mechanic-accepts-job-offer"},{"title":"Mechanic declines job offer","deprecated":null,"version":null,"openapi":"/openapi.yaml post /jobs/{id}/decline","href":"/api-reference/jobs/mechanic-declines-job-offer"},{"title":"Mechanic marks en route","deprecated":null,"version":null,"openapi":"/openapi.yaml post /jobs/{id}/en-route","href":"/api-reference/jobs/mechanic-marks-en-route"},{"title":"Mechanic marks arrived","deprecated":null,"version":null,"openapi":"/openapi.yaml post /jobs/{id}/arrive","href":"/api-reference/jobs/mechanic-marks-arrived"},{"title":"Mechanic marks work started","deprecated":null,"version":null,"openapi":"/openapi.yaml post /jobs/{id}/start","href":"/api-reference/jobs/mechanic-marks-work-started"},{"title":"Mechanic marks job complete","deprecated":null,"version":null,"openapi":"/openapi.yaml post /jobs/{id}/complete","href":"/api-reference/jobs/mechanic-marks-job-complete"},{"title":"Cancel job","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /jobs/{id}/cancel","href":"/api-reference/jobs/cancel-job"},{"title":"List line items for a job","deprecated":null,"version":null,"openapi":"/openapi.yaml get /jobs/{id}/line-items","href":"/api-reference/jobs/list-line-items-for-a-job"},{"title":"Add line item (mechanic only)","deprecated":null,"version":null,"openapi":"/openapi.yaml post /jobs/{id}/line-items","href":"/api-reference/jobs/add-line-item-mechanic-only"},{"title":"Remove line item (mechanic only)","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /jobs/{id}/line-items/{itemId}","href":"/api-reference/jobs/remove-line-item-mechanic-only"},{"title":"Customer or admin disputes a completed job","deprecated":null,"version":null,"openapi":"/openapi.yaml post /jobs/{id}/dispute","href":"/api-reference/jobs/customer-or-admin-disputes-a-completed-job"},{"title":"Admin resolves a disputed job","deprecated":null,"version":null,"openapi":"/openapi.yaml post /jobs/{id}/resolve","href":"/api-reference/jobs/admin-resolves-a-disputed-job"}]},{"group":"comms","pages":[{"title":"Get or create a 100ms audio call room and return an auth token","description":"Idempotent. Creates a 100ms room on first call and persists the room ID to\nthe job record. Subsequent calls reuse the same room. Returns a short-lived\nauth token scoped to the caller's role (`customer` or `mechanic`).\n\n**Allowed statuses**: `accepted`, `en_route`, `arrived`, `in_progress`,\n`completed`, `disputed`\n","deprecated":null,"version":null,"openapi":"/openapi.yaml post /jobs/{jobId}/comms/token","href":"/api-reference/comms/get-or-create-a-100ms-audio-call-room-and-return-an-auth-token"},{"title":"Get chat history for a job (paginated, oldest-first)","deprecated":null,"version":null,"openapi":"/openapi.yaml get /jobs/{jobId}/comms/messages","href":"/api-reference/comms/get-chat-history-for-a-job-paginated-oldest-first"},{"title":"Send a chat message (REST fallback)","description":"Persists a chat message to the database and broadcasts it to the job room\nvia Socket.IO. Prefer the `chat:send` Socket.IO event for lower latency;\nuse this endpoint when WebSocket is unavailable.\n","deprecated":null,"version":null,"openapi":"/openapi.yaml post /jobs/{jobId}/comms/messages","href":"/api-reference/comms/send-a-chat-message-rest-fallback"}]},{"group":"tracking","pages":[{"title":"Get job tracking info (HTTP polling fallback)","deprecated":null,"version":null,"openapi":"/openapi.yaml get /tracking/jobs/{id}","href":"/api-reference/tracking/get-job-tracking-info-http-polling-fallback"}]},{"group":"payments","pages":[{"title":"Create Razorpay order (customer only)","deprecated":null,"version":null,"openapi":"/openapi.yaml post /payments/create-order","href":"/api-reference/payments/create-razorpay-order-customer-only"},{"title":"Verify Razorpay signature (optimistic UI)","deprecated":null,"version":null,"openapi":"/openapi.yaml post /payments/verify","href":"/api-reference/payments/verify-razorpay-signature-optimistic-ui"},{"title":"Razorpay webhook (no auth)","deprecated":null,"version":null,"openapi":"/openapi.yaml post /payments/webhook","href":"/api-reference/payments/razorpay-webhook-no-auth"},{"title":"Check for outstanding cancellation fees","deprecated":null,"version":null,"openapi":"/openapi.yaml get /payments/unpaid-fees","href":"/api-reference/payments/check-for-outstanding-cancellation-fees"},{"title":"Get payment status for a job","deprecated":null,"version":null,"openapi":"/openapi.yaml get /payments/{jobId}","href":"/api-reference/payments/get-payment-status-for-a-job"},{"title":"Check for outstanding cancellation fees (alias)","deprecated":true,"version":null,"openapi":"/openapi.yaml get /payments/outstanding-fees","href":"/api-reference/payments/check-for-outstanding-cancellation-fees-alias"}]},{"group":"wallet","pages":[{"title":"Get wallet balance summary","deprecated":null,"version":null,"openapi":"/openapi.yaml get /wallet/summary","href":"/api-reference/wallet/get-wallet-balance-summary"},{"title":"List wallet transactions","deprecated":null,"version":null,"openapi":"/openapi.yaml get /wallet/transactions","href":"/api-reference/wallet/list-wallet-transactions"},{"title":"List payout history","deprecated":null,"version":null,"openapi":"/openapi.yaml get /wallet/payouts","href":"/api-reference/wallet/list-payout-history"},{"title":"List UPI accounts","deprecated":null,"version":null,"openapi":"/openapi.yaml get /wallet/upi","href":"/api-reference/wallet/list-upi-accounts"},{"title":"Add and verify a UPI account","deprecated":null,"version":null,"openapi":"/openapi.yaml post /wallet/upi","href":"/api-reference/wallet/add-and-verify-a-upi-account"},{"title":"Admin approve UPI account","deprecated":null,"version":null,"openapi":"/openapi.yaml post /wallet/upi/{upiAccountId}/approve","href":"/api-reference/wallet/admin-approve-upi-account"},{"title":"Raise a dispute","deprecated":null,"version":null,"openapi":"/openapi.yaml post /wallet/disputes","href":"/api-reference/wallet/raise-a-dispute"},{"title":"Get disputes for a job","deprecated":null,"version":null,"openapi":"/openapi.yaml get /wallet/disputes/job/{jobId}","href":"/api-reference/wallet/get-disputes-for-a-job"},{"title":"Resolve a dispute (admin)","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /wallet/disputes/{disputeId}/resolve","href":"/api-reference/wallet/resolve-a-dispute-admin"},{"title":"Initiate a refund (admin)","deprecated":null,"version":null,"openapi":"/openapi.yaml post /wallet/refunds","href":"/api-reference/wallet/initiate-a-refund-admin"},{"title":"List refunds for a payment","deprecated":null,"version":null,"openapi":"/openapi.yaml get /wallet/refunds/{paymentId}","href":"/api-reference/wallet/list-refunds-for-a-payment"}]},{"group":"ratings","pages":[{"title":"Submit a rating","deprecated":null,"version":null,"openapi":"/openapi.yaml post /ratings","href":"/api-reference/ratings/submit-a-rating"},{"title":"Get mechanic ratings","deprecated":null,"version":null,"openapi":"/openapi.yaml get /ratings/mechanic/{mechanicProfileId}","href":"/api-reference/ratings/get-mechanic-ratings"},{"title":"Get both ratings for a job","deprecated":null,"version":null,"openapi":"/openapi.yaml get /ratings/job/{jobId}","href":"/api-reference/ratings/get-both-ratings-for-a-job"}]},{"group":"service-categories","pages":[{"title":"List categories (filter by vehicle type)","deprecated":null,"version":null,"openapi":"/openapi.yaml get /service-categories","href":"/api-reference/service-categories/list-categories-filter-by-vehicle-type"},{"title":"Create new category (admin only)","deprecated":null,"version":null,"openapi":"/openapi.yaml post /service-categories","href":"/api-reference/service-categories/create-new-category-admin-only"},{"title":"Get specific category","deprecated":null,"version":null,"openapi":"/openapi.yaml get /service-categories/{id}","href":"/api-reference/service-categories/get-specific-category"},{"title":"Delete category (admin only)","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /service-categories/{id}","href":"/api-reference/service-categories/delete-category-admin-only"},{"title":"Update category (admin only)","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /service-categories/{id}","href":"/api-reference/service-categories/update-category-admin-only"}]},{"group":"notifications","pages":[{"title":"List notifications (paginated)","deprecated":null,"version":null,"openapi":"/openapi.yaml get /notifications","href":"/api-reference/notifications/list-notifications-paginated"},{"title":"Register/update FCM push token","deprecated":null,"version":null,"openapi":"/openapi.yaml put /notifications/fcm-token","href":"/api-reference/notifications/registerupdate-fcm-push-token"},{"title":"Mark all notifications as read","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /notifications/read-all","href":"/api-reference/notifications/mark-all-notifications-as-read"},{"title":"Mark single notification as read","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /notifications/{id}/read","href":"/api-reference/notifications/mark-single-notification-as-read"}]},{"group":"uploads","pages":[{"title":"Generate S3 presigned upload URL","deprecated":null,"version":null,"openapi":"/openapi.yaml post /uploads/presigned-url","href":"/api-reference/uploads/generate-s3-presigned-upload-url"}]},{"group":"admin","pages":[{"title":"Get admin dashboard stats","deprecated":null,"version":null,"openapi":"/openapi.yaml get /admin/dashboard","href":"/api-reference/admin/get-admin-dashboard-stats"},{"title":"List all users","deprecated":null,"version":null,"openapi":"/openapi.yaml get /admin/users","href":"/api-reference/admin/list-all-users"},{"title":"List all mechanics","deprecated":null,"version":null,"openapi":"/openapi.yaml get /admin/mechanics","href":"/api-reference/admin/list-all-mechanics"},{"title":"Verify/reject mechanic","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /admin/mechanics/{id}/verify","href":"/api-reference/admin/verifyreject-mechanic"},{"title":"Get mechanic documents","deprecated":null,"version":null,"openapi":"/openapi.yaml get /admin/mechanics/{id}/documents","href":"/api-reference/admin/get-mechanic-documents"},{"title":"Review document","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /admin/documents/{id}/review","href":"/api-reference/admin/review-document"},{"title":"List all jobs","deprecated":null,"version":null,"openapi":"/openapi.yaml get /admin/jobs","href":"/api-reference/admin/list-all-jobs"},{"title":"Get job detail","deprecated":null,"version":null,"openapi":"/openapi.yaml get /admin/jobs/{id}","href":"/api-reference/admin/get-job-detail"},{"title":"Payment aggregate stats","deprecated":null,"version":null,"openapi":"/openapi.yaml get /admin/payments/stats","href":"/api-reference/admin/payment-aggregate-stats"},{"title":"List payments (paginated)","deprecated":null,"version":null,"openapi":"/openapi.yaml get /admin/payments","href":"/api-reference/admin/list-payments-paginated"},{"title":"Initiate refund","deprecated":null,"version":null,"openapi":"/openapi.yaml post /admin/payments/{id}/refund","href":"/api-reference/admin/initiate-refund"},{"title":"List all service categories (admin)","deprecated":null,"version":null,"openapi":"/openapi.yaml get /admin/service-categories","href":"/api-reference/admin/list-all-service-categories-admin"},{"title":"Create service category (admin)","deprecated":null,"version":null,"openapi":"/openapi.yaml post /admin/service-categories","href":"/api-reference/admin/create-service-category-admin"},{"title":"Delete service category (admin)","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /admin/service-categories/{id}","href":"/api-reference/admin/delete-service-category-admin"},{"title":"Update service category (admin)","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /admin/service-categories/{id}","href":"/api-reference/admin/update-service-category-admin"}]},{"group":"super-admin","pages":[{"title":"List all admin invites","deprecated":null,"version":null,"openapi":"/openapi.yaml get /super-admin/invites","href":"/api-reference/super-admin/list-all-admin-invites"},{"title":"Create an admin invite","deprecated":null,"version":null,"openapi":"/openapi.yaml post /super-admin/invites","href":"/api-reference/super-admin/create-an-admin-invite"},{"title":"Revoke a pending admin invite","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /super-admin/invites/{id}/revoke","href":"/api-reference/super-admin/revoke-a-pending-admin-invite"},{"title":"Update a user's role","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /super-admin/users/{id}/role","href":"/api-reference/super-admin/update-a-users-role"}]},{"group":"call","pages":[{"title":"Initiate a call (ring the other party)","deprecated":null,"version":null,"openapi":"/openapi.yaml post /jobs/{jobId}/call/initiate","href":"/api-reference/call/initiate-a-call-ring-the-other-party"},{"title":"Accept an incoming call (exchange nonce for HMS token)","deprecated":null,"version":null,"openapi":"/openapi.yaml post /jobs/{jobId}/call/accept","href":"/api-reference/call/accept-an-incoming-call-exchange-nonce-for-hms-token"},{"title":"Decline an incoming call","deprecated":null,"version":null,"openapi":"/openapi.yaml post /jobs/{jobId}/call/decline","href":"/api-reference/call/decline-an-incoming-call"},{"title":"Cancel an outgoing call before answered","deprecated":null,"version":null,"openapi":"/openapi.yaml post /jobs/{jobId}/call/cancel","href":"/api-reference/call/cancel-an-outgoing-call-before-answered"},{"title":"End an active call (hangup)","deprecated":null,"version":null,"openapi":"/openapi.yaml post /jobs/{jobId}/call/end","href":"/api-reference/call/end-an-active-call-hangup"}]}]}]},"basePath":"","title":"Get chat history for a job (paginated, oldest-first) - MechZie API","buildId":"dpl_9yaRmq8qi7yyMZn9oEWmKEdYMvGZ","deploymentId":"dpl_9yaRmq8qi7yyMZn9oEWmKEdYMvGZ","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-Bsljvftq.js","utils-BEZX0tmN.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-BrDD79Na.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-2c3Nf5XI.js","snippetPresets-CWWkg29k.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-SJmWKHmz.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BYc8UL58.js","shallow-UTXCq4wY.js","getApiPlaygroundDisplay-D1ZcrmBl.js","CodeSnippet-CTS7L7R4.js","CodeSnippets-MsBYl-gd.js","Page-BxumJvVQ.js","getPastedJson-C_5Mq0uv.js","icon-D7sYgD4k.js","MethodPill-B7Q6uD_j.js","DuplicateIcon-DXGzB8u_.js","createIcon-UDYg_Gk8.js","DynamicMarkdown-BBrVIqs3.js","SectionHeading-BxanXFN4.js","axios-vUo_bRtp.js","Markdown-DAhL0GAo.js","clsx-BZ8NiN2w.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CpdUkuDP.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-sMo3-CxC.js"]}