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

# Refresh a session

> Refresh an existing session using the refresh token. If a session's access token has expired but the refresh token is still valid, the existing session can be refreshed.
New access and refresh tokens will be returned.

The refresh token should be used in place of the access token in the authorization header for Bearer authentication.

This is a faster operation than creating a new session and refreshing should be preferred to creating new sessions where possible.




## OpenAPI

````yaml https://docs.api.monacoprotocol.xyz/api/v1/exchange-openapi-general.json post /sessions/refresh
openapi: 3.1.0
info:
  title: BetDEX General Integration API
  description: >-
    A RESTful API that allows you to interact with the BetDEX Exchange. Provides
    endpoints for managing Events, Markets, Sessions, Wallets and Orders. To
    interact with the API, a client must have an App Id and an API Key to
    authenticate and create a session.
  version: '0.1'
servers:
  - url: https://sandbox.api.btdx.io/
    description: Sandbox API Server
  - url: https://prod.api.btdx.io/
    description: Production API Server
security: []
tags:
  - name: API Key Management
  - name: App Management
  - name: Currencies
  - name: Event Categories
  - name: Event Groups
  - name: Event Subcategories
  - name: Events
  - name: External Reference Sources
  - name: Heartbeat Management
  - name: Market Prices
  - name: Market Types
  - name: Markets
  - name: Orders
  - name: Participants
  - name: Session Management
  - name: Status
  - name: Trades
  - name: Wallet API Key Management
  - name: Wallets
paths:
  /sessions/refresh:
    post:
      tags:
        - Session Management
      summary: Refresh a session
      description: >
        Refresh an existing session using the refresh token. If a session's
        access token has expired but the refresh token is still valid, the
        existing session can be refreshed.

        New access and refresh tokens will be returned.


        The refresh token should be used in place of the access token in the
        authorization header for Bearer authentication.


        This is a faster operation than creating a new session and refreshing
        should be preferred to creating new sessions where possible.
      operationId: refreshSession
      parameters:
        - name: authorization
          in: header
          description: Header with the refreshToken for the current session
          required: true
          schema:
            type: string
          example: Bearer eyJ0eXAiOiJ...bjV7AtDgA
      requestBody:
        description: >-
          NOTE: This request body is deprecated, plase pass the refresh token as
          part of the authorization header instead
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RefreshSessionRequest'
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SessionResponse'
        '401':
          description: Session invalid
          content:
            '*/*':
              example:
                title: Unauthorized
                details:
                  - null
components:
  schemas:
    RefreshSessionRequest:
      type: object
      deprecated: true
      description: >-
        Pass the refresh token in the authorization header instead of using this
        request body
      example:
        refreshToken: eyJ0eXAiOiJy....uHCQ
      properties:
        refreshToken:
          type: string
      required:
        - refreshToken
    SessionResponse:
      type: object
      example:
        _meta:
          _primary_document: sessions
          _count: 1
        sessions:
          - accessToken: eyJ0eXAiOiJh....bBDA
            refreshToken: eyJ0eXAiOiJy....uHCQ
            accessExpiresAt: '2099-01-01T23:59:59.999Z'
            refreshExpiresAt: '2099-01-01T23:59:59.999Z'
      properties:
        _meta:
          $ref: '#/components/schemas/Meta'
        sessions:
          type: array
          items:
            $ref: '#/components/schemas/Session'
    Meta:
      type: object
      properties:
        _primary_document:
          type: string
          enum:
            - apiKeys
            - apps
            - categories
            - commissionRates
            - currencies
            - depositAddresses
            - depositRequests
            - events
            - eventGroups
            - externalReferences
            - externalReferenceSources
            - heartbeats
            - ids
            - markets
            - marketOutcomes
            - marketPositions
            - marketTypes
            - orders
            - participants
            - prices
            - priceLadders
            - sessions
            - statuses
            - subcategories
            - trades
            - transactions
            - wallets
            - walletMetrics
            - withdrawalRequests
        _count:
          type: integer
          format: int32
        _page:
          $ref: '#/components/schemas/PageMeta'
    Session:
      type: object
      properties:
        accessToken:
          type: string
        refreshToken:
          type: string
        accessExpiresAt:
          type: string
          format: date-time
        refreshExpiresAt:
          type: string
          format: date-time
    PageMeta:
      type: object
      properties:
        _pageNumber:
          type: integer
          format: int32
        _pageSize:
          type: integer
          format: int32
        _totalElements:
          type: integer
          format: int64
        _totalPages:
          type: integer
          format: int32

````