Upload a profile picture for a speaker, replacing the current one. The image must be JPEG or PNG, at most 4 MB, and at least 80x80 px (300x300 recommended); its pixel data is fully decoded and anything incomplete or corrupt is rejected with IMAGE_CORRUPT. Provide exactly ONE source, in this order of preference: (1) imageFile — for an image the user attached in this conversation. Hosts that support file inputs fill this in themselves; you cannot construct it. (2) imageUrl — a publicly reachable https URL of the image. Redirects are not followed, and invalid, private or unresolvable URLs are rejected (INVALID_URL / PRIVATE_ADDRESS / UNRESOLVABLE). (3) imageBase64 — ONLY when you can run a real encoder over a real file on disk (e.g. base64 -i photo.png); send the output verbatim, uncompressed, unresized, not re-encoded and not truncated. NEVER hand-write, reconstruct, guess or abbreviate base64, and never try to encode an image you were merely shown in the conversation — you do not have its bytes and the result will be rejected. If the user attached an image and imageFile is unavailable, ask them for a URL instead. Returns the new picUrl.
An image the user attached in this conversation. The host fills this in for file inputs — do not construct or invent it. Preferred source when available.
Base64 of the image FILE's raw bytes, produced by an actual encoder (e.g. base64 -i photo.png) and pasted verbatim — uncompressed, unresized, not re-encoded, not truncated. A data: URI prefix is allowed. Only usable when you can read a real file; never for an image you were only shown in the conversation.
Response
200
A JSON-RPC tools/call result. The tool's output is in content.
Was this page helpful?
⌘I
{"docsConfig":{"theme":"linden","$schema":"https://mintlify.com/docs.json","name":"Zuddl guides","colors":{"primary":"#843DF5","light":"#843DF5","dark":"#843DF5"},"logo":{"light":"https://mintcdn.com/zuddl-2f3d3563/t-oKtTCoPeeFOd0s/logo/ZuddlLogo.svg?fit=max\u0026auto=format\u0026n=t-oKtTCoPeeFOd0s\u0026q=85\u0026s=c7c00bcb1a029f560a632baf30c667c2","dark":"https://mintcdn.com/zuddl-2f3d3563/t-oKtTCoPeeFOd0s/logo/ZuddlLogo.svg?fit=max\u0026auto=format\u0026n=t-oKtTCoPeeFOd0s\u0026q=85\u0026s=c7c00bcb1a029f560a632baf30c667c2"},"favicon":"https://mintcdn.com/zuddl-2f3d3563/1Pl9TGqjTCvT_S3j/zuddl-favicon.png?fit=max\u0026auto=format\u0026n=1Pl9TGqjTCvT_S3j\u0026q=85\u0026s=4c00d397a8c532b2104e72db097fc68a","appearance":{"default":"light","strict":true},"footer":{"socials":{"x":"https://x.com/WeareZuddl","linkedin":"https://www.linkedin.com/company/zuddl"}},"fonts":{"family":"Inter","weight":400},"styling":{"latex":false},"background":{"color":{"light":"#fbf9ff","dark":"#0d0b12"}},"navigation":{"global":{},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"zuddl-2f3d3563","hasAudioNarration":false,"actualSubdomain":"zuddl-2f3d3563","customDomains":["docs.zuddl.com"],"gitSource":{"type":"github","owner":"zuddl","repo":"mintlify-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6adb610d83455fcb7aaddf8e","collectionId":"92120957-4899-4069-8d4c-b8bf3e75ddb3","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6adb610d83455fcb7aaddf8e"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae048af91659a327f7b5db0","clientVersion":"0.0.3971","searchFilterCounts":[{"language":"default","tag":"Docs","count":76},{"language":"default","tag":"Core modules","count":65},{"language":"default","tag":"Webhook Reference","count":43},{"language":"default","tag":"API Reference","count":40},{"language":"default","tag":"APIs","count":38},{"language":"default","tag":"AttendeeEngagementWebhooks","count":14},{"language":"default","tag":"Ticketing \u0026 Payments","count":11},{"language":"default","tag":"RegistrationStatusesWebhooks","count":10},{"language":"default","tag":"Sessions","count":10},{"language":"default","tag":"Studio","count":8}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"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}],"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"#page-title,sidebar{color:#320972!important}#navbar-transition{background-color:#320972!important;background:#320972!important}body:not(.dark) .NavBarLink,body:not(.dark) .nav-tabs-item{color:#fff!important}body:not(.dark) .NavBarLink:hover,body:not(.dark) .nav-tabs-item:hover{color:#98a2b3!important}#navigation-items>div:nth-of-type(2){margin-top:0!important}#assistant-entry-mobile svg,#search-bar-entry-mobile svg{color:#fff!important;transition:color .2s ease}#assistant-entry-mobile svg:hover{color:#9ca3af!important}#search-bar-entry-mobile svg{border-color:#fff!important;background-color:#fff!important}#search-bar-entry-mobile svg:hover{background-color:#9ca3af!important}#sidebar-title{font-weight:700}.sidebar-group-header{margin-bottom:0!important;position:sticky;top:0;background:0 0;z-index:10}#sidebar-group{margin-bottom:16px!important}"}],"page":{"pagePath":"mcp-reference/speakers/upload-speaker-picture","slug":"/mcp-reference/speakers/upload-speaker-picture","pageMetadata":{"title":"Upload Speaker Picture","description":"**Tool name:** `v1_upload_speaker_pic` · **Behaviour:** ✏️ Write\n\nUpload a profile picture for a speaker, replacing the current one. The image must be JPEG or PNG, at most 4 MB, and at least 80x80 px (300x300 recommended); its pixel data is fully decoded and anything incomplete or corrupt is rejected with IMAGE_CORRUPT. Provide exactly ONE source, in this order of preference: (1) imageFile — for an image the user attached in this conversation. Hosts that support file inputs fill this in themselves; you cannot construct it. (2) imageUrl — a publicly reachable https URL of the image. Redirects are not followed, and invalid, private or unresolvable URLs are rejected (INVALID_URL / PRIVATE_ADDRESS / UNRESOLVABLE). (3) imageBase64 — ONLY when you can run a real encoder over a real file on disk (e.g. `base64 -i photo.png`); send the output verbatim, uncompressed, unresized, not re-encoded and not truncated. NEVER hand-write, reconstruct, guess or abbreviate base64, and never try to encode an image you were merely shown in the conversation — you do not have its bytes and the result will be rejected. If the user attached an image and imageFile is unavailable, ask them for a URL instead. Returns the new picUrl.\n\n**Same as Public API:** [Upload a speaker's profile picture](/api-reference/speakers/upload-a-speakers-profile-picture) (`POST /v1/events/{eventId}/speakers/{speakerId}/pic`)","deprecated":null,"version":null,"playground":"none","openapi":"https://api.prod.zuddl.com/api/v3/api-docs/mcp-tools post /tools/v1_upload_speaker_pic","href":"/mcp-reference/speakers/upload-speaker-picture","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n code: \"code\",\n p: \"p\",\n strong: \"strong\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Tool name:\"\n }), \" \", _jsx(_components.code, {\n children: \"v1_upload_speaker_pic\"\n }), \" · \", _jsx(_components.strong, {\n children: \"Behaviour:\"\n }), \" ✏️ Write\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Upload a profile picture for a speaker, replacing the current one. The image must be JPEG or PNG, at most 4 MB, and at least 80x80 px (300x300 recommended); its pixel data is fully decoded and anything incomplete or corrupt is rejected with IMAGE_CORRUPT. Provide exactly ONE source, in this order of preference: (1) imageFile — for an image the user attached in this conversation. Hosts that support file inputs fill this in themselves; you cannot construct it. (2) imageUrl — a publicly reachable https URL of the image. Redirects are not followed, and invalid, private or unresolvable URLs are rejected (INVALID_URL / PRIVATE_ADDRESS / UNRESOLVABLE). (3) imageBase64 — ONLY when you can run a real encoder over a real file on disk (e.g. \", _jsx(_components.code, {\n children: \"base64 -i photo.png\"\n }), \"); send the output verbatim, uncompressed, unresized, not re-encoded and not truncated. NEVER hand-write, reconstruct, guess or abbreviate base64, and never try to encode an image you were merely shown in the conversation — you do not have its bytes and the result will be rejected. If the user attached an image and imageFile is unavailable, ask them for a URL instead. Returns the new picUrl.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Same as Public API:\"\n }), \" \", _jsx(_components.a, {\n href: \"/api-reference/speakers/upload-a-speakers-profile-picture\",\n children: \"Upload a speaker’s profile picture\"\n }), \" (\", _jsx(_components.code, {\n children: \"POST /v1/events/{eventId}/speakers/{speakerId}/pic\"\n }), \")\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Upload Speaker Picture","description":"**Tool name:** `v1_upload_speaker_pic` · **Behaviour:** ✏️ Write\n\nUpload a profile picture for a speaker, replacing the current one. The image must be JPEG or PNG, at most 4 MB, and at least 80x80 px (300x300 recommended); its pixel data is fully decoded and anything incomplete or corrupt is rejected with IMAGE_CORRUPT. Provide exactly ONE source, in this order of preference: (1) imageFile — for an image the user attached in this conversation. Hosts that support file inputs fill this in themselves; you cannot construct it. (2) imageUrl — a publicly reachable https URL of the image. Redirects are not followed, and invalid, private or unresolvable URLs are rejected (INVALID_URL / PRIVATE_ADDRESS / UNRESOLVABLE). (3) imageBase64 — ONLY when you can run a real encoder over a real file on disk (e.g. `base64 -i photo.png`); send the output verbatim, uncompressed, unresized, not re-encoded and not truncated. NEVER hand-write, reconstruct, guess or abbreviate base64, and never try to encode an image you were merely shown in the conversation — you do not have its bytes and the result will be rejected. If the user attached an image and imageFile is unavailable, ask them for a URL instead. Returns the new picUrl.\n\n**Same as Public API:** [Upload a speaker's profile picture](/api-reference/speakers/upload-a-speakers-profile-picture) (`POST /v1/events/{eventId}/speakers/{speakerId}/pic`)","deprecated":null,"version":null,"playground":"none","openapi":"https://api.prod.zuddl.com/api/v3/api-docs/mcp-tools post /tools/v1_upload_speaker_pic","href":"/mcp-reference/speakers/upload-speaker-picture","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/zuddl-2f3d3563/e3b0c44298fc1c14/index.js","/_mintlify/custom/zuddl-2f3d3563/7688de4aa4708809/mcp-links.js"],"openApiReferenceData":{"operation":{"tags":["Speakers"],"summary":"Upload Speaker Picture","description":"**Tool name:** `v1_upload_speaker_pic` · **Behaviour:** ✏️ Write\n\nUpload a profile picture for a speaker, replacing the current one. The image must be JPEG or PNG, at most 4 MB, and at least 80x80 px (300x300 recommended); its pixel data is fully decoded and anything incomplete or corrupt is rejected with IMAGE_CORRUPT. Provide exactly ONE source, in this order of preference: (1) imageFile — for an image the user attached in this conversation. Hosts that support file inputs fill this in themselves; you cannot construct it. (2) imageUrl — a publicly reachable https URL of the image. Redirects are not followed, and invalid, private or unresolvable URLs are rejected (INVALID_URL / PRIVATE_ADDRESS / UNRESOLVABLE). (3) imageBase64 — ONLY when you can run a real encoder over a real file on disk (e.g. `base64 -i photo.png`); send the output verbatim, uncompressed, unresized, not re-encoded and not truncated. NEVER hand-write, reconstruct, guess or abbreviate base64, and never try to encode an image you were merely shown in the conversation — you do not have its bytes and the result will be rejected. If the user attached an image and imageFile is unavailable, ask them for a URL instead. Returns the new picUrl.\n\n**Same as Public API:** [Upload a speaker's profile picture](/api-reference/speakers/upload-a-speakers-profile-picture) (`POST /v1/events/{eventId}/speakers/{speakerId}/pic`)","operationId":"v1_upload_speaker_pic","requestBody":"b50c9dcb-4592-42d7-a932-970fdf9b6f65","responses":{"200":"0f90c9ae-f528-478c-b7cd-f51a8305a281"},"x-mcp-annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true},"x-mcp-rest-operation":[{"method":"POST","path":"/v1/events/{eventId}/speakers/{speakerId}/pic","operationId":"uploadSpeakerPic","summary":"Upload a speaker's profile picture","docsUrl":"/api-reference/speakers/upload-a-speakers-profile-picture"}],"x-mint":{"metadata":{"playground":"none"}},"method":"post","type":"path","servers":["1d18b86c-7788-4642-b7dd-e742dff72e19"],"security":["03703fe3-7f18-4872-b9e9-d9cd2fe6d1fc"],"path":"/tools/v1_upload_speaker_pic","baseUrlOptions":["https://setup.zuddl.com/api/mcp"],"title":"Upload Speaker Picture","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"description":"The tool's `arguments`, as sent in a JSON-RPC `tools/call` request.","content":{"application/json":{"schema":{"type":"object","properties":{"eventId":{"type":"string","description":"Unique identifier of the event","isRequired":true,"uniqueKey":"eventId","typeLabel":"string"},"speakerId":{"type":"string","description":"Unique identifier of the speaker","isRequired":true,"uniqueKey":"speakerId","typeLabel":"string"},"imageFile":{"type":"object","description":"An image the user attached in this conversation. The host fills this in for file inputs — do not construct or invent it. Preferred source when available.","properties":{"download_url":{"type":"string","description":"Short-lived URL the server downloads the image from","uniqueKey":"imageFile.download_url","typeLabel":"string"},"file_id":{"type":"string","description":"Host's identifier for the uploaded file","uniqueKey":"imageFile.file_id","typeLabel":"string"},"file_name":{"type":"string","description":"Original file name, if the host sends one","uniqueKey":"imageFile.file_name","typeLabel":"string"},"mime_type":{"type":"string","description":"Declared MIME type; advisory only, the format is sniffed from the bytes","uniqueKey":"imageFile.mime_type","typeLabel":"string"}},"uniqueKey":"imageFile","typeLabel":"object"},"imageUrl":{"type":"string","description":"Publicly reachable https URL of the image (JPEG/PNG, max 4 MB, min 80x80 px).","uniqueKey":"imageUrl","typeLabel":"string"},"imageBase64":{"type":"string","description":"Base64 of the image FILE's raw bytes, produced by an actual encoder (e.g. `base64 -i photo.png`) and pasted verbatim — uncompressed, unresized, not re-encoded, not truncated. A data: URI prefix is allowed. Only usable when you can read a real file; never for an image you were only shown in the conversation.","uniqueKey":"imageBase64","typeLabel":"string"}},"required":["eventId","speakerId"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"eventId":"\u003cstring>","speakerId":"\u003cstring>","imageFile":{"download_url":"\u003cstring>","file_id":"\u003cstring>","file_name":"\u003cstring>","mime_type":"\u003cstring>"},"imageUrl":"\u003cstring>","imageBase64":"\u003cstring>"}}},"exampleType":"generated"}},"required":true,"exampleType":"generated"},"responses":{"0f90c9ae-f528-478c-b7cd-f51a8305a281":{"description":"A JSON-RPC `tools/call` result. The tool's output is in `content`.","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}}},"security":{"03703fe3-7f18-4872-b9e9-d9cd2fe6d1fc":{"oauth":{"type":"http","description":"OAuth 2.1 access token. MCP clients obtain it themselves (dynamic client registration + PKCE) when you connect them to the server URL above.","scheme":"bearer","scopes":[],"schemeName":"oauth"}}},"servers":{"1d18b86c-7788-4642-b7dd-e742dff72e19":{"url":"https://setup.zuddl.com/api/mcp","description":"Zuddl MCP server"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","description":"OAuth 2.1 access token. MCP clients obtain it themselves (dynamic client registration + PKCE) when you connect them to the server URL above.","scheme":"bearer","scopes":[],"schemeName":"oauth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"OAuth 2.1 access token. MCP clients obtain it themselves (dynamic client registration + PKCE) when you connect them to the server URL above.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"oauth","name":"Authorization"}],"title":"oauth"}]},"originalFileLocation":"https://api.prod.zuddl.com/api/v3/api-docs/mcp-tools"},"subdomain":"zuddl-2f3d3563","siteName":"Zuddl guides","title":"Upload Speaker Picture - Zuddl guides","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-27T06:46:20.280Z","originalFileLocation":"mcp-reference/speakers/upload-speaker-picture.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=\"light\";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=\"light\"}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=\"Tool name: v1_upload_speaker_pic · Behaviour: ✏️ Write Upload a profile picture for a speaker, replacing the current one. The image must be JPEG or PNG, at most 4 MB, and at least 80x80 px (300x300 recommended); its pixel data is fully decoded and anything incomplete or corrupt is rejected with IMAGE_CORRUPT. Provide exactly ONE source, in this order of preference: (1) imageFile — for an image the user attached in this conversation. Hosts that support file inputs fill this in themselves; you cannot construct it. (2) imageUrl — a publicly reachable https URL of the image. Redirects are not followed, and invalid, private or unresolvable URLs are rejected (INVALID_URL / PRIVATE_ADDRESS / UNRESOLVABLE). (3) imageBase64 — ONLY when you can run a real encoder over a real file on disk (e.g. base64 -i photo.png); send the output verbatim, uncompressed, unresized, not re-encoded and not truncated. NEVER hand-write, reconstruct, guess or abbreviate base64, and never try to encode an image you were merely shown in the conversation — you do not have its bytes and the result will be rejected. If the user attached an image and imageFile is unavailable, ask them for a URL instead. Returns the new picUrl. Same as Public API: Upload a speaker\u0026#x27;s profile picture (POST /v1/events/{eventId}/speakers/{speakerId}/pic)\">\u003cmeta data-mint-head name=\"application-name\" content=\"Zuddl guides\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/zuddl-2f3d3563/-eTLRHyA-a5Vwfxt/_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/zuddl-2f3d3563/-eTLRHyA-a5Vwfxt/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/zuddl-2f3d3563/-eTLRHyA-a5Vwfxt/_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/zuddl-2f3d3563/-eTLRHyA-a5Vwfxt/_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/zuddl-2f3d3563/-eTLRHyA-a5Vwfxt/_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/zuddl-2f3d3563/-eTLRHyA-a5Vwfxt/_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/zuddl-2f3d3563/-eTLRHyA-a5Vwfxt/_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/zuddl-2f3d3563/-eTLRHyA-a5Vwfxt/_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/zuddl-2f3d3563/-eTLRHyA-a5Vwfxt/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Upload Speaker Picture - Zuddl guides\">\u003cmeta data-mint-head property=\"og:description\" content=\"Tool name: v1_upload_speaker_pic · Behaviour: ✏️ Write Upload a profile picture for a speaker, replacing the current one. The image must be JPEG or PNG, at most 4 MB, and at least 80x80 px (300x300 recommended); its pixel data is fully decoded and anything incomplete or corrupt is rejected with IMAGE_CORRUPT. Provide exactly ONE source, in this order of preference: (1) imageFile — for an image the user attached in this conversation. Hosts that support file inputs fill this in themselves; you cannot construct it. (2) imageUrl — a publicly reachable https URL of the image. Redirects are not followed, and invalid, private or unresolvable URLs are rejected (INVALID_URL / PRIVATE_ADDRESS / UNRESOLVABLE). (3) imageBase64 — ONLY when you can run a real encoder over a real file on disk (e.g. base64 -i photo.png); send the output verbatim, uncompressed, unresized, not re-encoded and not truncated. NEVER hand-write, reconstruct, guess or abbreviate base64, and never try to encode an image you were merely shown in the conversation — you do not have its bytes and the result will be rejected. If the user attached an image and imageFile is unavailable, ask them for a URL instead. Returns the new picUrl. Same as Public API: Upload a speaker\u0026#x27;s profile picture (POST /v1/events/{eventId}/speakers/{speakerId}/pic)\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Zuddl guides\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.zuddl.com/mcp-reference/speakers/upload-speaker-picture\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://zuddl-2f3d3563.mintlify.app/_mintlify/api/og/v2?division=Speakers\u0026amp;title=Upload+Speaker+Picture\u0026amp;description=**Tool+name%3A**+%60v1_upload_speaker_pic%60+%C2%B7+**Behaviour%3A**+%E2%9C%8F%EF%B8%8F+Write%0A%0AUpload+a+profile+picture+for+a+speaker%2C+replacing+the+current+one.+The+image+must+be+JPEG+or+P\u0026amp;theme=b9dd646c8cdd23fa741fcf41\u0026amp;signature=9f7cb2af1284ebbb1c3bccef08c47282737b6d1ffa12c4e4becbd3c4b05d072d\">\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=\"Upload Speaker Picture - Zuddl guides\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Tool name: v1_upload_speaker_pic · Behaviour: ✏️ Write Upload a profile picture for a speaker, replacing the current one. The image must be JPEG or PNG, at most 4 MB, and at least 80x80 px (300x300 recommended); its pixel data is fully decoded and anything incomplete or corrupt is rejected with IMAGE_CORRUPT. Provide exactly ONE source, in this order of preference: (1) imageFile — for an image the user attached in this conversation. Hosts that support file inputs fill this in themselves; you cannot construct it. (2) imageUrl — a publicly reachable https URL of the image. Redirects are not followed, and invalid, private or unresolvable URLs are rejected (INVALID_URL / PRIVATE_ADDRESS / UNRESOLVABLE). (3) imageBase64 — ONLY when you can run a real encoder over a real file on disk (e.g. base64 -i photo.png); send the output verbatim, uncompressed, unresized, not re-encoded and not truncated. NEVER hand-write, reconstruct, guess or abbreviate base64, and never try to encode an image you were merely shown in the conversation — you do not have its bytes and the result will be rejected. If the user attached an image and imageFile is unavailable, ask them for a URL instead. Returns the new picUrl. Same as Public API: Upload a speaker\u0026#x27;s profile picture (POST /v1/events/{eventId}/speakers/{speakerId}/pic)\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://zuddl-2f3d3563.mintlify.app/_mintlify/api/og/v2?division=Speakers\u0026amp;title=Upload+Speaker+Picture\u0026amp;description=**Tool+name%3A**+%60v1_upload_speaker_pic%60+%C2%B7+**Behaviour%3A**+%E2%9C%8F%EF%B8%8F+Write%0A%0AUpload+a+profile+picture+for+a+speaker%2C+replacing+the+current+one.+The+image+must+be+JPEG+or+P\u0026amp;theme=b9dd646c8cdd23fa741fcf41\u0026amp;signature=9f7cb2af1284ebbb1c3bccef08c47282737b6d1ffa12c4e4becbd3c4b05d072d\">\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/zuddl-2f3d3563/-eTLRHyA-a5Vwfxt/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Zuddl guides\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#843DF5\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.zuddl.com/mcp-reference/speakers/upload-speaker-picture\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/mcp-reference/speakers/upload-speaker-picture.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.zuddl.com/#organization\",\"name\":\"Zuddl guides\",\"url\":\"https://docs.zuddl.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/zuddl-2f3d3563/t-oKtTCoPeeFOd0s/logo/ZuddlLogo.svg?fit=max\u0026auto=format\u0026n=t-oKtTCoPeeFOd0s\u0026q=85\u0026s=c7c00bcb1a029f560a632baf30c667c2\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.zuddl.com#website\",\"name\":\"Zuddl guides\",\"url\":\"https://docs.zuddl.com\",\"publisher\":{\"@id\":\"https://docs.zuddl.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.zuddl.com/mcp-reference/speakers/upload-speaker-picture#webpage\",\"url\":\"https://docs.zuddl.com/mcp-reference/speakers/upload-speaker-picture\",\"name\":\"Upload Speaker Picture\",\"description\":\"Tool name: v1_upload_speaker_pic · Behaviour: ✏️ Write Upload a profile picture for a speaker, replacing the current one. The image must be JPEG or PNG, at most 4 MB, and at least 80x80 px (300x300 recommended); its pixel data is fully decoded and anything incomplete or corrupt is rejected with IMAGE_CORRUPT. Provide exactly ONE source, in this order of preference: (1) imageFile — for an image the user attached in this conversation. Hosts that support file inputs fill this in themselves; you cannot construct it. (2) imageUrl — a publicly reachable https URL of the image. Redirects are not followed, and invalid, private or unresolvable URLs are rejected (INVALID_URL / PRIVATE_ADDRESS / UNRESOLVABLE). (3) imageBase64 — ONLY when you can run a real encoder over a real file on disk (e.g. base64 -i photo.png); send the output verbatim, uncompressed, unresized, not re-encoded and not truncated. NEVER hand-write, reconstruct, guess or abbreviate base64, and never try to encode an image you were merely shown in the conversation — you do not have its bytes and the result will be rejected. If the user attached an image and imageFile is unavailable, ask them for a URL instead. Returns the new picUrl. Same as Public API: Upload a speaker's profile picture (POST /v1/events/{eventId}/speakers/{speakerId}/pic)\",\"dateModified\":\"2026-10-27T06:46:20.280Z\",\"isPartOf\":{\"@id\":\"https://docs.zuddl.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.zuddl.com/mcp-reference/speakers/upload-speaker-picture#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.zuddl.com/mcp-reference/speakers/upload-speaker-picture#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"MCP Tools\",\"item\":\"https://docs.zuddl.com/mcp-reference/analytics/ask-zuddl-analytics\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Speakers\",\"item\":\"https://docs.zuddl.com/mcp-reference/speakers/create-speaker\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Upload Speaker Picture\",\"item\":\"https://docs.zuddl.com/mcp-reference/speakers/upload-speaker-picture\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.zuddl.com/mcp-reference/speakers/upload-speaker-picture#apireference\",\"headline\":\"Upload Speaker Picture\",\"name\":\"Upload Speaker Picture\",\"description\":\"Tool name: v1_upload_speaker_pic · Behaviour: ✏️ Write Upload a profile picture for a speaker, replacing the current one. The image must be JPEG or PNG, at most 4 MB, and at least 80x80 px (300x300 recommended); its pixel data is fully decoded and anything incomplete or corrupt is rejected with IMAGE_CORRUPT. Provide exactly ONE source, in this order of preference: (1) imageFile — for an image the user attached in this conversation. Hosts that support file inputs fill this in themselves; you cannot construct it. (2) imageUrl — a publicly reachable https URL of the image. Redirects are not followed, and invalid, private or unresolvable URLs are rejected (INVALID_URL / PRIVATE_ADDRESS / UNRESOLVABLE). (3) imageBase64 — ONLY when you can run a real encoder over a real file on disk (e.g. base64 -i photo.png); send the output verbatim, uncompressed, unresized, not re-encoded and not truncated. NEVER hand-write, reconstruct, guess or abbreviate base64, and never try to encode an image you were merely shown in the conversation — you do not have its bytes and the result will be rejected. If the user attached an image and imageFile is unavailable, ask them for a URL instead. Returns the new picUrl. Same as Public API: Upload a speaker's profile picture (POST /v1/events/{eventId}/speakers/{speakerId}/pic)\",\"url\":\"https://docs.zuddl.com/mcp-reference/speakers/upload-speaker-picture\",\"mainEntityOfPage\":{\"@id\":\"https://docs.zuddl.com/mcp-reference/speakers/upload-speaker-picture#webpage\"},\"dateModified\":\"2026-10-27T06:46:20.280Z\",\"publisher\":{\"@id\":\"https://docs.zuddl.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.zuddl.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Zuddl guides\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Zuddl guides","nav":{"global":{},"tabs":[{"tab":"Docs","pages":[{"title":"Docs","href":""}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/introduction"}]},{"tab":"MCP Tools Reference","groups":[{"group":"MCP Tools Reference","pages":[{"title":"Introduction to the Zuddl MCP server","href":"/mcp-reference/introduction"}]},{"group":"MCP Tools","pages":[{"group":"Analytics","pages":[{"title":"Ask Zuddl Analytics","deprecated":null,"version":null,"playground":"none","openapi":"https://api.prod.zuddl.com/api/v3/api-docs/mcp-tools post /tools/ask_zuddl_analytics","href":"/mcp-reference/analytics/ask-zuddl-analytics"}]},{"group":"Attendees","pages":[{"title":"Count Attendees","deprecated":null,"version":null,"playground":"none","openapi":"https://api.prod.zuddl.com/api/v3/api-docs/mcp-tools post /tools/search_attendee_count","href":"/mcp-reference/attendees/count-attendees"},{"title":"Search Attendees","deprecated":null,"version":null,"playground":"none","openapi":"https://api.prod.zuddl.com/api/v3/api-docs/mcp-tools post /tools/search_attendees","href":"/mcp-reference/attendees/search-attendees"},{"title":"Update Registration Status","deprecated":null,"version":null,"playground":"none","openapi":"https://api.prod.zuddl.com/api/v3/api-docs/mcp-tools post /tools/update_registration_status","href":"/mcp-reference/attendees/update-registration-status"},{"title":"Check In Attendee to Event","deprecated":null,"version":null,"playground":"none","openapi":"https://api.prod.zuddl.com/api/v3/api-docs/mcp-tools post /tools/v1_checkin_event_attendee","href":"/mcp-reference/attendees/check-in-attendee-to-event"},{"title":"Check Out Attendee from Event","deprecated":null,"version":null,"playground":"none","openapi":"https://api.prod.zuddl.com/api/v3/api-docs/mcp-tools post /tools/v1_checkout_event_attendee","href":"/mcp-reference/attendees/check-out-attendee-from-event"},{"title":"Get Attendee Details","deprecated":null,"version":null,"playground":"none","openapi":"https://api.prod.zuddl.com/api/v3/api-docs/mcp-tools post /tools/v1_get_attendee","href":"/mcp-reference/attendees/get-attendee-details"},{"title":"List Attendees","deprecated":null,"version":null,"playground":"none","openapi":"https://api.prod.zuddl.com/api/v3/api-docs/mcp-tools post /tools/v1_list_attendees","href":"/mcp-reference/attendees/list-attendees"},{"title":"Register Attendee","deprecated":null,"version":null,"playground":"none","openapi":"https://api.prod.zuddl.com/api/v3/api-docs/mcp-tools post /tools/v1_register_attendee","href":"/mcp-reference/attendees/register-attendee"}]},{"group":"Events","pages":[{"title":"Search Events","deprecated":null,"version":null,"playground":"none","openapi":"https://api.prod.zuddl.com/api/v3/api-docs/mcp-tools post /tools/search_event","href":"/mcp-reference/events/search-events"},{"title":"Create Event","deprecated":null,"version":null,"playground":"none","openapi":"https://api.prod.zuddl.com/api/v3/api-docs/mcp-tools post /tools/v1_create_event","href":"/mcp-reference/events/create-event"},{"title":"Duplicate Event","deprecated":null,"version":null,"playground":"none","openapi":"https://api.prod.zuddl.com/api/v3/api-docs/mcp-tools post /tools/v1_duplicate_event","href":"/mcp-reference/events/duplicate-event"},{"title":"Get Event Details","deprecated":null,"version":null,"playground":"none","openapi":"https://api.prod.zuddl.com/api/v3/api-docs/mcp-tools post /tools/v1_get_event","href":"/mcp-reference/events/get-event-details"},{"title":"Get Event Duplication Status","deprecated":null,"version":null,"playground":"none","openapi":"https://api.prod.zuddl.com/api/v3/api-docs/mcp-tools post /tools/v1_get_event_duplication_status","href":"/mcp-reference/events/get-event-duplication-status"},{"title":"List Events","deprecated":null,"version":null,"playground":"none","openapi":"https://api.prod.zuddl.com/api/v3/api-docs/mcp-tools post /tools/v1_list_events","href":"/mcp-reference/events/list-events"},{"title":"List Languages","deprecated":null,"version":null,"playground":"none","openapi":"https://api.prod.zuddl.com/api/v3/api-docs/mcp-tools post /tools/v1_list_languages","href":"/mcp-reference/events/list-languages"},{"title":"List Tags","deprecated":null,"version":null,"playground":"none","openapi":"https://api.prod.zuddl.com/api/v3/api-docs/mcp-tools post /tools/v1_list_tags","href":"/mcp-reference/events/list-tags"}]},{"group":"Registration flows \u0026 tickets","pages":[{"title":"Search Registration Flows","deprecated":null,"version":null,"playground":"none","openapi":"https://api.prod.zuddl.com/api/v3/api-docs/mcp-tools post /tools/search_flow","href":"/mcp-reference/registration-flows-\u0026-tickets/search-registration-flows"},{"title":"Search Ticket Types","deprecated":null,"version":null,"playground":"none","openapi":"https://api.prod.zuddl.com/api/v3/api-docs/mcp-tools post /tools/search_ticket_type","href":"/mcp-reference/registration-flows-\u0026-tickets/search-ticket-types"}]},{"group":"Sessions","pages":[{"title":"Add Session Files","deprecated":null,"version":null,"playground":"none","openapi":"https://api.prod.zuddl.com/api/v3/api-docs/mcp-tools post /tools/v1_add_session_files","href":"/mcp-reference/sessions/add-session-files"},{"title":"Add Session Speakers","deprecated":null,"version":null,"playground":"none","openapi":"https://api.prod.zuddl.com/api/v3/api-docs/mcp-tools post /tools/v1_add_session_speakers","href":"/mcp-reference/sessions/add-session-speakers"},{"title":"Check In Attendee to Session","deprecated":null,"version":null,"playground":"none","openapi":"https://api.prod.zuddl.com/api/v3/api-docs/mcp-tools post /tools/v1_checkin_session_attendee","href":"/mcp-reference/sessions/check-in-attendee-to-session"},{"title":"Check Out Attendee from Session","deprecated":null,"version":null,"playground":"none","openapi":"https://api.prod.zuddl.com/api/v3/api-docs/mcp-tools post /tools/v1_checkout_session_attendee","href":"/mcp-reference/sessions/check-out-attendee-from-session"},{"title":"Create Session","deprecated":null,"version":null,"playground":"none","openapi":"https://api.prod.zuddl.com/api/v3/api-docs/mcp-tools post /tools/v1_create_session","href":"/mcp-reference/sessions/create-session"},{"title":"Get Session Details","deprecated":null,"version":null,"playground":"none","openapi":"https://api.prod.zuddl.com/api/v3/api-docs/mcp-tools post /tools/v1_get_session","href":"/mcp-reference/sessions/get-session-details"},{"title":"List Sessions","deprecated":null,"version":null,"playground":"none","openapi":"https://api.prod.zuddl.com/api/v3/api-docs/mcp-tools post /tools/v1_list_sessions","href":"/mcp-reference/sessions/list-sessions"},{"title":"Remove Session Files","deprecated":null,"version":null,"playground":"none","openapi":"https://api.prod.zuddl.com/api/v3/api-docs/mcp-tools post /tools/v1_remove_session_files","href":"/mcp-reference/sessions/remove-session-files"},{"title":"Remove Session Speakers","deprecated":null,"version":null,"playground":"none","openapi":"https://api.prod.zuddl.com/api/v3/api-docs/mcp-tools post /tools/v1_remove_session_speakers","href":"/mcp-reference/sessions/remove-session-speakers"},{"title":"Update Session","deprecated":null,"version":null,"playground":"none","openapi":"https://api.prod.zuddl.com/api/v3/api-docs/mcp-tools post /tools/v1_update_session","href":"/mcp-reference/sessions/update-session"}]},{"group":"Locations","pages":[{"title":"Create Location","deprecated":null,"version":null,"playground":"none","openapi":"https://api.prod.zuddl.com/api/v3/api-docs/mcp-tools post /tools/v1_create_location","href":"/mcp-reference/locations/create-location"},{"title":"Delete Location","deprecated":null,"version":null,"playground":"none","openapi":"https://api.prod.zuddl.com/api/v3/api-docs/mcp-tools post /tools/v1_delete_location","href":"/mcp-reference/locations/delete-location"},{"title":"Get Location Details","deprecated":null,"version":null,"playground":"none","openapi":"https://api.prod.zuddl.com/api/v3/api-docs/mcp-tools post /tools/v1_get_location","href":"/mcp-reference/locations/get-location-details"},{"title":"List Locations","deprecated":null,"version":null,"playground":"none","openapi":"https://api.prod.zuddl.com/api/v3/api-docs/mcp-tools post /tools/v1_list_locations","href":"/mcp-reference/locations/list-locations"},{"title":"Update Location","deprecated":null,"version":null,"playground":"none","openapi":"https://api.prod.zuddl.com/api/v3/api-docs/mcp-tools post /tools/v1_update_location","href":"/mcp-reference/locations/update-location"}]},{"group":"Speakers","pages":[{"title":"Create Speaker","deprecated":null,"version":null,"playground":"none","openapi":"https://api.prod.zuddl.com/api/v3/api-docs/mcp-tools post /tools/v1_create_speaker","href":"/mcp-reference/speakers/create-speaker"},{"title":"Get Speaker Details","deprecated":null,"version":null,"playground":"none","openapi":"https://api.prod.zuddl.com/api/v3/api-docs/mcp-tools post /tools/v1_get_speaker","href":"/mcp-reference/speakers/get-speaker-details"},{"title":"List Speakers","deprecated":null,"version":null,"playground":"none","openapi":"https://api.prod.zuddl.com/api/v3/api-docs/mcp-tools post /tools/v1_list_speakers","href":"/mcp-reference/speakers/list-speakers"},{"title":"Update Speaker","description":"**Tool name:** `v1_update_speaker` · **Behaviour:** ✏️ Write · 🔁 Idempotent\n\nUpdate an existing speaker for a specific event in your Zuddl organization. This replaces the speaker's details with the given values.\n\n**Same as Public API:** [Update an existing speaker](/api-reference/speakers/update-an-existing-speaker) (`PUT /v1/events/{eventId}/speakers/{speakerId}`)","deprecated":null,"version":null,"playground":"none","openapi":"https://api.prod.zuddl.com/api/v3/api-docs/mcp-tools post /tools/v1_update_speaker","href":"/mcp-reference/speakers/update-speaker"},{"title":"Upload Speaker Picture","deprecated":null,"version":null,"playground":"none","openapi":"https://api.prod.zuddl.com/api/v3/api-docs/mcp-tools post /tools/v1_upload_speaker_pic","href":"/mcp-reference/speakers/upload-speaker-picture"}]},{"group":"Sponsors","pages":[{"title":"Create Sponsor","description":"**Tool name:** `v1_create_sponsor` · **Behaviour:** ✏️ Write\n\nAdd a sponsor to an event in your Zuddl organization. Only the name is required. This call does NOT take a logo or cover image: create the sponsor, then call v1_upload_sponsor_image with the returned sponsor id. On events where the exhibitor portal is enabled the organization's plan is checked first, so this can fail with a 403 naming the sponsor limit — that is a plan problem, not a bad request. Returns the created sponsor.\n\n**Same as Public API:** [Create a sponsor](/api-reference/sponsors/create-a-sponsor) (`POST /v1/events/{eventId}/sponsors`)","deprecated":null,"version":null,"playground":"none","openapi":"https://api.prod.zuddl.com/api/v3/api-docs/mcp-tools post /tools/v1_create_sponsor","href":"/mcp-reference/sponsors/create-sponsor"},{"title":"Get Sponsor Details","deprecated":null,"version":null,"playground":"none","openapi":"https://api.prod.zuddl.com/api/v3/api-docs/mcp-tools post /tools/v1_get_sponsor","href":"/mcp-reference/sponsors/get-sponsor-details"},{"title":"List Sponsors","deprecated":null,"version":null,"playground":"none","openapi":"https://api.prod.zuddl.com/api/v3/api-docs/mcp-tools post /tools/v1_list_sponsors","href":"/mcp-reference/sponsors/list-sponsors"},{"title":"Update Sponsor","deprecated":null,"version":null,"playground":"none","openapi":"https://api.prod.zuddl.com/api/v3/api-docs/mcp-tools post /tools/v1_update_sponsor","href":"/mcp-reference/sponsors/update-sponsor"},{"title":"Upload Sponsor Image","deprecated":null,"version":null,"playground":"none","openapi":"https://api.prod.zuddl.com/api/v3/api-docs/mcp-tools post /tools/v1_upload_sponsor_image","href":"/mcp-reference/sponsors/upload-sponsor-image"}]},{"group":"Brand Kits","pages":[{"title":"List Brand Kits","deprecated":null,"version":null,"playground":"none","openapi":"https://api.prod.zuddl.com/api/v3/api-docs/mcp-tools post /tools/v1_list_brand_kits","href":"/mcp-reference/brand-kits/list-brand-kits"}]},{"group":"Teams","pages":[{"title":"List Teams","deprecated":null,"version":null,"playground":"none","openapi":"https://api.prod.zuddl.com/api/v3/api-docs/mcp-tools post /tools/v1_list_teams","href":"/mcp-reference/teams/list-teams"}]}]}]},{"tab":"Webhook Reference","pages":[{"title":"Webhook Reference","href":"/api-reference/ticketingwebhooks/add-on-modified-activity"}]},{"tab":"Help Center","href":"https://support.zuddl.com/"}]},"title":"Upload Speaker Picture - Zuddl guides","buildId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","deploymentId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-rfhihCWU.js","utils-BmH1XFxk.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-BcNsxPKB.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-BAES3tkd.js","snippetPresets-DCMQBKLP.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-D6l_bzE9.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BOktbnNh.js","shallow-BCs8SgM7.js","getApiPlaygroundDisplay-DEmW5bJB.js","CodeSnippet-CpZOpB9C.js","CodeSnippets-BOBDqibl.js","Page-D5fEM6aW.js","getPastedJson-DH2JBvmr.js","icon-BBJH-kKh.js","MethodPill-D2Sd5NLC.js","DuplicateIcon-CGgfL2qN.js","createIcon-BKudBBzi.js","DynamicMarkdown-85clUA0i.js","SectionHeading-D0JiMgDx.js","axios-vUo_bRtp.js","Markdown-Cfiy0xZO.js","clsx-rL8ZCCw4.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-aeztFa9U.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BywkCr5C.js"]}