API Documentation

REST API to access Dominican Republic exchange rates. All responses are returned as JSON.

Base URL https://tasareal.com/api/v1

Authentication

Include your API key in the Authorization header on every request.

// Required header
Authorization: Bearer your_api_key_here

Get your API key on the pricing page. The free plan includes 50 daily requests.

Endpoints

GET /rates Rates by date

Returns the rates published for a date (one row per institution and currency). Without parameters returns today's rates. An institution with no rate that day is simply absent from <code class="text-xs bg-navy-950 px-1 rounded">rates</code>: read <code class="text-xs bg-navy-950 px-1 rounded">missing_institutions</code> to detect gaps. <code class="text-xs bg-navy-950 px-1 rounded">count</code> is the number of rows returned, not of institutions. <code class="text-xs bg-navy-950 px-1 rounded">sell</code> is <code class="text-xs bg-navy-950 px-1 rounded">null</code> for houses that only buy foreign currency (remittance payers).

Parameters
date date Date (YYYY-MM-DD). Default: today
currency string Currency: USD, EUR. Default: all
type string Filter by type: bank, exchange, official
institution string Specific institution ID: popular, reservas, etc.
Response
{
  "date": "2026-09-04",
  "currency": "USD",
  "count": 24,
  "rates": [
    {
      "institution": "reservas",
      "institution_name": "Banreservas",
      "institution_type": "bank",
      "currency": "USD",
      "buy": 56.40,
      "sell": 59.90,
      "date": "2026-09-04",
      "verification": "verified",
      "source": null
    },
    {
      "institution": "caribe",
      "institution_name": "Caribe Express",
      "institution_type": "exchange",
      "currency": "USD",
      "buy": 58.25,
      "sell": null,
      "date": "2026-09-04",
      "verification": "verified",
      "source": null
    }
  ],
  "missing_institutions": ["popular"]
}
GET /rates/history Rate history

Returns the historical rates for an institution and date range (both ends inclusive). Days with no published rate are omitted.

Parameters
institution string required Institution ID
currency string required USD or EUR
from date required Start date (YYYY-MM-DD)
to date required End date (YYYY-MM-DD)
Response
{
  "institution": "reservas",
  "currency": "USD",
  "from": "2026-09-01",
  "to": "2026-09-04",
  "count": 4,
  "data": [
    {
      "date": "2026-09-01",
      "buy": 56.40,
      "sell": 59.90,
      "verified": true
    }
  ]
}
GET /institutions Institution list

Returns the active institutions and their metadata. <code class="text-xs bg-navy-950 px-1 rounded">last_rate_date</code> is the last day a rate was published (<code class="text-xs bg-navy-950 px-1 rounded">null</code> = never): use it to tell a dark source from a fresh one before polling.

Response
{
  "institutions": [
    {
      "id": "reservas",
      "name": "Banreservas",
      "full_name": "Banco de Reservas de la Rep. Dominicana",
      "type": "bank",
      "website": "https://banreservas.com.do",
      "participates_in_ranking": true,
      "last_rate_date": "2026-09-04"
    }
  ]
}
GET /rates/best Best rates

Returns the best market buy rate and best market sell rate (officials excluded).

Parameters
currency string required USD or EUR
date date Date (YYYY-MM-DD). Default: today
Response
{
  "date": "2026-04-06",
  "currency": "USD",
  "best_buy": {
    "institution": "quezada",
    "rate": 60.50
  },
  "best_sell": {
    "institution": "quezada",
    "rate": 60.70
  }
}

Limits and error codes

HTTP codes
200 Successful request
401 Missing or invalid API key
403 Your plan does not have access to this resource (e.g. history on the free plan)
422 Invalid parameters (the response lists the errors per field)
429 Daily request limit exceeded, or more than 120 requests per minute
500 Internal server error
Response headers include X-RateLimit-Remaining and X-RateLimit-Limit so you can monitor your usage.
TasaReal.com · Verified exchange rates in the Dominican Republic