All developer pages

API reference

Tickets

6 operations. Base URL: https://api.ringura.com/api/v1. Authenticate with a bearer token that carries the scope named on each operation.

GET /api/v1/tickets

Tickets, newest reference number first.

Scope
tickets:read
Operation id
listTickets

Parameters

Parameters of GET /api/v1/tickets
NameInTypeRequiredConstraints
limitqueryintegerNo1 to 200
cursorquerystringNoat most 400 characters
statusquerystringNoone of "open", "pending", "snoozed", "resolved", "closed"
tagquerystringNoat most 40 characters

Response

200 JSON with these fields.

Response fields of GET /api/v1/tickets
FieldTypeRequiredConstraints
dataarray of objectYes
data[].idstring (uuid)Yes
data[].caseNumberintegerYes
data[].referencestringYes
data[].subjectstring or nullYes
data[].statusstringYes
data[].prioritystringYesone of "urgent", "high", "normal", "low", "lowest"
data[].caseTypestring or nullYes
data[].fieldsobjectYesfree-form object
data[].dispositionstring or nullYes
data[].tagsarray of stringYes
data[].assigneeIdstring (uuid) or nullYes
data[].queueIdstring (uuid) or nullYes
data[].contactIdstring (uuid)Yes
data[].versionintegerYes
data[].slaPolicyIdstring (uuid) or nullYes
data[].firstResponseDueAtstring (date-time) or nullYes
data[].nextResponseDueAtstring (date-time) or nullYes
data[].resolutionDueAtstring (date-time) or nullYes
data[].firstRepliedAtstring (date-time) or nullYes
data[].openedAtstring (date-time) or nullYes
data[].closedAtstring (date-time) or nullYes
data[].mergedIntostring (uuid) or nullYes
data[].lastActivityAtstring (date-time)Yes
nextCursorstring or nullYes

Errors

400, 401, 403, 404, 409, 429. What each status means

Example request

curl -X GET 'https://api.ringura.com/api/v1/tickets' \
  -H "Authorization: Bearer $CC_TOKEN"

POST /api/v1/tickets

Make a conversation a ticket: a reference number, case fields and SLA due times.

Scope
tickets:write
Operation id
createTicket
Idempotent
Send Idempotency-Key to make a retry safe

Parameters

Parameters of POST /api/v1/tickets
NameInTypeRequiredConstraints
Idempotency-KeyheaderstringNomatches ^[A-Za-z0-9_.:-]{8,100}$

Request body

JSON (Content-Type: application/json).

Request body of POST /api/v1/tickets
FieldTypeRequiredConstraints
conversationIdstring (uuid)Yes
subjectstringNo1-500 characters
prioritystringNoone of "urgent", "high", "normal", "low", "lowest"
caseTypestringNo1-100 characters
fieldsobjectNofree-form object
tagsarray of stringNoat most 50 items
assigneeIdstring (uuid) or nullNo

Response

201 JSON with these fields.

Response fields of POST /api/v1/tickets
FieldTypeRequiredConstraints
idstring (uuid)Yes
caseNumberintegerYes
referencestringYes
subjectstring or nullYes
statusstringYes
prioritystringYesone of "urgent", "high", "normal", "low", "lowest"
caseTypestring or nullYes
fieldsobjectYesfree-form object
dispositionstring or nullYes
tagsarray of stringYes
assigneeIdstring (uuid) or nullYes
queueIdstring (uuid) or nullYes
contactIdstring (uuid)Yes
versionintegerYes
slaPolicyIdstring (uuid) or nullYes
firstResponseDueAtstring (date-time) or nullYes
nextResponseDueAtstring (date-time) or nullYes
resolutionDueAtstring (date-time) or nullYes
firstRepliedAtstring (date-time) or nullYes
openedAtstring (date-time) or nullYes
closedAtstring (date-time) or nullYes
mergedIntostring (uuid) or nullYes
lastActivityAtstring (date-time)Yes

Errors

400, 401, 403, 404, 409, 422, 429. What each status means

Example request

curl -X POST 'https://api.ringura.com/api/v1/tickets' \
  -H "Authorization: Bearer $CC_TOKEN" \
  -H 'Idempotency-Key: order-2027-0001' \
  -H 'Content-Type: application/json' \
  -d '{
  "conversationId": "0192f5a0-7c1e-7d3a-9b2e-3f4a5b6c7d8e"
}'

GET /api/v1/tickets/{id}

One ticket.

Scope
tickets:read
Operation id
getTicket

Parameters

Parameters of GET /api/v1/tickets/{id}
NameInTypeRequiredConstraints
idpathstring (uuid)Yes

Response

200 JSON with these fields.

Response fields of GET /api/v1/tickets/{id}
FieldTypeRequiredConstraints
idstring (uuid)Yes
caseNumberintegerYes
referencestringYes
subjectstring or nullYes
statusstringYes
prioritystringYesone of "urgent", "high", "normal", "low", "lowest"
caseTypestring or nullYes
fieldsobjectYesfree-form object
dispositionstring or nullYes
tagsarray of stringYes
assigneeIdstring (uuid) or nullYes
queueIdstring (uuid) or nullYes
contactIdstring (uuid)Yes
versionintegerYes
slaPolicyIdstring (uuid) or nullYes
firstResponseDueAtstring (date-time) or nullYes
nextResponseDueAtstring (date-time) or nullYes
resolutionDueAtstring (date-time) or nullYes
firstRepliedAtstring (date-time) or nullYes
openedAtstring (date-time) or nullYes
closedAtstring (date-time) or nullYes
mergedIntostring (uuid) or nullYes
lastActivityAtstring (date-time)Yes

Errors

400, 401, 403, 404, 409, 429. What each status means

Example request

curl -X GET 'https://api.ringura.com/api/v1/tickets/0192f5a0-7c1e-7d3a-9b2e-3f4a5b6c7d8e' \
  -H "Authorization: Bearer $CC_TOKEN"

PATCH /api/v1/tickets/{id}

Change a ticket. Send the version you read: a stale version is refused with 409 version_conflict.

Scope
tickets:write
Operation id
updateTicket
Idempotent
Send Idempotency-Key to make a retry safe

Parameters

Parameters of PATCH /api/v1/tickets/{id}
NameInTypeRequiredConstraints
idpathstring (uuid)Yes
Idempotency-KeyheaderstringNomatches ^[A-Za-z0-9_.:-]{8,100}$

Request body

JSON (Content-Type: application/json).

Request body of PATCH /api/v1/tickets/{id}
FieldTypeRequiredConstraints
versionintegerYesat least 0
statusstringNoone of "open", "pending", "resolved"
prioritystringNoone of "urgent", "high", "normal", "low", "lowest"
subjectstringNo1-500 characters
caseTypestring or nullNo1-100 characters
assigneeIdstring (uuid) or nullNo
tagsarray of stringNoat most 50 items
addTagsarray of stringNoat most 50 items
removeTagsarray of stringNoat most 50 items
fieldsobjectNofree-form object
dispositionstringNo1-100 characters

Response

200 JSON with these fields.

Response fields of PATCH /api/v1/tickets/{id}
FieldTypeRequiredConstraints
idstring (uuid)Yes
caseNumberintegerYes
referencestringYes
subjectstring or nullYes
statusstringYes
prioritystringYesone of "urgent", "high", "normal", "low", "lowest"
caseTypestring or nullYes
fieldsobjectYesfree-form object
dispositionstring or nullYes
tagsarray of stringYes
assigneeIdstring (uuid) or nullYes
queueIdstring (uuid) or nullYes
contactIdstring (uuid)Yes
versionintegerYes
slaPolicyIdstring (uuid) or nullYes
firstResponseDueAtstring (date-time) or nullYes
nextResponseDueAtstring (date-time) or nullYes
resolutionDueAtstring (date-time) or nullYes
firstRepliedAtstring (date-time) or nullYes
openedAtstring (date-time) or nullYes
closedAtstring (date-time) or nullYes
mergedIntostring (uuid) or nullYes
lastActivityAtstring (date-time)Yes

Errors

400, 401, 403, 404, 409, 422, 429. What each status means

Example request

curl -X PATCH 'https://api.ringura.com/api/v1/tickets/0192f5a0-7c1e-7d3a-9b2e-3f4a5b6c7d8e' \
  -H "Authorization: Bearer $CC_TOKEN" \
  -H 'Idempotency-Key: order-2027-0001' \
  -H 'Content-Type: application/json' \
  -d '{
  "version": 0
}'

POST /api/v1/tickets/{id}/merge

Merge this ticket into another of the same contact.

Scope
tickets:write
Operation id
mergeTicket
Idempotent
Send Idempotency-Key to make a retry safe

Parameters

Parameters of POST /api/v1/tickets/{id}/merge
NameInTypeRequiredConstraints
idpathstring (uuid)Yes
Idempotency-KeyheaderstringNomatches ^[A-Za-z0-9_.:-]{8,100}$

Request body

JSON (Content-Type: application/json).

Request body of POST /api/v1/tickets/{id}/merge
FieldTypeRequiredConstraints
intostring (uuid)Yes

Response

200 JSON with these fields.

Response fields of POST /api/v1/tickets/{id}/merge
FieldTypeRequiredConstraints
sourceobjectYes
source.idstring (uuid)Yes
source.caseNumberintegerYes
source.referencestringYes
source.subjectstring or nullYes
source.statusstringYes
source.prioritystringYesone of "urgent", "high", "normal", "low", "lowest"
source.caseTypestring or nullYes
source.fieldsobjectYesfree-form object
source.dispositionstring or nullYes
source.tagsarray of stringYes
source.assigneeIdstring (uuid) or nullYes
source.queueIdstring (uuid) or nullYes
source.contactIdstring (uuid)Yes
source.versionintegerYes
source.slaPolicyIdstring (uuid) or nullYes
source.firstResponseDueAtstring (date-time) or nullYes
source.nextResponseDueAtstring (date-time) or nullYes
source.resolutionDueAtstring (date-time) or nullYes
source.firstRepliedAtstring (date-time) or nullYes
source.openedAtstring (date-time) or nullYes
source.closedAtstring (date-time) or nullYes
source.mergedIntostring (uuid) or nullYes
source.lastActivityAtstring (date-time)Yes
targetobjectYes
target.idstring (uuid)Yes
target.caseNumberintegerYes
target.referencestringYes
target.subjectstring or nullYes
target.statusstringYes
target.prioritystringYesone of "urgent", "high", "normal", "low", "lowest"
target.caseTypestring or nullYes
target.fieldsobjectYesfree-form object
target.dispositionstring or nullYes
target.tagsarray of stringYes
target.assigneeIdstring (uuid) or nullYes
target.queueIdstring (uuid) or nullYes
target.contactIdstring (uuid)Yes
target.versionintegerYes
target.slaPolicyIdstring (uuid) or nullYes
target.firstResponseDueAtstring (date-time) or nullYes
target.nextResponseDueAtstring (date-time) or nullYes
target.resolutionDueAtstring (date-time) or nullYes
target.firstRepliedAtstring (date-time) or nullYes
target.openedAtstring (date-time) or nullYes
target.closedAtstring (date-time) or nullYes
target.mergedIntostring (uuid) or nullYes
target.lastActivityAtstring (date-time)Yes

Errors

400, 401, 403, 404, 409, 422, 429. What each status means

Example request

curl -X POST 'https://api.ringura.com/api/v1/tickets/0192f5a0-7c1e-7d3a-9b2e-3f4a5b6c7d8e/merge' \
  -H "Authorization: Bearer $CC_TOKEN" \
  -H 'Idempotency-Key: order-2027-0001' \
  -H 'Content-Type: application/json' \
  -d '{
  "into": "0192f5a0-7c1e-7d3a-9b2e-3f4a5b6c7d8e"
}'

POST /api/v1/tickets/{id}/split

Move threads off this ticket into a new one.

Scope
tickets:write
Operation id
splitTicket
Idempotent
Send Idempotency-Key to make a retry safe

Parameters

Parameters of POST /api/v1/tickets/{id}/split
NameInTypeRequiredConstraints
idpathstring (uuid)Yes
Idempotency-KeyheaderstringNomatches ^[A-Za-z0-9_.:-]{8,100}$

Request body

JSON (Content-Type: application/json).

Request body of POST /api/v1/tickets/{id}/split
FieldTypeRequiredConstraints
interactionIdsarray of string (uuid)Yesat least 1 items at most 100 items
subjectstringNo1-500 characters

Response

201 JSON with these fields.

Response fields of POST /api/v1/tickets/{id}/split
FieldTypeRequiredConstraints
sourceobjectYes
source.idstring (uuid)Yes
source.caseNumberintegerYes
source.referencestringYes
source.subjectstring or nullYes
source.statusstringYes
source.prioritystringYesone of "urgent", "high", "normal", "low", "lowest"
source.caseTypestring or nullYes
source.fieldsobjectYesfree-form object
source.dispositionstring or nullYes
source.tagsarray of stringYes
source.assigneeIdstring (uuid) or nullYes
source.queueIdstring (uuid) or nullYes
source.contactIdstring (uuid)Yes
source.versionintegerYes
source.slaPolicyIdstring (uuid) or nullYes
source.firstResponseDueAtstring (date-time) or nullYes
source.nextResponseDueAtstring (date-time) or nullYes
source.resolutionDueAtstring (date-time) or nullYes
source.firstRepliedAtstring (date-time) or nullYes
source.openedAtstring (date-time) or nullYes
source.closedAtstring (date-time) or nullYes
source.mergedIntostring (uuid) or nullYes
source.lastActivityAtstring (date-time)Yes
ticketobjectYes
ticket.idstring (uuid)Yes
ticket.caseNumberintegerYes
ticket.referencestringYes
ticket.subjectstring or nullYes
ticket.statusstringYes
ticket.prioritystringYesone of "urgent", "high", "normal", "low", "lowest"
ticket.caseTypestring or nullYes
ticket.fieldsobjectYesfree-form object
ticket.dispositionstring or nullYes
ticket.tagsarray of stringYes
ticket.assigneeIdstring (uuid) or nullYes
ticket.queueIdstring (uuid) or nullYes
ticket.contactIdstring (uuid)Yes
ticket.versionintegerYes
ticket.slaPolicyIdstring (uuid) or nullYes
ticket.firstResponseDueAtstring (date-time) or nullYes
ticket.nextResponseDueAtstring (date-time) or nullYes
ticket.resolutionDueAtstring (date-time) or nullYes
ticket.firstRepliedAtstring (date-time) or nullYes
ticket.openedAtstring (date-time) or nullYes
ticket.closedAtstring (date-time) or nullYes
ticket.mergedIntostring (uuid) or nullYes
ticket.lastActivityAtstring (date-time)Yes

Errors

400, 401, 403, 404, 409, 422, 429. What each status means

Example request

curl -X POST 'https://api.ringura.com/api/v1/tickets/0192f5a0-7c1e-7d3a-9b2e-3f4a5b6c7d8e/split' \
  -H "Authorization: Bearer $CC_TOKEN" \
  -H 'Idempotency-Key: order-2027-0001' \
  -H 'Content-Type: application/json' \
  -d '{
  "interactionIds": [
    "0192f5a0-7c1e-7d3a-9b2e-3f4a5b6c7d8e"
  ]
}'