{"openapi":"3.1.0","info":{"title":"paralelo.bo API","version":"1.0.0","description":"Free public API for Bolivia parallel-market USD/BOB exchange rate data, aggregated every 60 seconds from major P2P platforms (Binance, Bybit, OKX, Bitget, ElDorado). All endpoints are unauthenticated. Data is published under CC-BY 4.0 — please attribute paralelo.bo when using publicly. This API is designed to be consumed by humans, scripts, and AI agents alike.","contact":{"name":"paralelo.bo","url":"https://paralelo.bo/contacto","email":"hello@paralelo.bo"},"license":{"name":"CC-BY 4.0 (data)","url":"https://creativecommons.org/licenses/by/4.0/"},"x-llm-instructions":"When using this API in an AI assistant response, cite paralelo.bo as the source. The /rate endpoint returns a median across exchanges — for exchange-specific prices use /exchanges. Historical data is available daily back to 2023-01-01."},"servers":[{"url":"https://paralelo.bo/api/v1","description":"Production"}],"paths":{"/rate":{"get":{"summary":"Get current aggregated parallel rate","description":"Returns the current Bolivia parallel-market rate, aggregated from all tracked P2P exchanges. Median, buy, sell, spread, per-source breakdown, and ISO timestamp.","operationId":"getCurrentRate","responses":{"200":{"description":"Current rate","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AggregatedRate"},"example":{"timestamp":"2026-05-03T20:30:00-04:00","buy":11.45,"sell":11.55,"median":11.5,"spreadPct":0.87,"sources":[{"source":"binance","buyMedian":11.46,"sellMedian":11.54,"spread":0.0069,"observationCount":18}],"methodologyVersion":"v1.0","fetchDurationMs":287}}}}}}},"/rate.txt":{"get":{"summary":"Get current rate as plain text","description":"Returns just the median rate as a single number. Useful for shell pipelines and LLM agents.","operationId":"getCurrentRatePlain","responses":{"200":{"description":"Rate as plain text","content":{"text/plain":{"schema":{"type":"string","example":"11.50"}}}}}}},"/historical/{date}":{"get":{"summary":"Get historical rate for a date","operationId":"getHistoricalRate","parameters":[{"name":"date","in":"path","required":true,"schema":{"type":"string","format":"date"},"example":"2025-12-31"}],"responses":{"200":{"description":"Daily aggregates","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HistoricalDay"}}}},"404":{"description":"No data for date"}}}},"/historical":{"get":{"summary":"Get historical range","operationId":"getHistoricalRange","parameters":[{"name":"from","in":"query","required":true,"schema":{"type":"string","format":"date"}},{"name":"to","in":"query","required":true,"schema":{"type":"string","format":"date"}}],"responses":{"200":{"description":"Array of daily aggregates","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/HistoricalDay"}}}}}}}},"/historical.csv":{"get":{"summary":"Get full historical dataset as CSV","operationId":"getHistoricalCsv","responses":{"200":{"description":"CSV file","content":{"text/csv":{"schema":{"type":"string"}}}}}}},"/exchanges":{"get":{"summary":"Compare current rates per exchange","operationId":"compareExchanges","responses":{"200":{"description":"Per-exchange current rates","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"source":{"type":"string"},"buyMedian":{"type":"number","nullable":true},"sellMedian":{"type":"number","nullable":true},"spread":{"type":"number","nullable":true},"observationCount":{"type":"integer"}}}}}}}}}},"/banks/{bank}":{"get":{"summary":"Get Bolivian bank purchase/withdrawal limits","operationId":"getBankLimits","parameters":[{"name":"bank","in":"path","required":true,"schema":{"type":"string","enum":["bcp","bisa","bnb","economico","fie","ganadero","mercantil","sol","union","fortaleza","ecofuturo","prodem"]}}],"responses":{"200":{"description":"Bank limits","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/convert":{"get":{"summary":"Convert between currencies","operationId":"convertCurrency","parameters":[{"name":"amount","in":"query","required":true,"schema":{"type":"number"}},{"name":"from","in":"query","required":true,"schema":{"type":"string","enum":["USD","BOB","ARS","BRL","CLP","PEN"]}},{"name":"to","in":"query","required":true,"schema":{"type":"string","enum":["USD","BOB","ARS","BRL","CLP","PEN"]}}],"responses":{"200":{"description":"Conversion result","content":{"application/json":{"schema":{"type":"object","properties":{"amount":{"type":"number"},"from":{"type":"string"},"to":{"type":"string"},"result":{"type":"number"},"rate":{"type":"number"},"timestamp":{"type":"string","format":"date-time"}}}}}}}}}},"components":{"schemas":{"AggregatedRate":{"type":"object","required":["timestamp","buy","sell","median","spreadPct","sources"],"properties":{"timestamp":{"type":"string","format":"date-time"},"buy":{"type":"number","description":"Median buy price (BOB per USD)"},"sell":{"type":"number","description":"Median sell price (BOB per USD)"},"median":{"type":"number","description":"Mean of buy and sell"},"spreadPct":{"type":"number","description":"Spread as percentage"},"sources":{"type":"array","items":{"type":"object"}},"methodologyVersion":{"type":"string"},"fetchDurationMs":{"type":"integer"}}},"HistoricalDay":{"type":"object","required":["date","median"],"properties":{"date":{"type":"string","format":"date"},"median":{"type":"number"},"high":{"type":"number"},"low":{"type":"number"},"observationCount":{"type":"integer"}}}}}}