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

# Historia de dólar futuro

> Velas diarias de un contrato de dólar futuro (apertura, máximo, mínimo, cierre y volumen). Rango por interval (default 1 year) o date_from/date_to, mutuamente excluyentes; date_to solo, sin date_from, da 422. Las filas más viejas pueden traer solo el cierre, con OHLC y volumen en null. 404 si el ticker no cumple el patrón o no tiene serie.

> [!NOTE]
>
> Devuelve las velas diarias de un contrato de dólar futuro de A3: apertura, máximo, mínimo, cierre y volumen por día. Es la serie del gráfico de evolución de precio de la ficha del contrato. También responde contratos vencidos, que ya no aparecen en [`/futures/instruments`](https://docs.docta.com.ar/api-reference/endpoint/futures-instruments). En un contrato vigente, la última vela es la rueda en curso. Requiere el scope `futures:read`.

## Parámetros de ruta

**ticker** `string` *required*

Ticker exacto del contrato, con la barra (`DLR/NOV26`) o URL-encodeado (`DLR%2FNOV26`). No se normalizan mayúsculas: `dlr/nov26` da 404. Solo se aceptan tickers que cumplen `^DLR/[A-Z]{3}\d{2}$`.

## Parámetros de consulta

**interval** `string` (default: 1 year)

Intervalo de fechas, mutuamente excluyente con `date_from`/`date_to`. Ejemplos: `1 week`, `1 month`, `3 months`, `ytd`, `1 year`, `max` (también se aceptan los alias cortos `1W`, `1M`, `3M`, `YTD`, `1Y`).

**date\_from** `string`

Fecha de inicio en formato YYYY-MM-DD. Mutuamente excluyente con `interval`.

**date\_to** `string`

Fecha de fin en formato YYYY-MM-DD. Requiere `date_from` y es mutuamente excluyente con `interval`.

> [!NOTE]
>
> Enviá `interval` o `date_from`/`date_to`, nunca ambos. Si mandás los dos, la API responde 422. También da 422 mandar `date_to` sin `date_from` ("Must provide 'interval' or 'date\_from'"). Sin ninguno, devuelve el último año.

## Ejemplo de Solicitud

```bash cURL theme={null}
curl -X GET "https://api.doctacapital.com.ar/api/v1/futures/history/DLR/NOV26?interval=1%20week" \
  -H "Authorization: Bearer $DOCTA_TOKEN"
```

## Respuesta Exitosa

**ticker** `string`

Ticker del contrato.

**columns** `string[]`

Nombres de columna, siempre los mismos seis y en este orden: `date`, `opening_price`, `high_price`, `low_price`, `closing_price`, `trade_volume`.

**rows** `array`

Una fila por día, con los valores en el orden de `columns`. `date` va en YYYY-MM-DD, los precios en ARS y `trade_volume` en contratos operados. Si una vela no trae un valor, ese lugar va en `null`. Las filas más viejas pueden traer solo el cierre, con apertura, máximo, mínimo y volumen en `null` (ej., `["2026-09-29", null, null, null, 1576.5, null]`). `trade_volume` puede venir como float (`142615.0`).

> [!NOTE]
>
> Para graficar la evolución del precio, usá `date` en el eje X y `closing_price` en el eje Y. Con `opening_price`, `high_price` y `low_price` armás velas.

## Ejemplo de Respuesta Exitosa

```json Success theme={null}
{
  "ticker": "DLR/NOV26",
  "columns": ["date", "opening_price", "high_price", "low_price", "closing_price", "trade_volume"],
  "rows": [
    ["2026-09-29", null, null, null, 1576.5, null],
    ["2026-10-29", 1568.5, 1570.0, 1567.5, 1568.0, 142615.0]
  ]
}
```


## OpenAPI

````yaml GET /api/v1/futures/history/{ticker}
openapi: 3.1.0
info:
  title: API de Docta
  description: >-
    API de mercado argentino: bonos (instrumentos, cashflows, curvas/yields),
    FCI (screener, series, performance, comparaciones y analytics de industria)
    y dólar futuro de A3 (contratos en tiempo real, velas diarias y bandas
    cambiarias).
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.doctacapital.com.ar
security: []
paths:
  /api/v1/futures/history/{ticker}:
    get:
      tags:
        - Dólar futuro
      description: >-
        Velas diarias de un contrato de dólar futuro (apertura, máximo, mínimo,
        cierre y volumen). Rango por interval (default 1 year) o
        date_from/date_to, mutuamente excluyentes; date_to solo, sin date_from,
        da 422. Las filas más viejas pueden traer solo el cierre, con OHLC y
        volumen en null. 404 si el ticker no cumple el patrón o no tiene serie.
      parameters:
        - name: ticker
          in: path
          required: true
          schema:
            type: string
            pattern: ^DLR/[A-Z]{3}\d{2}$
            description: >-
              Ticker exacto del contrato, con la barra (DLR/NOV26) o
              URL-encodeado (DLR%2FNOV26). No se normalizan mayúsculas:
              dlr/nov26 da 404.
            example: DLR/NOV26
        - name: interval
          in: query
          required: false
          schema:
            type: string
            default: 1 year
            description: >-
              Intervalo de fechas, mutuamente excluyente con date_from/date_to.
              Ejemplos: '1 week', '1 month', '3 months', 'ytd', '1 year', 'max'
              (también se aceptan los alias cortos 1W, 1M, 3M, YTD, 1Y).
        - name: date_from
          in: query
          required: false
          schema:
            type: string
            pattern: ^\d{4}-\d{2}-\d{2}$
            description: Fecha de inicio YYYY-MM-DD. Mutuamente excluyente con interval.
        - name: date_to
          in: query
          required: false
          schema:
            type: string
            pattern: ^\d{4}-\d{2}-\d{2}$
            description: >-
              Fecha de fin YYYY-MM-DD. Requiere date_from y es mutuamente
              excluyente con interval.
      responses:
        '200':
          description: Velas diarias del contrato
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FuturesHistoryResponse'
              example:
                ticker: DLR/NOV26
                columns:
                  - date
                  - opening_price
                  - high_price
                  - low_price
                  - closing_price
                  - trade_volume
                rows:
                  - - '2026-09-29'
                    - null
                    - null
                    - null
                    - 1576.5
                    - null
                  - - '2026-10-29'
                    - 1568.5
                    - 1570
                    - 1567.5
                    - 1568
                    - 142615
        '401':
          description: Autenticación requerida
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: 'Permisos insuficientes: requiere el scope futures:read'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Contrato sin serie o ticker fuera del patrón ^DLR/[A-Z]{3}\d{2}$
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: >-
            Parámetros inválidos: interval junto con date_from/date_to, o
            date_to sin date_from
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - bearerAuth: []
components:
  schemas:
    FuturesHistoryResponse:
      type: object
      properties:
        ticker:
          type: string
          description: Ticker del contrato.
        columns:
          type: array
          description: Nombres de columna, siempre en este orden.
          items:
            type: string
            enum:
              - date
              - opening_price
              - high_price
              - low_price
              - closing_price
              - trade_volume
        rows:
          type: array
          description: >-
            Una fila por día: [date, opening_price, high_price, low_price,
            closing_price, trade_volume]. Un valor que la vela no trae va en
            null.
          items:
            type: array
            items:
              type:
                - string
                - number
                - 'null'
      required:
        - ticker
        - columns
        - rows
    Error:
      required:
        - type
        - title
        - status
        - detail
        - correlation_id
      type: object
      properties:
        type:
          description: El identificador del tipo de error
          type: string
          example: /errors/authentication-required
        title:
          description: Una breve descripción del error
          type: string
          example: Invalid client credentials
        status:
          description: El código de estado HTTP
          type: integer
          example: 401
        detail:
          description: Una descripción detallada del error
          type: string
          example: Invalid client credentials
        correlation_id:
          description: Un identificador único para rastrear esta solicitud de error
          type: string
          format: uuid
          example: 2eb07802-94de-468a-b70f-75a49f3e9516
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````

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