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

# Update user profile picture

> Replace the user profile picture with a custom image. Accepts PNG, JPEG, or WEBP format. Maximum file size: 5MB.



## OpenAPI

````yaml patch /users/{id}/logo
openapi: 3.0.0
info:
  title: OST API
  description: OST API endpoints
  version: '0.1'
  contact: {}
servers:
  - url: https://api.opensource-together.com
    description: Backend server
security: []
tags:
  - name: ost
    description: ''
paths:
  /users/{id}/logo:
    patch:
      tags:
        - User
      summary: Update user profile picture
      description: >-
        Replace the user profile picture with a custom image. Accepts PNG, JPEG,
        or WEBP format. Maximum file size: 5MB.
      operationId: UserController_updateLogo
      parameters:
        - name: id
          required: true
          in: path
          description: Public ID of the user
          schema:
            type: string
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
      responses:
        '200':
          description: Logo updated
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/UserEntity'
                  timestamp:
                    type: string
                    format: date-time
                    example: '2025-09-03T13:04:43.353Z'
                required:
                  - data
                  - timestamp
        '400':
          description: Validation failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      message:
                        type: string
                      code:
                        type: string
                      details:
                        type: object
                  timestamp:
                    type: string
                    format: date-time
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      message:
                        type: string
                      code:
                        type: string
                      details:
                        type: object
                  timestamp:
                    type: string
                    format: date-time
        '404':
          description: User not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      message:
                        type: string
                      code:
                        type: string
                      details:
                        type: object
                  timestamp:
                    type: string
                    format: date-time
components:
  schemas:
    UserEntity:
      type: object
      properties:
        id:
          type: string
          pattern: ^usr_[0-9a-fA-F]{32}$
          example: usr_c54b633eb12f4900b92b34e222096449
        name:
          type: string
        email:
          type: string
        image:
          type: string
          nullable: true
        banner:
          type: string
          nullable: true
        bio:
          type: string
          nullable: true
        jobTitle:
          type: string
          nullable: true
        userExperiences:
          nullable: true
          description: >-
            User experiences with start date, end date, title and optional URL
            (max 10)
          type: array
          items:
            $ref: '#/components/schemas/ExperienceSchema'
        githubUrl:
          type: string
          nullable: true
          example: https://github.com/username
        gitlabUrl:
          type: string
          nullable: true
          example: https://gitlab.com/username
        twitterUrl:
          type: string
          nullable: true
          example: https://twitter.com/username
        linkedinUrl:
          type: string
          nullable: true
          example: https://linkedin.com/in/username
        discordUrl:
          type: string
          nullable: true
          example: https://discord.gg/server
        websiteUrl:
          type: string
          nullable: true
          example: https://example.com
        betaTester:
          type: boolean
          description: Indicates if the user is a beta tester
          example: false
        connectedProviders:
          description: Connected providers
          example:
            - github
            - gitlab
          type: array
          items:
            type: string
        userTechStacks:
          description: User tech stacks (max 10)
          type: array
          items:
            $ref: '#/components/schemas/TechStackEntity'
        userCategories:
          description: User categories (max 10)
          type: array
          items:
            $ref: '#/components/schemas/CategoryEntity'
        contributionGraph:
          nullable: true
          description: GitHub contribution graph data with weekly contribution calendar
          allOf:
            - $ref: '#/components/schemas/ContributionGraphSchema'
      required:
        - id
        - name
        - email
        - image
        - banner
        - bio
        - jobTitle
        - githubUrl
        - gitlabUrl
        - twitterUrl
        - linkedinUrl
        - discordUrl
        - websiteUrl
        - betaTester
        - connectedProviders
    ExperienceSchema:
      type: object
      properties:
        startAt:
          type: string
          description: Start date of the experience
          format: date
          example: '2023-01-15'
        endAt:
          type: string
          description: End date of the experience (null if current)
          format: date
          example: '2023-12-31'
          nullable: true
        title:
          type: string
          description: Title or position of the experience
          example: Senior Software Engineer
        url:
          type: string
          description: >-
            Optional URL related to the experience (company website, project,
            etc.)
          example: https://company.com
          nullable: true
      required:
        - startAt
        - endAt
        - title
        - url
    TechStackEntity:
      type: object
      properties:
        id:
          type: string
          pattern: ^tst_[0-9a-fA-F]{32}$
          example: tst_c54b633eb12f4900b92b34e222096449
        name:
          type: string
          example: React
        iconUrl:
          type: string
          example: >-
            https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/react/react-original.svg
        type:
          type: string
          enum:
            - TECH
            - LANGUAGE
          example: TECH
      required:
        - id
        - name
        - iconUrl
        - type
    CategoryEntity:
      type: object
      properties:
        id:
          type: string
          pattern: ^cat_[0-9a-fA-F]{32}$
          example: cat_c54b633eb12f4900b92b34e222096449
        name:
          type: string
          example: API & Microservices
      required:
        - id
        - name
    ContributionGraphSchema:
      type: object
      properties:
        totalContributions:
          type: number
          description: Total number of contributions in the period
          example: 720
        weeks:
          description: Array of weeks containing contribution data
          type: array
          items:
            $ref: '#/components/schemas/ContributionWeekSchema'
      required:
        - totalContributions
    ContributionWeekSchema:
      type: object
      properties:
        contributionDays:
          description: Array of contribution days in this week
          type: array
          items:
            $ref: '#/components/schemas/ContributionDaySchema'
      required:
        - contributionDays
    ContributionDaySchema:
      type: object
      properties:
        date:
          type: string
          description: Date of the contribution day
          example: '2025-10-06'
        contributionCount:
          type: number
          description: Number of contributions on this day
          example: 5
        contributionLevel:
          type: string
          description: Contribution level for the day
          enum:
            - NONE
            - FIRST_QUARTILE
            - SECOND_QUARTILE
            - THIRD_QUARTILE
            - FOURTH_QUARTILE
          example: SECOND_QUARTILE
        color:
          type: string
          description: Color code for the contribution level
          example: '#40c463'
      required:
        - date
        - contributionCount
        - contributionLevel
        - color

````