{
  "openapi": "3.1.0",
  "info": {
    "title": "Market Data API",
    "version": "1.0.0-SNAPSHOT"
  },
  "servers": [
    {
      "url": "https://b2b.allaria.cloud",
      "description": "Production"
    },
    {
      "url": "https://b2b.allaria.dev",
      "description": "Development"
    }
  ],
  "paths": {
    "/v1/market-data/a3/prices": {
      "get": {
        "operationId": "getA3Prices",
        "summary": "Get A3 prices",
        "description": "Latest quotes for A3 instruments. Filter by symbol for a single instrument, or by type; defaults to DOLLAR when omitted.",
        "parameters": [
          {
            "name": "symbol",
            "in": "query",
            "description": "Single symbol to fetch",
            "schema": {
              "type": "string"
            },
            "example": "DLR/MAY27"
          },
          {
            "name": "type",
            "in": "query",
            "description": "Instrument subtype; defaults to DOLLAR when omitted",
            "schema": {
              "$ref": "#/components/schemas/RofexInstrumentSubtype"
            },
            "example": "AGRO"
          }
        ],
        "responses": {
          "200": {
            "description": "Prices retrieved successfully",
            "content": {
              "application/json": {
                "examples": {
                  "prices": {
                    "value": {
                      "data": [
                        {
                          "symbol": "DLR/MAY27",
                          "subtype": "DOLLAR",
                          "currency": "ARS",
                          "maturity_date": "2027-05-30",
                          "settlement_price": 1456.5,
                          "last_trade_price": 1455,
                          "percent_change": 0.48,
                          "implicit_rate": 62.5,
                          "monthly_crawl": 2.1,
                          "open_interest_size": 120000
                        }
                      ]
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/GenericResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication"
          },
          "403": {
            "description": "Caller lacks the required role"
          },
          "500": {
            "description": "Unexpected server error"
          }
        },
        "security": [
          {
            "SecurityScheme": []
          }
        ],
        "tags": [
          "A3"
        ]
      }
    },
    "/v1/market-data/a3/rates": {
      "get": {
        "operationId": "getDollarFutureRates",
        "summary": "Get dollar future rates",
        "description": "Implicit rate (TNA) of each dollar future, its equivalent TEA, monthly crawl, open interest and 1d variations.",
        "responses": {
          "200": {
            "description": "Dollar future rates retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DollarFutureRate"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication"
          },
          "403": {
            "description": "Caller lacks the required role"
          },
          "500": {
            "description": "Unexpected server error"
          }
        },
        "security": [
          {
            "SecurityScheme": []
          }
        ],
        "tags": [
          "A3"
        ]
      }
    },
    "/v1/market-data/a3/rates/history": {
      "get": {
        "operationId": "getA3InstrumentDailyHistory",
        "summary": "Get A3 instrument daily history",
        "description": "Daily close history of an A3 instrument: price plus the derived metrics (TNA, TEA, monthly crawl, open interest and 1d variations). One row per trading day.",
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "description": "Start date (inclusive)",
            "schema": {
              "$ref": "#/components/schemas/LocalDate"
            },
            "example": "2026-01-01"
          },
          {
            "name": "symbol",
            "in": "query",
            "description": "Symbol to fetch",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "DLR/MAY27"
          },
          {
            "name": "to",
            "in": "query",
            "description": "End date (inclusive)",
            "schema": {
              "$ref": "#/components/schemas/LocalDate"
            },
            "example": "2026-09-22"
          }
        ],
        "responses": {
          "200": {
            "description": "History retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/A3HistoryResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Missing or invalid symbol"
          },
          "401": {
            "description": "Missing or invalid authentication"
          },
          "403": {
            "description": "Caller lacks the required role"
          },
          "500": {
            "description": "Unexpected server error"
          }
        },
        "security": [
          {
            "SecurityScheme": []
          }
        ],
        "tags": [
          "A3"
        ]
      }
    },
    "/v1/market-data/a3/repo": {
      "get": {
        "operationId": "getMaeRepoCauciones",
        "summary": "Get MAE repo (cauciones)",
        "description": "Repo quotes derived from the MAE close-of-day operations.",
        "responses": {
          "200": {
            "description": "Repo quotes retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RepoMaeResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication"
          },
          "403": {
            "description": "Caller lacks the required role"
          },
          "500": {
            "description": "Unexpected server error"
          }
        },
        "security": [
          {
            "SecurityScheme": []
          }
        ],
        "tags": [
          "A3"
        ]
      }
    },
    "/v1/market-data/a3/static-data": {
      "get": {
        "operationId": "getA3InstrumentCatalog",
        "summary": "Get A3 instrument catalog",
        "description": "A3/ROFEX instrument details describing the available instruments.",
        "responses": {
          "200": {
            "description": "Instrument details retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RofexInstrumentResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication"
          },
          "403": {
            "description": "Caller lacks the required role"
          },
          "500": {
            "description": "Unexpected server error"
          }
        },
        "security": [
          {
            "SecurityScheme": []
          }
        ],
        "tags": [
          "A3"
        ]
      }
    },
    "/v1/market-data/bcra/indicators": {
      "get": {
        "operationId": "getBcraIndicators",
        "summary": "Get BCRA indicators",
        "description": "Time series for key BCRA indicators (exchange rates, interest rates, CER/UVA), optionally filtered by date range and variable IDs. Pass latest=true for the latest values with variations, or metadata=true for the indicator metadata (id, name, description). Call /bcra/variables to see available variable IDs.",
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "description": "Start date in yyyy-MM-dd format (optional, defaults to earliest available)",
            "schema": {
              "type": "string"
            },
            "example": "2024-01-01"
          },
          {
            "name": "latest",
            "in": "query",
            "description": "Return the latest values with variations instead of the series.",
            "schema": {
              "type": "boolean",
              "default": false
            },
            "example": false
          },
          {
            "name": "metadata",
            "in": "query",
            "description": "Return indicator metadata (id, name, description).",
            "schema": {
              "type": "boolean",
              "default": false
            },
            "example": false
          },
          {
            "name": "to",
            "in": "query",
            "description": "End date in yyyy-MM-dd format (optional, defaults to today)",
            "schema": {
              "type": "string"
            },
            "example": "2024-12-31"
          },
          {
            "name": "variables",
            "in": "query",
            "description": "Comma-separated list of variable IDs to filter (optional, returns all if omitted)",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            },
            "example": "1,4,30"
          }
        ],
        "responses": {
          "200": {
            "description": "Indicator time series, or (latest=true) latest values with variations, or (metadata=true) indicator metadata",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BcraIndicatorTimeSeries"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication"
          },
          "403": {
            "description": "Caller lacks the required role"
          },
          "500": {
            "description": "Unexpected server error"
          }
        },
        "security": [
          {
            "SecurityScheme": []
          }
        ],
        "tags": [
          "BCRA"
        ]
      }
    },
    "/v1/market-data/bcra/itcrm": {
      "get": {
        "operationId": "getItcrmDailySeries",
        "summary": "Get the ITCRM daily series",
        "description": "Daily ITCRM between 'from' and 'to'. Defaults to the last 365 days.",
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "description": "Start date (inclusive), yyyy-MM-dd.",
            "schema": {
              "$ref": "#/components/schemas/LocalDate"
            },
            "example": "2026-01-01"
          },
          {
            "name": "to",
            "in": "query",
            "description": "End date (inclusive), yyyy-MM-dd.",
            "schema": {
              "$ref": "#/components/schemas/LocalDate"
            },
            "example": "2026-10-01"
          }
        ],
        "responses": {
          "200": {
            "description": "ITCRM daily series",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ItcrmPoint"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid range"
          },
          "401": {
            "description": "Missing or invalid authentication"
          },
          "403": {
            "description": "Caller lacks the required role"
          },
          "500": {
            "description": "Unexpected server error"
          }
        },
        "security": [
          {
            "SecurityScheme": []
          }
        ],
        "tags": [
          "BCRA"
        ]
      }
    },
    "/v1/market-data/bcra/itcrm/latest": {
      "get": {
        "operationId": "getLatestItcrm",
        "summary": "Get the latest ITCRM value",
        "description": "Latest BCRA multilateral real exchange rate index (base 17-12-15=100). Scraped from the BCRA ITCRM workbook; the first call on an empty table downloads it.",
        "responses": {
          "200": {
            "description": "Latest ITCRM value",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItcrmPoint"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication"
          },
          "403": {
            "description": "Caller lacks the required role"
          },
          "500": {
            "description": "Unexpected server error"
          }
        },
        "security": [
          {
            "SecurityScheme": []
          }
        ],
        "tags": [
          "BCRA"
        ]
      }
    },
    "/v1/market-data/bcra/rem/inflation": {
      "get": {
        "operationId": "getRemMonthlyCpiExpectations",
        "summary": "Get REM monthly CPI expectations",
        "description": "Returns the monthly headline CPI (IPC nivel general) median path surveyed by the BCRA REM. Defaults to the latest published survey; pass 'month' to fetch a specific survey workbook.",
        "parameters": [
          {
            "name": "month",
            "in": "query",
            "description": "Survey month token 'yyyy-MM' (optional; defaults to the latest published survey).",
            "schema": {
              "type": "string"
            },
            "example": "2026-08"
          }
        ],
        "responses": {
          "200": {
            "description": "REM monthly CPI expectations retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RemInflationResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication"
          },
          "403": {
            "description": "Caller lacks the required role"
          },
          "500": {
            "description": "Unexpected server error"
          }
        },
        "security": [
          {
            "SecurityScheme": []
          }
        ],
        "tags": [
          "BCRA"
        ]
      }
    },
    "/v1/market-data/bcra/rem/median": {
      "get": {
        "operationId": "getRemMedianPath",
        "summary": "Get the latest REM median path",
        "description": "Returns the latest persisted BCRA REM median per month for each surveyed macro variable: expected monthly inflation, TAMAR TNA and month-end nominal FX. Intended to seed macro scenario assumptions. Requires a prior REM sync.",
        "responses": {
          "200": {
            "description": "Latest REM median path retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RemMedianMonth"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication"
          },
          "403": {
            "description": "Caller lacks the required role"
          },
          "500": {
            "description": "Unexpected server error"
          }
        },
        "security": [
          {
            "SecurityScheme": []
          }
        ],
        "tags": [
          "BCRA"
        ]
      }
    },
    "/v1/market-data/bcra/variable/{id}": {
      "get": {
        "operationId": "getBcraDataGivenAVariableId",
        "summary": "Get BCRA data given a variable id",
        "description": "Time series for a variable, optionally filtered by date range. Pass latest=true to return only the most recent value instead of the series.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "BCRA variable ID. Call GET /bcra/variables to discover all available IDs",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "example": 4
          },
          {
            "name": "from",
            "in": "query",
            "description": "Start date in yyyy-MM-dd format (optional)",
            "schema": {
              "type": "string"
            },
            "example": "2024-01-01"
          },
          {
            "name": "latest",
            "in": "query",
            "description": "Return only the most recent value instead of the series.",
            "schema": {
              "type": "boolean",
              "default": false
            },
            "example": false
          },
          {
            "name": "to",
            "in": "query",
            "description": "End date in yyyy-MM-dd format (optional)",
            "schema": {
              "type": "string"
            },
            "example": "2024-12-31"
          }
        ],
        "responses": {
          "200": {
            "description": "Series (or, with latest=true, the most recent value)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DatosMonetariaResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication"
          },
          "403": {
            "description": "Caller lacks the required role"
          },
          "404": {
            "description": "Variable not found"
          },
          "500": {
            "description": "Unexpected server error"
          }
        },
        "security": [
          {
            "SecurityScheme": []
          }
        ],
        "tags": [
          "BCRA"
        ]
      }
    },
    "/v1/market-data/bcra/variables": {
      "get": {
        "operationId": "listAllBcraVariablesStartHere",
        "summary": "List all BCRA variables (start here)",
        "description": "Retrieves all available BCRA variable IDs with descriptions. Start with this endpoint to discover variable IDs for other endpoints. Common IDs: 1=international reserves, 4=retail exchange rate, 5=wholesale rate, 30=CER, 31=UVA. Full reference: https://api.bcra.gob.ar/estadisticas/v4.0/Monetarias",
        "responses": {
          "200": {
            "description": "List of BCRA variables",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BcraVariable"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication"
          },
          "403": {
            "description": "Caller lacks the required role"
          },
          "500": {
            "description": "Unexpected server error"
          }
        },
        "security": [
          {
            "SecurityScheme": []
          }
        ],
        "tags": [
          "BCRA"
        ]
      }
    },
    "/v1/market-data/economic-indicators/embi-spread": {
      "get": {
        "operationId": "getEmbiSpread",
        "summary": "Get the Argentina EMBI spread daily series",
        "description": "JP Morgan EMBI spread of Argentine sovereign bonds over US Treasuries, in basis points (100 bp = 1%). Without parameters returns the latest available close. 'to' defaults to the latest available date and 'from' defaults to 'to' (a single day).",
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "description": "Start date (inclusive), yyyy-MM-dd. Defaults to 'to'.",
            "schema": {
              "$ref": "#/components/schemas/LocalDate"
            },
            "example": "2026-01-01"
          },
          {
            "name": "to",
            "in": "query",
            "description": "End date (inclusive), yyyy-MM-dd. Defaults to the latest available date.",
            "schema": {
              "$ref": "#/components/schemas/LocalDate"
            },
            "example": "2026-10-08"
          }
        ],
        "responses": {
          "200": {
            "description": "EMBI spread daily closes, ascending by date",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CountryRiskPoint"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid range"
          },
          "401": {
            "description": "Missing or invalid authentication"
          },
          "403": {
            "description": "Caller lacks the required role"
          },
          "500": {
            "description": "Unexpected server error"
          }
        },
        "security": [
          {
            "SecurityScheme": []
          }
        ],
        "tags": [
          "Economic indicators"
        ]
      }
    },
    "/v1/market-data/funds": {
      "get": {
        "operationId": "getFundsWithTheirShareClasses",
        "summary": "Get funds with their share classes",
        "description": "Returns operable funds, each with its nested share classes. Omit all filters for every fund; pass ids for specific funds; add bloomberg to keep only those class codes within the selected funds.",
        "parameters": [
          {
            "name": "bloomberg",
            "in": "query",
            "description": "Bloomberg codes to keep among the selected funds' classes (comma-separated). Requires ids.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "example": "ALDIIIA AR Equity,ALCOMES AR Equity"
          },
          {
            "name": "ids",
            "in": "query",
            "description": "Fund ids to return (comma-separated). Omit for all.",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            },
            "example": "123,456"
          }
        ],
        "responses": {
          "200": {
            "description": "Funds retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/FciResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "bloomberg passed without ids"
          },
          "401": {
            "description": "Missing or invalid authentication"
          },
          "403": {
            "description": "Caller lacks the required role"
          },
          "500": {
            "description": "Unexpected server error"
          }
        },
        "security": [
          {
            "SecurityScheme": []
          }
        ],
        "tags": [
          "Funds"
        ]
      }
    },
    "/v1/market-data/funds/classes": {
      "get": {
        "operationId": "getShareClassQuotes",
        "summary": "Get share class quotes",
        "description": "Returns the latest share class quotes. Pass bloomberg for specific classes; pass currency for the operable classes of that currency; omit both for every class. operable filters the result by its operable flag.",
        "parameters": [
          {
            "name": "bloomberg",
            "in": "query",
            "description": "Bloomberg codes to return (comma-separated).",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "example": "AL30 Equity,GD30 Equity"
          },
          {
            "name": "currency",
            "in": "query",
            "description": "Currency of the operable classes to return. API names (ARS, DOLLAR_MEP, DOLLAR_CCL) or BYMA names (ARS, USD, EXT).",
            "schema": {
              "type": "string"
            },
            "example": "ARS"
          },
          {
            "name": "operable",
            "in": "query",
            "description": "Keep only operable (true) or non-operable (false) classes.",
            "schema": {
              "type": "boolean"
            },
            "example": true
          }
        ],
        "responses": {
          "200": {
            "description": "Class quotes retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MarketDataResponseInvestmentFund"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid currency"
          },
          "401": {
            "description": "Missing or invalid authentication"
          },
          "403": {
            "description": "Caller lacks the required role"
          },
          "500": {
            "description": "Unexpected server error"
          }
        },
        "security": [
          {
            "SecurityScheme": []
          }
        ],
        "tags": [
          "Funds"
        ]
      }
    },
    "/v1/market-data/funds/classes/codes": {
      "get": {
        "operationId": "getBloombergCodesOfOperableClassesByRiskLevel",
        "summary": "Get Bloomberg codes of operable classes by risk level",
        "description": "Returns the Bloomberg codes of the operable share classes for the given risk levels (LOW, MEDIUM, HIGH; comma-separated, case-insensitive).",
        "parameters": [
          {
            "name": "risk",
            "in": "query",
            "description": "Risk levels (comma-separated): LOW, MEDIUM, HIGH.",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "example": "LOW,MEDIUM"
          }
        ],
        "responses": {
          "200": {
            "description": "Bloomberg codes retrieved successfully",
            "content": {
              "application/json": {
                "examples": {
                  "codes": {
                    "value": [
                      "ALDIIIA AR Equity",
                      "ALCOMES AR Equity"
                    ]
                  }
                },
                "schema": {
                  "description": "Bloomberg codes of the operable share classes for the requested risk levels",
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid risk level"
          },
          "401": {
            "description": "Missing or invalid authentication"
          },
          "403": {
            "description": "Caller lacks the required role"
          },
          "500": {
            "description": "Unexpected server error"
          }
        },
        "security": [
          {
            "SecurityScheme": []
          }
        ],
        "tags": [
          "Funds"
        ]
      }
    },
    "/v1/market-data/funds/classes/history": {
      "get": {
        "operationId": "getHistoricalShareClassQuotes",
        "summary": "Get historical share class quotes",
        "description": "Returns historical quotes for the given Bloomberg codes between two optional dates. If to is omitted, returns from `from` up to the latest available register.",
        "parameters": [
          {
            "name": "bloomberg",
            "in": "query",
            "description": "Bloomberg codes to return (comma-separated).",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "example": "ALDIIIA AR Equity,ALCOMES AR Equity"
          },
          {
            "name": "from",
            "in": "query",
            "description": "Start date (inclusive), format: yyyy-MM-dd",
            "schema": {
              "type": "string"
            },
            "example": "2025-02-25"
          },
          {
            "name": "to",
            "in": "query",
            "description": "End date (inclusive), format: yyyy-MM-dd",
            "schema": {
              "type": "string"
            },
            "example": "2025-03-28"
          }
        ],
        "responses": {
          "200": {
            "description": "Historical class quotes retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/HistoricalMarketDataResponseInvestmentFund"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid parameters"
          },
          "401": {
            "description": "Missing or invalid authentication"
          },
          "403": {
            "description": "Caller lacks the required role"
          },
          "500": {
            "description": "Unexpected server error"
          }
        },
        "security": [
          {
            "SecurityScheme": []
          }
        ],
        "tags": [
          "Funds"
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "A3HistoryResponse": {
        "description": "Daily close of an A3 (ROFEX) instrument with its derived rate metrics.",
        "type": "object",
        "properties": {
          "symbol": {
            "description": "Instrument symbol.",
            "type": "string",
            "examples": [
              "DLR/MAY27"
            ]
          },
          "date": {
            "description": "Trading day.",
            "type": "string",
            "$ref": "#/components/schemas/LocalDate",
            "examples": [
              "2026-09-22"
            ]
          },
          "type": {
            "description": "Instrument type.",
            "type": "string",
            "$ref": "#/components/schemas/RofexInstrumentType"
          },
          "subtype": {
            "description": "Instrument subtype.",
            "type": "string",
            "$ref": "#/components/schemas/RofexInstrumentSubtype",
            "examples": [
              "DOLLAR"
            ]
          },
          "opening_price": {
            "description": "Opening price.",
            "type": "number",
            "examples": [
              1440
            ]
          },
          "closing_price": {
            "description": "Closing price.",
            "type": "number",
            "examples": [
              1455
            ]
          },
          "settlement_price": {
            "description": "Settlement price.",
            "type": "number",
            "examples": [
              1456.5
            ]
          },
          "last_trade_price": {
            "description": "Last traded price.",
            "type": "number",
            "examples": [
              1455
            ]
          },
          "highest_daily_trade": {
            "description": "Highest price traded that day.",
            "type": "number",
            "examples": [
              1460
            ]
          },
          "lowest_daily_trade": {
            "description": "Lowest price traded that day.",
            "type": "number",
            "examples": [
              1438
            ]
          },
          "volume": {
            "description": "Traded volume.",
            "type": "number",
            "examples": [
              3500
            ]
          },
          "volume_amount": {
            "description": "Traded notional amount.",
            "type": "number",
            "examples": [
              5093750
            ]
          },
          "open_interest_size": {
            "description": "Open interest size.",
            "type": "number",
            "examples": [
              120000
            ]
          },
          "open_interest_size_close": {
            "description": "Open interest size at close.",
            "type": "number",
            "examples": [
              119500
            ]
          },
          "open_interest_size_variation_1d": {
            "description": "Change in open interest size since the previous close.",
            "type": "number",
            "examples": [
              500
            ]
          },
          "percent_change": {
            "description": "Percent change vs previous close (%).",
            "type": "number",
            "examples": [
              0.48
            ]
          },
          "implicit_rate": {
            "description": "Implicit rate (TNA, %).",
            "type": "number",
            "examples": [
              62.5
            ]
          },
          "tea": {
            "description": "Implicit rate converted to TEA (%).",
            "type": "number",
            "examples": [
              84.3
            ]
          },
          "monthly_crawl": {
            "description": "Implied monthly devaluation rate (%).",
            "type": "number",
            "examples": [
              2.1
            ]
          },
          "days_to_maturity": {
            "description": "Days until the contract's maturity.",
            "type": "integer",
            "format": "int64",
            "examples": [
              248
            ]
          },
          "maturity_date": {
            "description": "Contract maturity date.",
            "type": "string",
            "$ref": "#/components/schemas/LocalDate",
            "examples": [
              "2027-05-30"
            ]
          }
        }
      },
      "BcraIndicatorTimeSeries": {
        "description": "Time series of a BCRA indicator with its identifying metadata.",
        "type": "object",
        "properties": {
          "id": {
            "description": "BCRA variable ID.",
            "type": "integer",
            "format": "int32",
            "examples": [
              4
            ]
          },
          "name": {
            "description": "Indicator name.",
            "type": "string",
            "examples": [
              "Tipo de cambio minorista"
            ]
          },
          "description": {
            "description": "Indicator description.",
            "type": "string",
            "examples": [
              "Tipo de cambio minorista (comunicacion A 3500)"
            ]
          },
          "data": {
            "description": "The observations envelope.",
            "type": "object",
            "$ref": "#/components/schemas/DatosMonetariaResponse"
          },
          "retrieval_date": {
            "description": "When the series was retrieved.",
            "type": "string",
            "$ref": "#/components/schemas/LocalDateTime",
            "examples": [
              "2026-09-22T09:00:00"
            ]
          }
        }
      },
      "BcraVariable": {
        "type": "object",
        "properties": {
          "id": {
            "description": "BCRA variable ID, used as {id} in /bcra/variable/{id}",
            "type": "integer",
            "format": "int32",
            "examples": [
              4
            ]
          },
          "descripcion": {
            "description": "Human-readable description of the variable",
            "type": "string",
            "examples": [
              "Tipo de Cambio Minorista ($ por USD)"
            ]
          }
        }
      },
      "CountryRiskPoint": {
        "description": "Argentina country risk (EMBI spread) closing value for one day.",
        "type": "object",
        "properties": {
          "date": {
            "description": "Quote date.",
            "type": "string",
            "$ref": "#/components/schemas/LocalDate",
            "examples": [
              "2026-10-08"
            ]
          },
          "value": {
            "description": "Spread in basis points.",
            "type": "number",
            "examples": [
              588
            ]
          }
        }
      },
      "DatosMonetaria": {
        "description": "Observations of a single BCRA variable.",
        "type": "object",
        "properties": {
          "idVariable": {
            "description": "BCRA variable ID.",
            "type": "integer",
            "format": "int32",
            "examples": [
              4
            ]
          },
          "detalle": {
            "description": "Observations for the variable.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DetalleMonetaria"
            }
          }
        }
      },
      "DatosMonetariaResponse": {
        "description": "BCRA monetary data envelope: status, paging metadata and results.",
        "type": "object",
        "properties": {
          "status": {
            "description": "Upstream status code.",
            "type": "integer",
            "format": "int32",
            "examples": [
              200
            ]
          },
          "metadata": {
            "description": "Paging metadata.",
            "type": "object",
            "$ref": "#/components/schemas/Metadata"
          },
          "results": {
            "description": "One entry per requested variable.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DatosMonetaria"
            }
          }
        }
      },
      "DetalleMonetaria": {
        "description": "A single observation of a BCRA variable: date and value.",
        "type": "object",
        "properties": {
          "fecha": {
            "description": "Observation date.",
            "type": "string",
            "$ref": "#/components/schemas/LocalDate",
            "examples": [
              "2026-08-29"
            ]
          },
          "valor": {
            "description": "Observed value.",
            "type": "number",
            "examples": [
              1350.5
            ]
          }
        }
      },
      "DollarFutureRate": {
        "description": "Implicit rate of a dollar future, as TNA and its equivalent TEA.",
        "type": "object",
        "properties": {
          "symbol": {
            "description": "The future's symbol.",
            "type": "string"
          },
          "tna": {
            "description": "Implicit rate, as TNA (%).",
            "type": "number"
          },
          "tea": {
            "description": "TNA converted to TEA (%).",
            "type": "number"
          },
          "days_to_maturity": {
            "description": "Days until the future's maturity.",
            "type": "integer",
            "format": "int64"
          },
          "open_interest_size": {
            "description": "Open interest size.",
            "type": "number"
          },
          "monthly_crawl": {
            "description": "Implied monthly devaluation rate (%).",
            "type": "number"
          },
          "open_interest_size_variation_1d": {
            "description": "Change in open interest size since the previous close.",
            "type": "number"
          },
          "price_variation_1d": {
            "description": "Price percent change since the previous close.",
            "type": "number"
          },
          "last_trade_price": {
            "description": "Last traded price.",
            "type": "number"
          },
          "maturity_date": {
            "description": "Contract maturity date.",
            "type": "string",
            "$ref": "#/components/schemas/LocalDate",
            "examples": [
              "2027-05-30"
            ]
          }
        }
      },
      "FciResponse": {
        "type": "object",
        "properties": {
          "fund_id": {
            "description": "Fund id",
            "type": "integer",
            "format": "int32",
            "examples": [
              123
            ]
          },
          "name": {
            "description": "Fund name",
            "type": "string",
            "examples": [
              "Allaria Ahorro FCI"
            ]
          },
          "patrimony": {
            "description": "Fund net assets under management",
            "type": "number",
            "examples": [
              15230000000.5
            ]
          },
          "goal": {
            "description": "Fund investment objective",
            "type": "string",
            "examples": [
              "Preservación de capital con liquidez inmediata invirtiendo en instrumentos de renta fija de corto plazo."
            ]
          },
          "url": {
            "description": "Fund fact sheet URL",
            "type": "string",
            "examples": [
              "https://allaria.com.ar/fondos/allaria-ahorro"
            ]
          },
          "composition": {
            "description": "Portfolio composition by asset type (label -> weight)",
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "examples": [
              {
                "Renta fija": "65%",
                "Liquidez": "35%"
              }
            ]
          },
          "classes": {
            "description": "Share classes of the fund",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MarketDataResponseInvestmentFund"
            }
          },
          "composition_updated_at": {
            "description": "Date the composition was last updated",
            "type": "string",
            "$ref": "#/components/schemas/LocalDate",
            "examples": [
              "2026-09-20"
            ]
          }
        }
      },
      "GenericResponse": {
        "type": "object"
      },
      "HistoricalMarketDataResponseInvestmentFund": {
        "type": "object",
        "properties": {
          "name": {
            "description": "Share class name",
            "type": "string",
            "examples": [
              "Allaria Ahorro - Clase A"
            ]
          },
          "abbreviation": {
            "description": "Share class short code",
            "type": "string",
            "examples": [
              "ALDIIIA"
            ]
          },
          "variation": {
            "description": "Variation for the day, percent",
            "type": "number",
            "examples": [
              0.35
            ]
          },
          "price_per_share": {
            "description": "Net asset value per share",
            "type": "number",
            "examples": [
              1345.67
            ]
          },
          "currency": {
            "description": "Currency of the class",
            "type": "string",
            "examples": [
              "ARS"
            ]
          },
          "date": {
            "description": "Quote date",
            "type": "string",
            "$ref": "#/components/schemas/LocalDate",
            "examples": [
              "2026-09-20"
            ]
          }
        }
      },
      "ItcrmPoint": {
        "description": "BCRA multilateral real exchange rate index (ITCRM, base 17-12-15=100).",
        "type": "object",
        "properties": {
          "date": {
            "description": "Index date.",
            "type": "string",
            "$ref": "#/components/schemas/LocalDate",
            "examples": [
              "2026-10-08"
            ]
          },
          "value": {
            "description": "ITCRM value.",
            "type": "number",
            "examples": [
              85.4844
            ]
          }
        }
      },
      "LocalDate": {
        "type": "string",
        "format": "date"
      },
      "LocalDateTime": {
        "type": "string",
        "format": "date-time"
      },
      "MarketDataResponseInvestmentFund": {
        "type": "object",
        "properties": {
          "name": {
            "description": "Share class name",
            "type": "string",
            "examples": [
              "Allaria Ahorro - Clase A"
            ]
          },
          "abbreviation": {
            "description": "Share class short code",
            "type": "string",
            "examples": [
              "ALDIIIA"
            ]
          },
          "day_variation": {
            "description": "Daily variation, percent",
            "type": "number",
            "examples": [
              0.35
            ]
          },
          "tna": {
            "description": "Nominal annual rate (TNA), percent",
            "type": "number",
            "examples": [
              41.5
            ]
          },
          "annualized_day_variation": {
            "description": "Annualized daily variation, percent",
            "type": "number",
            "examples": [
              38.2
            ]
          },
          "week_variation": {
            "description": "Weekly variation, percent",
            "type": "number",
            "examples": [
              2.1
            ]
          },
          "month_variation": {
            "description": "Monthly variation, percent",
            "type": "number",
            "examples": [
              8.7
            ]
          },
          "quarterly_variation": {
            "description": "Quarterly variation, percent",
            "type": "number",
            "examples": [
              22.4
            ]
          },
          "semi_annual_variation": {
            "description": "Semi-annual variation, percent",
            "type": "number",
            "examples": [
              45.9
            ]
          },
          "year_variation": {
            "description": "Yearly variation, percent",
            "type": "number",
            "examples": [
              92.3
            ]
          },
          "triennial_variation": {
            "description": "Three-year variation, percent",
            "type": "number",
            "examples": [
              310.5
            ]
          },
          "quintennial_variation": {
            "description": "Five-year variation, percent",
            "type": "number",
            "examples": [
              980.1
            ]
          },
          "bloomberg_code": {
            "description": "Bloomberg code of the share class",
            "type": "string",
            "examples": [
              "ALDIIIA AR Equity"
            ]
          },
          "minimum_investment": {
            "description": "Minimum investment amount",
            "type": "integer",
            "examples": [
              1000
            ]
          },
          "term": {
            "description": "Settlement period of the class",
            "type": "string",
            "$ref": "#/components/schemas/SettledPeriod",
            "examples": [
              "T2"
            ]
          },
          "fund_id": {
            "description": "Parent fund id",
            "type": "integer",
            "format": "int32",
            "examples": [
              123
            ]
          },
          "price_per_share": {
            "description": "Net asset value per share",
            "type": "number",
            "examples": [
              1345.67
            ]
          },
          "type": {
            "description": "Fund type",
            "type": "string",
            "examples": [
              "Renta fija"
            ]
          },
          "currency": {
            "description": "Currency of the class",
            "type": "string",
            "examples": [
              "ARS"
            ]
          },
          "horizon": {
            "description": "Investment horizon",
            "type": "string",
            "examples": [
              "Largo plazo"
            ]
          },
          "risk": {
            "description": "Risk level of the class",
            "type": "string",
            "enum": [
              "LOW",
              "MEDIUM",
              "HIGH"
            ],
            "examples": [
              "LOW"
            ]
          },
          "operable": {
            "description": "Whether the class is currently operable",
            "type": "boolean",
            "examples": [
              true
            ]
          },
          "initial_date": {
            "description": "Class inception date",
            "type": "string",
            "$ref": "#/components/schemas/LocalDate",
            "examples": [
              "2020-01-15"
            ]
          },
          "retrieved_at": {
            "description": "Timestamp of the quote",
            "type": "string",
            "$ref": "#/components/schemas/LocalDateTime",
            "examples": [
              "2026-09-23T18:20:00"
            ]
          },
          "withdrawal": {
            "description": "Settlement / withdrawal term",
            "type": "string",
            "examples": [
              "24hs"
            ]
          },
          "bids": {
            "description": "Bid price",
            "type": "string",
            "examples": [
              "1345.10"
            ]
          },
          "offers": {
            "description": "Offer price",
            "type": "string",
            "examples": [
              "1345.90"
            ]
          }
        }
      },
      "Metadata": {
        "description": "Paging metadata for a BCRA result set.",
        "type": "object",
        "properties": {
          "resultset": {
            "description": "Result set paging counters.",
            "type": "object",
            "$ref": "#/components/schemas/Resultset"
          }
        }
      },
      "RemForecast": {
        "description": "REM survey result for a single forecast month: the median and its dispersion across the surveyed analysts.",
        "type": "object",
        "properties": {
          "month": {
            "description": "Month the forecast refers to.",
            "type": "string",
            "$ref": "#/components/schemas/LocalDate",
            "examples": [
              "2026-09-30"
            ]
          },
          "median": {
            "description": "Median forecast.",
            "type": "number",
            "examples": [
              1.8
            ]
          },
          "average": {
            "description": "Average forecast.",
            "type": "number",
            "examples": [
              1.9
            ]
          },
          "min": {
            "description": "Minimum forecast.",
            "type": "number",
            "examples": [
              1.2
            ]
          },
          "max": {
            "description": "Maximum forecast.",
            "type": "number",
            "examples": [
              2.6
            ]
          }
        }
      },
      "RemInflationResponse": {
        "description": "Monthly headline CPI (IPC nivel general) path from the BCRA REM survey, taken from the published expectations workbook of a given survey month.",
        "type": "object",
        "properties": {
          "survey_month": {
            "description": "Survey month token (yyyy-MM).",
            "type": "string",
            "examples": [
              "2026-08"
            ]
          },
          "source_url": {
            "description": "URL of the source expectations workbook.",
            "type": "string",
            "examples": [
              "https://www.bcra.gob.ar/PublicacionesEstadisticas/rem.asp"
            ]
          },
          "nodes": {
            "description": "Median CPI expectation per month.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RemForecast"
            }
          }
        }
      },
      "RemMedianMonth": {
        "description": "One month of the BCRA REM median path: median expected monthly inflation, TAMAR TNA and month-end nominal FX. Any field may be null when the survey does not cover that variable for the month.",
        "type": "object",
        "properties": {
          "year": {
            "description": "Forecast year.",
            "type": "integer",
            "format": "int32",
            "examples": [
              2026
            ]
          },
          "month": {
            "description": "Forecast month (1-12).",
            "type": "integer",
            "format": "int32",
            "examples": [
              9
            ]
          },
          "inflation": {
            "description": "Median expected monthly inflation (%).",
            "type": "number",
            "examples": [
              1.8
            ]
          },
          "tamar_tna": {
            "description": "Median expected TAMAR TNA (%).",
            "type": "number",
            "examples": [
              24.11
            ]
          },
          "tc_close": {
            "description": "Median expected month-end nominal FX (ARS/USD).",
            "type": "number",
            "examples": [
              1530.4
            ]
          }
        }
      },
      "RepoMaeResponse": {
        "description": "MAE repo (caucion) quote derived from close-of-day operations.",
        "type": "object",
        "properties": {
          "date": {
            "description": "Timestamp of the quote.",
            "type": "string",
            "$ref": "#/components/schemas/LocalDateTime",
            "examples": [
              "2026-09-22T17:00:00"
            ]
          },
          "session": {
            "description": "Trading session.",
            "type": "string",
            "examples": [
              "CI"
            ]
          },
          "term": {
            "description": "Repo term in days.",
            "type": "string",
            "examples": [
              "1"
            ]
          },
          "currency": {
            "description": "Settlement currency.",
            "type": "string",
            "examples": [
              "ARS"
            ]
          },
          "opening_rate": {
            "description": "Opening rate (%).",
            "type": "number",
            "examples": [
              38.5
            ]
          },
          "last_rate": {
            "description": "Last traded rate (%).",
            "type": "number",
            "examples": [
              39
            ]
          },
          "max_rate": {
            "description": "Maximum rate of the session (%).",
            "type": "number",
            "examples": [
              40
            ]
          },
          "min_rate": {
            "description": "Minimum rate of the session (%).",
            "type": "number",
            "examples": [
              38
            ]
          },
          "previous_close": {
            "description": "Previous close rate (%).",
            "type": "number",
            "examples": [
              38.75
            ]
          },
          "weighted_avg_rate": {
            "description": "Volume-weighted average rate (%).",
            "type": "number",
            "examples": [
              38.9
            ]
          },
          "variation": {
            "description": "Rate variation vs previous close (%).",
            "type": "number",
            "examples": [
              0.25
            ]
          },
          "quantity": {
            "description": "Number of contracts.",
            "type": "number",
            "examples": [
              1500
            ]
          },
          "volume": {
            "description": "Traded volume.",
            "type": "number",
            "examples": [
              1500000000
            ]
          },
          "operation_count": {
            "description": "Number of operations.",
            "type": "integer",
            "format": "int32",
            "examples": [
              42
            ]
          }
        }
      },
      "Resultset": {
        "description": "Result set paging counters.",
        "type": "object",
        "properties": {
          "count": {
            "description": "Total number of results.",
            "type": "integer",
            "format": "int32",
            "examples": [
              365
            ]
          },
          "offset": {
            "description": "Offset of the first returned result.",
            "type": "integer",
            "format": "int32",
            "examples": [
              0
            ]
          },
          "limit": {
            "description": "Maximum number of results returned.",
            "type": "integer",
            "format": "int32",
            "examples": [
              1000
            ]
          }
        }
      },
      "RofexInstrument": {
        "type": "object",
        "properties": {
          "symbol": {
            "type": "string"
          },
          "segment": {
            "$ref": "#/components/schemas/RofexSegment"
          },
          "lowLimitPrice": {
            "type": "number"
          },
          "highLimitPrice": {
            "type": "number"
          },
          "minPriceIncrement": {
            "type": "number"
          },
          "minTradeVol": {
            "type": "number"
          },
          "maxTradeVol": {
            "type": "number"
          },
          "tickSize": {
            "type": "number"
          },
          "contractMultiplier": {
            "type": "number"
          },
          "roundLot": {
            "type": "number"
          },
          "priceConvertionFactor": {
            "type": "number"
          },
          "maturityDate": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "orderTypes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "timesInForce": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "securityType": {
            "type": "string"
          },
          "settlType": {
            "type": "string"
          },
          "instrumentPricePrecision": {
            "type": "integer",
            "format": "int32"
          },
          "instrumentSizePrecision": {
            "type": "integer",
            "format": "int32"
          },
          "securityId": {
            "type": "string"
          },
          "securityIdSource": {
            "type": "string"
          },
          "securityDescription": {
            "type": "string"
          },
          "tickPriceRanges": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/TickPriceRange"
            }
          },
          "strike": {
            "type": "number"
          },
          "underlying": {
            "type": "string"
          },
          "cficode": {
            "type": "string"
          },
          "instrumentId": {
            "$ref": "#/components/schemas/RofexInstrumentId"
          }
        }
      },
      "RofexInstrumentId": {
        "type": "object",
        "properties": {
          "marketId": {
            "type": "string"
          },
          "symbol": {
            "type": "string"
          }
        }
      },
      "RofexInstrumentResponse": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "instruments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RofexInstrument"
            }
          }
        }
      },
      "RofexInstrumentSubtype": {
        "type": "string",
        "enum": [
          "DOLLAR",
          "AGRICULTURAL"
        ]
      },
      "RofexInstrumentType": {
        "type": "string",
        "enum": [
          "FUTURE",
          "PUT_OPTION_ON_FUTURE",
          "CALL_OPTION_ON_FUTURE",
          "INDEX"
        ]
      },
      "RofexSegment": {
        "type": "object",
        "properties": {
          "marketSegmentId": {
            "type": "string"
          },
          "marketId": {
            "type": "string"
          }
        }
      },
      "SettledPeriod": {
        "type": "string",
        "enum": [
          "T0",
          "T1",
          "T2",
          "T3"
        ]
      },
      "TickPriceRange": {
        "type": "object",
        "properties": {
          "lowerLimit": {
            "type": "number"
          },
          "upperLimit": {
            "type": "number"
          },
          "tick": {
            "type": "number"
          }
        }
      }
    },
    "securitySchemes": {
      "SecurityScheme": {
        "description": "Authentication",
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    }
  },
  "tags": []
}
