# Authentification

## Via un token de service (recommandé)

Des tokens de service peuvent être générés depuis la page de configuration de l'organisation (Paramètre - Généraux).

<figure><img src="https://3247920337-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FczKclNsLQDMlLjxNwSSw%2Fuploads%2F6Cl06rJITOtmis1ZX7Jh%2Fimage.png?alt=media&#x26;token=a1100a93-93ee-465e-95a1-aa4dfd104c1e" alt=""><figcaption><p>Générer un token de service</p></figcaption></figure>

<pre class="language-python"><code class="lang-python"># Tester la connexion via le token API de service
import requests

URL_SERVER = "https://extract.api.recital.ai/extract/api/v1"
API_TOKEN = "....."

<strong>r = requests.get(
</strong>    url=f"{URL_SERVER}/config/", 
    headers={"Authorization": f"Bearer {API_TOKEN}"
)
</code></pre>

## Via ID / Mot de passe (token d'accès)

L'authentification via ID/mot de passe vous permet d'obtenir un token d'accès qui sera utilisé dans chaque appel ultérieur de l'API. Le token d'accès a une durée de vie d'une heure.

{% code fullWidth="false" %}

```python
# Tester la connexion via ID / MDP (token d'accès)
import requests

URL_SERVER = "https://extract.api.recital.ai/extract/api/v1"
URL_AUTH = "https://extract.auth.recital.ai/auth/api/v1/login/?noAuth=true"
USER = "...."
PWD = "...."

def get_headers():
    r = requests.post(url=URL_AUTH, data={"username":USER,"password":PWD})
    if r.status_code == 200:
        return {"Authorization":f"Bearer {r.json()['access_token']}"}
    else:
        raise Exception(f'Authentication Error - {r.status_code} - {r.reason} - {r.content}')
 
r = requests.get(
    url=f"{URL_SERVER}/config/", 
    headers=get_headers()
)
```

{% endcode %}
