curl --request GET \
--url https://api.zelinqa.ai/v1/configuration/questions \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.zelinqa.ai/v1/configuration/questions"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.zelinqa.ai/v1/configuration/questions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"request_id": "req_1006",
"state": "published",
"total": 3,
"next_cursor": null,
"questions": [
{
"id": "q_style",
"text": "Quel style de canapé recherchez-vous ?",
"type": "single_choice",
"selection_mode": "single",
"source": "llm_generated",
"dimension_id": "so_besoin",
"active": true,
"choices": [
{
"id": "choice_contemporain",
"label": "Contemporain"
},
{
"id": "choice_scandinave",
"label": "Scandinave"
},
{
"id": "choice_classique",
"label": "Classique"
}
]
},
{
"id": "q_budget",
"text": "Quel budget souhaitez-vous consacrer au canapé ?",
"type": "open",
"selection_mode": null,
"source": "user",
"dimension_id": "so_budget",
"active": true,
"choices": []
}
]
}{
"code": "unauthorized",
"message": "Clé d'intégration absente ou invalide.",
"request_id": "req_9000",
"details": {}
}{
"code": "insufficient_scope",
"message": "Cette clé ne permet pas de publier une configuration.",
"request_id": "req_9001",
"details": {
"required_scopes": [
"configuration:publish"
],
"granted_scopes": [
"configuration:read",
"configuration:write"
]
}
}{
"code": "unknown_configuration",
"message": "Aucun brouillon n'existe pour cette configuration.",
"request_id": "req_9008",
"details": {
"state": "draft"
}
}Lister les questions
Liste paginée et filtrable du corpus. format=csv renvoie le même jeu de
données en text/csv, colonnes stables et documentées, pour export vers un
tableur ou réimport.
La pagination est par curseur opaque : passer cursor reçu dans
next_cursor pour obtenir la page suivante. next_cursor vaut null sur
la dernière page.
curl --request GET \
--url https://api.zelinqa.ai/v1/configuration/questions \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.zelinqa.ai/v1/configuration/questions"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.zelinqa.ai/v1/configuration/questions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"request_id": "req_1006",
"state": "published",
"total": 3,
"next_cursor": null,
"questions": [
{
"id": "q_style",
"text": "Quel style de canapé recherchez-vous ?",
"type": "single_choice",
"selection_mode": "single",
"source": "llm_generated",
"dimension_id": "so_besoin",
"active": true,
"choices": [
{
"id": "choice_contemporain",
"label": "Contemporain"
},
{
"id": "choice_scandinave",
"label": "Scandinave"
},
{
"id": "choice_classique",
"label": "Classique"
}
]
},
{
"id": "q_budget",
"text": "Quel budget souhaitez-vous consacrer au canapé ?",
"type": "open",
"selection_mode": null,
"source": "user",
"dimension_id": "so_budget",
"active": true,
"choices": []
}
]
}{
"code": "unauthorized",
"message": "Clé d'intégration absente ou invalide.",
"request_id": "req_9000",
"details": {}
}{
"code": "insufficient_scope",
"message": "Cette clé ne permet pas de publier une configuration.",
"request_id": "req_9001",
"details": {
"required_scopes": [
"configuration:publish"
],
"granted_scopes": [
"configuration:read",
"configuration:write"
]
}
}{
"code": "unknown_configuration",
"message": "Aucun brouillon n'existe pour cette configuration.",
"request_id": "req_9008",
"details": {
"state": "draft"
}
}Autorisations
Envoyez la clé API dans Authorization: Bearer <clé>. Elle identifie le domaine et les droits autorisés. Ne transmettez pas d'en-têtes d'identité internes.
Paramètres de requête
draft exige configuration:read et configuration:write.
published, draft 1 - 128Filtre sur le drapeau d'activation.
open: réponse libre, aucun choix ;single_choice: un seul choix parmi la liste ;multiple_choice: plusieurs choix possibles ;semi_open: choix proposés, complément libre autorisé viastructured_answer.free_text.
Pour semi_open, selection_mode précise si un ou plusieurs choix sont
permis en plus du complément libre.
open, single_choice, multiple_choice, semi_open Recherche textuelle simple sur le libellé de la question.
1 - 2001 <= x <= 200Curseur opaque renvoyé par l'appel précédent.
1 - 512csv ignore la pagination par curseur et renvoie l'intégralité du
corpus filtré en text/csv.
json, csv Réponse
Page de questions, ou export complet en CSV.
published, draft Show child attributes
Show child attributes
Curseur de la page suivante, null sur la dernière page.
Nombre total de questions correspondant au filtre.
x >= 0