---
updatedAt: 2025-05-28T12:00:49.000Z
agentTools:
  projectIndex: https://developer.easee.com/llms.txt
---

# Authentication

Whether you are a user or an operator, the first thing you have to do to control your chargers is to authenticate via our REST API.

## Credentials

The Easee APIs uses OAuth2 for authorization. Call the [Authenticate](https://developer.easee.com/reference/account_authenticate) endpoint and provide your credentials in the body to obtain your access token. Both email and phone number is a valid userName. If phone number is used, the country code must be included.

### Successful response

If your request is successful, your response will look something like this:

```json
{
    "accessToken": "eyJhbGcitiJIUzI1jiIsInR5cCI9IkpXVCJ9.eyJBY2NvdW50SWQiOjIwMjUwMywiVXNlcklkIjoxNzI4MTIsInVuaXF1ZV9uYW1lIjoiMjAyNTAzIiwicm9sZSI6IkFkbWluIiwibmJmIjoxNjUwODY5ODYzLCJleHAiOjE2NTA5NTYyNjMsImlhdCI6MTY1MDg2OTg2M30.cDdFvXsucU9D2qCQstFXsdDiC0LMpNkG9YMXOf0mznM",
    "expiresIn": 3600,
    "accessClaims": [
        "Partner"
    ],
    "tokenType": "Bearer",
    "refreshToken": "dAzJJWlUTszzKpcQpeJj5wlO4EPIWsx5nOP4ntiOBJc="
}
```

## Authorization

The access token is valid for 1 hour and must be included in all API calls in the header as type Authorization with the value Bearer `<accessToken>`, as such:

```bash
curl --request GET \
     --url https://api.easee.com/api/accounts/profile \
     --header 'Accept: application/json' \
     --header 'Authorization: Bearer <accessToken>'
```

## Refreshing Credentials

In order for automated systems to always have valid credentials without storing and resending the username and password, [refresh token](https://developer.easee.com/reference/account_refreshtoken) must be requested.

The token should be refreshed if it expires or is invalidated (returns 4xx).

You can find more info about refresh token handling [here](https://developer.easee.com/changelog/refresh-token-handling)