Returns presigned S3 URLs for each file. Upload each file with an HTTP PUT to its uploadUrl, with a Content-Type header equal to the mimetype you declared for that file (for example Content-Type: image/jpeg). The URL is signed with that header, so a PUT without it, or with another value, fails with 403 SignatureDoesNotMatch. Then pass the returned s3Prefix and fileSrc values in the create post request. HTML, SVG, XML, script and unknown types are refused with 400.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Social media studio","colors":{"primary":"#5417d7","light":"#8B5CF6","dark":"#5417d7"},"logo":{"light":"https://mintcdn.com/so-mestudio/DW_8vHE1qNEVsp6X/logo/light.svg?fit=max\u0026auto=format\u0026n=DW_8vHE1qNEVsp6X\u0026q=85\u0026s=a0e62d10545fe7248a7a298dbf73eb59","dark":"https://mintcdn.com/so-mestudio/DW_8vHE1qNEVsp6X/logo/dark.svg?fit=max\u0026auto=format\u0026n=DW_8vHE1qNEVsp6X\u0026q=85\u0026s=8f1ee6365ae8047cfa322986a99565fd"},"favicon":"https://mintcdn.com/so-mestudio/DW_8vHE1qNEVsp6X/favicon.png?fit=max\u0026auto=format\u0026n=DW_8vHE1qNEVsp6X\u0026q=85\u0026s=e018d080b4c9404289c908156733d347","styling":{"latex":false},"navigation":{"languages":[{"language":"en","href":"get-started/introduction"},{"language":"es","href":"es/get-started/introduction"},{"language":"fr","href":"fr/get-started/introduction"},{"language":"de","href":"de/get-started/introduction"},{"language":"pt-BR","href":"pt-BR/get-started/introduction"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"so-mestudio","hasAudioNarration":false,"actualSubdomain":"so-mestudio","customDomains":["docs.so-me.studio"],"gitSource":{"type":"github","owner":"7t1-studio","repo":"schedular-app","deployBranch":"main","contentDirectory":"apps/docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae02bca46d9fe59215bb0c4","collectionId":"d45db2f7-8904-4412-9522-96e2a7227d59","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae02bca46d9fe59215bb0c4"},"entitlements":{},"buildId":"6ae02bca46d9fe59215bb0c4","clientVersion":"0.0.4006","searchFilterCounts":[{"language":"en","tag":"API Reference","count":120},{"language":"en","tag":"API রেফারেন্স","count":118},{"language":"de","tag":"API-Referenz","count":118},{"language":"es","tag":"Referencia de API","count":118},{"language":"fr","tag":"Référence de l'API","count":118},{"language":"pt-BR","tag":"Referência da API","count":118},{"language":"en","tag":"CLI","count":46},{"language":"en","tag":"Documentation","count":44},{"language":"en","tag":"Analytics","count":44},{"language":"en","tag":"ডকুমেন্টেশন","count":44},{"language":"de","tag":"Dokumentation","count":44},{"language":"es","tag":"Documentación","count":44},{"language":"fr","tag":"Documentation","count":44},{"language":"pt-BR","tag":"Documentação","count":44},{"language":"en","tag":"Biolinks","count":38},{"language":"en","tag":"MCP","count":30},{"language":"en","tag":"Media","count":26},{"language":"en","tag":"Settings","count":26},{"language":"de","tag":"CLI","count":23},{"language":"es","tag":"CLI","count":23},{"language":"fr","tag":"CLI","count":23},{"language":"pt-BR","tag":"CLI","count":23},{"language":"de","tag":"Biolinks","count":19},{"language":"es","tag":"Biolinks","count":19},{"language":"fr","tag":"Biolinks","count":19},{"language":"pt-BR","tag":"Biolinks","count":19},{"language":"de","tag":"Veröffentlichen","count":15},{"language":"de","tag":"MCP","count":15},{"language":"de","tag":"Analytics","count":15},{"language":"es","tag":"Publicación","count":15},{"language":"es","tag":"MCP","count":15},{"language":"es","tag":"Analytics","count":15},{"language":"fr","tag":"Publication","count":15},{"language":"fr","tag":"MCP","count":15},{"language":"fr","tag":"Analytics","count":15},{"language":"pt-BR","tag":"Publicação","count":15},{"language":"pt-BR","tag":"MCP","count":15},{"language":"pt-BR","tag":"Analytics","count":15},{"language":"de","tag":"Analysen","count":14},{"language":"es","tag":"Analíticas","count":14},{"language":"fr","tag":"Statistiques","count":14},{"language":"pt-BR","tag":"Análises","count":14},{"language":"de","tag":"Erste Schritte","count":13},{"language":"de","tag":"Media","count":13},{"language":"es","tag":"Primeros pasos","count":13},{"language":"es","tag":"Media","count":13},{"language":"fr","tag":"Premiers pas","count":13},{"language":"fr","tag":"Media","count":13},{"language":"pt-BR","tag":"Primeiros passos","count":13},{"language":"pt-BR","tag":"Media","count":13}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"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":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"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":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/posts/generate-presigned-upload-urls-for-media-files","slug":"/api-reference/posts/generate-presigned-upload-urls-for-media-files","pageMetadata":{"title":"Generate presigned upload URLs for media files","description":"Returns presigned S3 URLs for each file. Upload each file with an HTTP PUT to its uploadUrl, with a Content-Type header equal to the mimetype you declared for that file (for example `Content-Type: image/jpeg`). The URL is signed with that header, so a PUT without it, or with another value, fails with 403 SignatureDoesNotMatch. Then pass the returned s3Prefix and fileSrc values in the create post request. HTML, SVG, XML, script and unknown types are refused with 400.","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/posts/presign-media","href":"/api-reference/posts/generate-presigned-upload-urls-for-media-files","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 presigned S3 URLs for each file. Upload each file with an HTTP PUT to its uploadUrl, with a Content-Type header equal to the mimetype you declared for that file (for example \", _jsx(_components.code, {\n children: \"Content-Type: image/jpeg\"\n }), \"). The URL is signed with that header, so a PUT without it, or with another value, fails with 403 SignatureDoesNotMatch. Then pass the returned s3Prefix and fileSrc values in the create post request. HTML, SVG, XML, script and unknown types are refused with 400.\"]\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":"Generate presigned upload URLs for media files","description":"Returns presigned S3 URLs for each file. Upload each file with an HTTP PUT to its uploadUrl, with a Content-Type header equal to the mimetype you declared for that file (for example `Content-Type: image/jpeg`). The URL is signed with that header, so a PUT without it, or with another value, fails with 403 SignatureDoesNotMatch. Then pass the returned s3Prefix and fileSrc values in the create post request. HTML, SVG, XML, script and unknown types are refused with 400.","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/posts/presign-media","href":"/api-reference/posts/generate-presigned-upload-urls-for-media-files","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"description":"Returns presigned S3 URLs for each file. Upload each file with an HTTP PUT to its uploadUrl, with a Content-Type header equal to the mimetype you declared for that file (for example `Content-Type: image/jpeg`). The URL is signed with that header, so a PUT without it, or with another value, fails with 403 SignatureDoesNotMatch. Then pass the returned s3Prefix and fileSrc values in the create post request. HTML, SVG, XML, script and unknown types are refused with 400.","operationId":"V1PostsController_presignMedia","parameters":[],"requestBody":"1daf183e-240e-45d2-aa2d-434b8afa4790","responses":{"201":"ef8704f6-0008-418c-8245-3e1fbb286a03"},"security":["5f2244d0-e1f3-4055-aabc-62347ab929d3"],"summary":"Generate presigned upload URLs for media files","tags":["Posts"],"method":"post","type":"path","servers":["a11064ec-afc0-4cbb-ad38-6d80fcb213b7"],"path":"/v1/posts/presign-media","baseUrlOptions":["https://api.so-me.studio"],"title":"Generate presigned upload URLs for media files","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"postType":{"enum":["TEXT","IMAGE","MULTIPLE_IMAGES","VIDEO","CAROUSEL","REEL","STORY"],"type":"string","description":"Type of post the media is for","isRequired":true,"uniqueKey":"postType","typeLabel":"enum\u003cstring>"},"socialMedia":{"enum":["TWITTER","INSTAGRAM","LINKEDIN","LINKEDIN_PAGE","FACEBOOK","TIKTOK","YOUTUBE","THREADS","WHATSAPP"],"type":"string","description":"Target social media platform","isRequired":true,"uniqueKey":"socialMedia","typeLabel":"enum\u003cstring>"},"files":{"description":"Files to generate upload URLs for","type":"array","items":{"type":"object","properties":{"filename":{"type":"string","description":"Original filename","isRequired":true,"uniqueKey":"files.items.[INDEX].filename","typeLabel":"string"},"mimetype":{"type":"string","description":"MIME type (e.g. image/jpeg, video/mp4). The upload PUT must send exactly this value as its Content-Type header.","isRequired":true,"uniqueKey":"files.items.[INDEX].mimetype","typeLabel":"string"},"size":{"type":"number","description":"File size in bytes","isRequired":true,"uniqueKey":"files.items.[INDEX].size","typeLabel":"number"},"duration":{"type":"number","minimum":0.1,"maximum":86400,"description":"Video duration in seconds","uniqueKey":"files.items.[INDEX].duration","typeLabel":"number"}},"required":["filename","mimetype","size"],"uniqueKey":"files.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"files","typeLabel":"object[]"}},"required":["postType","socialMedia","files"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"files":[{"filename":"\u003cstring>","mimetype":"\u003cstring>","size":123,"duration":43200.05}]}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"ef8704f6-0008-418c-8245-3e1fbb286a03":{"description":"Presigned URLs generated","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string","description":"File record UUID","uniqueKey":"items.[INDEX].fileId","typeLabel":"string"},"uploadUrl":{"type":"string","description":"Presigned PUT URL (expires in 1 hour). Send the file with Content-Type equal to the declared mimetype.","uniqueKey":"items.[INDEX].uploadUrl","typeLabel":"string"},"s3Prefix":{"type":"string","description":"S3 object key — pass this when creating the post","uniqueKey":"items.[INDEX].s3Prefix","typeLabel":"string"},"fileSrc":{"type":"string","description":"Public CDN URL — pass this when creating the post","uniqueKey":"items.[INDEX].fileSrc","typeLabel":"string"}},"uniqueKey":"items.[INDEX]","typeLabel":"object"},"uniqueKey":"","typeLabel":"object[]"},"examples":{"Example":{"title":"Example","value":[{"fileId":"\u003cstring>","uploadUrl":"\u003cstring>","s3Prefix":"\u003cstring>","fileSrc":"\u003cstring>"}]}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"5f2244d0-e1f3-4055-aabc-62347ab929d3":{"X-API-Key":{"type":"apiKey","in":"header","name":"X-API-Key","scopes":[],"schemeName":"X-API-Key"}}},"servers":{"a11064ec-afc0-4cbb-ad38-6d80fcb213b7":{"url":"https://api.so-me.studio","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"X-API-Key","scopes":[],"schemeName":"X-API-Key"},"schema":{"title":"X-API-Key","type":"string","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"X-API-Key","name":"X-API-Key"}],"title":"X-API-Key"}]},"originalFileLocation":"openapi.json"},"subdomain":"so-mestudio","siteName":"Social media studio","title":"Generate presigned upload URLs for media files - Social media studio","navMaps":{"firstHrefInVersion":{"English":{"href":"/api-reference/posts/generate-presigned-upload-urls-for-media-files","matchLevel":0},"বাংলা":{"href":"/api-reference/posts/মিডিয়া-ফাইলের-জন্য-presigned-আপলোড-url-তৈরি-করুন","matchLevel":2}},"firstHrefInLanguage":{"en":{"href":"/api-reference/posts/generate-presigned-upload-urls-for-media-files","matchLevel":0},"es":{"href":"/es/get-started/introduction","matchLevel":4},"fr":{"href":"/fr/get-started/introduction","matchLevel":4},"de":{"href":"/de/get-started/introduction","matchLevel":4},"pt-BR":{"href":"/pt-BR/get-started/introduction","matchLevel":4}}},"lastModified":"2026-10-27T04:43:01.153Z","originalFileLocation":"api-reference/posts/generate-presigned-upload-urls-for-media-files.mdx","locale":"en"},"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 presigned S3 URLs for each file. Upload each file with an HTTP PUT to its uploadUrl, with a Content-Type header equal to the mimetype you declared for that file (for example Content-Type: image/jpeg). The URL is signed with that header, so a PUT without it, or with another value, fails with 403 SignatureDoesNotMatch. Then pass the returned s3Prefix and fileSrc values in the create post request. HTML, SVG, XML, script and unknown types are refused with 400.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Social media studio\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/so-mestudio/z0p-905PODjEYZaG/_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/so-mestudio/z0p-905PODjEYZaG/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/so-mestudio/z0p-905PODjEYZaG/_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/so-mestudio/z0p-905PODjEYZaG/_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/so-mestudio/z0p-905PODjEYZaG/_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/so-mestudio/z0p-905PODjEYZaG/_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/so-mestudio/z0p-905PODjEYZaG/_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/so-mestudio/z0p-905PODjEYZaG/_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/so-mestudio/z0p-905PODjEYZaG/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Generate presigned upload URLs for media files - Social media studio\">\u003cmeta data-mint-head property=\"og:description\" content=\"Returns presigned S3 URLs for each file. Upload each file with an HTTP PUT to its uploadUrl, with a Content-Type header equal to the mimetype you declared for that file (for example Content-Type: image/jpeg). The URL is signed with that header, so a PUT without it, or with another value, fails with 403 SignatureDoesNotMatch. Then pass the returned s3Prefix and fileSrc values in the create post request. HTML, SVG, XML, script and unknown types are refused with 400.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Social media studio\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.so-me.studio/api-reference/posts/generate-presigned-upload-urls-for-media-files\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://so-mestudio.mintlify.app/_mintlify/api/og/v2?division=Posts\u0026amp;title=Generate+presigned+upload+URLs+for+media+files\u0026amp;description=Returns+presigned+S3+URLs+for+each+file.+Upload+each+file+with+an+HTTP+PUT+to+its+uploadUrl%2C+with+a+Content-Type+header+equal+to+the+mimetype+you+declared+for+t\u0026amp;theme=b32530de7db9f94a32b86807\u0026amp;signature=ba111aaf1758f48df6b41e5ac98ae4cdde1f61d0e624c28ddd25dd414d3bcf87\">\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=\"Generate presigned upload URLs for media files - Social media studio\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Returns presigned S3 URLs for each file. Upload each file with an HTTP PUT to its uploadUrl, with a Content-Type header equal to the mimetype you declared for that file (for example Content-Type: image/jpeg). The URL is signed with that header, so a PUT without it, or with another value, fails with 403 SignatureDoesNotMatch. Then pass the returned s3Prefix and fileSrc values in the create post request. HTML, SVG, XML, script and unknown types are refused with 400.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://so-mestudio.mintlify.app/_mintlify/api/og/v2?division=Posts\u0026amp;title=Generate+presigned+upload+URLs+for+media+files\u0026amp;description=Returns+presigned+S3+URLs+for+each+file.+Upload+each+file+with+an+HTTP+PUT+to+its+uploadUrl%2C+with+a+Content-Type+header+equal+to+the+mimetype+you+declared+for+t\u0026amp;theme=b32530de7db9f94a32b86807\u0026amp;signature=ba111aaf1758f48df6b41e5ac98ae4cdde1f61d0e624c28ddd25dd414d3bcf87\">\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/so-mestudio/z0p-905PODjEYZaG/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Social media studio\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#5417d7\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.so-me.studio/api-reference/posts/generate-presigned-upload-urls-for-media-files\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/posts/generate-presigned-upload-urls-for-media-files.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.so-me.studio/#organization\",\"name\":\"Social media studio\",\"url\":\"https://docs.so-me.studio\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/so-mestudio/DW_8vHE1qNEVsp6X/logo/light.svg?fit=max\u0026auto=format\u0026n=DW_8vHE1qNEVsp6X\u0026q=85\u0026s=a0e62d10545fe7248a7a298dbf73eb59\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.so-me.studio#website\",\"name\":\"Social media studio\",\"url\":\"https://docs.so-me.studio\",\"publisher\":{\"@id\":\"https://docs.so-me.studio/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.so-me.studio/api-reference/posts/generate-presigned-upload-urls-for-media-files#webpage\",\"url\":\"https://docs.so-me.studio/api-reference/posts/generate-presigned-upload-urls-for-media-files\",\"name\":\"Generate presigned upload URLs for media files\",\"description\":\"Returns presigned S3 URLs for each file. Upload each file with an HTTP PUT to its uploadUrl, with a Content-Type header equal to the mimetype you declared for that file (for example Content-Type: image/jpeg). The URL is signed with that header, so a PUT without it, or with another value, fails with 403 SignatureDoesNotMatch. Then pass the returned s3Prefix and fileSrc values in the create post request. HTML, SVG, XML, script and unknown types are refused with 400.\",\"dateModified\":\"2026-10-27T04:43:01.153Z\",\"isPartOf\":{\"@id\":\"https://docs.so-me.studio#website\"},\"breadcrumb\":{\"@id\":\"https://docs.so-me.studio/api-reference/posts/generate-presigned-upload-urls-for-media-files#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.so-me.studio/api-reference/posts/generate-presigned-upload-urls-for-media-files#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Social media studio\",\"item\":\"https://docs.so-me.studio\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Generate presigned upload URLs for media files\",\"item\":\"https://docs.so-me.studio/api-reference/posts/generate-presigned-upload-urls-for-media-files\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.so-me.studio/api-reference/posts/generate-presigned-upload-urls-for-media-files#apireference\",\"headline\":\"Generate presigned upload URLs for media files\",\"name\":\"Generate presigned upload URLs for media files\",\"description\":\"Returns presigned S3 URLs for each file. Upload each file with an HTTP PUT to its uploadUrl, with a Content-Type header equal to the mimetype you declared for that file (for example Content-Type: image/jpeg). The URL is signed with that header, so a PUT without it, or with another value, fails with 403 SignatureDoesNotMatch. Then pass the returned s3Prefix and fileSrc values in the create post request. HTML, SVG, XML, script and unknown types are refused with 400.\",\"url\":\"https://docs.so-me.studio/api-reference/posts/generate-presigned-upload-urls-for-media-files\",\"mainEntityOfPage\":{\"@id\":\"https://docs.so-me.studio/api-reference/posts/generate-presigned-upload-urls-for-media-files#webpage\"},\"dateModified\":\"2026-10-27T04:43:01.153Z\",\"publisher\":{\"@id\":\"https://docs.so-me.studio/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.so-me.studio#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Social media studio\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Social media studio","nav":{"global":null,"languages":[{"language":"en","versions":[{"version":"English","default":true,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/get-started/introduction"}]},{"tab":"CLI","pages":[{"title":"CLI","href":"/cli/overview"}]},{"tab":"SDK","pages":[{"title":"SDK","href":"/sdk/overview"}]},{"tab":"MCP","pages":[{"title":"MCP","href":"/mcp/overview"}]},{"tab":"Webhooks","pages":[{"title":"Webhooks","href":"/webhooks/overview"}]},{"tab":"API Reference","groups":[{"group":"Posts","pages":[{"title":"Generate presigned upload URLs for media files","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/posts/presign-media","href":"/api-reference/posts/generate-presigned-upload-urls-for-media-files"},{"title":"List workspace posts","description":null,"deprecated":null,"version":null,"openapi":"/openapi.json get /v1/posts","href":"/api-reference/posts/list-workspace-posts"},{"title":"Create a new post","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/posts","href":"/api-reference/posts/create-a-new-post"},{"title":"Delete multiple posts","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/posts/bulk-delete","href":"/api-reference/posts/delete-multiple-posts"},{"title":"Get a single post","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/posts/{id}","href":"/api-reference/posts/get-a-single-post"},{"title":"Delete a post","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/posts/{id}","href":"/api-reference/posts/delete-a-post"},{"title":"Update an existing post","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/posts/{id}","href":"/api-reference/posts/update-an-existing-post"},{"title":"Schedule a post for future publishing","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/posts/{id}/schedule","href":"/api-reference/posts/schedule-a-post-for-future-publishing"},{"title":"Remove a post from the schedule","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/posts/{id}/unschedule","href":"/api-reference/posts/remove-a-post-from-the-schedule"},{"title":"Retry a failed post","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/posts/{id}/retry","href":"/api-reference/posts/retry-a-failed-post"},{"title":"Resubmit a rejected post for approval","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/posts/{id}/resubmit","href":"/api-reference/posts/resubmit-a-rejected-post-for-approval"}]},{"group":"Accounts","pages":[{"title":"List connected social accounts","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/accounts","href":"/api-reference/accounts/list-connected-social-accounts"},{"title":"Get account details","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/accounts/{id}","href":"/api-reference/accounts/get-account-details"},{"title":"Remove a connected social account","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/accounts/{id}","href":"/api-reference/accounts/remove-a-connected-social-account"},{"title":"List the Pinterest boards of every Pinterest account","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/accounts/pinterest/boards","href":"/api-reference/accounts/list-the-pinterest-boards-of-every-pinterest-account"},{"title":"List the Pinterest boards of an account","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/accounts/{id}/pinterest/boards","href":"/api-reference/accounts/list-the-pinterest-boards-of-an-account"}]},{"group":"Drafts","pages":[{"title":"List draft posts","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/drafts","href":"/api-reference/drafts/list-draft-posts"},{"title":"Create a draft post","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/drafts","href":"/api-reference/drafts/create-a-draft-post"},{"title":"Get a single draft","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/drafts/{id}","href":"/api-reference/drafts/get-a-single-draft"},{"title":"Delete a draft post","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/drafts/{id}","href":"/api-reference/drafts/delete-a-draft-post"},{"title":"Update a draft post","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/drafts/{id}","href":"/api-reference/drafts/update-a-draft-post"},{"title":"Convert a draft to a scheduled post","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/drafts/{id}/convert","href":"/api-reference/drafts/convert-a-draft-to-a-scheduled-post"}]},{"group":"Media","pages":[{"title":"Generate presigned upload URLs","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/media/presign-upload","href":"/api-reference/media/generate-presigned-upload-urls"},{"title":"List media files and folders","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/media","href":"/api-reference/media/list-media-files-and-folders"},{"title":"Delete a media file","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/media/{id}","href":"/api-reference/media/delete-a-media-file"},{"title":"List media folders","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/media/folders","href":"/api-reference/media/list-media-folders"},{"title":"Create a media folder","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/media/folders","href":"/api-reference/media/create-a-media-folder"},{"title":"Delete multiple media files","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/media/files/bulk-delete","href":"/api-reference/media/delete-multiple-media-files"},{"title":"Search files by name","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/media/files/search","href":"/api-reference/media/search-files-by-name"},{"title":"Get a single media file","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/media/files/{id}","href":"/api-reference/media/get-a-single-media-file"},{"title":"Move a file to a different folder","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/media/files/{id}/move","href":"/api-reference/media/move-a-file-to-a-different-folder"},{"title":"Rename a media file","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/media/files/{id}/rename","href":"/api-reference/media/rename-a-media-file"},{"title":"Delete a media folder and its contents","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/media/folders/{id}","href":"/api-reference/media/delete-a-media-folder-and-its-contents"},{"title":"Move a folder to a different parent","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/media/folders/{id}/move","href":"/api-reference/media/move-a-folder-to-a-different-parent"},{"title":"Rename a media folder","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/media/folders/{id}/rename","href":"/api-reference/media/rename-a-media-folder"}]},{"group":"Analytics","pages":[{"title":"Get platform-level analytics for a social account","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/analytics/platform/{accountId}","href":"/api-reference/analytics/get-platform-level-analytics-for-a-social-account"},{"title":"Get post-level analytics","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/analytics/post/{postId}","href":"/api-reference/analytics/get-post-level-analytics"},{"title":"Facebook page analytics","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/analytics/facebook/{identifier}/page","href":"/api-reference/analytics/facebook-page-analytics"},{"title":"Facebook posts analytics","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/analytics/facebook/{identifier}/posts","href":"/api-reference/analytics/facebook-posts-analytics"},{"title":"Facebook videos analytics","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/analytics/facebook/{identifier}/videos","href":"/api-reference/analytics/facebook-videos-analytics"},{"title":"Instagram account analytics","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/analytics/instagram/{identifier}/account","href":"/api-reference/analytics/instagram-account-analytics"},{"title":"Instagram media analytics","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/analytics/instagram/{identifier}/media","href":"/api-reference/analytics/instagram-media-analytics"},{"title":"Instagram stories analytics","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/analytics/instagram/{identifier}/stories","href":"/api-reference/analytics/instagram-stories-analytics"},{"title":"LinkedIn page analytics","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/analytics/linkedin/{identifier}/page","href":"/api-reference/analytics/linkedin-page-analytics"},{"title":"LinkedIn posts analytics","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/analytics/linkedin/{identifier}/posts","href":"/api-reference/analytics/linkedin-posts-analytics"},{"title":"YouTube channel analytics","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/analytics/youtube/{identifier}/channel","href":"/api-reference/analytics/youtube-channel-analytics"},{"title":"YouTube videos analytics","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/analytics/youtube/{identifier}/videos","href":"/api-reference/analytics/youtube-videos-analytics"},{"title":"Twitter/X account analytics","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/analytics/x/{identifier}/account","href":"/api-reference/analytics/twitterx-account-analytics"},{"title":"Twitter/X content analytics","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/analytics/x/{identifier}/content","href":"/api-reference/analytics/twitterx-content-analytics"},{"title":"WhatsApp account analytics","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/analytics/whatsapp/{identifier}/account","href":"/api-reference/analytics/whatsapp-account-analytics"}]},{"group":"Inbox","pages":[{"title":"List inbox conversations","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/inbox/conversations","href":"/api-reference/inbox/list-inbox-conversations"},{"title":"Get messages in a conversation thread","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/inbox/conversations/{id}/messages","href":"/api-reference/inbox/get-messages-in-a-conversation-thread"},{"title":"Reply to a conversation","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/inbox/conversations/{id}/reply","href":"/api-reference/inbox/reply-to-a-conversation"},{"title":"Delete a conversation","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/inbox/conversations/{id}","href":"/api-reference/inbox/delete-a-conversation"},{"title":"Update conversation status","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/inbox/conversations/{id}","href":"/api-reference/inbox/update-conversation-status"},{"title":"Enable inbox for a social account","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/inbox/subscribe","href":"/api-reference/inbox/enable-inbox-for-a-social-account"},{"title":"Disable inbox for a social account","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/inbox/unsubscribe","href":"/api-reference/inbox/disable-inbox-for-a-social-account"},{"title":"List saved replies","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/inbox/saved-replies","href":"/api-reference/inbox/list-saved-replies"},{"title":"Create a saved reply","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/inbox/saved-replies","href":"/api-reference/inbox/create-a-saved-reply"},{"title":"Get a single saved reply","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/inbox/saved-replies/{id}","href":"/api-reference/inbox/get-a-single-saved-reply"},{"title":"Delete a saved reply","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/inbox/saved-replies/{id}","href":"/api-reference/inbox/delete-a-saved-reply"},{"title":"Update a saved reply","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/inbox/saved-replies/{id}","href":"/api-reference/inbox/update-a-saved-reply"}]},{"group":"AI","pages":[{"title":"Generate text content using AI","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/ai/generate/text","href":"/api-reference/ai/generate-text-content-using-ai"},{"title":"Generate an AI image","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/ai/generate/image","href":"/api-reference/ai/generate-an-ai-image"},{"title":"Get AI prompt history","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/ai/history","href":"/api-reference/ai/get-ai-prompt-history"}]},{"group":"Approvals","pages":[{"title":"List posts pending approval","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/approvals","href":"/api-reference/approvals/list-posts-pending-approval"},{"title":"Approve a post","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/approvals/{postId}/approve","href":"/api-reference/approvals/approve-a-post"},{"title":"Reject a post","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/approvals/{postId}/reject","href":"/api-reference/approvals/reject-a-post"}]},{"group":"Teams","pages":[{"title":"List team members","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/teams/members","href":"/api-reference/teams/list-team-members"},{"title":"Remove a team member","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/teams/members/{identifier}","href":"/api-reference/teams/remove-a-team-member"},{"title":"Update a team member's role","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/teams/members/{identifier}/role","href":"/api-reference/teams/update-a-team-members-role"},{"title":"Invite a team member","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/teams/invite","href":"/api-reference/teams/invite-a-team-member"},{"title":"List pending team invitations","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/teams/invitations","href":"/api-reference/teams/list-pending-team-invitations"},{"title":"Cancel a pending invitation","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/teams/invitations/{identifier}","href":"/api-reference/teams/cancel-a-pending-invitation"}]},{"group":"Biolinks","pages":[{"title":"List all biolinks","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/biolinks","href":"/api-reference/biolinks/list-all-biolinks"},{"title":"Create a biolink","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/biolinks","href":"/api-reference/biolinks/create-a-biolink"},{"title":"Get biolink details","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/biolinks/{id}","href":"/api-reference/biolinks/get-biolink-details"},{"title":"Update a biolink","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/biolinks/{id}","href":"/api-reference/biolinks/update-a-biolink"},{"title":"Delete a biolink","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/biolinks/{id}","href":"/api-reference/biolinks/delete-a-biolink"},{"title":"Toggle publish status of a biolink","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/biolinks/{id}/publish","href":"/api-reference/biolinks/toggle-publish-status-of-a-biolink"},{"title":"Change biolink theme","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/biolinks/{id}/theme","href":"/api-reference/biolinks/change-biolink-theme"},{"title":"Set custom theme colors","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/biolinks/{id}/custom-theme","href":"/api-reference/biolinks/set-custom-theme-colors"},{"title":"List biolink buttons","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/biolinks/{id}/buttons","href":"/api-reference/biolinks/list-biolink-buttons"},{"title":"Create a biolink button","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/biolinks/{id}/buttons","href":"/api-reference/biolinks/create-a-biolink-button"},{"title":"Reorder biolink buttons","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/biolinks/{id}/buttons/reorder","href":"/api-reference/biolinks/reorder-biolink-buttons"},{"title":"Update a biolink button","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/biolinks/{id}/buttons/{buttonId}","href":"/api-reference/biolinks/update-a-biolink-button"},{"title":"Delete a biolink button","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/biolinks/{id}/buttons/{buttonId}","href":"/api-reference/biolinks/delete-a-biolink-button"},{"title":"List biolink posts","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/biolinks/{id}/posts","href":"/api-reference/biolinks/list-biolink-posts"},{"title":"Create a biolink post","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/biolinks/{id}/posts","href":"/api-reference/biolinks/create-a-biolink-post"},{"title":"Reorder biolink posts","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/biolinks/{id}/posts/reorder","href":"/api-reference/biolinks/reorder-biolink-posts"},{"title":"Update a biolink post","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/biolinks/{id}/posts/{postId}","href":"/api-reference/biolinks/update-a-biolink-post"},{"title":"Delete a biolink post","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/biolinks/{id}/posts/{postId}","href":"/api-reference/biolinks/delete-a-biolink-post"},{"title":"Get biolink analytics","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/biolinks/{id}/analytics","href":"/api-reference/biolinks/get-biolink-analytics"}]},{"group":"Settings","pages":[{"title":"Get user profile","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/settings/profile","href":"/api-reference/settings/get-user-profile"},{"title":"Update user profile","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/settings/profile","href":"/api-reference/settings/update-user-profile"},{"title":"Get organization details","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/settings/organization","href":"/api-reference/settings/get-organization-details"},{"title":"Update organization settings","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/settings/organization","href":"/api-reference/settings/update-organization-settings"},{"title":"List API keys","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/settings/api-keys","href":"/api-reference/settings/list-api-keys"},{"title":"Create a new API key","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/settings/api-keys","href":"/api-reference/settings/create-a-new-api-key"},{"title":"Revoke an API key","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/settings/api-keys/{id}","href":"/api-reference/settings/revoke-an-api-key"},{"title":"List all organizations","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/settings/tenants","href":"/api-reference/settings/list-all-organizations"},{"title":"Create a new organization","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/settings/tenants","href":"/api-reference/settings/create-a-new-organization"},{"title":"Delete an organization","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/settings/tenants/{id}","href":"/api-reference/settings/delete-an-organization"},{"title":"Leave an organization","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/settings/tenants/leave","href":"/api-reference/settings/leave-an-organization"},{"title":"Get subscription status and plan info","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/settings/billing","href":"/api-reference/settings/get-subscription-status-and-plan-info"},{"title":"Get usage breakdown for current billing period","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/settings/usage","href":"/api-reference/settings/get-usage-breakdown-for-current-billing-period"}]},{"group":"Authentication","pages":[{"title":"Create a new account","deprecated":null,"version":null,"openapi":"/openapi.json post /auth/register","href":"/api-reference/authentication/create-a-new-account"},{"title":"Log in with email and password","deprecated":null,"version":null,"openapi":"/openapi.json post /auth/login","href":"/api-reference/authentication/log-in-with-email-and-password"},{"title":"Refresh JWT access token","deprecated":null,"version":null,"openapi":"/openapi.json get /auth/refresh","href":"/api-reference/authentication/refresh-jwt-access-token"},{"title":"Sign out and clear session","deprecated":null,"version":null,"openapi":"/openapi.json post /auth/signout","href":"/api-reference/authentication/sign-out-and-clear-session"},{"title":"Request a password reset email","deprecated":null,"version":null,"openapi":"/openapi.json post /auth/forgot-password","href":"/api-reference/authentication/request-a-password-reset-email"},{"title":"Reset password with token","deprecated":null,"version":null,"openapi":"/openapi.json post /auth/reset-password","href":"/api-reference/authentication/reset-password-with-token"},{"title":"Confirm account via email verification token","deprecated":null,"version":null,"openapi":"/openapi.json post /auth/confirm-account","href":"/api-reference/authentication/confirm-account-via-email-verification-token"},{"title":"Resend email verification","deprecated":null,"version":null,"openapi":"/openapi.json post /auth/resend-verification","href":"/api-reference/authentication/resend-email-verification"},{"title":"Request a device authorization code","deprecated":null,"version":null,"openapi":"/openapi.json post /auth/device/code","href":"/api-reference/authentication/request-a-device-authorization-code"},{"title":"Poll device authorization status","deprecated":null,"version":null,"openapi":"/openapi.json post /auth/device/token","href":"/api-reference/authentication/poll-device-authorization-status"}]},{"group":"Plans","pages":[{"title":"List all plans","deprecated":null,"version":null,"openapi":"/openapi.json get /plans","href":"/api-reference/plans/list-all-plans"},{"title":"Get features for a specific plan","deprecated":null,"version":null,"openapi":"/openapi.json get /plans/features/{planName}","href":"/api-reference/plans/get-features-for-a-specific-plan"},{"title":"List addon plans","deprecated":null,"version":null,"openapi":"/openapi.json get /plans/addons","href":"/api-reference/plans/list-addon-plans"}]},{"group":"Public Biolink","pages":[{"title":"Get a public biolink page by slug","deprecated":null,"version":null,"openapi":"/openapi.json get /biolink/public/{slug}","href":"/api-reference/public-biolink/get-a-public-biolink-page-by-slug"}]}]}]},{"version":"বাংলা","pages":[{"title":"বাংলা","href":"/api-reference/posts/মিডিয়া-ফাইলের-জন্য-presigned-আপলোড-url-তৈরি-করুন"}]}]},{"language":"es","pages":[{"title":"es","href":"/es/get-started/introduction"}]},{"language":"fr","pages":[{"title":"fr","href":"/fr/get-started/introduction"}]},{"language":"de","pages":[{"title":"de","href":"/de/get-started/introduction"}]},{"language":"pt-BR","pages":[{"title":"pt-BR","href":"/pt-BR/get-started/introduction"}]}]},"title":"Generate presigned upload URLs for media files - Social media studio","buildId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","deploymentId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DmVyH30O.js","utils-BHQqGGOd.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-CD-E4BIt.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Bp5Lq9Ds.js","snippetPresets-C4xAVCFP.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CgXVLxUC.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BF8I5oUf.js","shallow-Byd0lWnC.js","getApiPlaygroundDisplay-BGOZG1OK.js","CodeSnippet-CpvQL0CY.js","CodeSnippets-B8wkBKXa.js","Page-CBCH2P7b.js","getPastedJson-Ry3scI3Y.js","icon-D7a9HcdD.js","MethodPill-CJ8pmHhz.js","DuplicateIcon-rh1HJF0t.js","createIcon-DvGznqYs.js","DynamicMarkdown-Cc6AuSHS.js","SectionHeading-B4A0S-ep.js","axios-vUo_bRtp.js","Markdown-Cc16CX65.js","clsx-Cs6nMGht.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-zbf22OZA.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-C_fs-y5n.js"]}