> ## Documentation Index
> Fetch the complete documentation index at: https://docs.heliumid.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Helium Id Public API v1

> Integrate Helium Id seamlessly into your platform.

There are a few scenarios where you may not wish to use Helium Id's web flows to verify your end-users. For example:

* You wish to completely implement your own front-end.
* You plan to collect end-users' media yourself.
* You wish to do an offline bulk audit of previously verified end-users.

In those cases, you can do the whole process using our API and you will not show any Helium Id front-end to your end-users.

***

## Prerequisites

In order to start sending media over the API, make sure that you:

1. Have access to your [Helium Id Dashboard](https://admin.heliumid.io).
2. Have created an API key.
3. Have configured the necessary webhooks for the API key created.
4. Have all the necessary API keys and base URLs at hand.

***

## API Keys

All API endpoints are authenticated using an API key passed in the request header.

To obtain your API key:

1. Log in to the [Helium Id Dashboard](https://admin.heliumid.io).
2. Navigate to the **Developers** page via the left navigation bar.
3. Generate or copy your active API Key.

***

## API URL

Your API calls need to be sent to the base URL:

**Base URL:**
`https://server.heliumid.io/api/v1`

To make a request, append the specific endpoint path to the base URL:

```text theme={null}
https://server.heliumid.io/api/v1/{endpoint}
```

***

## API Headers

The following headers are required when sending requests to the Helium Id API:

* `x-api-key: string` (**required**) - Your integration's API key. Required to identify the request sender and authenticate your access.
* `Content-Type: application/json` (**required** for POST/PATCH calls) - The media type of the resource.

Example configuration:

```json theme={null}
"headers": {
  "x-api-key": "YOUR_API_KEY",
  "Content-Type": "application/json"
}
```

***

## Backwards Compatible Changes

We continuously improve our API. The changes listed below are considered backwards compatible by Helium Id. Make sure to set up your systems in a flexible manner so they can handle these changes gracefully:

* Adding new properties (e.g., strings, objects, arrays) to existing API responses.
* Changing the order of properties in existing API responses.
* Adding new API endpoints or optional request parameters.
* Adding new event types to webhooks (your webhook listener should gracefully handle unfamiliar event types).

***

## Customers API Flow in a Nutshell

1. **Create a verification session**
   Call the `POST /v1/verifications` endpoint to create a new session. You will receive a unique session link and ID.
2. **Complete Verification**
   The end-user completes the verification flow.
3. **Receive Webhooks / Fetch Status**
   Wait for the webhook notification or call `GET /v1/verifications/{id}` to fetch the conclusive decision (`successful`, `failed`, etc.) and the associated user data.
