API reference
Support
Support tickets and the public contact form.
5 operationsBase URL https://packetexchange.io/api/v1Postman collection
BrowseSupport
List your support tickets
GET/
- Access
- API key. Full-access keys only; not reachable by scoped keys.
- Rate limit
- 100 requests per second (the default)
Response 200
| Field | Type | Description |
|---|---|---|
datarequired | object[] | - |
idrequireddata[].id | string (uuid) | - |
userIdrequireddata[].userId | string (uuid) | null | - |
guestEmailrequireddata[].guestEmail | string | null | - |
categoryrequireddata[].category | string | Ticket category, e.g. billing_dispute, technical_support, other |
subjectrequireddata[].subject | string | - |
statusrequireddata[].status | string | -One of open, in_progress, resolved, closed |
relatedRouteIdrequireddata[].relatedRouteId | string (uuid) | null | - |
relatedPurchaseIdrequireddata[].relatedPurchaseId | string (uuid) | null | - |
assignedTorequireddata[].assignedTo | string (uuid) | null | - |
createdAtrequireddata[].createdAt | string (date-time) | ISO-8601 timestamp (UTC) |
resolvedAtrequireddata[].resolvedAt | string (date-time) | null | ISO-8601 timestamp (UTC) |
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support.
Open a support ticket
POST/
- Access
- API key. Full-access keys only; not reachable by scoped keys.
- Rate limit
- 100 requests per second (the default)
The message becomes the first entry in the thread and support is alerted.
Request body (application/json)
| Field | Type | Description |
|---|---|---|
subjectrequired | string | -max 200 chars |
messagerequired | string | -max 5000 chars |
category | string | -max 50 chars |
Response 200
| Field | Type | Description |
|---|---|---|
datarequired | object | Same fields as SupportTicket, shown earlier on this page. |
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 409
CONFLICT(or a code-specific 409): the change clashes with existing state. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support.
Get a support ticket with its messages
GET/
- Access
- API key. Full-access keys only; not reachable by scoped keys.
- Rate limit
- 100 requests per second (the default)
Internal staff notes are never included.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string | - |
Response 200
| Field | Type | Description |
|---|---|---|
datarequired | object | - |
idrequireddata.id | string (uuid) | - |
userIdrequireddata.userId | string (uuid) | null | - |
guestEmailrequireddata.guestEmail | string | null | - |
categoryrequireddata.category | string | Ticket category, e.g. billing_dispute, technical_support, other |
subjectrequireddata.subject | string | - |
statusrequireddata.status | string | -One of open, in_progress, resolved, closed |
relatedRouteIdrequireddata.relatedRouteId | string (uuid) | null | - |
relatedPurchaseIdrequireddata.relatedPurchaseId | string (uuid) | null | - |
assignedTorequireddata.assignedTo | string (uuid) | null | - |
createdAtrequireddata.createdAt | string (date-time) | ISO-8601 timestamp (UTC) |
resolvedAtrequireddata.resolvedAt | string (date-time) | null | ISO-8601 timestamp (UTC) |
messagesrequireddata.messages | object[] | - |
idrequireddata.messages[].id | string (uuid) | - |
authorIdrequireddata.messages[].authorId | string (uuid) | null | - |
messagerequireddata.messages[].message | string | - |
createdAtrequireddata.messages[].createdAt | string (date-time) | ISO-8601 timestamp (UTC) |
authorNamedata.messages[].authorName | string | null | - |
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 404
NOT_FOUND: no such resource on your account. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support.
Reply to a support ticket
POST/
- Access
- API key. Full-access keys only; not reachable by scoped keys.
- Rate limit
- 100 requests per second (the default)
Replying to a resolved ticket reopens it.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string | - |
Request body (application/json)
| Field | Type | Description |
|---|---|---|
messagerequired | string | -max 5000 chars |
Response 200
| Field | Type | Description |
|---|---|---|
datarequired | object | - |
idrequireddata.id | string (uuid) | - |
authorIdrequireddata.authorId | string (uuid) | null | - |
messagerequireddata.message | string | - |
createdAtrequireddata.createdAt | string (date-time) | ISO-8601 timestamp (UTC) |
ticketIdrequireddata.ticketId | string (uuid) | - |
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 404
NOT_FOUND: no such resource on your account. - 409
CONFLICT(or a code-specific 409): the change clashes with existing state. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support.
Contact support without an account
POST/
- Access
- Key optional. A key or token personalises the answer.
- Rate limit
- 5 requests per hour
The public contact form. When a valid credential is sent the ticket is filed on that account instead of as a guest ticket; an invalid credential is ignored, never refused.
Request body (application/json)
| Field | Type | Description |
|---|---|---|
subjectrequired | string | -max 200 chars |
messagerequired | string | -max 5000 chars |
emailrequired | string (email) | -max 254 chars |
Response 200
| Field | Type | Description |
|---|---|---|
datarequired | object | - |
idrequireddata.id | string (uuid) | - |
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 409
CONFLICT(or a code-specific 409): the change clashes with existing state. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support.