# Overview

Welcome to Gifthealth! This documentation serves to help our partners integrate
with our platform.

## Authentication

To make requests to any of the Gifthealth APIs, you must have a developer
account set up with Gifthealth. Contact Gifthealth to set up a developer
account.

Once your developer account is configured, you must authenticate all API
requests to the Gifthealth API using a Bearer token via the `Authentication`
header. The Bearer token should be the Base64-encoded value of the API key and
secret from your developer account in the format `api_key:api_secret`.

## Versioning

We utilize versioning in our APIs to allow us to add new features and iterate
without breaking integrations with our partners. API version names are based on
the date that the version was released.

Generally, we will only add a new API version for breaking changes. Some
examples of changes we would consider breaking changes would be: removal of
functionality, renaming of endpoints or response fields, making validation rules
to be more strict, or changing the type of a param or response field.

We generally do not consider additive changes to be breaking changes. These
would include changes such as new response fields, new endpoints, new enum values,
new response headers, or new optional request headers.

We reserve the right to deprecate and remove old API versions, but will provide
ample warning ahead of time.

## Errors

Gifthealth APIs return conventional HTTP status codes.

| Code | Name | Description |
|  --- | --- | --- |
| 200 | OK | Successful request |
| 201 | Created | Successfully created |
| 400 | Bad request | Malformed request, often due to missing root key |
| 401 | Unauthorized | Invalid credentials, make sure the Bearer token is included and valid |
| 404 | Not found | The requested resource does not exist |
| 422 | Unprocessable entity | Entity could not be created due to validation errors |
| 500 | Internal server error | Something went wrong and Gifthealth was notified |