# Configuration API

{% embed url="<https://youtu.be/Bl-T-slTyiQ>" %}

### Configurer des API dans Dastra&#x20;

API signifie ***application programming interface*** ou « interface de programmation d’application » en français.&#x20;

Les API permettent de connecter la plateforme Dastra a d'autres outils extérieurs.&#x20;

Les possibilités sont multiples : connexion avec un logiciel CRM pour récupérer les parties prenantes de manière automatisée, synchronisation d'un outil de gestion des exercices des droits avec le module de Dastra etc.

Dastra repose sur le standard **API-Rest** et notamment les requêtes HTTP suivantes :&#x20;

| URI                                                                   | GET                                                                                               | POST                                                                                                                                                                                                                                           | PUT                                                                                                                                                                                                | PATCH                                                                                                                                                                                                                  | DELETE                                                                                   |
| --------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- |
| Ressource collection, telle que `http://api.exemple.com/collection/`  | *Récupère* les URI des ressources membres de la ressource collection dans le corps de la réponse. | *Crée* une ressource membre dans la ressource collection en utilisant les instructions du corps de la requête. L'URI de la ressource membre créée est *attribué automatiquement* et retourné dans le champ d'en-tête *Location* de la réponse. | *Remplace* toutes les représentations des ressources membres de la ressource collection par la représentation dans le corps de la requête, ou *crée* la ressource collection si elle n'existe pas. | *Met à jour* toutes les représentations des ressources membres de la ressource collection en utilisant les instructions du corps de la requête, ou *crée éventuellement* la ressource collection si elle n'existe pas. | *Supprime* toutes les représentations des ressources membres de la ressource collection. |
| Ressource membre, telle que `http://api.exemple.com/collection/item3` | *Récupère* une représentation de la ressource membre dans le corps de la réponse.                 | *Crée* une ressource membre dans la ressource membre en utilisant les instructions du corps de la requête. L'URI de la ressource membre créée est *attribué automatiquement* et retourné dans le champ d'en-tête *Location* de la réponse.     | *Remplace* toutes les représentations de la ressource membre, ou *crée* la ressource membre si elle n'existe pas, par la représentation dans le corps de la requête.                               | *Met à jour* toutes les représentations de la ressource membre, ou *crée éventuellement* la ressource membre si elle n'existe pas, en utilisant les instructions du corps de la requête.                               | *Supprime* toutes les représentations de la ressource membre.                            |

&#x20;Source : [*wikipédia*](https://fr.wikipedia.org/wiki/Representational_state_transfer)&#x20;

Avec Dastra, il est possible de configurer plusieurs API. La liste des API est accessible ici : <https://api.dastra.eu/swagger/index.html>

### Limitations&#x20;

Une limite de requête http est fixée à 500/min ou 10000/10min.

Les options de sécurité (notamment filtrage IP) ne s'appliquent pas aux API.&#x20;

### Exposition des champs personnalisés dans l'API Dastra&#x20;

Dans Dastra, il est possible d'exposer dans l'API [des champs personnalisés](https://doc.dastra.eu/features/generalites/custom-fields) conçus depuis votre espace de travail Dastra.&#x20;

Les champs personnalisés sont propre à chaque espace de travail. Pour les prendre en compte dans l'API Dastra, il faut d'abord définir le nom de leur variable dans la définition du champs personnalisé :&#x20;

<figure><img src="https://1301193153-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LvBxs22wUMicv9uWp6C-2584506019%2Fuploads%2Flzx7EbvckSaECFmAQ3Hp%2Fimage.png?alt=media&#x26;token=11787c70-3b2c-4b42-871f-06435e232b74" alt=""><figcaption></figcaption></figure>

{% content-ref url="../features/generalites/custom-fields" %}
[custom-fields](https://doc.dastra.eu/features/generalites/custom-fields)
{% endcontent-ref %}

La plupart des entités modifiables via l'API expose un champ nommé "**customFields**" que vous pouvez modifier.&#x20;

Si vous définissez les champs avec les noms de variable suivants au sein de votre espace de travail :&#x20;

* mon\_champ\_string : un champ "Texte"
* mon\_champ\_booleen : un champ "Case à coche"
* mon\_champ\_numeric : un champ "Nombre"
* mon\_champ\_checkbox : un champ "Cases à cocher"

Il sera possible de modifier ces informations de cette façon

```json
{ 
  "label": "Google Analytics 4",
  ...
  "customFields": {
     "mon_champ_string": "Valeur de mon champ",
     "mon_champ_booleen": true,
     "mon_champ_numeric": 1,
     "mon_champ_checkbox"!:["Pomme","Banane"],
     ...a
  }
}
```

### Le cas des tags

Pour exposer des tags dans l'API Dastra, il faut aller les chercher dans le endpoint tags avant de les ajouter : /v1/ws/{workspaceId}/Tags

{% hint style="info" %}
**CONSEIL** : ne manipulez les API que si vous savez ce que vous faites !
{% endhint %}

Vous retrouvez l'interface de gestion des API dans Dastra à cette adresse : <https://app.dastra.eu/general-settings/api>


---

# 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://doc.dastra.eu/api-references/configuration-api.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.
