# API

{% hint style="info" %}
This page is written for businesses who require more granular, low-level interaction with Uniramp. For most users, we suggest [leveraging the Uniramp Widget](https://docs.uniramp.com/product/widget) for hassle-free integration.
{% endhint %}

## Environments

We offer a sandbox environment for development purposes. The sandbox environment allows developers to bypass transactions through our partner's dashboard and will complete DeFi swaps on testnets.

<table><thead><tr><th width="184">Environments</th><th>Endpoint</th></tr></thead><tbody><tr><td>Production</td><td>api.uniramp.io/v1</td></tr><tr><td>Sandbox</td><td>sandbox.api.uniramp.io/v1</td></tr></tbody></table>

## Authentication

{% hint style="info" %}
Please complete [this form](https://forms.gle/cJ6aehR4Y7j3uKwY9) to obtain your API Keys.
{% endhint %}

The Uniramp API uses API keys to authenticate requests through bearer authentication. Requests are required to include a valid bearer token in the `x-api-key` header. API requests without authentication will fail. An example of an authenticated request can be found below:

```bash
$ curl https://api.uniramp.io/v1/onramp/supported/fiat \
  -H "x-api-key: pk_prod_LGZp4n7498RW5E1IwR3mJ9Ep"
```

To ensure secure communication and data integrity, the Uniramp API exclusively supports HTTPS for all API requests. Any attempts to make requests over plain HTTP will not be successful.

### Types of API Keys

There are a total of four different types of API keys. API keys grant you access to the Uniramp API.

* **Test secret key**\
  \&#xNAN;*Example:* `sk_sand_LGZp4n7498RW5E1IwR3mJ9Ep`\
  Used to authenticate requests on the server (stored as an environment variable or in a credential management system) for the sandbox environment. This key can be used to perform API requests without restrictions. **Do not expose** this key on any client-side code or store this key on the version control system.<br>
* **Test publishable key**\
  \&#xNAN;*Example:* `pk_sand_LGZp4n7498RW5E1IwR3mJ9Ep`\
  Used to authenticate requests on the client for the sandbox environment. This key can be stored on the client-side code. API access using this key may be more restrictive.<br>
* **Production secret key**\
  \&#xNAN;*Example:* `sk_prod_LGZp4n7498RW5E1IwR3mJ9Ep`\
  Similar to the test secret key, use this key to authenticate requests on the production endpoint. **Do not expose** this key on any client-side code or store this key on the version control system.<br>
* **Production publishable key**\
  \&#xNAN;*Example:* `pk_prod_LGZp4n7498RW5E1IwR3mJ9Ep`\
  Similar to the test publisher key, use this key to authenticate requests on the production endpoint.
