> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zuddl.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Upload a speaker's profile picture

> Uploads and validates a picture (JPEG/PNG, max 4 MB, min 80x80 px) and replaces the speaker's current one. Send either a multipart part named 'file' or an 'imageUrl' request parameter pointing to a publicly reachable image — exactly one of the two.

Required API key scopes: `WRITE`

**This API can only be called with an access key that was generated for Backend usage.**



## OpenAPI

````yaml https://api.prod.zuddl.com/api/v3/api-docs/api-product post /v1/events/{eventId}/speakers/{speakerId}/pic
openapi: 3.1.0
info:
  title: Zuddl API Documentation
  description: >-
    Zuddl RESTful APIs let you interact with the Zuddl platform and take action
    for your event or webinar. They let you add attendees, get attendee details,
    get event details, and more.


    The API response is returned in JSON, which your systems can easily consume.


    The API parameters allow you to customize the response using filters,
    sorting, pagination, and other parameters. Parameter values should be
    percent-encoded (URL-encoded) to ensure correct transmission, especially if
    they contain special characters such as spaces, semi-colons, or slashes.


    # Rate limits


    | Metrics | Value |

    | --- | --- |

    | Requests/second | 10 |

    | Burst or no. of concurrent calls allowed | 100 requests |

    | Total quota | 10000 requests/day |
  version: '1.0'
servers:
  - url: https://api.zuddl.com/
security:
  - api_key: []
tags:
  - name: Events
    description: API endpoints for managing events
  - name: Attendees
    description: >-
      The attendee APIs let you add and retrieve attendee in a particular event
      type.
  - name: Sessions
    description: API endpoints for managing event sessions
  - name: Speakers
    description: API endpoints for managing event speakers
  - name: Sponsors
    description: API endpoints for managing event sponsors
  - name: Teams
    description: API endpoints for reading the teams events can be created in
  - name: Locations
    description: API endpoints for managing event locations
paths:
  /v1/events/{eventId}/speakers/{speakerId}/pic:
    post:
      tags:
        - Speakers
      summary: Upload a speaker's profile picture
      description: >-
        Uploads and validates a picture (JPEG/PNG, max 4 MB, min 80x80 px) and
        replaces the speaker's current one. Send either a multipart part named
        'file' or an 'imageUrl' request parameter pointing to a publicly
        reachable image — exactly one of the two.


        Required API key scopes: `WRITE`


        **This API can only be called with an access key that was generated for
        Backend usage.**
      operationId: uploadSpeakerPic
      parameters:
        - name: eventId
          in: path
          description: Unique identifier of the event
          required: true
          schema:
            type: string
            pattern: >-
              ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
          example: 4fcebf73-3ddb-4fe6-b56d-5dd7dedb7c3d
        - name: speakerId
          in: path
          description: Unique identifier of the speaker
          required: true
          schema:
            type: string
            pattern: >-
              ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
          example: 4fcebf73-3ddb-4fe6-b56d-5dd7dedb7c3g
        - name: imageUrl
          in: query
          description: Publicly reachable image URL — alternative to 'file'
          required: false
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
                  description: The image file (multipart part named 'file')
      responses:
        '200':
          description: Picture uploaded and speaker updated
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/org.events.app.domain.api_product.event.speaker.dtos.SpeakerPicUploadResponse
        '400':
          description: >-
            Invalid image (type, size, dimensions, or corrupt/incomplete pixel
            data), failed imageUrl download, or missing/ambiguous image source
          content:
            '*/*':
              schema:
                $ref: >-
                  #/components/schemas/org.events.app._internal._response.v1.ApiErrorResponse
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                $ref: >-
                  #/components/schemas/org.events.app._internal._response.v1.ApiErrorResponse
        '404':
          description: Speaker not found (SPEAKER_NOT_FOUND)
          content:
            '*/*':
              schema:
                $ref: >-
                  #/components/schemas/org.events.app._internal._response.v1.ApiErrorResponse
        '413':
          description: >-
            Multipart body exceeds the server upload limit (FILE_TOO_LARGE;
            legacy error envelope)
          content:
            '*/*':
              schema:
                $ref: >-
                  #/components/schemas/org.events.app.domain.api_product.event.speaker.dtos.SpeakerPicUploadResponse
        '422':
          description: >-
            imageUrl rejected before download: INVALID_URL, PRIVATE_ADDRESS, or
            UNRESOLVABLE
          content:
            '*/*':
              schema:
                $ref: >-
                  #/components/schemas/org.events.app._internal._response.v1.ApiErrorResponse
components:
  schemas:
    org.events.app.domain.api_product.event.speaker.dtos.SpeakerPicUploadResponse:
      properties:
        speakerId:
          type: string
          format: uuid
          description: ID of the speaker whose picture was replaced
          example: 4fcebf73-3ddb-4fe6-b56d-5dd7dedb7c3d
        picUrl:
          type: string
          description: Public URL of the newly uploaded picture
          example: https://phoenixlive.imgix.net/9b2f1c33-0d5a-4d5e-8b6a-1f2e3d4c5b6a
    org.events.app._internal._response.v1.ApiErrorResponse:
      properties:
        timestamp:
          type: string
          format: date-time
        message:
          type: string
        description:
          type: string
        code:
          type: string
        params:
          type: object
          additionalProperties:
            type: object
        errors:
          type: object
          additionalProperties:
            type: string
  securitySchemes:
    api_key:
      type: apiKey
      description: Provide your API key secret in the `Authorization` header
      name: Authorization
      in: header

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.