Aller au contenu

Tickets

Create tickets, read their status and add comments (REST API v1).

POST /api/v1/tickets

Creates a ticket in the tenant bound to the API key. Send an Idempotency-Key header so retries don’t create duplicates: a repeated key returns the original result with action: deduplicated.

Authentification: Clé API : Authorization: Bearer nhk.<keyid>.<secret>, ou clé API dans X-NH-API-Key

Nom Emplacement Type Obligatoire Description
Idempotency-Key en-tête string non Unique key per logical operation (UUID recommended). A retry with the same key returns the first result.

application/json

Nom Type Obligatoire Description
subject string non Ticket title. Required (alias: summary).
summary string non déprécié Alias of subject.
description string non Body text (alias: body).
priority string non Priority name. The tenant’s priority scheme may define more values.
category string non Category hint used by routing.
issuetype string non Issue-type override, for example IT-INC or IT-SR.
country string non ISO 3166-1 alpha-2 country, if your tenant routes by country.
sender_email string (email) non Requester. Defaults to the key’s contact.
sender_name string non
sender_phone string non
company string non
external_id string non Your system’s id, kept for correlation.
tags array<string> non
attachments array<object> non Attachments by reference (URL). Binary upload is not part of v1.
attachments[].name string oui
attachments[].url string (uri) non
attachments[].size integer non
attachments[].mime string non
{
"subject": "Payment gateway returns HTTP 502",
"description": "Checkout fails for all EU customers since 09:12 UTC.",
"priority": "High",
"category": "Application",
"sender_email": "[email protected]",
"sender_name": "ACME On-call",
"external_id": "INC-88231",
"tags": [
"checkout",
"eu-west"
]
}
Statut Description
200 Ticket created (or deduplicated by Idempotency-Key).
400 Invalid request.
401 API key missing, invalid or revoked.
403 Key disabled or missing the required scope.
429 Rate limit exceeded for this API key.
500 Unexpected server error. Retry with the same Idempotency-Key.

Exemple 200

{
"ok": true,
"ticket_key": "ACME-1042",
"ingestion_id": "ing_7f3c2a91",
"action": "created",
"status_url": "/api/v1/tickets/ACME-1042",
"skipped": null,
"backend_status": null,
"backend_error": null,
"error": null,
"post_routing": null
}
Fenêtre de terminal
curl -X POST "https://exocortex-api.ai-exo-cortex.com/api/v1/tickets" \
-H "Authorization: Bearer $EXO_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
--data '{"subject":"Payment gateway returns HTTP 502","description":"Checkout fails for all EU customers since 09:12 UTC.","priority":"High","category":"Application","sender_email":"[email protected]","sender_name":"ACME On-call","external_id":"INC-88231","tags":["checkout","eu-west"]}'

GET /api/v1/tickets/{key}

Returns the current status of a ticket in the API key’s tenant. Tickets of other tenants return 404.

Authentification: Clé API : Authorization: Bearer nhk.<keyid>.<secret>, ou clé API dans X-NH-API-Key

Nom Emplacement Type Obligatoire Description
key chemin string oui Ticket key.
Statut Description
200 Ticket found.
401 API key missing, invalid or revoked.
403 Key disabled or missing the required scope.
404 Ticket not found in the API key’s tenant.
429 Rate limit exceeded for this API key.
500 Unexpected server error. Retry with the same Idempotency-Key.

Exemple 200

{
"ok": true,
"ticket": {
"key": "ACME-1042",
"summary": "Payment gateway returns HTTP 502",
"status": "In Progress",
"priority": "High",
"assignee": "Jane Doe",
"created": "2026-11-01T09:14:05.000Z",
"updated": "2026-11-01T09:31:47.000Z"
}
}
Fenêtre de terminal
curl -X GET "https://exocortex-api.ai-exo-cortex.com/api/v1/tickets/ACME-1042" \
-H "Authorization: Bearer $EXO_API_KEY"

POST /api/v1/tickets/{key}/comment

Authentification: Clé API : Authorization: Bearer nhk.<keyid>.<secret>, ou clé API dans X-NH-API-Key

Nom Emplacement Type Obligatoire Description
key chemin string oui Ticket key.
Idempotency-Key en-tête string non Unique key per logical operation (UUID recommended). A retry with the same key returns the first result.

application/json

Nom Type Obligatoire Description
comment string non Comment text. Required (alias: text).
text string non déprécié Alias of comment.
sender_email string (email) non
sender_name string non
{
"comment": "Rollback of release 4.18.2 completed; error rate back to baseline.",
"sender_email": "[email protected]"
}
Statut Description
200 Comment accepted.
400 Invalid request.
401 API key missing, invalid or revoked.
403 Key disabled or missing the required scope.
404 Ticket not found in the API key’s tenant.
429 Rate limit exceeded for this API key.
500 Unexpected server error. Retry with the same Idempotency-Key.

Exemple 200

{
"ok": true,
"ticket_key": "ACME-1042",
"ingestion_id": "ing_91be04d2"
}
Fenêtre de terminal
curl -X POST "https://exocortex-api.ai-exo-cortex.com/api/v1/tickets/ACME-1042/comment" \
-H "Authorization: Bearer $EXO_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
--data '{"comment":"Rollback of release 4.18.2 completed; error rate back to baseline.","sender_email":"[email protected]"}'

Page générée à partir de la spécification OpenAPI de l’API d’intégration, version 1.1.0.