# Obtener mercado por id

`GET /v2/markets/{id}`

Un mercado con la misma instantánea que devuelve la lista.

Responde `404` cuando el mercado no existe, está deslistado o está oculto para el llamador.

<a id="authorization"></a>

## Autorización

bearer: http · bearer (obligatorio). Clave de API personal, con el prefijo `usk_`.

<a id="parameters"></a>

## Parámetros

- path: id (string · uuid; obligatorio). Identificador de mercado, tal como lo devuelve `GET /v2/markets`.

Tipo: string · uuid

format: uuid

- query: accountId (string · uuid; opcional). Cuenta de trader respecto a la cual resolver la lista de mercados: los límites de apalancamiento y la disponibilidad se devuelven tal como se aplican a esa cuenta. Omitida — se devuelven los valores predeterminados de toda la plataforma.

Tipo: string · uuid

format: uuid

pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$

<a id="example-curl"></a>

## Ejemplo · cURL

```bash
curl --request GET 'https://api.upscale.trade/v2/markets/{id}' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer YOUR_API_KEY'
```

<a id="example-javascript"></a>

## Ejemplo · JavaScript

```javascript
const response = await fetch("https://api.upscale.trade/v2/markets/{id}", {
  method: "GET",
  headers: {
    "Accept": "application/json",
    "Authorization": "Bearer YOUR_API_KEY"
  },
});
console.log(response.status, await response.text());
```

<a id="example-python"></a>

## Ejemplo · Python

```python
import requests

response = requests.request(
    "GET",
    "https://api.upscale.trade/v2/markets/{id}",
    headers={"Accept":"application/json","Authorization":"Bearer YOUR_API_KEY"},
    timeout=30,
)
print(response.status_code, response.text)
```

<a id="response-401"></a>

## Respuesta 401

**401**  — No autorizado

<a id="response-404"></a>

## Respuesta 404

**404**  — Mercado no encontrado, deslistado u oculto para el llamador.

<a id="response-429"></a>

## Respuesta 429

**429**  — Se superó el límite de velocidad de la clave de API (`api_key_rate_limit_exceeded`). `Retry-After` indica cuándo volver; el cuerpo incluye el bucket (`read` / `write`), la ventana que se activó, su límite y `retryAt`.

<a id="response-default-marketv2response"></a>

## Respuesta default · MarketV2Response

**default** application/json — Respuesta

Esquema: MarketV2Response

Tipo: object

Campos obligatorios: id, config, state, settings, change, schedule

Tipos de campos obligatorios: id (string · uuid; obligatorio), config (object; obligatorio), state (object; obligatorio), settings (object; obligatorio), change (object; obligatorio), schedule (object · nullable; obligatorio)

- id (string · uuid; obligatorio)

id ejemplo: 00000000-0000-4000-8000-000000000000

id.Tipo: string · uuid

id.Identificador de mercado — el valor que la creación de orden toma como `marketId`.

id.format: uuid

id.pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$

- config (object; obligatorio)

config ejemplo: {
  "baseAsset": "BTC",
  "quoteAsset": "USD",
  "settlementToken": "USD",
  "type": "base",
  "name": "BTC",
  "description": "Market description",
  "ticker": "BTC/USD",
  "imageLink": "https://app.storm.tg/markets/btc.png",
  "tags": [
    "Crypto"
  ],
  "category": "crypto",
  "priority": 0
}

config.Tipo: object

config.Campos obligatorios: baseAsset, quoteAsset, settlementToken, type, name, description, ticker, imageLink, tags, category, priority

config.Tipos de campos obligatorios: baseAsset (string; obligatorio), quoteAsset (string; obligatorio), settlementToken (string; obligatorio), type (string; obligatorio), name (string; obligatorio), description (string; obligatorio), ticker (string; obligatorio), imageLink (string; obligatorio), tags (string[]; obligatorio), category (string · enum; obligatorio), priority (number · nullable; obligatorio)

config.Descripción estática del mercado: activos, denominación y categoría.

- config.baseAsset (string; obligatorio)

config.baseAsset ejemplo: BTC

config.baseAsset.Tipo: string

config.baseAsset.Ticker del activo base — el valor que los endpoints por mercado toman como `asset`.

- config.quoteAsset (string; obligatorio)

config.quoteAsset ejemplo: USD

config.quoteAsset.Tipo: string

config.quoteAsset.Los precios de los activos y los importes nocionales se cotizan en.

- config.settlementToken (string; obligatorio)

config.settlementToken ejemplo: USD

config.settlementToken.Tipo: string

config.settlementToken.Las posiciones de activos se liquidan en.

- config.type (string; obligatorio)

config.type ejemplo: base

config.type.Tipo: string

config.type.Modelo de precios del mercado.

- config.name (string; obligatorio)

config.name ejemplo: BTC

config.name.Tipo: string

config.name.Nombre para mostrar del mercado.

- config.description (string; obligatorio)

config.description ejemplo: Market description

config.description.Tipo: string

config.description.Descripción de formato libre que se muestra en la aplicación.

- config.ticker (string; obligatorio)

config.ticker ejemplo: BTC/USD

config.ticker.Tipo: string

config.ticker.Etiqueta completa del par.

- config.imageLink (string; obligatorio)

config.imageLink ejemplo: https://app.storm.tg/markets/btc.png

config.imageLink.Tipo: string

config.imageLink.Icono del mercado.

- config.tags (string[]; obligatorio)

config.tags ejemplo: [
  "Crypto"
]

config.tags.Tipo: string[]

config.tags.Etiquetas por las que la aplicación agrupa los mercados.

config.tags.[]Tipo: string

- config.category (string · enum; obligatorio)

config.category ejemplo: crypto

config.category.Tipo: string · enum

config.category.Si el mercado es cripto o un activo del mundo real — una cuenta puede estar limitada a uno de los dos.

config.category.Valores permitidos: ["crypto","rwa"]

- config.priority (number · nullable; obligatorio)

config.priority ejemplo: 0

config.priority.Tipo: number · nullable

config.priority.Peso de ordenación en la lista de mercados; el mayor va primero. Nulo cuando no está clasificado.

- state (object; obligatorio)

state ejemplo: {
  "indexPrice": "1000000000",
  "blockTimestamp": 0,
  "fundingRate": "1000000000",
  "nextFundingAt": 0,
  "lastFundingAt": 0,
  "vpiSpread": "1000000000",
  "vpiMarketDepthLong": "1000000000",
  "vpiMarketDepthShort": "1000000000",
  "vpiCoefficientLong": "1000000000",
  "vpiCoefficientShort": "1000000000"
}

state.Tipo: object

state.Campos obligatorios: indexPrice, blockTimestamp, fundingRate, nextFundingAt, lastFundingAt, vpiSpread, vpiMarketDepthLong, vpiMarketDepthShort, vpiCoefficientLong, vpiCoefficientShort

state.Tipos de campos obligatorios: indexPrice (string · int32; obligatorio), blockTimestamp (number; obligatorio), fundingRate (string · int32; obligatorio), nextFundingAt (number; obligatorio), lastFundingAt (number · nullable; obligatorio), vpiSpread (string · int32; obligatorio), vpiMarketDepthLong (string · int32; obligatorio), vpiMarketDepthShort (string · int32; obligatorio), vpiCoefficientLong (string · int32; obligatorio), vpiCoefficientShort (string · int32; obligatorio)

state.Estado en vivo: precio del índice, financiación y la profundidad contra la que se fija el precio de una orden.

- state.indexPrice (string · int32; obligatorio)

state.indexPrice ejemplo: 1000000000

state.indexPrice.Tipo: string · int32

state.indexPrice.Precio de índice actual del mercado, fp9 en bruto — contra lo que se fijan los precios de las órdenes y se comparan los disparadores.

state.indexPrice.format: int32

state.indexPrice.pattern: ^(?:-?[1-9][0-9]*|0)$

- state.blockTimestamp (number; obligatorio)

state.blockTimestamp ejemplo: 0

state.blockTimestamp.Tipo: number

state.blockTimestamp.Cuándo se produjo esta instantánea de estado, marca de tiempo unix en milisegundos.

- state.fundingRate (string · int32; obligatorio)

state.fundingRate ejemplo: 1000000000

state.fundingRate.Tipo: string · int32

state.fundingRate.Tasa de financiación del intervalo en curso, fp9 fracción sin procesar. Positivo significa que los largos pagan a los cortos.

state.fundingRate.format: int32

state.fundingRate.pattern: ^(?:-?[1-9][0-9]*|0)$

- state.nextFundingAt (number; obligatorio)

state.nextFundingAt ejemplo: 0

state.nextFundingAt.Tipo: number

state.nextFundingAt.Cuándo se liquida la financiación a continuación, marca de tiempo unix en milisegundos.

- state.lastFundingAt (number · nullable; obligatorio)

state.lastFundingAt ejemplo: 0

state.lastFundingAt.Tipo: number · nullable

state.lastFundingAt.Cuándo se liquidó la financiación por última vez, marca de tiempo unix en milisegundos. Nulo antes de la primera liquidación.

- state.vpiSpread (string · int32; obligatorio)

state.vpiSpread ejemplo: 1000000000

state.vpiSpread.Tipo: string · int32

state.vpiSpread.Spread actual cobrado sobre el precio del índice, fp9 fracción sin procesar.

state.vpiSpread.format: int32

state.vpiSpread.pattern: ^(?:-?[1-9][0-9]*|0)$

- state.vpiMarketDepthLong (string · int32; obligatorio)

state.vpiMarketDepthLong ejemplo: 1000000000

state.vpiMarketDepthLong.Tipo: string · int32

state.vpiMarketDepthLong.Profundidad disponible en el lado largo, fp9 en bruto. Las órdenes grandes en su contra mueven el precio de ejecución.

state.vpiMarketDepthLong.format: int32

state.vpiMarketDepthLong.pattern: ^(?:-?[1-9][0-9]*|0)$

- state.vpiMarketDepthShort (string · int32; obligatorio)

state.vpiMarketDepthShort ejemplo: 1000000000

state.vpiMarketDepthShort.Tipo: string · int32

state.vpiMarketDepthShort.Profundidad disponible en el lado corto, fp9 en bruto.

state.vpiMarketDepthShort.format: int32

state.vpiMarketDepthShort.pattern: ^(?:-?[1-9][0-9]*|0)$

- state.vpiCoefficientLong (string · int32; obligatorio)

state.vpiCoefficientLong ejemplo: 1000000000

state.vpiCoefficientLong.Tipo: string · int32

state.vpiCoefficientLong.Coeficiente de impacto en el precio aplicado a las órdenes largas, fp9 en bruto.

state.vpiCoefficientLong.format: int32

state.vpiCoefficientLong.pattern: ^(?:-?[1-9][0-9]*|0)$

- state.vpiCoefficientShort (string · int32; obligatorio)

state.vpiCoefficientShort ejemplo: 1000000000

state.vpiCoefficientShort.Tipo: string · int32

state.vpiCoefficientShort.Coeficiente de impacto en el precio aplicado a las órdenes cortas, fp9 en bruto.

state.vpiCoefficientShort.format: int32

state.vpiCoefficientShort.pattern: ^(?:-?[1-9][0-9]*|0)$

- settings (object; obligatorio)

settings ejemplo: {
  "fee": "1000000000",
  "minInitMarginRatio": "1000000000",
  "initMarginRatio": "1000000000",
  "maintenanceMarginRatio": "1000000000",
  "maxLeverageByAccount": {
    "key": "1000000000"
  },
  "spreadLimit": "1000000000",
  "maxPriceImpact": "1000000000",
  "maxPriceSpread": "1000000000",
  "maxOpenNotionalLong": "1000000000",
  "maxOpenNotionalShort": "1000000000",
  "minStopTriggerDistanceRatio": "1000000000",
  "isCloseOnly": true,
  "isClosed": true,
  "isPaused": true,
  "isZeroSpread": true
}

settings.Tipo: object

settings.Campos obligatorios: fee, minInitMarginRatio, initMarginRatio, maintenanceMarginRatio, maxLeverageByAccount, spreadLimit, maxPriceImpact, maxPriceSpread, maxOpenNotionalLong, maxOpenNotionalShort, minStopTriggerDistanceRatio, isCloseOnly, isClosed, isPaused, isZeroSpread

settings.Tipos de campos obligatorios: fee (string · int32; obligatorio), minInitMarginRatio (string · int32; obligatorio), initMarginRatio (string · int32; obligatorio), maintenanceMarginRatio (string · int32; obligatorio), maxLeverageByAccount (object; obligatorio), spreadLimit (string · int32; obligatorio), maxPriceImpact (string · int32; obligatorio), maxPriceSpread (string · int32; obligatorio), maxOpenNotionalLong (string · int32; obligatorio), maxOpenNotionalShort (string · int32; obligatorio), minStopTriggerDistanceRatio (string · int32; obligatorio), isCloseOnly (boolean; obligatorio), isClosed (boolean; obligatorio), isPaused (boolean; obligatorio), isZeroSpread (boolean; obligatorio)

settings.Reglas de negociación del mercado: comisiones, ratios de margen y los límites máximos contra los que se verifica una orden.

- settings.fee (string · int32; obligatorio)

settings.fee ejemplo: 1000000000

settings.fee.Tipo: string · int32

settings.fee.Tasa de comisión de negociación, fp9 fracción en bruto (`1000000` = 0.1%).

settings.fee.format: int32

settings.fee.pattern: ^(?:-?[1-9][0-9]*|0)$

- settings.minInitMarginRatio (string · int32; obligatorio)

settings.minInitMarginRatio ejemplo: 1000000000

settings.minInitMarginRatio.Tipo: string · int32

settings.minInitMarginRatio.La menor ratio de margen inicial que acepta el mercado, fp9 fracción bruta — el límite máximo de apalancamiento.

settings.minInitMarginRatio.format: int32

settings.minInitMarginRatio.pattern: ^(?:-?[1-9][0-9]*|0)$

- settings.initMarginRatio (string · int32; obligatorio)

settings.initMarginRatio ejemplo: 1000000000

settings.initMarginRatio.Tipo: string · int32

settings.initMarginRatio.Ratio de margen inicial predeterminado del mercado, fp9 fracción bruta.

settings.initMarginRatio.format: int32

settings.initMarginRatio.pattern: ^(?:-?[1-9][0-9]*|0)$

- settings.maintenanceMarginRatio (string · int32; obligatorio)

settings.maintenanceMarginRatio ejemplo: 1000000000

settings.maintenanceMarginRatio.Tipo: string · int32

settings.maintenanceMarginRatio.Ratio de margen por debajo del cual se liquida una posición, fp9 fracción bruta.

settings.maintenanceMarginRatio.format: int32

settings.maintenanceMarginRatio.pattern: ^(?:-?[1-9][0-9]*|0)$

- settings.maxLeverageByAccount (object; obligatorio)

settings.maxLeverageByAccount ejemplo: {
  "key": "1000000000"
}

settings.maxLeverageByAccount.Tipo: object

settings.maxLeverageByAccount.Apalancamiento máximo permitido por tipo de cuenta, fp9 bruto, indexado por tipo de cuenta.

settings.maxLeverageByAccount.*.Tipo: string · int32

settings.maxLeverageByAccount.*.Ejemplo: "1000000000"

settings.maxLeverageByAccount.*.format: int32

settings.maxLeverageByAccount.*.pattern: ^(?:-?[1-9][0-9]*|0)$

- settings.spreadLimit (string · int32; obligatorio)

settings.spreadLimit ejemplo: 1000000000

settings.spreadLimit.Tipo: string · int32

settings.spreadLimit.El mayor spread que cobrará el mercado, fp9 fracción bruta.

settings.spreadLimit.format: int32

settings.spreadLimit.pattern: ^(?:-?[1-9][0-9]*|0)$

- settings.maxPriceImpact (string · int32; obligatorio)

settings.maxPriceImpact ejemplo: 1000000000

settings.maxPriceImpact.Tipo: string · int32

settings.maxPriceImpact.Mayor impacto en el precio que puede causar una sola orden, fp9 fracción sin procesar.

settings.maxPriceImpact.format: int32

settings.maxPriceImpact.pattern: ^(?:-?[1-9][0-9]*|0)$

- settings.maxPriceSpread (string · int32; obligatorio)

settings.maxPriceSpread ejemplo: 1000000000

settings.maxPriceSpread.Tipo: string · int32

settings.maxPriceSpread.Mayor desviación permitida entre el precio de mercado y el precio del índice, fp9 fracción sin procesar.

settings.maxPriceSpread.format: int32

settings.maxPriceSpread.pattern: ^(?:-?[1-9][0-9]*|0)$

- settings.maxOpenNotionalLong (string · int32; obligatorio)

settings.maxOpenNotionalLong ejemplo: 1000000000

settings.maxOpenNotionalLong.Tipo: string · int32

settings.maxOpenNotionalLong.Límite máximo sobre el nocional abierto mantenido en largo en este mercado, fp9 sin procesar. `0` significa sin límite.

settings.maxOpenNotionalLong.format: int32

settings.maxOpenNotionalLong.pattern: ^(?:-?[1-9][0-9]*|0)$

- settings.maxOpenNotionalShort (string · int32; obligatorio)

settings.maxOpenNotionalShort ejemplo: 1000000000

settings.maxOpenNotionalShort.Tipo: string · int32

settings.maxOpenNotionalShort.Límite máximo sobre el nocional abierto mantenido en corto en este mercado, fp9 sin procesar. `0` significa sin límite.

settings.maxOpenNotionalShort.format: int32

settings.maxOpenNotionalShort.pattern: ^(?:-?[1-9][0-9]*|0)$

- settings.minStopTriggerDistanceRatio (string · int32; obligatorio)

settings.minStopTriggerDistanceRatio ejemplo: 1000000000

settings.minStopTriggerDistanceRatio.Tipo: string · int32

settings.minStopTriggerDistanceRatio.Distancia mínima entre el precio actual y un disparador de stop, fp9 fracción sin procesar. Un disparador más cercano se empuja hasta esta distancia.

settings.minStopTriggerDistanceRatio.format: int32

settings.minStopTriggerDistanceRatio.pattern: ^(?:-?[1-9][0-9]*|0)$

- settings.isCloseOnly (boolean; obligatorio)

settings.isCloseOnly ejemplo: true

settings.isCloseOnly.Tipo: boolean

settings.isCloseOnly.Si el mercado solo acepta órdenes que cierran una posición.

- settings.isClosed (boolean; obligatorio)

settings.isClosed ejemplo: true

settings.isClosed.Tipo: boolean

- settings.isPaused (boolean; obligatorio)

settings.isPaused ejemplo: true

settings.isPaused.Tipo: boolean

- settings.isZeroSpread (boolean; obligatorio)

settings.isZeroSpread ejemplo: true

settings.isZeroSpread.Tipo: boolean

settings.isZeroSpread.Si el mercado actualmente cotiza sin spread.

- change (object; obligatorio)

change ejemplo: {
  "initialPrice": 0,
  "initialPrice1h": 0,
  "initialPrice4h": 0
}

change.Tipo: object

change.Campos obligatorios: initialPrice, initialPrice1h, initialPrice4h

change.Tipos de campos obligatorios: initialPrice (number; obligatorio), initialPrice1h (number; obligatorio), initialPrice4h (number; obligatorio)

change.Precios de referencia para calcular las variaciones de precio de 1h, 4h y 24h.

- change.initialPrice (number; obligatorio)

change.initialPrice ejemplo: 0

change.initialPrice.Tipo: number

change.initialPrice.Precio hace 24 horas, como número decimal — la base del cambio diario. `0` cuando no hay historial disponible.

- change.initialPrice1h (number; obligatorio)

change.initialPrice1h ejemplo: 0

change.initialPrice1h.Tipo: number

change.initialPrice1h.Precio hace una hora, como número decimal. `0` cuando no hay historial disponible.

- change.initialPrice4h (number; obligatorio)

change.initialPrice4h ejemplo: 0

change.initialPrice4h.Tipo: number

change.initialPrice4h.Precio de hace cuatro horas, como número decimal. `0` cuando no hay historial disponible.

- schedule (object · nullable; obligatorio)

schedule ejemplo: {
  "nextPauseAt": 0,
  "nextUnpauseAt": 0,
  "closestPauseAt": 0,
  "closestUnpauseAt": 0,
  "pausedAt": 0,
  "inPause": true
}

schedule.Tipo: object · nullable

schedule.Campos obligatorios: nextPauseAt, nextUnpauseAt, closestPauseAt, closestUnpauseAt, pausedAt, inPause

schedule.Tipos de campos obligatorios: nextPauseAt (number; obligatorio), nextUnpauseAt (number; obligatorio), closestPauseAt (number; obligatorio), closestUnpauseAt (number; obligatorio), pausedAt (number; obligatorio), inPause (boolean; obligatorio)

schedule.Sesiones de negociación del mercado. Nulo cuando cotiza sin interrupción.

- schedule.nextPauseAt (number; obligatorio)

schedule.nextPauseAt ejemplo: 0

schedule.nextPauseAt.Tipo: number

schedule.nextPauseAt.Inicio de la próxima pausa programada, marca de tiempo Unix en milisegundos. `0` cuando el mercado no tiene ninguna pausa, y `9007199254740991` cuando no hay ninguna programada con posterioridad a la actual.

- schedule.nextUnpauseAt (number; obligatorio)

schedule.nextUnpauseAt ejemplo: 0

schedule.nextUnpauseAt.Tipo: number

schedule.nextUnpauseAt.Fin de la pausa en la que se encuentra el mercado, o de la siguiente, marca de tiempo Unix en milisegundos. Mismas reglas de `0` y de centinela que en `nextPauseAt`.

- schedule.closestPauseAt (number; obligatorio)

schedule.closestPauseAt ejemplo: 0

schedule.closestPauseAt.Tipo: number

schedule.closestPauseAt.Mismo valor que `nextPauseAt`. Se mantiene por compatibilidad con versiones anteriores.

- schedule.closestUnpauseAt (number; obligatorio)

schedule.closestUnpauseAt ejemplo: 0

schedule.closestUnpauseAt.Tipo: number

schedule.closestUnpauseAt.Mismo valor que `nextUnpauseAt`. Se conserva por compatibilidad con versiones anteriores.

- schedule.pausedAt (number; obligatorio)

schedule.pausedAt ejemplo: 0

schedule.pausedAt.Tipo: number

schedule.pausedAt.Inicio de la pausa actualmente en curso, marca de tiempo unix en milisegundos. `0` cuando el mercado está operando.

- schedule.inPause (boolean; obligatorio)

schedule.inPause ejemplo: true

schedule.inPause.Tipo: boolean

schedule.inPause.Si el mercado se encuentra dentro de una pausa programada en este momento. Las órdenes se rechazan mientras esté en ella.

Ejemplo



```json
{
  "id": "00000000-0000-4000-8000-000000000000",
  "config": {
    "baseAsset": "BTC",
    "quoteAsset": "USD",
    "settlementToken": "USD",
    "type": "base",
    "name": "BTC",
    "description": "Market description",
    "ticker": "BTC/USD",
    "imageLink": "https://app.storm.tg/markets/btc.png",
    "tags": [
      "Crypto"
    ],
    "category": "crypto",
    "priority": 0
  },
  "state": {
    "indexPrice": "1000000000",
    "blockTimestamp": 0,
    "fundingRate": "1000000000",
    "nextFundingAt": 0,
    "lastFundingAt": 0,
    "vpiSpread": "1000000000",
    "vpiMarketDepthLong": "1000000000",
    "vpiMarketDepthShort": "1000000000",
    "vpiCoefficientLong": "1000000000",
    "vpiCoefficientShort": "1000000000"
  },
  "settings": {
    "fee": "1000000000",
    "minInitMarginRatio": "1000000000",
    "initMarginRatio": "1000000000",
    "maintenanceMarginRatio": "1000000000",
    "maxLeverageByAccount": {
      "key": "1000000000"
    },
    "spreadLimit": "1000000000",
    "maxPriceImpact": "1000000000",
    "maxPriceSpread": "1000000000",
    "maxOpenNotionalLong": "1000000000",
    "maxOpenNotionalShort": "1000000000",
    "minStopTriggerDistanceRatio": "1000000000",
    "isCloseOnly": true,
    "isClosed": true,
    "isPaused": true,
    "isZeroSpread": true
  },
  "change": {
    "initialPrice": 0,
    "initialPrice1h": 0,
    "initialPrice4h": 0
  },
  "schedule": {
    "nextPauseAt": 0,
    "nextUnpauseAt": 0,
    "closestPauseAt": 0,
    "closestUnpauseAt": 0,
    "pausedAt": 0,
    "inPause": true
  }
}
```