{"openapi":"3.1.0","info":{"title":"API Yuno Chat","version":"2026-10-01","description":"API REST de Yuno Chat. Guides : https://yuno.chat/docs","contact":{"email":"hello@yuno.chat"}},"servers":[{"url":"https://api.yuno.chat/v1"}],"security":[{"bearerAuth":[]}],"tags":[{"name":"Conversations","description":"Une conversation correspond à une session d’un visiteur dans le widget, du premier message à sa clôture. Le widget crée les conversations ; l’API permet de les consulter, de les attribuer, de les transférer à une personne et de les fermer."},{"name":"Messages","description":"Les messages appartiennent à une conversation. Ils sont rédigés par le visiteur (contact), l’assistant (bot), un membre de l’équipe (agent) ou Yuno Chat (system, par exemple « Léa a rejoint la conversation »)."},{"name":"Tickets","description":"Les tickets permettent de suivre les problèmes nécessitant un suivi. Les visiteurs les créent depuis le widget ; vous pouvez aussi les créer depuis vos systèmes, par exemple lors d’une demande de retour."},{"name":"Contacts","description":"Les contacts sont les personnes qui vous écrivent : des visiteurs ayant laissé une adresse e-mail ou des utilisateurs identifiés via l’appel identify du widget."},{"name":"Sources de connaissances","description":"Les sources de connaissances fournissent à l’assistant les informations nécessaires à ses réponses : pages explorées depuis une URL ou un sitemap, ou texte envoyé directement. Elles sont synchronisées chaque nuit."},{"name":"Points de terminaison des webhooks","description":"Les points de terminaison des webhooks sont les URL auxquelles Yuno Chat envoie ses événements. Consultez le guide des webhooks pour les types d’événements, les données envoyées et la vérification des signatures. Disponibles avec Growth et Pro."}],"paths":{"/conversations":{"get":{"operationId":"listConversations","summary":"Lister les conversations","description":"Renvoie les conversations, de la plus récente à la plus ancienne.","tags":["Conversations"],"externalDocs":{"url":"https://yuno.chat/docs/api/conversations#list-conversations"},"parameters":[{"name":"status","in":"query","required":false,"description":"Renvoie uniquement les conversations ayant ce statut.","schema":{"type":"string","enum":["open","waiting","handed_off","closed"],"description":"Renvoie uniquement les conversations ayant ce statut."}},{"name":"site_id","in":"query","required":false,"description":"Renvoie uniquement les conversations de ce site.","schema":{"type":"string","description":"Renvoie uniquement les conversations de ce site."}},{"name":"contact_id","in":"query","required":false,"description":"Renvoie uniquement les conversations de ce contact.","schema":{"type":"string","description":"Renvoie uniquement les conversations de ce contact."}},{"name":"limit","in":"query","required":false,"description":"Nombre d’objets à renvoyer, entre 1 et 100. Valeur par défaut : 20.","schema":{"type":"integer","description":"Nombre d’objets à renvoyer, entre 1 et 100. Valeur par défaut : 20."}},{"name":"cursor","in":"query","required":false,"description":"Le next_cursor d’une page précédente. Omettez-le pour commencer par l’objet le plus récent.","schema":{"type":"string","description":"Le next_cursor d’une page précédente. Omettez-le pour commencer par l’objet le plus récent."}}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","const":"list"},"data":{"type":"array","items":{"$ref":"#/components/schemas/Conversation"}},"has_more":{"type":"boolean"},"next_cursor":{"type":["string","null"]}}},"example":{"object":"list","data":[{"id":"conv_8HqL2v9K","object":"conversation","site_id":"site_8Kq2mXvR","status":"handed_off","subject":"Modifier l’adresse de livraison","contact_id":"ctc_4mR8tYw2","assignee_id":"usr_team_lea","message_count":6,"page_url":"https://atelier-gres.fr/products/bol-sauge","last_message_at":"2026-10-03T09:14:02Z","metadata":{"order_id":"1187"},"created_at":"2026-10-03T09:10:51Z","updated_at":"2026-10-03T09:14:02Z"}],"has_more":true,"next_cursor":"eyJpZCI6ImNvbnZfM..."}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/conversations/{id}":{"get":{"operationId":"retrieveAConversation","summary":"Récupérer une conversation","description":"Renvoie une seule conversation.","tags":["Conversations"],"externalDocs":{"url":"https://yuno.chat/docs/api/conversations#retrieve-a-conversation"},"parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de la conversation.","schema":{"type":"string"}}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Conversation"},"example":{"id":"conv_8HqL2v9K","object":"conversation","site_id":"site_8Kq2mXvR","status":"handed_off","subject":"Modifier l’adresse de livraison","contact_id":"ctc_4mR8tYw2","assignee_id":"usr_team_lea","message_count":6,"page_url":"https://atelier-gres.fr/products/bol-sauge","last_message_at":"2026-10-03T09:14:02Z","metadata":{"order_id":"1187"},"created_at":"2026-10-03T09:10:51Z","updated_at":"2026-10-03T09:14:02Z"}}}},"default":{"$ref":"#/components/responses/Error"}}},"patch":{"operationId":"updateAConversation","summary":"Mettre à jour une conversation","description":"Attribue une conversation ou met à jour ses métadonnées. Les champs omis restent inchangés.","tags":["Conversations"],"externalDocs":{"url":"https://yuno.chat/docs/api/conversations#update-a-conversation"},"parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de la conversation.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"assignee_id":{"type":["string","null"],"description":"L’identifiant d’un membre de l’équipe, ou null pour retirer l’attribution."},"metadata":{"type":"object","additionalProperties":true,"description":"Jusqu’à 20 paires clé-valeur de vos propres données. Les clés peuvent contenir 40 caractères et les valeurs 500. Définissez une clé sur null pour la supprimer."}}},"example":{"assignee_id":"usr_team_lea","metadata":{"order_id":"1187"}}}}},"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Conversation"},"example":{"id":"conv_8HqL2v9K","object":"conversation","site_id":"site_8Kq2mXvR","status":"handed_off","subject":"Modifier l’adresse de livraison","contact_id":"ctc_4mR8tYw2","assignee_id":"usr_team_lea","message_count":6,"page_url":"https://atelier-gres.fr/products/bol-sauge","last_message_at":"2026-10-03T09:14:02Z","metadata":{"order_id":"1187"},"created_at":"2026-10-03T09:10:51Z","updated_at":"2026-10-03T09:14:02Z"}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/conversations/{id}/handoff":{"post":{"operationId":"handOffAConversation","summary":"Transférer à une personne","description":"Arrête les réponses de l’assistant et passe la conversation à waiting, comme si le visiteur avait demandé à parler à une personne. Utile lorsque vos systèmes détectent une situation nécessitant une intervention humaine.","tags":["Conversations"],"externalDocs":{"url":"https://yuno.chat/docs/api/conversations#hand-off-a-conversation"},"parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de la conversation.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"assignee_id":{"type":"string","description":"Attribue immédiatement la conversation à quelqu’un. Le statut devient handed_off."},"note":{"type":"string","description":"Une note interne visible par votre équipe, jamais par le visiteur."}}},"example":{"note":"Client VIP, commande de plus de 500 €"}}}},"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Conversation"},"example":{"id":"conv_8HqL2v9K","object":"conversation","site_id":"site_8Kq2mXvR","status":"waiting","subject":"Modifier l’adresse de livraison","contact_id":"ctc_4mR8tYw2","assignee_id":null,"message_count":6,"page_url":"https://atelier-gres.fr/products/bol-sauge","last_message_at":"2026-10-03T09:14:02Z","metadata":{"order_id":"1187"},"created_at":"2026-10-03T09:10:51Z","updated_at":"2026-10-03T09:14:02Z"}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/conversations/{id}/close":{"post":{"operationId":"closeAConversation","summary":"Fermer une conversation","description":"Ferme la conversation. Si le visiteur écrit à nouveau, une nouvelle conversation est créée.","tags":["Conversations"],"externalDocs":{"url":"https://yuno.chat/docs/api/conversations#close-a-conversation"},"parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de la conversation.","schema":{"type":"string"}}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Conversation"},"example":{"id":"conv_8HqL2v9K","object":"conversation","site_id":"site_8Kq2mXvR","status":"closed","subject":"Modifier l’adresse de livraison","contact_id":"ctc_4mR8tYw2","assignee_id":"usr_team_lea","message_count":6,"page_url":"https://atelier-gres.fr/products/bol-sauge","last_message_at":"2026-10-03T09:14:02Z","metadata":{"order_id":"1187"},"created_at":"2026-10-03T09:10:51Z","updated_at":"2026-10-03T09:14:02Z"}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/conversations/{id}/messages":{"get":{"operationId":"listMessages","summary":"Lister les messages","description":"Renvoie les messages d’une conversation, du plus ancien au plus récent.","tags":["Messages"],"externalDocs":{"url":"https://yuno.chat/docs/api/messages#list-messages"},"parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de la conversation.","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Nombre d’objets à renvoyer, entre 1 et 100. Valeur par défaut : 20.","schema":{"type":"integer","description":"Nombre d’objets à renvoyer, entre 1 et 100. Valeur par défaut : 20."}},{"name":"cursor","in":"query","required":false,"description":"Le next_cursor d’une page précédente. Omettez-le pour commencer par l’objet le plus récent.","schema":{"type":"string","description":"Le next_cursor d’une page précédente. Omettez-le pour commencer par l’objet le plus récent."}}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","const":"list"},"data":{"type":"array","items":{"$ref":"#/components/schemas/Message"}},"has_more":{"type":"boolean"},"next_cursor":{"type":["string","null"]}}},"example":{"object":"list","data":[{"id":"msg_2Wd7nPq1","object":"message","conversation_id":"conv_8HqL2v9K","author":{"type":"agent","id":"usr_team_lea","name":"Léa"},"body":"C’est fait ! La commande sera livrée à l’adresse de votre bureau.","attachments":[],"sources":[],"created_at":"2026-10-03T09:14:02Z"}],"has_more":false,"next_cursor":null}}}},"default":{"$ref":"#/components/responses/Error"}}},"post":{"operationId":"sendAMessage","summary":"Envoyer un message","description":"Envoie un message au visiteur au nom d’un membre de l’équipe. Si la conversation était à waiting, elle passe à handed_off.","tags":["Messages"],"externalDocs":{"url":"https://yuno.chat/docs/api/messages#send-a-message"},"parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de la conversation.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"body":{"type":"string","description":"Le texte du message, limité à 4 000 caractères."},"author_id":{"type":"string","description":"Le membre de l’équipe qui l’envoie."},"attachments":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","description":"URL HTTPS du fichier."},"name":{"type":"string","description":"Nom du fichier à afficher."}},"required":["url"]},"description":"Jusqu’à 5 fichiers, chacun fourni sous forme d’une URL publique depuis laquelle Yuno Chat le téléchargera."}},"required":["body","author_id"]},"example":{"body":"C’est fait ! La commande sera livrée à l’adresse de votre bureau.","author_id":"usr_team_lea"}}}},"responses":{"201":{"description":"Succès","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Message"},"example":{"id":"msg_2Wd7nPq1","object":"message","conversation_id":"conv_8HqL2v9K","author":{"type":"agent","id":"usr_team_lea","name":"Léa"},"body":"C’est fait ! La commande sera livrée à l’adresse de votre bureau.","attachments":[],"sources":[],"created_at":"2026-10-03T09:14:02Z"}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/messages/{id}":{"get":{"operationId":"retrieveAMessage","summary":"Récupérer un message","description":"Renvoie un seul message.","tags":["Messages"],"externalDocs":{"url":"https://yuno.chat/docs/api/messages#retrieve-a-message"},"parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant du message.","schema":{"type":"string"}}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Message"},"example":{"id":"msg_2Wd7nPq1","object":"message","conversation_id":"conv_8HqL2v9K","author":{"type":"agent","id":"usr_team_lea","name":"Léa"},"body":"C’est fait ! La commande sera livrée à l’adresse de votre bureau.","attachments":[],"sources":[],"created_at":"2026-10-03T09:14:02Z"}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/tickets":{"post":{"operationId":"createATicket","summary":"Créer un ticket","description":"Crée un ticket et envoie un e-mail de confirmation au contact. Fournissez contact_id ou un objet contact ; un contact est créé si l’adresse e-mail est nouvelle.","tags":["Tickets"],"externalDocs":{"url":"https://yuno.chat/docs/api/tickets#create-a-ticket"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"subject":{"type":"string","description":"Résumé en une ligne, limité à 200 caractères."},"description":{"type":"string","description":"Informations détaillées, limitées à 10 000 caractères."},"contact_id":{"type":"string","description":"Un contact existant."},"contact":{"type":"object","properties":{"email":{"type":"string","description":"Adresse e-mail du contact."},"name":{"type":"string","description":"Nom du contact."}},"required":["email"],"description":"Recherche ou crée un contact à partir de son adresse e-mail."},"priority":{"type":"string","enum":["low","normal","high","urgent"],"description":"Valeur par défaut : normal."},"conversation_id":{"type":"string","description":"Associe le ticket à une conversation."},"assignee_id":{"type":"string","description":"Un membre de l’équipe."},"tags":{"type":"array","items":{"type":"string"},"description":"Jusqu’à 10 étiquettes."},"notify_contact":{"type":"boolean","description":"Envoie l’e-mail de confirmation. Valeur par défaut : true."},"metadata":{"type":"object","additionalProperties":true,"description":"Jusqu’à 20 paires clé-valeur de vos propres données. Les clés peuvent contenir 40 caractères et les valeurs 500. Définissez une clé sur null pour la supprimer."}},"required":["subject"]},"example":{"subject":"Tasse ébréchée dans la commande n° 1187","description":"L’une des deux tasses est arrivée avec un éclat sur le bord.","contact":{"email":"marta@example.com","name":"Marta Kowalski"},"priority":"high","tags":["damaged","shipping"],"metadata":{"order_id":"1187"}}}}},"responses":{"201":{"description":"Succès","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ticket"},"example":{"id":"tkt_7Hc1vQ","object":"ticket","number":4821,"subject":"Tasse ébréchée dans la commande n° 1187","description":"L’une des deux tasses est arrivée avec un éclat sur le bord.","status":"open","priority":"high","contact_id":"ctc_4mR8tYw2","conversation_id":"conv_8HqL2v9K","assignee_id":null,"tags":["damaged","shipping"],"metadata":{"order_id":"1187"},"created_at":"2026-10-03T09:15:30Z","updated_at":"2026-10-03T09:15:30Z","solved_at":null}}}},"default":{"$ref":"#/components/responses/Error"}}},"get":{"operationId":"listTickets","summary":"Lister les tickets","description":"Renvoie les tickets, du plus récent au plus ancien.","tags":["Tickets"],"externalDocs":{"url":"https://yuno.chat/docs/api/tickets#list-tickets"},"parameters":[{"name":"status","in":"query","required":false,"description":"Filtre par statut.","schema":{"type":"string","enum":["open","pending","solved","closed"],"description":"Filtre par statut."}},{"name":"priority","in":"query","required":false,"description":"Filtre par priorité.","schema":{"type":"string","enum":["low","normal","high","urgent"],"description":"Filtre par priorité."}},{"name":"contact_id","in":"query","required":false,"description":"Filtre par contact.","schema":{"type":"string","description":"Filtre par contact."}},{"name":"tag","in":"query","required":false,"description":"Uniquement les tickets portant cette étiquette.","schema":{"type":"string","description":"Uniquement les tickets portant cette étiquette."}},{"name":"created_after","in":"query","required":false,"description":"Horodatage ISO 8601.","schema":{"type":"string","description":"Horodatage ISO 8601."}},{"name":"created_before","in":"query","required":false,"description":"Horodatage ISO 8601.","schema":{"type":"string","description":"Horodatage ISO 8601."}},{"name":"limit","in":"query","required":false,"description":"Nombre d’objets à renvoyer, entre 1 et 100. Valeur par défaut : 20.","schema":{"type":"integer","description":"Nombre d’objets à renvoyer, entre 1 et 100. Valeur par défaut : 20."}},{"name":"cursor","in":"query","required":false,"description":"Le next_cursor d’une page précédente. Omettez-le pour commencer par l’objet le plus récent.","schema":{"type":"string","description":"Le next_cursor d’une page précédente. Omettez-le pour commencer par l’objet le plus récent."}}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","const":"list"},"data":{"type":"array","items":{"$ref":"#/components/schemas/Ticket"}},"has_more":{"type":"boolean"},"next_cursor":{"type":["string","null"]}}},"example":{"object":"list","data":[{"id":"tkt_7Hc1vQ","object":"ticket","number":4821,"subject":"Tasse ébréchée dans la commande n° 1187","description":"L’une des deux tasses est arrivée avec un éclat sur le bord.","status":"open","priority":"high","contact_id":"ctc_4mR8tYw2","conversation_id":"conv_8HqL2v9K","assignee_id":null,"tags":["damaged","shipping"],"metadata":{"order_id":"1187"},"created_at":"2026-10-03T09:15:30Z","updated_at":"2026-10-03T09:15:30Z","solved_at":null}],"has_more":true,"next_cursor":"eyJpZCI6ImNvbnZfM..."}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/tickets/{id}":{"get":{"operationId":"retrieveATicket","summary":"Récupérer un ticket","description":"Renvoie un seul ticket. Vous pouvez aussi fournir son numéro, par exemple /tickets/4821.","tags":["Tickets"],"externalDocs":{"url":"https://yuno.chat/docs/api/tickets#retrieve-a-ticket"},"parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant ou le numéro du ticket.","schema":{"type":"string"}}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ticket"},"example":{"id":"tkt_7Hc1vQ","object":"ticket","number":4821,"subject":"Tasse ébréchée dans la commande n° 1187","description":"L’une des deux tasses est arrivée avec un éclat sur le bord.","status":"open","priority":"high","contact_id":"ctc_4mR8tYw2","conversation_id":"conv_8HqL2v9K","assignee_id":null,"tags":["damaged","shipping"],"metadata":{"order_id":"1187"},"created_at":"2026-10-03T09:15:30Z","updated_at":"2026-10-03T09:15:30Z","solved_at":null}}}},"default":{"$ref":"#/components/responses/Error"}}},"patch":{"operationId":"updateATicket","summary":"Mettre à jour un ticket","description":"Met à jour un ticket. Le passage au statut solved envoie un e-mail au contact, sauf si notify_contact vaut false.","tags":["Tickets"],"externalDocs":{"url":"https://yuno.chat/docs/api/tickets#update-a-ticket"},"parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant ou le numéro du ticket.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"subject":{"type":"string","description":"Nouveau résumé."},"status":{"type":"string","enum":["open","pending","solved","closed"],"description":"Nouveau statut."},"priority":{"type":"string","enum":["low","normal","high","urgent"],"description":"Nouvelle priorité."},"assignee_id":{"type":["string","null"],"description":"Un membre de l’équipe, ou null."},"tags":{"type":"array","items":{"type":"string"},"description":"Remplace les étiquettes existantes."},"notify_contact":{"type":"boolean","description":"Informe le contact de cette modification par e-mail. Valeur par défaut : true."},"metadata":{"type":"object","additionalProperties":true,"description":"Jusqu’à 20 paires clé-valeur de vos propres données. Les clés peuvent contenir 40 caractères et les valeurs 500. Définissez une clé sur null pour la supprimer."}}},"example":{"status":"solved"}}}},"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ticket"},"example":{"id":"tkt_7Hc1vQ","object":"ticket","number":4821,"subject":"Tasse ébréchée dans la commande n° 1187","description":"L’une des deux tasses est arrivée avec un éclat sur le bord.","status":"solved","priority":"high","contact_id":"ctc_4mR8tYw2","conversation_id":"conv_8HqL2v9K","assignee_id":null,"tags":["damaged","shipping"],"metadata":{"order_id":"1187"},"created_at":"2026-10-03T09:15:30Z","updated_at":"2026-10-03T09:15:30Z","solved_at":"2026-10-03T11:02:00Z"}}}},"default":{"$ref":"#/components/responses/Error"}}},"delete":{"operationId":"deleteATicket","summary":"Supprimer un ticket","description":"Supprime définitivement un ticket. Cette action est irréversible ; vous pouvez aussi choisir de le fermer.","tags":["Tickets"],"externalDocs":{"url":"https://yuno.chat/docs/api/tickets#delete-a-ticket"},"parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant ou le numéro du ticket.","schema":{"type":"string"}}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"object":{"type":"string"},"deleted":{"type":"boolean"}}},"example":{"id":"tkt_7Hc1vQ","object":"ticket","deleted":true}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/contacts":{"post":{"operationId":"createOrUpdateAContact","summary":"Créer ou mettre à jour un contact","description":"Crée un contact ou met à jour celui ayant le même external_id ou email. Renvoie 201 lors d’une création et 200 lors d’une mise à jour.","tags":["Contacts"],"externalDocs":{"url":"https://yuno.chat/docs/api/contacts#create-or-update-a-contact"},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","description":"Obligatoire si external_id n’est pas défini."},"external_id":{"type":"string","description":"Obligatoire si email n’est pas défini."},"name":{"type":"string","description":"Nom complet."},"phone":{"type":"string","description":"Numéro de téléphone."},"attributes":{"type":"object","additionalProperties":true,"description":"Fusionné avec les attributs existants. Définissez une clé sur null pour la supprimer."}}},"example":{"external_id":"usr_2041","email":"marta@example.com","name":"Marta Kowalski","attributes":{"plan":"wholesale","orders":7}}}}},"responses":{"201":{"description":"Succès","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Contact"},"example":{"id":"ctc_4mR8tYw2","object":"contact","email":"marta@example.com","name":"Marta Kowalski","phone":"+48 600 100 200","external_id":"usr_2041","attributes":{"plan":"wholesale","orders":7},"last_seen_at":"2026-10-03T09:12:40Z","created_at":"2026-06-11T15:02:09Z","updated_at":"2026-10-03T09:12:40Z"}}}},"default":{"$ref":"#/components/responses/Error"}}},"get":{"operationId":"listContacts","summary":"Lister les contacts","description":"Renvoie les contacts, du plus récemment actif au moins récemment actif.","tags":["Contacts"],"externalDocs":{"url":"https://yuno.chat/docs/api/contacts#list-contacts"},"parameters":[{"name":"email","in":"query","required":false,"description":"Correspondance exacte de l’adresse e-mail.","schema":{"type":"string","description":"Correspondance exacte de l’adresse e-mail."}},{"name":"external_id","in":"query","required":false,"description":"Correspondance exacte de votre identifiant utilisateur.","schema":{"type":"string","description":"Correspondance exacte de votre identifiant utilisateur."}},{"name":"limit","in":"query","required":false,"description":"Nombre d’objets à renvoyer, entre 1 et 100. Valeur par défaut : 20.","schema":{"type":"integer","description":"Nombre d’objets à renvoyer, entre 1 et 100. Valeur par défaut : 20."}},{"name":"cursor","in":"query","required":false,"description":"Le next_cursor d’une page précédente. Omettez-le pour commencer par l’objet le plus récent.","schema":{"type":"string","description":"Le next_cursor d’une page précédente. Omettez-le pour commencer par l’objet le plus récent."}}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","const":"list"},"data":{"type":"array","items":{"$ref":"#/components/schemas/Contact"}},"has_more":{"type":"boolean"},"next_cursor":{"type":["string","null"]}}},"example":{"object":"list","data":[{"id":"ctc_4mR8tYw2","object":"contact","email":"marta@example.com","name":"Marta Kowalski","phone":"+48 600 100 200","external_id":"usr_2041","attributes":{"plan":"wholesale","orders":7},"last_seen_at":"2026-10-03T09:12:40Z","created_at":"2026-06-11T15:02:09Z","updated_at":"2026-10-03T09:12:40Z"}],"has_more":false,"next_cursor":null}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/contacts/{id}":{"get":{"operationId":"retrieveAContact","summary":"Récupérer un contact","description":"Renvoie un seul contact.","tags":["Contacts"],"externalDocs":{"url":"https://yuno.chat/docs/api/contacts#retrieve-a-contact"},"parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant du contact.","schema":{"type":"string"}}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Contact"},"example":{"id":"ctc_4mR8tYw2","object":"contact","email":"marta@example.com","name":"Marta Kowalski","phone":"+48 600 100 200","external_id":"usr_2041","attributes":{"plan":"wholesale","orders":7},"last_seen_at":"2026-10-03T09:12:40Z","created_at":"2026-06-11T15:02:09Z","updated_at":"2026-10-03T09:12:40Z"}}}},"default":{"$ref":"#/components/responses/Error"}}},"patch":{"operationId":"updateAContact","summary":"Mettre à jour un contact","description":"Met à jour un contact. Les champs omis restent inchangés.","tags":["Contacts"],"externalDocs":{"url":"https://yuno.chat/docs/api/contacts#update-a-contact"},"parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant du contact.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","description":"Nouvelle adresse e-mail."},"name":{"type":"string","description":"Nouveau nom."},"phone":{"type":"string","description":"Nouveau numéro de téléphone."},"attributes":{"type":"object","additionalProperties":true,"description":"Fusionné avec les attributs existants."}}},"example":{"attributes":{"orders":8}}}}},"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Contact"},"example":{"id":"ctc_4mR8tYw2","object":"contact","email":"marta@example.com","name":"Marta Kowalski","phone":"+48 600 100 200","external_id":"usr_2041","attributes":{"plan":"wholesale","orders":8},"last_seen_at":"2026-10-03T09:12:40Z","created_at":"2026-06-11T15:02:09Z","updated_at":"2026-10-03T09:12:40Z"}}}},"default":{"$ref":"#/components/responses/Error"}}},"delete":{"operationId":"deleteAContact","summary":"Supprimer un contact","description":"Supprime un contact et anonymise ses conversations et ses tickets. Utilisez cette action pour répondre aux demandes d’effacement prévues par le RGPD.","tags":["Contacts"],"externalDocs":{"url":"https://yuno.chat/docs/api/contacts#delete-a-contact"},"parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant du contact.","schema":{"type":"string"}}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"object":{"type":"string"},"deleted":{"type":"boolean"}}},"example":{"id":"ctc_4mR8tYw2","object":"contact","deleted":true}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/knowledge-sources":{"post":{"operationId":"createAKnowledgeSource","summary":"Créer une source de connaissances","description":"Ajoute une source et démarre son indexation. Vous recevrez un webhook knowledge_source.ready ou knowledge_source.failed une fois l’opération terminée.","tags":["Sources de connaissances"],"externalDocs":{"url":"https://yuno.chat/docs/api/knowledge-sources#create-a-knowledge-source"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["url","sitemap","text"],"description":"Le type de source."},"name":{"type":"string","description":"Un libellé pour votre équipe."},"url":{"type":"string","description":"Obligatoire pour url et sitemap."},"content":{"type":"string","description":"Obligatoire pour text. Contenu Markdown, limité à 100 000 caractères."},"site_id":{"type":"string","description":"Limite la source à un seul site. Par défaut, elle est utilisée sur tous les sites."}},"required":["type","name"]},"example":{"type":"sitemap","name":"Site principal","url":"https://atelier-gres.fr/sitemap.xml"}}}},"responses":{"201":{"description":"Succès","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KnowledgeSource"},"example":{"id":"src_5Tn3bKx8","object":"knowledge_source","type":"sitemap","name":"Site principal","url":"https://atelier-gres.fr/sitemap.xml","status":"pending","page_count":0,"last_synced_at":null,"created_at":"2026-06-11T15:10:44Z"}}}},"default":{"$ref":"#/components/responses/Error"}}},"get":{"operationId":"listKnowledgeSources","summary":"Lister les sources de connaissances","description":"Renvoie toutes les sources de connaissances.","tags":["Sources de connaissances"],"externalDocs":{"url":"https://yuno.chat/docs/api/knowledge-sources#list-knowledge-sources"},"parameters":[{"name":"limit","in":"query","required":false,"description":"Nombre d’objets à renvoyer, entre 1 et 100. Valeur par défaut : 20.","schema":{"type":"integer","description":"Nombre d’objets à renvoyer, entre 1 et 100. Valeur par défaut : 20."}},{"name":"cursor","in":"query","required":false,"description":"Le next_cursor d’une page précédente. Omettez-le pour commencer par l’objet le plus récent.","schema":{"type":"string","description":"Le next_cursor d’une page précédente. Omettez-le pour commencer par l’objet le plus récent."}}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","const":"list"},"data":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeSource"}},"has_more":{"type":"boolean"},"next_cursor":{"type":["string","null"]}}},"example":{"object":"list","data":[{"id":"src_5Tn3bKx8","object":"knowledge_source","type":"sitemap","name":"Site principal","url":"https://atelier-gres.fr/sitemap.xml","status":"ready","page_count":142,"last_synced_at":"2026-10-02T03:00:12Z","created_at":"2026-06-11T15:10:44Z"}],"has_more":false,"next_cursor":null}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/knowledge-sources/{id}":{"get":{"operationId":"retrieveAKnowledgeSource","summary":"Récupérer une source de connaissances","description":"Renvoie une seule source de connaissances.","tags":["Sources de connaissances"],"externalDocs":{"url":"https://yuno.chat/docs/api/knowledge-sources#retrieve-a-knowledge-source"},"parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de la source.","schema":{"type":"string"}}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KnowledgeSource"},"example":{"id":"src_5Tn3bKx8","object":"knowledge_source","type":"sitemap","name":"Site principal","url":"https://atelier-gres.fr/sitemap.xml","status":"ready","page_count":142,"last_synced_at":"2026-10-02T03:00:12Z","created_at":"2026-06-11T15:10:44Z"}}}},"default":{"$ref":"#/components/responses/Error"}}},"delete":{"operationId":"deleteAKnowledgeSource","summary":"Supprimer une source de connaissances","description":"Retire la source et ses pages des connaissances de l’assistant.","tags":["Sources de connaissances"],"externalDocs":{"url":"https://yuno.chat/docs/api/knowledge-sources#delete-a-knowledge-source"},"parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de la source.","schema":{"type":"string"}}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"object":{"type":"string"},"deleted":{"type":"boolean"}}},"example":{"id":"src_5Tn3bKx8","object":"knowledge_source","deleted":true}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/knowledge-sources/{id}/sync":{"post":{"operationId":"syncAKnowledgeSource","summary":"Synchroniser une source de connaissances","description":"Réindexe immédiatement une source sans attendre la synchronisation nocturne. Limité à une fois toutes les 10 minutes par source.","tags":["Sources de connaissances"],"externalDocs":{"url":"https://yuno.chat/docs/api/knowledge-sources#sync-a-knowledge-source"},"parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant de la source.","schema":{"type":"string"}}],"responses":{"202":{"description":"Succès","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KnowledgeSource"},"example":{"id":"src_5Tn3bKx8","object":"knowledge_source","type":"sitemap","name":"Site principal","url":"https://atelier-gres.fr/sitemap.xml","status":"indexing","page_count":142,"last_synced_at":"2026-10-02T03:00:12Z","created_at":"2026-06-11T15:10:44Z"}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/webhook-endpoints":{"post":{"operationId":"createAWebhookEndpoint","summary":"Créer un point de terminaison webhook","description":"Enregistre une URL. La réponse contient le secret de signature ; conservez-le, car il ne sera plus affiché.","tags":["Points de terminaison des webhooks"],"externalDocs":{"url":"https://yuno.chat/docs/api/webhook-endpoints#create-a-webhook-endpoint"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Une URL HTTPS."},"events":{"type":"array","items":{"type":"string"},"description":"Types d’événements, ou [\"*\"]."},"description":{"type":"string","description":"Une note pour votre équipe."}},"required":["url","events"]},"example":{"url":"https://example.com/hooks/yuno","events":["ticket.created","conversation.handed_off"],"description":"Alertes opérationnelles"}}}},"responses":{"201":{"description":"Succès","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEndpoint"},"example":{"id":"whe_3Lp9sDf6","object":"webhook_endpoint","url":"https://example.com/hooks/yuno","events":["ticket.created","conversation.handed_off"],"enabled":true,"description":"Alertes opérationnelles","created_at":"2026-09-20T10:00:00Z","secret":"whsec_Jk2v9QmL0pXr7sTn"}}}},"default":{"$ref":"#/components/responses/Error"}}},"get":{"operationId":"listWebhookEndpoints","summary":"Lister les points de terminaison webhook","description":"Renvoie tous les points de terminaison webhook.","tags":["Points de terminaison des webhooks"],"externalDocs":{"url":"https://yuno.chat/docs/api/webhook-endpoints#list-webhook-endpoints"},"parameters":[{"name":"limit","in":"query","required":false,"description":"Nombre d’objets à renvoyer, entre 1 et 100. Valeur par défaut : 20.","schema":{"type":"integer","description":"Nombre d’objets à renvoyer, entre 1 et 100. Valeur par défaut : 20."}},{"name":"cursor","in":"query","required":false,"description":"Le next_cursor d’une page précédente. Omettez-le pour commencer par l’objet le plus récent.","schema":{"type":"string","description":"Le next_cursor d’une page précédente. Omettez-le pour commencer par l’objet le plus récent."}}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","const":"list"},"data":{"type":"array","items":{"$ref":"#/components/schemas/WebhookEndpoint"}},"has_more":{"type":"boolean"},"next_cursor":{"type":["string","null"]}}},"example":{"object":"list","data":[{"id":"whe_3Lp9sDf6","object":"webhook_endpoint","url":"https://example.com/hooks/yuno","events":["ticket.created","conversation.handed_off"],"enabled":true,"description":"Alertes opérationnelles","created_at":"2026-09-20T10:00:00Z"}],"has_more":false,"next_cursor":null}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/webhook-endpoints/{id}":{"patch":{"operationId":"updateAWebhookEndpoint","summary":"Mettre à jour un point de terminaison webhook","description":"Modifie l’URL ou les événements, ou désactive le point de terminaison.","tags":["Points de terminaison des webhooks"],"externalDocs":{"url":"https://yuno.chat/docs/api/webhook-endpoints#update-a-webhook-endpoint"},"parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant du point de terminaison.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Nouvelle URL."},"events":{"type":"array","items":{"type":"string"},"description":"Remplace la liste des événements."},"enabled":{"type":"boolean","description":"Active ou désactive le point de terminaison."},"description":{"type":"string","description":"Une note pour votre équipe."}}},"example":{"enabled":false}}}},"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEndpoint"},"example":{"id":"whe_3Lp9sDf6","object":"webhook_endpoint","url":"https://example.com/hooks/yuno","events":["ticket.created","conversation.handed_off"],"enabled":false,"description":"Alertes opérationnelles","created_at":"2026-09-20T10:00:00Z"}}}},"default":{"$ref":"#/components/responses/Error"}}},"delete":{"operationId":"deleteAWebhookEndpoint","summary":"Supprimer un point de terminaison webhook","description":"Arrête l’envoi d’événements à cette URL.","tags":["Points de terminaison des webhooks"],"externalDocs":{"url":"https://yuno.chat/docs/api/webhook-endpoints#delete-a-webhook-endpoint"},"parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant du point de terminaison.","schema":{"type":"string"}}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"object":{"type":"string"},"deleted":{"type":"boolean"}}},"example":{"id":"whe_3Lp9sDf6","object":"webhook_endpoint","deleted":true}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/webhook-endpoints/{id}/test":{"post":{"operationId":"sendATestEvent","summary":"Envoyer un événement de test","description":"Envoie un événement ping au point de terminaison et renvoie la réponse de votre serveur.","tags":["Points de terminaison des webhooks"],"externalDocs":{"url":"https://yuno.chat/docs/api/webhook-endpoints#send-a-test-event"},"parameters":[{"name":"id","in":"path","required":true,"description":"L’identifiant du point de terminaison.","schema":{"type":"string"}}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object"},"example":{"delivered":true,"status_code":200,"duration_ms":182}}}},"default":{"$ref":"#/components/responses/Error"}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Une clé secrète, yk_live_… ou yk_test_…"}},"schemas":{"Conversation":{"type":"object","properties":{"id":{"type":"string","description":"Identifiant unique, préfixé par conv_."},"object":{"type":"string","description":"Toujours conversation."},"site_id":{"type":"string","description":"Le site sur lequel la conversation a commencé."},"status":{"type":"string","enum":["open","waiting","handed_off","closed"],"description":"open pendant que l’assistant répond, waiting lorsque le visiteur a demandé à parler à une personne sans avoir encore reçu de réponse, handed_off quand un membre de l’équipe intervient, et closed une fois la conversation terminée."},"subject":{"type":["string","null"],"description":"Un bref résumé généré à partir des premiers messages."},"contact_id":{"type":["string","null"],"description":"Le contact, si le visiteur a été identifié ou a laissé une adresse e-mail."},"assignee_id":{"type":["string","null"],"description":"Le membre de l’équipe chargé de la conversation."},"message_count":{"type":"integer","description":"Nombre de messages, réponses de l’assistant comprises."},"page_url":{"type":"string","description":"La page sur laquelle se trouvait le visiteur lors de l’ouverture du widget."},"last_message_at":{"type":"string","description":"Date du dernier message, au format ISO 8601 en UTC."},"metadata":{"type":"object","additionalProperties":true,"description":"Jusqu’à 20 paires clé-valeur de vos propres données. Les clés peuvent contenir 40 caractères et les valeurs 500. Définissez une clé sur null pour la supprimer."},"created_at":{"type":"string","description":"Date de création de l’objet, au format ISO 8601 en UTC."},"updated_at":{"type":"string","description":"Date de dernière mise à jour de l’objet, au format ISO 8601 en UTC."}},"example":{"id":"conv_8HqL2v9K","object":"conversation","site_id":"site_8Kq2mXvR","status":"handed_off","subject":"Modifier l’adresse de livraison","contact_id":"ctc_4mR8tYw2","assignee_id":"usr_team_lea","message_count":6,"page_url":"https://atelier-gres.fr/products/bol-sauge","last_message_at":"2026-10-03T09:14:02Z","metadata":{"order_id":"1187"},"created_at":"2026-10-03T09:10:51Z","updated_at":"2026-10-03T09:14:02Z"}},"Message":{"type":"object","properties":{"id":{"type":"string","description":"Identifiant unique, préfixé par msg_."},"object":{"type":"string","description":"Toujours message."},"conversation_id":{"type":"string","description":"La conversation à laquelle appartient ce message."},"author":{"type":"object","properties":{"type":{"type":"string","enum":["contact","bot","agent","system"],"description":"Le type d’auteur."},"id":{"type":["string","null"],"description":"Identifiant du contact ou du membre de l’équipe. Null pour bot et system."},"name":{"type":["string","null"],"description":"Nom affiché."}},"description":"L’auteur du message."},"body":{"type":"string","description":"Le texte du message. Les liens Markdown sont autorisés."},"attachments":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","description":"Une URL de téléchargement signée, valable une heure."},"name":{"type":"string","description":"Nom d’origine du fichier."},"size":{"type":"integer","description":"Taille en octets."}}},"description":"Les fichiers joints au message."},"sources":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string","description":"Titre de la page."},"url":{"type":"string","description":"URL de la page."}}},"description":"Pour les réponses de l’assistant : les pages utilisées pour formuler la réponse."},"created_at":{"type":"string","description":"Date de création de l’objet, au format ISO 8601 en UTC."}},"example":{"id":"msg_2Wd7nPq1","object":"message","conversation_id":"conv_8HqL2v9K","author":{"type":"agent","id":"usr_team_lea","name":"Léa"},"body":"C’est fait ! La commande sera livrée à l’adresse de votre bureau.","attachments":[],"sources":[],"created_at":"2026-10-03T09:14:02Z"}},"Ticket":{"type":"object","properties":{"id":{"type":"string","description":"Identifiant unique, préfixé par tkt_."},"object":{"type":"string","description":"Toujours ticket."},"number":{"type":"integer","description":"La référence courte affichée aux visiteurs, par exemple T-4821."},"subject":{"type":"string","description":"Résumé en une ligne."},"description":{"type":["string","null"],"description":"Informations détaillées."},"status":{"type":"string","enum":["open","pending","solved","closed"],"description":"pending signifie que vous attendez une réponse du visiteur."},"priority":{"type":"string","enum":["low","normal","high","urgent"],"description":"Valeur par défaut : normal."},"contact_id":{"type":"string","description":"Le destinataire du ticket. Il reçoit les mises à jour par e-mail."},"conversation_id":{"type":["string","null"],"description":"La conversation à l’origine du ticket, le cas échéant."},"assignee_id":{"type":["string","null"],"description":"Le membre de l’équipe responsable."},"tags":{"type":"array","items":{"type":"string"},"description":"Étiquettes libres."},"metadata":{"type":"object","additionalProperties":true,"description":"Jusqu’à 20 paires clé-valeur de vos propres données. Les clés peuvent contenir 40 caractères et les valeurs 500. Définissez une clé sur null pour la supprimer."},"created_at":{"type":"string","description":"Date de création de l’objet, au format ISO 8601 en UTC."},"updated_at":{"type":"string","description":"Date de dernière mise à jour de l’objet, au format ISO 8601 en UTC."},"solved_at":{"type":["string","null"],"description":"Date à laquelle le ticket a été marqué comme résolu."}},"example":{"id":"tkt_7Hc1vQ","object":"ticket","number":4821,"subject":"Tasse ébréchée dans la commande n° 1187","description":"L’une des deux tasses est arrivée avec un éclat sur le bord.","status":"open","priority":"high","contact_id":"ctc_4mR8tYw2","conversation_id":"conv_8HqL2v9K","assignee_id":null,"tags":["damaged","shipping"],"metadata":{"order_id":"1187"},"created_at":"2026-10-03T09:15:30Z","updated_at":"2026-10-03T09:15:30Z","solved_at":null}},"Contact":{"type":"object","properties":{"id":{"type":"string","description":"Identifiant unique, préfixé par ctc_."},"object":{"type":"string","description":"Toujours contact."},"email":{"type":["string","null"],"description":"Adresse e-mail, unique au sein de l’espace de travail."},"name":{"type":["string","null"],"description":"Nom complet."},"phone":{"type":["string","null"],"description":"Numéro de téléphone tel qu’il a été saisi."},"external_id":{"type":["string","null"],"description":"Votre propre identifiant utilisateur, unique au sein de l’espace de travail."},"attributes":{"type":"object","additionalProperties":true,"description":"Attributs personnalisés affichés à votre équipe à côté de la conversation."},"last_seen_at":{"type":["string","null"],"description":"Dernière date à laquelle le contact a ouvert le widget."},"created_at":{"type":"string","description":"Date de création de l’objet, au format ISO 8601 en UTC."},"updated_at":{"type":"string","description":"Date de dernière mise à jour de l’objet, au format ISO 8601 en UTC."}},"example":{"id":"ctc_4mR8tYw2","object":"contact","email":"marta@example.com","name":"Marta Kowalski","phone":"+48 600 100 200","external_id":"usr_2041","attributes":{"plan":"wholesale","orders":7},"last_seen_at":"2026-10-03T09:12:40Z","created_at":"2026-06-11T15:02:09Z","updated_at":"2026-10-03T09:12:40Z"}},"KnowledgeSource":{"type":"object","properties":{"id":{"type":"string","description":"Identifiant unique, préfixé par src_."},"object":{"type":"string","description":"Toujours knowledge_source."},"type":{"type":"string","enum":["url","sitemap","text"],"description":"url explore une page et les pages du même domaine vers lesquelles elle pointe, sitemap lit toutes les URL d’un sitemap et text correspond au contenu que vous envoyez."},"name":{"type":"string","description":"Un libellé pour votre équipe."},"url":{"type":["string","null"],"description":"L’URL des sources de type url et sitemap."},"status":{"type":"string","enum":["pending","indexing","ready","failed"],"description":"État de l’indexation."},"page_count":{"type":"integer","description":"Nombre de pages actuellement indexées."},"last_synced_at":{"type":["string","null"],"description":"Dernière synchronisation réussie."},"created_at":{"type":"string","description":"Date de création de l’objet, au format ISO 8601 en UTC."}},"example":{"id":"src_5Tn3bKx8","object":"knowledge_source","type":"sitemap","name":"Site principal","url":"https://atelier-gres.fr/sitemap.xml","status":"ready","page_count":142,"last_synced_at":"2026-10-02T03:00:12Z","created_at":"2026-06-11T15:10:44Z"}},"WebhookEndpoint":{"type":"object","properties":{"id":{"type":"string","description":"Identifiant unique, préfixé par whe_."},"object":{"type":"string","description":"Toujours webhook_endpoint."},"url":{"type":"string","description":"L’URL HTTPS à laquelle les événements sont envoyés."},"events":{"type":"array","items":{"type":"string"},"description":"Types d’événements à envoyer, ou [\"*\"] pour tous les recevoir."},"enabled":{"type":"boolean","description":"Les points de terminaison désactivés ne reçoivent rien."},"description":{"type":["string","null"],"description":"Une note pour votre équipe."},"secret":{"type":"string","description":"Le secret de signature, whsec_…. Renvoyé uniquement lors de la création du point de terminaison."},"created_at":{"type":"string","description":"Date de création de l’objet, au format ISO 8601 en UTC."}},"example":{"id":"whe_3Lp9sDf6","object":"webhook_endpoint","url":"https://example.com/hooks/yuno","events":["ticket.created","conversation.handed_off"],"enabled":true,"description":"Alertes opérationnelles","created_at":"2026-09-20T10:00:00Z"}},"Error":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":["string","null"]},"request_id":{"type":"string"}},"required":["type","message"]}}}},"responses":{"Error":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}