Skip to content
Markets open

API reference

Support

Support tickets and the public contact form.

5 operationsBase URL https://packetexchange.io/api/v1Postman collection

List your support tickets

GET/api/v1/tickets

Access
API key. Full-access keys only; not reachable by scoped keys.
Rate limit
100 requests per second (the default)

Response 200

FieldTypeDescription
datarequiredobject[]-
idrequireddata[].idstring (uuid)-
userIdrequireddata[].userIdstring (uuid) | null-
guestEmailrequireddata[].guestEmailstring | null-
categoryrequireddata[].categorystringTicket category, e.g. billing_dispute, technical_support, other
subjectrequireddata[].subjectstring-
statusrequireddata[].statusstring-One of open, in_progress, resolved, closed
relatedRouteIdrequireddata[].relatedRouteIdstring (uuid) | null-
relatedPurchaseIdrequireddata[].relatedPurchaseIdstring (uuid) | null-
assignedTorequireddata[].assignedTostring (uuid) | null-
createdAtrequireddata[].createdAtstring (date-time)ISO-8601 timestamp (UTC)
resolvedAtrequireddata[].resolvedAtstring (date-time) | nullISO-8601 timestamp (UTC)

Errors

  • 400VALIDATION_ERROR, INVALID_INPUT or BAD_REQUEST. For VALIDATION_ERROR, error.details is an array of { path, message }.
  • 401UNAUTHORIZED: missing, invalid, expired or revoked credential.
  • 403FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only.
  • 429RATE_LIMITED: slow down and retry after the Retry-After seconds.
  • 500INTERNAL_ERROR: unexpected failure. Quote X-Request-Id to support.

Open a support ticket

POST/api/v1/tickets

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)

FieldTypeDescription
subjectrequiredstring-max 200 chars
messagerequiredstring-max 5000 chars
categorystring-max 50 chars

Response 200

FieldTypeDescription
datarequiredobjectSame fields as SupportTicket, shown earlier on this page.

Errors

  • 400VALIDATION_ERROR, INVALID_INPUT or BAD_REQUEST. For VALIDATION_ERROR, error.details is an array of { path, message }.
  • 401UNAUTHORIZED: missing, invalid, expired or revoked credential.
  • 403FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only.
  • 409CONFLICT (or a code-specific 409): the change clashes with existing state.
  • 429RATE_LIMITED: slow down and retry after the Retry-After seconds.
  • 500INTERNAL_ERROR: unexpected failure. Quote X-Request-Id to support.

Get a support ticket with its messages

GET/api/v1/tickets/{id}

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

NameInTypeDescription
idrequiredpathstring-

Response 200

FieldTypeDescription
datarequiredobject-
idrequireddata.idstring (uuid)-
userIdrequireddata.userIdstring (uuid) | null-
guestEmailrequireddata.guestEmailstring | null-
categoryrequireddata.categorystringTicket category, e.g. billing_dispute, technical_support, other
subjectrequireddata.subjectstring-
statusrequireddata.statusstring-One of open, in_progress, resolved, closed
relatedRouteIdrequireddata.relatedRouteIdstring (uuid) | null-
relatedPurchaseIdrequireddata.relatedPurchaseIdstring (uuid) | null-
assignedTorequireddata.assignedTostring (uuid) | null-
createdAtrequireddata.createdAtstring (date-time)ISO-8601 timestamp (UTC)
resolvedAtrequireddata.resolvedAtstring (date-time) | nullISO-8601 timestamp (UTC)
messagesrequireddata.messagesobject[]-
idrequireddata.messages[].idstring (uuid)-
authorIdrequireddata.messages[].authorIdstring (uuid) | null-
messagerequireddata.messages[].messagestring-
createdAtrequireddata.messages[].createdAtstring (date-time)ISO-8601 timestamp (UTC)
authorNamedata.messages[].authorNamestring | null-

Errors

  • 400VALIDATION_ERROR, INVALID_INPUT or BAD_REQUEST. For VALIDATION_ERROR, error.details is an array of { path, message }.
  • 401UNAUTHORIZED: missing, invalid, expired or revoked credential.
  • 403FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only.
  • 404NOT_FOUND: no such resource on your account.
  • 429RATE_LIMITED: slow down and retry after the Retry-After seconds.
  • 500INTERNAL_ERROR: unexpected failure. Quote X-Request-Id to support.

Reply to a support ticket

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

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

NameInTypeDescription
idrequiredpathstring-

Request body (application/json)

FieldTypeDescription
messagerequiredstring-max 5000 chars

Response 200

FieldTypeDescription
datarequiredobject-
idrequireddata.idstring (uuid)-
authorIdrequireddata.authorIdstring (uuid) | null-
messagerequireddata.messagestring-
createdAtrequireddata.createdAtstring (date-time)ISO-8601 timestamp (UTC)
ticketIdrequireddata.ticketIdstring (uuid)-

Errors

  • 400VALIDATION_ERROR, INVALID_INPUT or BAD_REQUEST. For VALIDATION_ERROR, error.details is an array of { path, message }.
  • 401UNAUTHORIZED: missing, invalid, expired or revoked credential.
  • 403FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only.
  • 404NOT_FOUND: no such resource on your account.
  • 409CONFLICT (or a code-specific 409): the change clashes with existing state.
  • 429RATE_LIMITED: slow down and retry after the Retry-After seconds.
  • 500INTERNAL_ERROR: unexpected failure. Quote X-Request-Id to support.

Contact support without an account

POST/api/v1/support/tickets

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)

FieldTypeDescription
subjectrequiredstring-max 200 chars
messagerequiredstring-max 5000 chars
emailrequiredstring (email)-max 254 chars

Response 200

FieldTypeDescription
datarequiredobject-
idrequireddata.idstring (uuid)-

Errors

  • 400VALIDATION_ERROR, INVALID_INPUT or BAD_REQUEST. For VALIDATION_ERROR, error.details is an array of { path, message }.
  • 401UNAUTHORIZED: missing, invalid, expired or revoked credential.
  • 403FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only.
  • 409CONFLICT (or a code-specific 409): the change clashes with existing state.
  • 429RATE_LIMITED: slow down and retry after the Retry-After seconds.
  • 500INTERNAL_ERROR: unexpected failure. Quote X-Request-Id to support.