# Login

Login to the API to fetch an access\_token to be used in your following API calls.

One auth session lasts 60 minutes. To be authenticated all the time, you'll have to refresh the session before it expires.&#x20;

We recommend you use **oathtool cli,** so you can fetch a 2FA security code programmatically `(oathtool --totp -b {secret-key}).`

### **POST /api/v1/**&#x70;artners/**auth/login**

The following parameters are required:

| Paramaters     | Description                        |
| -------------- | ---------------------------------- |
| email          | your account email                 |
| client\_id     | client \_id as on account page     |
| client\_secret | client \_secret as on account page |
| password       | password                           |
| security\_code | google authenticator 2fa code      |

The following parameter is optional:

| Paramaters  | Description                           |
| ----------- | ------------------------------------- |
| expires\_in | Time until session expires in seconds |

{% tabs %}
{% tab title="PHP" %}

```php
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.kriptomat.io/api/v1/partners/auth/login',
    [
        'headers' => [
            'X-Requested-With' => 'XMLHttpRequest',
            'Authorization' => 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6ImZjMzcwNGUxYzJhZGJmNGZkMmQyMWNhZDJjNzcwMjk5NzFmODFkNzc2OTczMTRlOTVhOTllNTYwMjAwMjIwMmYxZmIwZDczODRkYTU4YTkzIn0.eyJhdWQiOiI1IiwianRpIjoiZmMzNzA0ZTFjMmFkYmY0ZmQyZDIxY2FkMmM3NzAyOTk3MWY4MWQ3NzY5NzMxNGU5NWE5OWU1NjAyMDAyMjAyZjFmYjBkNzM4NGRhNThhOTMiLCJpYXQiOjE1NDU3MzQyMTIsIm5iZiI6MTU0NTczNDIxMiwiZXhwIjoxNTQ1NzM3ODEyLCJzdWIiOiIyIiwic2NvcGVzIjpbXX0.oD29UustUU7zwBcyp2M45pkAK2c71i6JjQsQTLNfgKQgq9j7lRNy34YbD28MisBpIOrSn7tBRfX2N-CiwxDaeFlNndYGV_8p2zWkzt_S3-Anpg0a1tyImwRp1WgORnD30-kpmwKVsbDJ1C3Mk-TiRgdXBKDGbs43UQ7uG27UoyEeqcyHMDpz0FOa0-ITcwZh2n4lp1gcHpQnon0L-_suTTUvLvPK-yy-nqcHURa5Fmk8dWKechrcZaFwd62T7f2ZuybuM9DjPd87rXHxOYged63Om9OnVOEcWkGSyAeiGwgV4lCFRMQNKUQnp1W_M0gIarwesgJHq4XKBn69SuMJDfUo3oGM3LoxBm_9OfF276SZ3Ta8_njENLX2Dzg-b4FV-GitUeQmJBAji0mwGqp-nhPFCyCUZ91qvNx6tNLAdHR0R3jrJAdBKbw44AfqgABFdzfh1iuahSU1JQ7hu3OIhnvEyWf9XECPdJLywgXNP6Cr2fZpUUxu7EedqJDklPBBZQ-cChvfj8hR4mpdT61DX_1BgwEofOsqRHvvbxaYUVL320MgYKMiS2USXe5d0oznOzJfq7NJ3hIyzCqgITt7w1iChyiNpaTtyp2CysAVSWHOjpFxp00756533ck3CJN8EpccjHiq5sWSaed1iFUKRjicd_4GPNKTmJMPCfg97WI',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'email' => 'john@doe.com',
            'password' => 'Password_123',
            'security_code' => '478291',
            'client_id' => 5,
            'client_secret' => '478bGciOiJSUzI1NiIsImp0aSI6IjE4ODUz291',
            'expires_in' => 300,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const url = new URL(
    "https://api.kriptomat.io/api/v1/partners/auth/login"
);

let headers = {
    "X-Requested-With": "XMLHttpRequest",
    "Authorization": "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6ImZjMzcwNGUxYzJhZGJmNGZkMmQyMWNhZDJjNzcwMjk5NzFmODFkNzc2OTczMTRlOTVhOTllNTYwMjAwMjIwMmYxZmIwZDczODRkYTU4YTkzIn0.eyJhdWQiOiI1IiwianRpIjoiZmMzNzA0ZTFjMmFkYmY0ZmQyZDIxY2FkMmM3NzAyOTk3MWY4MWQ3NzY5NzMxNGU5NWE5OWU1NjAyMDAyMjAyZjFmYjBkNzM4NGRhNThhOTMiLCJpYXQiOjE1NDU3MzQyMTIsIm5iZiI6MTU0NTczNDIxMiwiZXhwIjoxNTQ1NzM3ODEyLCJzdWIiOiIyIiwic2NvcGVzIjpbXX0.oD29UustUU7zwBcyp2M45pkAK2c71i6JjQsQTLNfgKQgq9j7lRNy34YbD28MisBpIOrSn7tBRfX2N-CiwxDaeFlNndYGV_8p2zWkzt_S3-Anpg0a1tyImwRp1WgORnD30-kpmwKVsbDJ1C3Mk-TiRgdXBKDGbs43UQ7uG27UoyEeqcyHMDpz0FOa0-ITcwZh2n4lp1gcHpQnon0L-_suTTUvLvPK-yy-nqcHURa5Fmk8dWKechrcZaFwd62T7f2ZuybuM9DjPd87rXHxOYged63Om9OnVOEcWkGSyAeiGwgV4lCFRMQNKUQnp1W_M0gIarwesgJHq4XKBn69SuMJDfUo3oGM3LoxBm_9OfF276SZ3Ta8_njENLX2Dzg-b4FV-GitUeQmJBAji0mwGqp-nhPFCyCUZ91qvNx6tNLAdHR0R3jrJAdBKbw44AfqgABFdzfh1iuahSU1JQ7hu3OIhnvEyWf9XECPdJLywgXNP6Cr2fZpUUxu7EedqJDklPBBZQ-cChvfj8hR4mpdT61DX_1BgwEofOsqRHvvbxaYUVL320MgYKMiS2USXe5d0oznOzJfq7NJ3hIyzCqgITt7w1iChyiNpaTtyp2CysAVSWHOjpFxp00756533ck3CJN8EpccjHiq5sWSaed1iFUKRjicd_4GPNKTmJMPCfg97WI",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "email": "john@doe.com",
    "password": "Password_123",
    "security_code": "478291",
    "client_id": 5,
    "client_secret": "478bGciOiJSUzI1NiIsImp0aSI6IjE4ODUz291",
    "expires_in": 16
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));
```

{% endtab %}

{% tab title="Bash" %}

```bash
curl -X POST \
    "https://api.kriptomat.io/api/v1/partners/auth/login" \
    -H "X-Requested-With: XMLHttpRequest" \
    -H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6ImZjMzcwNGUxYzJhZGJmNGZkMmQyMWNhZDJjNzcwMjk5NzFmODFkNzc2OTczMTRlOTVhOTllNTYwMjAwMjIwMmYxZmIwZDczODRkYTU4YTkzIn0.eyJhdWQiOiI1IiwianRpIjoiZmMzNzA0ZTFjMmFkYmY0ZmQyZDIxY2FkMmM3NzAyOTk3MWY4MWQ3NzY5NzMxNGU5NWE5OWU1NjAyMDAyMjAyZjFmYjBkNzM4NGRhNThhOTMiLCJpYXQiOjE1NDU3MzQyMTIsIm5iZiI6MTU0NTczNDIxMiwiZXhwIjoxNTQ1NzM3ODEyLCJzdWIiOiIyIiwic2NvcGVzIjpbXX0.oD29UustUU7zwBcyp2M45pkAK2c71i6JjQsQTLNfgKQgq9j7lRNy34YbD28MisBpIOrSn7tBRfX2N-CiwxDaeFlNndYGV_8p2zWkzt_S3-Anpg0a1tyImwRp1WgORnD30-kpmwKVsbDJ1C3Mk-TiRgdXBKDGbs43UQ7uG27UoyEeqcyHMDpz0FOa0-ITcwZh2n4lp1gcHpQnon0L-_suTTUvLvPK-yy-nqcHURa5Fmk8dWKechrcZaFwd62T7f2ZuybuM9DjPd87rXHxOYged63Om9OnVOEcWkGSyAeiGwgV4lCFRMQNKUQnp1W_M0gIarwesgJHq4XKBn69SuMJDfUo3oGM3LoxBm_9OfF276SZ3Ta8_njENLX2Dzg-b4FV-GitUeQmJBAji0mwGqp-nhPFCyCUZ91qvNx6tNLAdHR0R3jrJAdBKbw44AfqgABFdzfh1iuahSU1JQ7hu3OIhnvEyWf9XECPdJLywgXNP6Cr2fZpUUxu7EedqJDklPBBZQ-cChvfj8hR4mpdT61DX_1BgwEofOsqRHvvbxaYUVL320MgYKMiS2USXe5d0oznOzJfq7NJ3hIyzCqgITt7w1iChyiNpaTtyp2CysAVSWHOjpFxp00756533ck3CJN8EpccjHiq5sWSaed1iFUKRjicd_4GPNKTmJMPCfg97WI" \
    -H "Content-Type: application/json" \
    -d '{"email":"john@doe.com","password":"Password_123","security_code":"478291","client_id":5,"client_secret":"478bGciOiJSUzI1NiIsImp0aSI6IjE4ODUz291","expires_in":16}'
```

{% endtab %}
{% endtabs %}

This will return

```
{
  "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6IjE4ODUzNjM2MjA",
  "expires_in": 3600
}
```
