## Afriex SDK

### TypeScript

```typescript
const response = await afriex.rates.getRates({
  fromSymbols: "USD,NGN",
  toSymbols: "NGN,USD,GBP,KES",
});

console.log(response.rates);
console.log(response.updatedAt); // Unix timestamp
```

```bash
curl --request GET \
  --url https://sandbox.api.afriex.com/api/v1/org/rates \
  --header 'x-api-key: <api-key>'
```

```python
import requests

url = "https://sandbox.api.afriex.com/api/v1/org/rates"

headers = {"x-api-key": "<api-key>"}

response = requests.get(url, headers=headers)

print(response.text)
```

```javascript
const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};

fetch('https://sandbox.api.afriex.com/api/v1/org/rates', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
```

```php
<?php
$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://sandbox.api.afriex.com/api/v1/org/rates",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => [
    "x-api-key: <api-key>"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
?>
```

```go
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

url := "https://sandbox.api.afriex.com/api/v1/org/rates"

req, _ := http.NewRequest("GET", url, nil)

req.Header.Add("x-api-key", "<api-key>")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))
}
```

```java
HttpResponse<String> response = Unirest.get("https://sandbox.api.afriex.com/api/v1/org/rates")
  .header("x-api-key", "<api-key>")
  .asString();
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://sandbox.api.afriex.com/api/v1/org/rates")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'

response = http.request(request)
puts response.read_body
```

### Response

```json
{
  "data": {
    "rates": {
      "USD": {
        "USD": "1",
        "EUR": "0.80832",
        "GBP": "0.69255",
        "CAD": "1.30272",
        "NGN": "1410.1041",
        "KES": "125.0912",
        "GHS": "10.96338",
        "UGX": "3485.0742"
      }
    },
    "updatedAt": 1775632339823
  }
}
```

Retrieves real-time exchange rates. Use the optional `fromSymbols` and `toSymbols` query parameters to filter results to specific currency pairs.

### Authorizations

- **x-api-key**: string, required header, static business API key issued from the dashboard. A business can provision multiple API keys, each scoped to a configurable set of permissions (e.g. read transactions, create deposits, etc). Permissions are chosen per key at creation time in the dashboard and may be revoked by deleting the key. Requests made with a key that does not include the permission required by the target endpoint will be rejected with a `403 Forbidden` response; an unrecognized, malformed, or revoked key returns `401 Unauthorized`. Manage your keys and their permissions under Developer → API keys in the dashboard.

### Headers

- **x-api-version**: string, API version in ISO 8601 format (e.g., 2025-12-28). Defaults to latest stable.

### Query Parameters

- **fromSymbols**: string, comma-separated list of base currency symbols to filter rates by (e.g., USD,NGN,EUR). If omitted, defaults to USD only.

Example: `
