# 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
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developer.kriptomat.io/docs/whitelabel-api-fiat-onramp-offramp-via-bank-wire/api-reference/authentication/login.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
