Exchange Rates API Documentation
Access real-time exchange rates for currencies & crypto. This API provides accurate, up-to-date rates for integrating into your financial applications.
Below are the endpoints for accessing exchange rates. Learn how to integrate the API into your application.
Route Parameters:
- :region *Please check location table here
(e.g., "SOUTH|ARAB|EAST|NORD").
Response based on params:
{ "success": true, "data": { "rates": { "USD": 1, "INR": 83.540592, "JPY": 143.662125, "BTC": 0.000015737383 }, "crypto": { "BTC": 63478.467340116214, "DOGE": 0.012578131058644222 }, "commodity": { "HEUSX": 91.275, "ZCUSX": 415.5, "ALIUSD": 2540.75, "ZOUSX": 326.5, "PLUSD": 1363.2, "ZMUSD": 292.9, "GCUSD": 3412.1, "ZLUSX": 54.88, "KEUSX": 522.5, "SILUSD": 38.905, "HGUSD": 4.4815, "MGCUSD": 3412.1, "SBUSX": 16.44, "SIUSD": 38.905, "CTUSX": 67.73, "ZSUSX": 1056.5, "LBUSD": 659, "LEUSX": 240.1, "NGUSD": 2.765, "CLUSD": 63.68, "OJUSX": 243.3, "KCUSX": 378, "PAUSD": 1134.5, "GFUSX": 362.325, "ZRUSD": 11.865, "CCUSD": 7781, "BZUSD": 67.74, "DCUSD": 18.22, "RBUSD": 1.9866, "HOUSD": 2.3068 } } }
GET
This endpoint provides the current exchange rates for the requested currencies.
import Foundation struct APIClient { static let baseURL = "https://exchangegrid.api.mapwale.com/v1" static func fetchData() async throws -> [String: Any] { // API configuration let params = [ "region": "YOUR_REGION" // Replace with actual region value ] // Build URL var urlComponents = URLComponents(string: baseURL)! // Add path parameters let pathParams = ["region"] let pathItems = pathParams.map { params[$0]! } urlComponents.path += "/" + pathItems.joined(separator: "/") // Add query parameters let queryParams: [String: String] = {"show":"all","list":"USD,INR,JPY,BTC,DOGE"} urlComponents.queryItems = queryParams.map { URLQueryItem(name: $0.key, value: $0.value) } guard let url = urlComponents.url else { throw URLError(.badURL) } // Create request var request = URLRequest(url: url) request.httpMethod = "GET" request.setValue("application/json", forHTTPHeaderField: "Content-Type") // Add body for POST/PUT requests if ["POST", "PUT"].contains("GET") { let bodyData = {} request.httpBody = try JSONSerialization.data(withJSONObject: bodyData) } // Send request let (data, response) = try await URLSession.shared.data(for: request) guard let httpResponse = response as? HTTPURLResponse else { throw URLError(.badServerResponse) } guard httpResponse.statusCode < 400 else { throw URLError(.badServerResponse) } guard let result = try JSONSerialization.jsonObject(with: data) as? [String: Any] else { throw URLError(.cannotParseResponse) } return result } } // Example usage @main struct APIExample { static func main() async { do { let result = try await APIClient.fetchData() let prettyJSON = try JSONSerialization.data(withJSONObject: result, options: .prettyPrinted) if let jsonString = String(data: prettyJSON, encoding: .utf8) { print(jsonString) } } catch { print("Error: \(error)") } } }
Query Parameters:
- authorization *Specify authorization for site
(e.g., authorization="<API-KEY>"). - show Specify which rates to show
(e.g., show="all"|"currency"|"crypto"|"commodity"). - list Comma-separated list of currency codes
(e.g., list="USD,INR,BTC").
List parameter for Currency Rates
List parameter for Crypto Rates
List parameter for Commodity Rates