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

# Update username

> Updates the current user's username. Must be 3-30 characters. Letters, numbers, and `_ - .` allowed; must start and end with a letter or number. Returns 409 if the username is already taken.



## OpenAPI

````yaml /openapi/openapi.json patch /users/me
openapi: 3.0.2
info:
  title: AGG API
  version: 1.0.0
  description: >-
    Prediction market aggregator REST API — authentication, users, venue events,
    venue markets, orderbooks, charts, and execution workflows.
servers:
  - url: https://api.agg.market
    description: Production
  - url: https://api.staging.agg.market
    description: Staging
security: []
paths:
  /users/me:
    patch:
      tags:
        - Users
      summary: Update username
      description: >-
        Updates the current user's username. Must be 3-30 characters. Letters,
        numbers, and `_ - .` allowed; must start and end with a letter or
        number. Returns 409 if the username is already taken.
      operationId: patchUser
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                username:
                  minLength: 3
                  maxLength: 30
                  pattern: ^[A-Za-z0-9][A-Za-z0-9._-]{1,28}[A-Za-z0-9]$
                  type: string
                confirmAvatar:
                  type: boolean
                  enum:
                    - true
                removeAvatar:
                  type: boolean
                  enum:
                    - true
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                type: object
                required:
                  - id
                  - username
                  - avatarUrl
                  - externalId
                  - isLocationBlocked
                  - accounts
                  - wallets
                  - venueAccounts
                properties:
                  id:
                    type: string
                  username:
                    type: string
                    nullable: true
                  avatarUrl:
                    type: string
                    nullable: true
                  externalId:
                    type: string
                    nullable: true
                  isLocationBlocked:
                    type: boolean
                  accounts:
                    type: array
                    items:
                      type: object
                      required:
                        - type
                        - provider
                        - providerAccountId
                      properties:
                        type:
                          type: string
                          enum:
                            - oauth
                            - siwe
                            - siws
                            - email
                        provider:
                          type: string
                          enum:
                            - wallet
                            - solana_wallet
                            - google
                            - twitter
                            - apple
                            - email
                        providerAccountId:
                          type: string
                  wallets:
                    type: array
                    items:
                      type: object
                      required:
                        - chain
                        - address
                      properties:
                        chain:
                          type: string
                          enum:
                            - evm
                            - svm
                        address:
                          type: string
                  venueAccounts:
                    type: array
                    items:
                      type: object
                      required:
                        - id
                        - venue
                        - status
                        - kycStatus
                      properties:
                        id:
                          type: string
                        venue:
                          type: string
                          enum:
                            - kalshi
                            - polymarket
                            - limitless
                            - opinion
                            - predict
                            - probable
                            - myriad
                            - hyperliquid
                        status:
                          type: string
                        kycStatus:
                          type: string
                    nullable: true
        '400':
          description: '400'
          content:
            application/json:
              schema:
                type: object
                required:
                  - message
                properties:
                  message:
                    type: string
        '401':
          description: '401'
          content:
            application/json:
              schema:
                type: object
                required:
                  - message
                properties:
                  message:
                    type: string
        '403':
          description: '403'
          content:
            application/json:
              schema:
                type: object
                required:
                  - message
                properties:
                  message:
                    type: string
        '409':
          description: '409'
          content:
            application/json:
              schema:
                type: object
                required:
                  - message
                properties:
                  message:
                    type: string
      security:
        - appId: []
          bearerAuth: []
components:
  securitySchemes:
    appId:
      type: apiKey
      in: header
      name: x-app-id
      description: Your application ID. Required for all app-tier and user-tier routes.
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        JWT access token returned by POST /auth/verify. Required for user-tier
        routes.

````