Hapn API authentication uses OAuth 2.0 Bearer tokens to secure API endpoints. Clients exchange credentials for a short-lived token, then include that token on each request to protected resources.
To issue API requests, you'll need a clientId and clientSecret provisioned by our Customer Success team.
Requesting an Access Token
POST your client credentials to the authorization endpoint at https://auth.usehapn.com/oauth2/token:
curl --location --request POST 'https://auth.usehapn.com/oauth2/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'client_id=<CLIENT_ID>' \
--data-urlencode 'client_secret=<CLIENT_SECRET>'Replace <CLIENT_ID> and <CLIENT_SECRET> with the credentials issued to you.
Response:
{
"access_token": "ACCESS_TOKEN",
"token_type": "Bearer",
"expires_in": 3600
}The token is valid for one hour (expires_in is in seconds).
Authenticating Requests
Send the token in the Authorization header on every request:
Authorization: Bearer <ACCESS_TOKEN>
Example:
curl --request GET \
--url https://api.iotgps.io/v1/devices \
--header 'Authorization: Bearer <ACCESS_TOKEN>' \
--header 'Accept: application/json'🔐 Best Practices
- Keep tokens secret. Treat Bearer tokens like passwords — never commit them, log them, or share them.
- Refresh before expiry. Tokens expire after one hour. Request a new one before the current token expires to avoid authentication errors mid-request.
- Request tokens on demand. You can fetch a new token at any time, even while an existing one is still valid. token before the previously issued token has expired