Support
Vos demandes d’assistance : départements, fil des échanges, ouverture, réponse et clôture.
Lister les départements
GET
/v1/support/departmentsPermission : support:read
Départements auxquels adresser une demande, avec l’identifiant à donner dans department.
Réponse 200
| Champ | Type | Description |
|---|---|---|
data | liste de objet | |
data[].id | texte | Exemple : "support-technique". |
data[].name | texte | Exemple : "Support technique". |
data[].description | texte ou null |
Erreurs
- Et les erreurs communes :
missing_api_key,invalid_api_key,missing_scope,ip_not_allowed,rate_limited.
curl "https://api.corcelink.fr/v1/support/departments" \
-H "Authorization: Bearer $CORCELINK_API_KEY"
import os, uuid, requests
r = requests.get(
"https://api.corcelink.fr/v1/support/departments",
headers={"Authorization": f"Bearer {os.environ['CORCELINK_API_KEY']}"},
timeout=30,
)
r.raise_for_status()
print(r.json())
const res = await fetch("https://api.corcelink.fr/v1/support/departments", {
method: "GET",
headers: { Authorization: `Bearer ${process.env.CORCELINK_API_KEY}` },
});
console.log(res.status, await res.json());
Réponse 200
{
"data": [
{
"id": "support-technique",
"name": "Support technique",
"description": "Un souci sur un service"
},
{
"id": "facturation",
"name": "Facturation",
"description": null
}
]
}
Essayer avec votre clé
Votre clé reste dans ce navigateur et n’est envoyée qu’à api.corcelink.fr.
Lister les demandes
GET
/v1/support/ticketsPermission : support:read
Paramètres de requête
| Champ | Type | Description |
|---|---|---|
status | texte | Valeurs : open, answered, customer_reply, closed, on_hold, in_progress. |
limit | entier | Nombre d’éléments par page (1 à 100) Par défaut : 20. De 1 à 100. |
cursor | texte | Curseur renvoyé par la page précédente (`next_cursor`) |
Réponse 200
| Champ | Type | Description |
|---|---|---|
data | liste de objet | |
data[].id | texte | Exemple : "KQV-204118". |
data[].subject | texte | Exemple : "Mon application ne démarre plus après une mise à jour". |
data[].department | texte ou null | Département (voir GET /v1/support/departments). Exemple : "support-technique". |
data[].department_name | texte ou null | Exemple : "Support technique". |
data[].priority | texte | Valeurs : low, medium, high. |
data[].status | texte | Valeurs : open, answered, customer_reply, closed, on_hold, in_progress. |
data[].service | objet ou null | |
data[].service.type | texte | Exemple : "vps". |
data[].service.id | texte | Exemple : "vps-7c2e4a91". |
data[].unread | booléen | Une réponse du support n’a pas encore été lue. |
data[].created_at | texte | Date de création. |
data[].updated_at | texte | Date de création. |
has_more | booléen | |
next_cursor | texte ou null |
Erreurs
invalid_parameterParamètre invalideinvalid_cursorCurseur invalide- Et les erreurs communes :
missing_api_key,invalid_api_key,missing_scope,ip_not_allowed,rate_limited.
curl "https://api.corcelink.fr/v1/support/tickets" \
-H "Authorization: Bearer $CORCELINK_API_KEY"
import os, uuid, requests
r = requests.get(
"https://api.corcelink.fr/v1/support/tickets",
headers={"Authorization": f"Bearer {os.environ['CORCELINK_API_KEY']}"},
timeout=30,
)
r.raise_for_status()
print(r.json())
const res = await fetch("https://api.corcelink.fr/v1/support/tickets", {
method: "GET",
headers: { Authorization: `Bearer ${process.env.CORCELINK_API_KEY}` },
});
console.log(res.status, await res.json());
Réponse 200
{
"data": [
{
"id": "KQV-204118",
"subject": "Mon site ne répond plus",
"department": "support-technique",
"department_name": "Support technique",
"priority": "high",
"status": "answered",
"service": {
"type": "vps",
"id": "vps-7c2e4a91"
},
"unread": true,
"created_at": "2026-10-20T10:00:00Z",
"updated_at": "2026-10-21T09:30:00Z"
},
{
"id": "MRT-551902",
"subject": "Question sur ma facture",
"department": "facturation",
"department_name": "Facturation",
"priority": "medium",
"status": "closed",
"service": null,
"unread": false,
"created_at": "2026-10-20T10:00:00Z",
"updated_at": "2026-09-02T12:00:00Z"
}
],
"has_more": false,
"next_cursor": null
}
Essayer avec votre clé
Votre clé reste dans ce navigateur et n’est envoyée qu’à api.corcelink.fr.
Ouvrir une demande
POST
/v1/support/ticketsPermission : support:write
En-têtes
| Champ | Type | Description |
|---|---|---|
Idempotency-Key | texte | Clé unique (UUID conseillé) : une requête répétée avec la même clé renvoie la même réponse, sans refaire l’opération. 255 caractères au plus. |
Corps de la requête
| Champ | Type | Description |
|---|---|---|
subjectobligatoire | texte | 150 caractères au plus. |
departmentobligatoire | texte | Département (voir GET /v1/support/departments). Exemple : "support-technique". |
priority | texte | Valeurs : low, medium, high. |
service_id | texte | Service concerné (par exemple un VPS). Exemple : "vps-7c2e4a91". |
messageobligatoire | texte | 20000 caractères au plus. |
Réponse 201
| Champ | Type | Description |
|---|---|---|
id | texte | Exemple : "KQV-204118". |
subject | texte | Exemple : "Mon application ne démarre plus après une mise à jour". |
department | texte ou null | Département (voir GET /v1/support/departments). Exemple : "support-technique". |
department_name | texte ou null | Exemple : "Support technique". |
priority | texte | Valeurs : low, medium, high. |
status | texte | Valeurs : open, answered, customer_reply, closed, on_hold, in_progress. |
service | objet ou null | |
service.type | texte | Exemple : "vps". |
service.id | texte | Exemple : "vps-7c2e4a91". |
unread | booléen | Une réponse du support n’a pas encore été lue. |
created_at | texte | Date de création. |
updated_at | texte | Date de création. |
Erreurs
validation_failedDonnées invalidesrate_limitedTrop de requêtesservice_unavailableService momentanément indisponible- Et les erreurs communes :
missing_api_key,invalid_api_key,missing_scope,ip_not_allowed,rate_limited.
curl -X POST "https://api.corcelink.fr/v1/support/tickets" \
-H "Authorization: Bearer $CORCELINK_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"subject": "texte", "department": "support-technique", "service_id": "vps-7c2e4a91", "message": "texte"}'
import os, uuid, requests
r = requests.post(
"https://api.corcelink.fr/v1/support/tickets",
headers={"Authorization": f"Bearer {os.environ['CORCELINK_API_KEY']}", "Idempotency-Key": str(uuid.uuid4())},
json={"subject": "texte", "department": "support-technique", "service_id": "vps-7c2e4a91", "message": "texte"},
timeout=30,
)
r.raise_for_status()
print(r.json())
const res = await fetch("https://api.corcelink.fr/v1/support/tickets", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.CORCELINK_API_KEY}`, "Idempotency-Key": crypto.randomUUID(), "Content-Type": "application/json" },
body: JSON.stringify({"subject": "texte", "department": "support-technique", "service_id": "vps-7c2e4a91", "message": "texte"}),
});
console.log(res.status, await res.json());
Réponse 201
{
"id": "NEW-666934",
"subject": "Ajouter une adresse IPv4",
"department": "support-technique",
"department_name": "Support technique",
"priority": "low",
"status": "open",
"service": {
"type": "vps",
"id": "vps-7c2e4a91"
},
"unread": false,
"created_at": "2026-10-27T17:03:40Z",
"updated_at": "2026-10-27T17:03:40Z"
}
Lire une demande
GET
/v1/support/tickets/{ticket_id}Permission : support:read
Paramètres de chemin
| Champ | Type | Description |
|---|---|---|
ticket_idobligatoire | texte | Exemple : "KQV-204118". |
Réponse 200
| Champ | Type | Description |
|---|---|---|
id | texte | Exemple : "KQV-204118". |
subject | texte | Exemple : "Mon application ne démarre plus après une mise à jour". |
department | texte ou null | Département (voir GET /v1/support/departments). Exemple : "support-technique". |
department_name | texte ou null | Exemple : "Support technique". |
priority | texte | Valeurs : low, medium, high. |
status | texte | Valeurs : open, answered, customer_reply, closed, on_hold, in_progress. |
service | objet ou null | |
service.type | texte | Exemple : "vps". |
service.id | texte | Exemple : "vps-7c2e4a91". |
unread | booléen | Une réponse du support n’a pas encore été lue. |
created_at | texte | Date de création. |
updated_at | texte | Date de création. |
messages | liste de objet | |
messages[].id | texte | Exemple : "msg-118". |
messages[].author | texte | Valeurs : customer, support. |
messages[].author_name | texte | Exemple : "Support CorceLink". |
messages[].body | texte | Texte du message (Markdown). |
messages[].created_at | texte | Date de création. |
messages[].attachments | liste de objet | |
messages[].attachments[].name | texte | Exemple : "capture.png". |
Erreurs
not_foundRessource introuvable- Et les erreurs communes :
missing_api_key,invalid_api_key,missing_scope,ip_not_allowed,rate_limited.
curl "https://api.corcelink.fr/v1/support/tickets/KQV-204118" \
-H "Authorization: Bearer $CORCELINK_API_KEY"
import os, uuid, requests
r = requests.get(
"https://api.corcelink.fr/v1/support/tickets/KQV-204118",
headers={"Authorization": f"Bearer {os.environ['CORCELINK_API_KEY']}"},
timeout=30,
)
r.raise_for_status()
print(r.json())
const res = await fetch("https://api.corcelink.fr/v1/support/tickets/KQV-204118", {
method: "GET",
headers: { Authorization: `Bearer ${process.env.CORCELINK_API_KEY}` },
});
console.log(res.status, await res.json());
Réponse 200
{
"id": "KQV-204118",
"subject": "Mon site ne répond plus",
"department": "support-technique",
"department_name": "Support technique",
"priority": "high",
"status": "answered",
"service": {
"type": "vps",
"id": "vps-7c2e4a91"
},
"unread": true,
"created_at": "2026-10-20T10:00:00Z",
"updated_at": "2026-10-21T09:30:00Z",
"messages": [
{
"id": "msg-t1",
"author": "customer",
"author_name": "Camille Laurent",
"body": "Bonjour,",
"created_at": "2026-10-20T10:00:00Z",
"attachments": [
{
"name": "capture.png"
},
{
"name": "journal.txt"
}
]
},
{
"id": "msg-2",
"author": "customer",
"author_name": "Camille Laurent",
"body": "Une précision",
"created_at": "2026-10-21T08:00:00Z",
"attachments": []
},
{
"id": "msg-1",
"author": "support",
"author_name": "Support CorceLink",
"body": "Bonjour Camille,\n\nNous avons relancé le service.",
"created_at": "2026-10-21T09:30:00Z",
"attachments": [
{
"name": "rapport.pdf"
}
]
}
]
}
Essayer avec votre clé
Votre clé reste dans ce navigateur et n’est envoyée qu’à api.corcelink.fr.
Répondre à une demande
POST
/v1/support/tickets/{ticket_id}/repliesPermission : support:write
Paramètres de chemin
| Champ | Type | Description |
|---|---|---|
ticket_idobligatoire | texte | Exemple : "KQV-204118". |
En-têtes
| Champ | Type | Description |
|---|---|---|
Idempotency-Key | texte | Clé unique (UUID conseillé) : une requête répétée avec la même clé renvoie la même réponse, sans refaire l’opération. 255 caractères au plus. |
Corps de la requête
| Champ | Type | Description |
|---|---|---|
messageobligatoire | texte | 20000 caractères au plus. |
Réponse 201
| Champ | Type | Description |
|---|---|---|
id | texte | Exemple : "msg-118". |
author | texte | Valeurs : customer, support. |
author_name | texte | Exemple : "Support CorceLink". |
body | texte | Texte du message (Markdown). |
created_at | texte | Date de création. |
attachments | liste de objet | |
attachments[].name | texte | Exemple : "capture.png". |
Erreurs
not_foundRessource introuvablevalidation_failedDonnées invalidesservice_unavailableService momentanément indisponible- Et les erreurs communes :
missing_api_key,invalid_api_key,missing_scope,ip_not_allowed,rate_limited.
curl -X POST "https://api.corcelink.fr/v1/support/tickets/KQV-204118/replies" \
-H "Authorization: Bearer $CORCELINK_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"message": "texte"}'
import os, uuid, requests
r = requests.post(
"https://api.corcelink.fr/v1/support/tickets/KQV-204118/replies",
headers={"Authorization": f"Bearer {os.environ['CORCELINK_API_KEY']}", "Idempotency-Key": str(uuid.uuid4())},
json={"message": "texte"},
timeout=30,
)
r.raise_for_status()
print(r.json())
const res = await fetch("https://api.corcelink.fr/v1/support/tickets/KQV-204118/replies", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.CORCELINK_API_KEY}`, "Idempotency-Key": crypto.randomUUID(), "Content-Type": "application/json" },
body: JSON.stringify({"message": "texte"}),
});
console.log(res.status, await res.json());
Réponse 201
{
"id": "msg-3",
"author": "customer",
"author_name": "Camille Laurent",
"body": "Merci, c’est réglé.",
"created_at": "2026-10-27T17:03:40Z",
"attachments": []
}
Fermer une demande
POST
/v1/support/tickets/{ticket_id}/closePermission : support:write
Paramètres de chemin
| Champ | Type | Description |
|---|---|---|
ticket_idobligatoire | texte | Exemple : "KQV-204118". |
En-têtes
| Champ | Type | Description |
|---|---|---|
Idempotency-Key | texte | Clé unique (UUID conseillé) : une requête répétée avec la même clé renvoie la même réponse, sans refaire l’opération. 255 caractères au plus. |
Réponse 200
| Champ | Type | Description |
|---|---|---|
id | texte | Exemple : "KQV-204118". |
subject | texte | Exemple : "Mon application ne démarre plus après une mise à jour". |
department | texte ou null | Département (voir GET /v1/support/departments). Exemple : "support-technique". |
department_name | texte ou null | Exemple : "Support technique". |
priority | texte | Valeurs : low, medium, high. |
status | texte | Valeurs : open, answered, customer_reply, closed, on_hold, in_progress. |
service | objet ou null | |
service.type | texte | Exemple : "vps". |
service.id | texte | Exemple : "vps-7c2e4a91". |
unread | booléen | Une réponse du support n’a pas encore été lue. |
created_at | texte | Date de création. |
updated_at | texte | Date de création. |
Erreurs
not_foundRessource introuvableservice_unavailableService momentanément indisponible- Et les erreurs communes :
missing_api_key,invalid_api_key,missing_scope,ip_not_allowed,rate_limited.
curl -X POST "https://api.corcelink.fr/v1/support/tickets/KQV-204118/close" \
-H "Authorization: Bearer $CORCELINK_API_KEY" \
-H "Idempotency-Key: $(uuidgen)"
import os, uuid, requests
r = requests.post(
"https://api.corcelink.fr/v1/support/tickets/KQV-204118/close",
headers={"Authorization": f"Bearer {os.environ['CORCELINK_API_KEY']}", "Idempotency-Key": str(uuid.uuid4())},
timeout=30,
)
r.raise_for_status()
print(r.json())
const res = await fetch("https://api.corcelink.fr/v1/support/tickets/KQV-204118/close", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.CORCELINK_API_KEY}`, "Idempotency-Key": crypto.randomUUID() },
});
console.log(res.status, await res.json());
Réponse 200
{
"id": "MRT-551902",
"subject": "Question sur ma facture",
"department": "facturation",
"department_name": "Facturation",
"priority": "medium",
"status": "closed",
"service": null,
"unread": false,
"created_at": "2026-10-20T10:00:00Z",
"updated_at": "2026-09-02T12:00:00Z"
}