recordings — audio from calls placed on your Tuco line, captured automatically.
items — files you uploaded, via Upload attachment or the Leads → Upload audio etc tab.
Use this when you want everything in the workspace. To pull the calls made to one
specific lead, use Get call recordings
instead — that endpoint takes a phone number and returns full call timing.
Recordings and uploads are paged independently, each with its own cursor. Pass
recordingsCursor to advance recordings and cursor to advance uploads; you can
send both, either, or neither.
# next page of recordings onlycurl "https://app.tuco.ai/api/attachments/list?limit=20&recordingsCursor=CURSOR_FROM_LAST_RESPONSE" \ -H "Authorization: Bearer tuco_your_key"
limit applies to each list, so limit=20 can return up to 20 recordings and
up to 20 uploads in one response.
Every url is a signed link that expires. Do not store it — keep the callId
(for recordings) or pathname, and call this endpoint again when you need fresh
links. The audio itself is kept indefinitely; only the link is time-limited.
Links from this endpoint are valid for 1 year. Note that the same recording
requested via Get call recordings returns
a link valid for 30 days — treat both as short-lived and re-fetch rather than
caching either.
Call recordings are MP3, mono — both sides of the conversation are mixed into a
single channel. Good for playback and transcription; not suited to separating the
speakers.
You only ever see your own workspace’s recordings and uploads. The API key you
authenticate with determines the workspace, and there is no parameter to query
another one.
Unexpected server error — the response body is { "error": "Could not load your uploads. Please try again." }
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Tuco AI","colors":{"primary":"#FF3515","light":"#FFF5F2","dark":"#111827"},"logo":{"light":"https://mintcdn.com/tucoai/oqQbf84LeXHYKs-3/logo/light.svg?fit=max\u0026auto=format\u0026n=oqQbf84LeXHYKs-3\u0026q=85\u0026s=c601a209f9f05fe52c2cd2e67d63adeb","dark":"https://mintcdn.com/tucoai/oqQbf84LeXHYKs-3/logo/dark.svg?fit=max\u0026auto=format\u0026n=oqQbf84LeXHYKs-3\u0026q=85\u0026s=2d4cbb7e9dea8411a50d67377ca76578"},"favicon":"https://mintcdn.com/tucoai/oqQbf84LeXHYKs-3/images/tuco_v1_round.svg?fit=max\u0026auto=format\u0026n=oqQbf84LeXHYKs-3\u0026q=85\u0026s=0c579fbfd834a8ce1afe94ec9a63c4a6","api":{"openapi":"api-reference/openapi.json","mdx":{"auth":{"method":"bearer"},"server":"https://app.tuco.ai"}},"navbar":{"links":[{"href":"mailto:support@tuco.ai","label":"Support"}],"primary":{"type":"button","label":"Get Started","href":"https://app.tuco.ai"}},"footer":{"socials":{"x":"https://x.com/tucoai","linkedin":"https://linkedin.com/company/tuco-ai"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"Dashboard","icon":"browser","href":"https://app.tuco.ai"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"tucoai","hasAudioNarration":false,"actualSubdomain":"tucoai","customDomains":["docs.tuco.ai"],"gitSource":{"type":"github","owner":"goforbg","repo":"tuco-docs","deployBranch":"master","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aea34ca8cd146ea27af6d3f","collectionId":"fde89af5-3aa1-4c29-8796-1316a47c733f","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aea34ca8cd146ea27af6d3f"},"entitlements":{},"buildId":"6aea34ca8cd146ea27af6d3f","clientVersion":"0.0.4067","searchFilterCounts":[{"language":"default","tag":"API Reference","count":98},{"language":"default","tag":"Documentation","count":65},{"language":"default","tag":"Lines \u0026 Leads","count":21},{"language":"default","tag":"Messages","count":14},{"language":"default","tag":"Goal Bots","count":14},{"language":"default","tag":"Webhooks","count":13},{"language":"default","tag":"iMessage Guides","count":13},{"language":"default","tag":"Agency","count":11},{"language":"default","tag":"Core Features","count":8},{"language":"default","tag":"Integrations","count":8}]},"assistantConfig":{"enableStarterQuestions":false},"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":"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":[],"page":{"pagePath":"api-reference/endpoint/list-recordings","slug":"/api-reference/endpoint/list-recordings","pageMetadata":{"title":"List Recordings \u0026 Uploads Endpoint","api":"GET /api/attachments/list","tag":"BETA","description":"List every call recording and uploaded file in your workspace, newest first, with signed playback links.","href":"/api-reference/endpoint/list-recordings"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"List every call recording and uploaded file in your workspace, newest first, with signed playback links.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,em:`em`,hr:`hr`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Expandable,Heading,Info,Note,ParamField,ResponseField,Table,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Expandable)_missingMdxReference(`Expandable`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!Note)_missingMdxReference(`Note`,true);if(!ParamField)_missingMdxReference(`ParamField`,true);if(!ResponseField)_missingMdxReference(`ResponseField`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(Info,{children:[`This endpoint is in `,_jsx(_components.strong,{children:`beta`}),`. The interface is stable enough to build on; we may add fields as it matures.`]}),`\n`,_jsx(Heading,{level:`2`,id:`overview`,children:`Overview`}),`\n`,_jsx(_components.p,{children:`Returns two separate lists for your workspace:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`recordings`})}),` — audio from calls placed on your Tuco line, captured automatically.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`items`})}),` — files `,_jsx(_components.em,{children:`you`}),` uploaded, via `,_jsx(_components.a,{href:`/api-reference/upload-attachment`,children:`Upload attachment`}),` or the `,_jsx(_components.strong,{children:`Leads → Upload audio etc`}),` tab.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Use this when you want everything in the workspace. To pull the calls made to one\nspecific lead, use `,_jsx(_components.a,{href:`/api-reference/endpoint/get-recordings`,children:`Get call recordings`}),`\ninstead — that endpoint takes a phone number and returns full call timing.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`making-a-request`,children:`Making a request`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Method`}),`: `,_jsx(_components.code,{children:`GET`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`URL`}),`: `,_jsx(_components.code,{children:`https://app.tuco.ai/api/attachments/list`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Headers`}),`: `,_jsx(_components.code,{children:`Authorization: Bearer tuco_...`})]}),`\n`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://app.tuco.ai/api/attachments/list?limit=20\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer tuco_your_key\"`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`query-parameters`,children:`Query parameters`}),`\n`,_jsx(ParamField,{query:`limit`,type:`number`,id:`param-limit`,children:_jsxs(_components.p,{children:[`Max entries to return per list. Default `,_jsx(_components.code,{children:`20`}),`, min `,_jsx(_components.code,{children:`1`}),`, max `,_jsx(_components.code,{children:`100`}),`.`]})}),`\n`,_jsx(ParamField,{query:`cursor`,type:`string`,id:`param-cursor`,children:_jsxs(_components.p,{children:[`Opaque cursor from a previous response’s `,_jsx(_components.code,{children:`nextCursor`}),`, to page through `,_jsx(_components.strong,{children:`uploads`}),`.`]})}),`\n`,_jsx(ParamField,{query:`recordingsCursor`,type:`string`,id:`param-recordings-cursor`,children:_jsxs(_components.p,{children:[`Opaque cursor from a previous response’s `,_jsx(_components.code,{children:`recordingsNextCursor`}),`, to page through\n`,_jsx(_components.strong,{children:`recordings`}),`. Recordings and uploads paginate independently — see\n`,_jsx(_components.a,{href:`#paging`,children:`Paging`}),`.`]})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`response`,children:`Response`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`32`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`32`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"recordings\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"url\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://app.tuco.ai/api/attachments/crm-media/6aac0729....mp3?u=...\u0026exp=...\u0026sig=...\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Call → +15145550123 · 3:40\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"size\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`878733`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"uploadedAt\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-09-17T15:28:41.632Z\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"pathname\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"workspaces/org_.../recordings/6aac0729....mp3\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"isAudio\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"kind\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"recording\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"callId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"6aac072927e54a4003b72623\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"toE164\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"+15145550123\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"fromE164\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"+13025550999\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"durationSec\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`220`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ],`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"recordingsNextCursor\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"recordingsHasMore\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"items\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"url\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://app.tuco.ai/api/attachments/crm-media/vn.m4a?u=...\u0026exp=...\u0026sig=...\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"vn.m4a\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"size\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`45056`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"uploadedAt\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-09-18T10:02:11.000Z\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"pathname\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"workspaces/org_.../attachments/....m4a\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"isAudio\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"kind\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"upload\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ],`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"nextCursor\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"hasMore\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(ResponseField,{name:`recordings`,type:`array`,id:`param-recordings`,children:[_jsx(_components.p,{children:`Call recordings, newest first.`}),_jsxs(Expandable,{title:`recording fields`,children:[_jsxs(ResponseField,{name:`url`,type:`string`,id:`param-url`,children:[`Signed playback/download URL. See `,_jsx(_components.a,{href:`#links-expire`,children:`Links expire`}),`.`]}),_jsxs(ResponseField,{name:`name`,type:`string`,id:`param-name`,children:[`Display label, e.g. `,_jsx(_components.code,{children:`Call → +15145550123 · 3:40`}),`.`]}),_jsx(ResponseField,{name:`size`,type:`number`,id:`param-size`,children:`File size in bytes.`}),_jsx(ResponseField,{name:`uploadedAt`,type:`string`,id:`param-uploaded-at`,children:`When the call was answered; falls back to when it was requested, then to when the audio was stored.`}),_jsx(ResponseField,{name:`pathname`,type:`string`,id:`param-pathname`,children:`Internal storage path. Informational only.`}),_jsxs(ResponseField,{name:`isAudio`,type:`boolean`,id:`param-is-audio`,children:[`Always `,_jsx(_components.code,{children:`true`}),` for recordings.`]}),_jsxs(ResponseField,{name:`kind`,type:`string`,id:`param-kind`,children:[`Always `,_jsx(_components.code,{children:`recording`}),`. Use this to tell the two lists apart if you merge them.`]}),_jsxs(ResponseField,{name:`callId`,type:`string`,id:`param-call-id`,children:[`The call’s ID — pass it to your own systems, or match it against `,_jsx(_components.a,{href:`/api-reference/endpoint/get-recordings`,children:`Get call recordings`}),`.`]}),_jsxs(ResponseField,{name:`toE164`,type:`string`,id:`param-to-e164`,children:[`Number that was called. `,_jsx(_components.code,{children:`null`}),` if the call record is unavailable.`]}),_jsxs(ResponseField,{name:`fromE164`,type:`string`,id:`param-from-e164`,children:[`Caller ID the lead saw. `,_jsx(_components.code,{children:`null`}),` if the call record is unavailable.`]}),_jsxs(ResponseField,{name:`durationSec`,type:`number`,id:`param-duration-sec`,children:[`Talk time in seconds. `,_jsx(_components.code,{children:`null`}),` if the call record is unavailable.`]})]})]}),`\n`,_jsxs(ResponseField,{name:`recordingsNextCursor`,type:`string`,id:`param-recordings-next-cursor`,children:[`Cursor for the next page of recordings, or `,_jsx(_components.code,{children:`null`}),`.`]}),`\n`,_jsx(ResponseField,{name:`recordingsHasMore`,type:`boolean`,id:`param-recordings-has-more`,children:`Whether more recordings exist beyond this page.`}),`\n`,_jsxs(ResponseField,{name:`items`,type:`array`,id:`param-items`,children:[_jsx(_components.p,{children:`Files you uploaded, newest first.`}),_jsxs(Expandable,{title:`upload fields`,children:[_jsx(ResponseField,{name:`url`,type:`string`,id:`param-url-1`,children:`Signed download URL.`}),_jsx(ResponseField,{name:`name`,type:`string`,id:`param-name-1`,children:`Original filename.`}),_jsx(ResponseField,{name:`size`,type:`number`,id:`param-size-1`,children:`File size in bytes.`}),_jsx(ResponseField,{name:`uploadedAt`,type:`string`,id:`param-uploaded-at-1`,children:`When it was uploaded.`}),_jsx(ResponseField,{name:`pathname`,type:`string`,id:`param-pathname-1`,children:`Internal storage path. Informational only.`}),_jsx(ResponseField,{name:`isAudio`,type:`boolean`,id:`param-is-audio-1`,children:`Whether the file is a supported audio type.`}),_jsxs(ResponseField,{name:`kind`,type:`string`,id:`param-kind-1`,children:[`Always `,_jsx(_components.code,{children:`upload`}),`.`]})]})]}),`\n`,_jsxs(ResponseField,{name:`nextCursor`,type:`string`,id:`param-next-cursor`,children:[`Cursor for the next page of uploads, or `,_jsx(_components.code,{children:`null`}),`.`]}),`\n`,_jsx(ResponseField,{name:`hasMore`,type:`boolean`,id:`param-has-more`,children:`Whether more uploads exist beyond this page.`}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`paging`,children:`Paging`}),`\n`,_jsxs(_components.p,{children:[`Recordings and uploads are `,_jsx(_components.strong,{children:`paged independently`}),`, each with its own cursor. Pass\n`,_jsx(_components.code,{children:`recordingsCursor`}),` to advance recordings and `,_jsx(_components.code,{children:`cursor`}),` to advance uploads; you can\nsend both, either, or neither.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# next page of recordings only`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://app.tuco.ai/api/attachments/list?limit=20\u0026recordingsCursor=CURSOR_FROM_LAST_RESPONSE\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer tuco_your_key\"`})]}),`\n`]})})}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`limit`}),` applies to `,_jsx(_components.strong,{children:`each`}),` list, so `,_jsx(_components.code,{children:`limit=20`}),` can return up to 20 recordings `,_jsx(_components.em,{children:`and`}),`\nup to 20 uploads in one response.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`links-expire`,children:`Links expire`}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Every `,_jsx(_components.code,{children:`url`}),` is a `,_jsx(_components.strong,{children:`signed link that expires`}),`. Do not store it — keep the `,_jsx(_components.code,{children:`callId`}),`\n(for recordings) or `,_jsx(_components.code,{children:`pathname`}),`, and call this endpoint again when you need fresh\nlinks. The audio itself is kept indefinitely; only the link is time-limited.`]})}),`\n`,_jsxs(_components.p,{children:[`Links from this endpoint are valid for `,_jsx(_components.strong,{children:`1 year`}),`. Note that the same recording\nrequested via `,_jsx(_components.a,{href:`/api-reference/endpoint/get-recordings`,children:`Get call recordings`}),` returns\na link valid for `,_jsx(_components.strong,{children:`30 days`}),` — treat both as short-lived and re-fetch rather than\ncaching either.`]}),`\n`,_jsx(Heading,{level:`2`,id:`format`,children:`Format`}),`\n`,_jsxs(_components.p,{children:[`Call recordings are `,_jsx(_components.strong,{children:`MP3, mono`}),` — both sides of the conversation are mixed into a\nsingle channel. Good for playback and transcription; not suited to separating the\nspeakers.`]}),`\n`,_jsx(Heading,{level:`2`,id:`scope`,children:`Scope`}),`\n`,_jsx(_components.p,{children:`You only ever see your own workspace’s recordings and uploads. The API key you\nauthenticate with determines the workspace, and there is no parameter to query\nanother one.`}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`errors`,children:`Errors`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`HTTP`}),_jsx(_components.th,{children:`Meaning`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`401`}),_jsx(_components.td,{children:`Missing or invalid API key`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`500`}),_jsxs(_components.td,{children:[`Unexpected server error — the response body is `,_jsx(_components.code,{children:`{ \"error\": \"Could not load your uploads. Please try again.\" }`})]})]})]})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"List Recordings \u0026 Uploads Endpoint","api":"GET /api/attachments/list","tag":"BETA","description":"List every call recording and uploaded file in your workspace, newest first, with signed playback links.","href":"/api-reference/endpoint/list-recordings"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Overview","slug":"overview","depth":2,"children":[]},{"title":"Making a request","slug":"making-a-request","depth":2,"children":[{"title":"Query parameters","slug":"query-parameters","depth":3,"children":[]}]},{"title":"Response","slug":"response","depth":2,"children":[]},{"title":"Paging","slug":"paging","depth":2,"children":[]},{"title":"Links expire","slug":"links-expire","depth":2,"children":[]},{"title":"Format","slug":"format","depth":2,"children":[]},{"title":"Scope","slug":"scope","depth":2,"children":[]},{"title":"Errors","slug":"errors","depth":2,"children":[]}],"codeExamples":{},"endpoint":{"title":"List Recordings \u0026 Uploads Endpoint","path":"/api/attachments/list","servers":[{"url":"https://app.tuco.ai"}],"method":"get","request":{"security":[{"title":"Bearer Auth","parameters":{"header":{"Authorization":{"type":"http","scheme":"bearer","description":"Bearer authentication header of the form `Bearer \u003ctoken>`, where `\u003ctoken>` is your auth token."}},"query":{},"cookie":{}}}],"parameters":{"query":{"limit":{"schema":[{"type":"number","description":"Max entries to return per list. Default `20` , min `1` , max `100` ."}]},"cursor":{"schema":[{"type":"string","description":"Opaque cursor from a previous response’s `nextCursor` , to page through uploads ."}]},"recordingsCursor":{"schema":[{"type":"string","description":"Opaque cursor from a previous response’s `recordingsNextCursor` , to page through recordings . Recordings and uploads paginate independently — see Paging ."}]}},"header":{},"cookie":{},"path":{}},"body":{}},"response":{"200":{"application/json":{"schemaArray":[{"type":"object","properties":{"recordings":[{"type":"array","items":[{"type":"object","properties":{"url":[{"type":"string","description":"Signed playback/download URL. See Links expire ."}],"name":[{"type":"string","description":"Display label, e.g. `Call → +15145550123 · 3:40` ."}],"size":[{"type":"number","description":"File size in bytes."}],"uploadedAt":[{"type":"string","description":"When the call was answered; falls back to when it was requested, then to when the audio was stored."}],"pathname":[{"type":"string","description":"Internal storage path. Informational only."}],"isAudio":[{"type":"boolean","description":"Always `true` for recordings."}],"kind":[{"type":"string","description":"Always `recording` . Use this to tell the two lists apart if you merge them."}],"callId":[{"type":"string","description":"The call’s ID — pass it to your own systems, or match it against Get call recordings ."}],"toE164":[{"type":"string","description":"Number that was called. `null` if the call record is unavailable."}],"fromE164":[{"type":"string","description":"Caller ID the lead saw. `null` if the call record is unavailable."}],"durationSec":[{"type":"number","description":"Talk time in seconds. `null` if the call record is unavailable."}]}}],"description":"Call recordings, newest first."}],"recordingsNextCursor":[{"type":"string","description":"Cursor for the next page of recordings, or `null` ."}],"recordingsHasMore":[{"type":"boolean","description":"Whether more recordings exist beyond this page."}],"items":[{"type":"array","items":[{"type":"object","properties":{"url":[{"type":"string","description":"Signed download URL."}],"name":[{"type":"string","description":"Original filename."}],"size":[{"type":"number","description":"File size in bytes."}],"uploadedAt":[{"type":"string","description":"When it was uploaded."}],"pathname":[{"type":"string","description":"Internal storage path. Informational only."}],"isAudio":[{"type":"boolean","description":"Whether the file is a supported audio type."}],"kind":[{"type":"string","description":"Always `upload` ."}]}}],"description":"Files you uploaded, newest first."}],"nextCursor":[{"type":"string","description":"Cursor for the next page of uploads, or `null` ."}],"hasMore":[{"type":"boolean","description":"Whether more uploads exist beyond this page."}]}}],"examples":{"example":{"value":{"recordings":[{"url":"\u003cstring>","name":"\u003cstring>","size":123,"uploadedAt":"\u003cstring>","pathname":"\u003cstring>","isAudio":true,"kind":"\u003cstring>","callId":"\u003cstring>","toE164":"\u003cstring>","fromE164":"\u003cstring>","durationSec":123}],"recordingsNextCursor":"\u003cstring>","recordingsHasMore":true,"items":[{"url":"\u003cstring>","name":"\u003cstring>","size":123,"uploadedAt":"\u003cstring>","pathname":"\u003cstring>","isAudio":true,"kind":"\u003cstring>"}],"nextCursor":"\u003cstring>","hasMore":true}}}}}},"deprecated":false}},"jsLinks":[],"subdomain":"tucoai","siteName":"Tuco AI","title":"List Recordings \u0026 Uploads Endpoint - Tuco AI","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-21T12:36:49.442Z","originalFileLocation":"api-reference/endpoint/list-recordings.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=\"List every call recording and uploaded file in your workspace, newest first, with signed playback links.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Tuco AI\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/tucoai/pPwoyrnQogjfeGN5/_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/tucoai/pPwoyrnQogjfeGN5/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/tucoai/pPwoyrnQogjfeGN5/_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/tucoai/pPwoyrnQogjfeGN5/_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/tucoai/pPwoyrnQogjfeGN5/_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/tucoai/pPwoyrnQogjfeGN5/_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/tucoai/pPwoyrnQogjfeGN5/_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/tucoai/pPwoyrnQogjfeGN5/_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/tucoai/pPwoyrnQogjfeGN5/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"List Recordings \u0026amp; Uploads Endpoint - Tuco AI\">\u003cmeta data-mint-head property=\"og:description\" content=\"List every call recording and uploaded file in your workspace, newest first, with signed playback links.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Tuco AI\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.tuco.ai/api-reference/endpoint/list-recordings\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://tucoai.mintlify.app/_mintlify/api/og/v2?division=Voice+%2F+Calling\u0026amp;title=List+Recordings+%26+Uploads+Endpoint\u0026amp;description=List+every+call+recording+and+uploaded+file+in+your+workspace%2C+newest+first%2C+with+signed+playback+links.\u0026amp;theme=6ee776b2be11f4145c07cfc0\u0026amp;signature=7d8d6abe960af614dad5069cfbc9d130f7cb946118de54a9f7abacae868c8730\">\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=\"List Recordings \u0026amp; Uploads Endpoint - Tuco AI\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"List every call recording and uploaded file in your workspace, newest first, with signed playback links.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://tucoai.mintlify.app/_mintlify/api/og/v2?division=Voice+%2F+Calling\u0026amp;title=List+Recordings+%26+Uploads+Endpoint\u0026amp;description=List+every+call+recording+and+uploaded+file+in+your+workspace%2C+newest+first%2C+with+signed+playback+links.\u0026amp;theme=6ee776b2be11f4145c07cfc0\u0026amp;signature=7d8d6abe960af614dad5069cfbc9d130f7cb946118de54a9f7abacae868c8730\">\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/tucoai/pPwoyrnQogjfeGN5/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Tuco AI\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#FF3515\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.tuco.ai/api-reference/endpoint/list-recordings\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/endpoint/list-recordings.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.tuco.ai/#organization\",\"name\":\"Tuco AI\",\"url\":\"https://docs.tuco.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/tucoai/oqQbf84LeXHYKs-3/logo/light.svg?fit=max\u0026auto=format\u0026n=oqQbf84LeXHYKs-3\u0026q=85\u0026s=c601a209f9f05fe52c2cd2e67d63adeb\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.tuco.ai#website\",\"name\":\"Tuco AI\",\"url\":\"https://docs.tuco.ai\",\"publisher\":{\"@id\":\"https://docs.tuco.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.tuco.ai/api-reference/endpoint/list-recordings#webpage\",\"url\":\"https://docs.tuco.ai/api-reference/endpoint/list-recordings\",\"name\":\"List Recordings \u0026 Uploads Endpoint\",\"description\":\"List every call recording and uploaded file in your workspace, newest first, with signed playback links.\",\"dateModified\":\"2026-09-21T12:36:49.442Z\",\"isPartOf\":{\"@id\":\"https://docs.tuco.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.tuco.ai/api-reference/endpoint/list-recordings#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.tuco.ai/api-reference/endpoint/list-recordings#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Voice / Calling\",\"item\":\"https://docs.tuco.ai/api-reference/endpoint/place-call\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"List Recordings \u0026 Uploads Endpoint\",\"item\":\"https://docs.tuco.ai/api-reference/endpoint/list-recordings\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.tuco.ai/api-reference/endpoint/list-recordings#apireference\",\"headline\":\"List Recordings \u0026 Uploads Endpoint\",\"name\":\"List Recordings \u0026 Uploads Endpoint\",\"description\":\"List every call recording and uploaded file in your workspace, newest first, with signed playback links.\",\"url\":\"https://docs.tuco.ai/api-reference/endpoint/list-recordings\",\"mainEntityOfPage\":{\"@id\":\"https://docs.tuco.ai/api-reference/endpoint/list-recordings#webpage\"},\"dateModified\":\"2026-09-21T12:36:49.442Z\",\"publisher\":{\"@id\":\"https://docs.tuco.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.tuco.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Tuco AI\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Tuco AI","nav":{"global":{"anchors":[{"anchor":"Dashboard","icon":"browser","href":"https://app.tuco.ai"}]},"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":""}]},{"tab":"API Reference","groups":[{"group":"Overview","pages":[{"title":"API Overview","icon":"code","href":"/api-reference/introduction"},{"title":"Tuco API Keys","icon":"key","href":"/api-reference/api-keys"},{"title":"Agency API Keys","icon":"building","href":"/api-reference/agency-api-keys"}]},{"group":"Webhooks","pages":[{"title":"Webhooks Overview","icon":"webhook","href":"/api-reference/endpoint/webhook"},{"title":"Message Webhooks","icon":"webhook","href":"/api-reference/message-webhooks"},{"title":"List Webhooks","api":"GET /api/webhooks","href":"/api-reference/endpoint/list-webhooks"},{"title":"Create Webhook","api":"POST /api/webhooks","href":"/api-reference/endpoint/create-webhook"},{"title":"Get Webhook","api":"GET /api/webhooks/{id}","href":"/api-reference/endpoint/get-webhook"},{"title":"Update Webhook","api":"PATCH /api/webhooks/{id}","href":"/api-reference/endpoint/update-webhook"},{"title":"Delete Webhook","api":"DELETE /api/webhooks/{id}","href":"/api-reference/endpoint/delete-webhook"},{"title":"Rotate Webhook Secret","api":"POST /api/webhooks/{id}/rotate-secret","href":"/api-reference/endpoint/rotate-webhook-secret"},{"title":"Send Test Webhook","api":"POST /api/webhooks/{id}/test","href":"/api-reference/endpoint/send-test-webhook"},{"title":"Webhook Health Check","api":"POST /api/webhooks/{id}/health-check","href":"/api-reference/endpoint/test-webhook"},{"title":"List Webhook Deliveries","api":"GET /api/webhooks/{id}/deliveries","href":"/api-reference/endpoint/list-webhook-deliveries"},{"title":"Get Webhook Delivery","api":"GET /api/webhooks/{id}/deliveries/{deliveryId}","href":"/api-reference/endpoint/get-webhook-delivery"},{"title":"Replay Webhook Delivery","api":"POST /api/webhooks/{id}/deliveries/{deliveryId}/replay","href":"/api-reference/endpoint/replay-webhook-delivery"}]},{"group":"Errors and status codes","pages":[{"title":"Errors \u0026 Status Codes","icon":"circle-exclamation","href":"/api-reference/errors"}]},{"group":"iMessage Availability","pages":[{"title":"Check iMessage Availability (Single Address)","api":"GET /api/check-availability","href":"/api-reference/endpoint/check-availability"},{"title":"Check iMessage Availability (Round-Robin)","api":"POST /api/check-availability-rr","href":"/api-reference/endpoint/check-availability-rr"},{"title":"Check iMessage Availability (Single Lead)","api":"GET /api/leads/check-availability","href":"/api-reference/endpoint/lead-check-availability"},{"title":"Bulk Availability Check Endpoint","api":"POST /api/leads/check-availability","href":"/api-reference/endpoint/bulk-check-availability"}]},{"group":"Messages","pages":[{"title":"Messages","icon":"paper-plane","href":"/api-reference/messages"},{"title":"Drip (bulk shock-absorber)","icon":"faucet-drip","href":"/api-reference/drip"},{"title":"Send Message","api":"POST /api/messages","href":"/api-reference/endpoint/send-message"},{"title":"Get Message History","api":"GET /api/messages","href":"/api-reference/endpoint/get-messages"},{"title":"Send Drip","api":"POST /api/drip","href":"/api-reference/endpoint/send-drip"},{"title":"Send Reaction","api":"POST /api/messages/react","href":"/api-reference/endpoint/send-reaction"},{"title":"Send Typing Indicator","api":"POST /api/messages/typing","href":"/api-reference/endpoint/send-typing-indicator"},{"title":"Send with Attachments","api":"POST /api/messages","href":"/api-reference/endpoint/send-with-attachments"},{"title":"Upload Attachment","openapi":"POST /api/attachments/upload","href":"/api-reference/upload-attachment"},{"title":"Cancel Pending Messages","api":"POST /api/messages/cancel-for-lead","href":"/api-reference/endpoint/cancel-for-lead"},{"title":"Read Fallback SMS Config","api":"GET /api/workspace/fallback-config","href":"/api-reference/endpoint/fallback-config"},{"title":"Update Fallback SMS Config","api":"PATCH /api/workspace/fallback-config","href":"/api-reference/endpoint/update-fallback-config"},{"title":"Atomic Duplicate Guard — POST /api/messages","href":"/imessage-double-send-guard"},{"title":"Message Status","api":"GET /api/messages/{messageId}/journey","href":"/api-reference/endpoint/message-journey"}]},{"group":"Voice / Calling","pages":[{"title":"Place a Call Endpoint","api":"POST /api/voice/calls","tag":"BETA","href":"/api-reference/endpoint/place-call"},{"title":"Get Call Recordings Endpoint","api":"GET /api/voice/recordings","tag":"BETA","description":"Fetch a lead's calls with timing details and the recording download URL, by phone number, using your API key.","href":"/api-reference/endpoint/get-recordings"},{"title":"List Recordings \u0026 Uploads Endpoint","api":"GET /api/attachments/list","tag":"BETA","href":"/api-reference/endpoint/list-recordings"}]},{"group":"Replies","pages":[{"title":"List Conversations","api":"GET /api/unibox/conversations","description":"Read a workspace's inbox — every conversation with its thread, unread count, tags and status, with filters and pagination.","href":"/api-reference/endpoint/conversations"},{"title":"Check Replies","api":"GET /api/replies","href":"/api-reference/endpoint/get-replies"}]},{"group":"Do Not Contact","pages":[{"title":"List / Check Do-Not-Contact","openapi":"GET /api/dnc","href":"/api-reference/endpoint/list-dnc"},{"title":"Add to Do-Not-Contact","openapi":"POST /api/dnc","href":"/api-reference/endpoint/add-dnc"},{"title":"Bulk Add to Do-Not-Contact","openapi":"PATCH /api/dnc","href":"/api-reference/endpoint/bulk-add-dnc"}]},{"group":"Lines \u0026 Leads","pages":[{"title":"Lines API","icon":"phone","href":"/api-reference/lines"},{"title":"Get All Lines","api":"GET /api/lines/by-user","href":"/api-reference/endpoint/get-lines"},{"title":"Update a Line","api":"PATCH /api/lines/{id}","href":"/api-reference/endpoint/update-line"},{"title":"Line Plan Limits","api":"GET /api/lines/limits","href":"/api-reference/endpoint/line-limits"},{"title":"Calling Add-ons","api":"GET /api/lines/{id}/calling-addons","href":"/api-reference/endpoint/calling-addons"},{"title":"Calling Add-on Slots","api":"GET /api/lines/calling-addon-slots","href":"/api-reference/endpoint/calling-addon-slots"},{"title":"Caller ID Details","api":"GET /api/workspace/caller-id-profile","href":"/api-reference/endpoint/caller-id-profile"},{"title":"Leads API","icon":"users","href":"/api-reference/leads"},{"title":"Create / Upload Lead Endpoint","api":"POST /api/leads","href":"/api-reference/endpoint/create"},{"title":"Get \u0026 Search Leads","api":"GET /api/leads","href":"/api-reference/endpoint/get"},{"title":"Delete Lead Endpoint","api":"DELETE /api/leads","href":"/api-reference/endpoint/delete"},{"title":"List Lead Lists","api":"GET /api/lists","href":"/api-reference/endpoint/list-lists"},{"title":"Create Lead List","api":"POST /api/lists","href":"/api-reference/endpoint/create-list"},{"title":"Delete Lead List","api":"DELETE /api/lists","href":"/api-reference/endpoint/delete-list"},{"title":"List Custom Field Keys","api":"GET /api/leads/custom-field-keys","href":"/api-reference/endpoint/custom-field-keys"},{"title":"Create Line Request","api":"POST /api/line-requests","href":"/api-reference/endpoint/create-line-request"},{"title":"Get Line Request","api":"GET /api/line-requests/{id}","href":"/api-reference/endpoint/get-line-request"},{"title":"Manage Line Request","api":"POST /api/line-requests/{id}","href":"/api-reference/endpoint/manage-line-request"},{"title":"Cancel a Line","api":"POST /api/lines/cancel","href":"/api-reference/endpoint/cancel-line"},{"title":"Get Lead","api":"GET /api/leads/{id}","href":"/api-reference/endpoint/get-lead"},{"title":"Update Lead","api":"PATCH /api/leads/{id}","href":"/api-reference/endpoint/update-lead"}]},{"group":"Analytics","pages":[{"title":"Analytics","icon":"chart-line","href":"/api-reference/analytics"},{"title":"Analytics Insights","api":"GET /api/analytics/insights","href":"/api-reference/endpoint/analytics-insights"},{"title":"Analytics Day Conversations","api":"GET /api/analytics/conversations","href":"/api-reference/endpoint/analytics-conversations"}]},{"group":"Goal Bots","pages":[{"title":"List Goal Bots","api":"GET /api/goal-bots","href":"/api-reference/endpoint/list-goal-bots"},{"title":"Create Goal Bot","api":"POST /api/goal-bots","href":"/api-reference/endpoint/create-goal-bot"},{"title":"Get Goal Bot","api":"GET /api/goal-bots/{id}","href":"/api-reference/endpoint/get-goal-bot"},{"title":"Update Goal Bot","api":"PATCH /api/goal-bots/{id}","href":"/api-reference/endpoint/update-goal-bot"},{"title":"Delete Goal Bot","api":"DELETE /api/goal-bots/{id}","href":"/api-reference/endpoint/archive-goal-bot"},{"title":"Simulate Goal Bot","api":"POST /api/goal-bots/{id}/simulate","href":"/api-reference/endpoint/simulate-goal-bot"},{"title":"Reply Hours","api":"GET|PUT|DELETE /api/goal-bots/{id}/reply-hours","href":"/api-reference/endpoint/reply-hours"},{"title":"List Instruction Bots (retired)","api":"GET /api/instructions","href":"/api-reference/endpoint/list-instruction-bots"},{"title":"List Task Agents","api":"GET /api/tasks","href":"/api-reference/endpoint/list-task-agents"},{"title":"Create Task Agent","api":"POST /api/tasks","href":"/api-reference/endpoint/create-task-agent"},{"title":"Update Task Agent","api":"PATCH /api/tasks/{id}","href":"/api-reference/endpoint/update-task-agent"},{"title":"Delete Task Agent","api":"DELETE /api/tasks/{id}","href":"/api-reference/endpoint/delete-task-agent"},{"title":"Enroll Lead (instruction bots)","api":"POST /api/instructions/{id}/enroll","href":"/api-reference/endpoint/enroll-lead"},{"title":"Unenroll Lead","api":"DELETE /api/goal-bots/{id}/enroll","href":"/api-reference/endpoint/unenroll-lead"}]},{"group":"API Tools","pages":[{"title":"List API Tools","api":"GET /api/campaign-tools","href":"/api-reference/endpoint/list-tools"},{"title":"Create or Update API Tool","api":"POST /api/campaign-tools","href":"/api-reference/endpoint/save-tool"},{"title":"Delete API Tool","api":"DELETE /api/campaign-tools","href":"/api-reference/endpoint/delete-tool"},{"title":"Test API Tool","api":"POST /api/campaign-tools/test","href":"/api-reference/endpoint/test-tool"}]},{"group":"Agency","pages":[{"title":"Agency API Keys","icon":"building","href":"/api-reference/agency-api-keys"},{"title":"List Agency Workspaces","api":"GET /api/agency/subaccounts","href":"/api-reference/endpoint/agency-list-workspaces"},{"title":"Create Agency Workspace","api":"POST /api/agency/subaccounts","href":"/api-reference/endpoint/agency-create-workspace"},{"title":"Re-mint a Client Workspace Key","api":"POST /api/agency/workspace-keys","href":"/api-reference/endpoint/agency-workspace-keys"},{"title":"List Agency Lines","api":"GET /api/agency/lines","href":"/api-reference/endpoint/agency-list-lines"},{"title":"Move a Line Between Workspaces","api":"POST /api/agency/lines","href":"/api-reference/endpoint/agency-move-line"},{"title":"Agency Overview Stats","api":"GET /api/agency/overview","href":"/api-reference/endpoint/agency-overview"},{"title":"Agency Email Preferences","api":"POST /api/agency/email-preferences","href":"/api-reference/endpoint/agency-email-preferences"},{"title":"Agency Webhooks","api":"POST /api/agency/webhooks","href":"/api-reference/endpoint/agency-webhooks"},{"title":"Subscribe a Client to a Plan","api":"POST /api/agency/billing/subscribe","href":"/api-reference/endpoint/agency-subscribe"},{"title":"Monthly Statement","api":"GET /api/agency/statement","href":"/api-reference/endpoint/agency-statement"}]},{"group":"Workspace settings","pages":[{"title":"Workspace Email Preferences","api":"POST /api/email-preferences","href":"/api-reference/endpoint/email-preferences"},{"title":"Invite a Teammate","api":"POST /api/team/invite","href":"/api-reference/endpoint/team-invite"},{"title":"Force a Line Health Check","api":"GET /api/lines/check-availability","href":"/api-reference/endpoint/line-health-check"}]}]}]},"basePath":"","title":"List Recordings \u0026 Uploads Endpoint - Tuco AI","buildId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","deploymentId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","dynamics":["c2aa737661","2b790eda92","b0f84f53ff"],"chunks":["OpenApiReferenceProvider-DX1Meug0.js","utils-B_OMIQVC.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-ChxhRPMa.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-CuKvD8Iv.js","snippetPresets-C5d7p2hp.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CfHcE8m4.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-C1zZV314.js","shallow-CmQhqCJn.js","getApiPlaygroundDisplay-YRo9s1O7.js","CodeSnippet-RN1MTdfk.js","CodeSnippets-DKLPHxJA.js","Page-BAvA99GL.js","getPastedJson-bz0M41mU.js","icon-CsmhpPrv.js","MethodPill-CNGsVE77.js","DuplicateIcon-DilfU_Z2.js","createIcon-BdsYzQck.js","DynamicMarkdown-CbqEDjbV.js","SectionHeading-O6hXpFCN.js","axios-vUo_bRtp.js"]}