{
  "openapi": "3.0.0",
  "info": {
    "description": "<p>Utilizando la API <a href='https://eltoque.com'>Tasas de elTOQUE</a>, se podrá acceder a los valores de la tasa representativa de las divisas en el mercado informal. Esta API tiene su fuente de información en las datos que se extraen de ofertas de compra y venta en grupos de Telegram, WhatsApp y sitios de clasificados. <h2>Obtener un token de autorización</h2> <p>Para utilizar la API necesita un token de autorización por cada aplicación a integrar. Puede solicitar un token completando el <a href='https://tasas-token.eltoque.com/'>siguiente formulario</a>.</p><h2>Límites de uso</h2> <p>Los límites se aplican por Clave API, no por dirección IP. Por defecto son 60 peticiones por minuto, con un tope de 10 por segundo para evitar ráfagas; tu Clave API puede tener asignada una cuota distinta.</p><p>Al superarlos la API responde <code>429</code> con un cuerpo JSON <code>{&quot;error&quot;: &quot;...&quot;, &quot;limit&quot;: &quot;60 per 1 minute&quot;}</code>. Todas las respuestas incluyen las cabeceras <code>X-RateLimit-Limit</code>, <code>X-RateLimit-Remaining</code> y <code>X-RateLimit-Reset</code>; las respuestas 429 añaden <code>Retry-After</code> con los segundos que debes esperar.</p><h2>Términos y condiciones de uso</h2><p><ul><p >- Referencia a elTOQUE como fuente de los datos obtenidos a través de esta API.</p><p >- No proporciones tu Clave API a terceros.</p><p >- Los valores de las tasas de cambio de elTOQUE son referenciales.</p><p >- elTOQUE no es responsable del uso que hagas de los datos que obtengas a través de esta API.</p><p >- No utilices esta API en relación con cualquier producto, servicio o material que constituya o promocione spyware, adware u otros programas o códigos maliciosos; materiales de odio o que instan a actos de terrorismo, violencia; contenido obsceno, sexualmente explícito, engañoso o fraudulento, ofensivo o discriminatorio por cualquier motivo, incluyendo raza, discapacidad, sexo, orientación sexual o religión.</p><p >- No modifiques los datos, excepto para actualizarlos.</p></ul></p><p>En el siguiente enlace puedes leer la versión completa de los <a href='https://eltoque.com/api-tasas-de-eltoque-terminos-y-condiciones-de-uso'>Términos y condiciones uso.</p>",
    "version": "1.0.beta",
    "title": "API - Tasas de Cambio elTOQUE"
  },
  "components": {
    "schemas": {
      "DateFormat": {
        "type": "string",
        "format": "date-time",
        "example": "2022-10-27 00:00:01"
      }
    },
    "responses": {
      "UnauthorizedError": {
        "description": "El token de acceso es incorrecto o expiró."
      },
      "TooManyRequests": {
        "description": "Superaste el límite de peticiones de tu Clave API. El cuerpo trae el límite aplicado y la cabecera Retry-After los segundos a esperar.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "error": {
                  "type": "string",
                  "example": "Has superado el límite de peticiones"
                },
                "limit": {
                  "type": "string",
                  "example": "60 per 1 minute"
                }
              }
            }
          }
        },
        "headers": {
          "Retry-After": {
            "description": "Segundos que hay que esperar antes de reintentar.",
            "schema": {
              "type": "integer",
              "example": 60
            }
          },
          "X-RateLimit-Remaining": {
            "description": "Peticiones que quedan en la ventana actual.",
            "schema": {
              "type": "integer",
              "example": 0
            }
          }
        }
      },
      "UnprocessableEntity": {
        "description": "Entidad no procesable. Revise el token de acceso ingresado."
      },
      "BadRequest": {
        "description": "El intervalo de tiempo debe ser menor a 24 horas"
      }
    },
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT",
        "name": "Authorization"
      }
    }
  },
  "paths": {
    "/v1/trmi": {
      "get": {
        "operationId": "trmiV1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "description": "Las tasas de cambio de elTOQUE se forman a partir de las medianas de las ofertas de compra y venta en las últimas 24 horas. Si no se envían fechas a la API, devolverá la tasa de cambio de las últimas 24 horas partiendo del momento en que se hace la petición. Si se desea obtener la tasa de cambio de un día en particular, se debe enviar la fecha de inicio y la fecha de término para que calcule la tasa de cambio de ese día. <i>Poner rangos mayores a 24 horas  resultará en un error en la petición.</i>",
        "tags": [
          "Tasas de elTOQUE "
        ],
        "summary": "Retorna las medianas de las ofertas de compra y venta de las divisas en el mercado informal",
        "parameters": [
          {
            "name": "date_from",
            "in": "query",
            "description": "Fecha inicial del intervalo de tiempo",
            "required": false,
            "example": "2022-10-27 00:00:01",
            "schema": {
              "$ref": "#/components/schemas/DateFormat"
            }
          },
          {
            "name": "date_to",
            "in": "query",
            "description": "Fecha final del intervalo de tiempo",
            "required": false,
            "example": "2022-10-27 23:59:01",
            "schema": {
              "$ref": "#/components/schemas/DateFormat"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedError"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      }
    }
  }
}