Skip to content

API reference

Route reports

Report a problem with a route you bought.

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

List route problem reports you raised or received

GET/api/v1/route-reports

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

Parameters

  • role

    query · string

    One of buyer, seller
  • status

    query · string

Response 200

  • datarequired

    object[]

  • idrequired

    string (uuid) · data[].id

  • routeIdrequired

    string (uuid) · data[].routeId

  • routeNamerequired

    string | null · data[].routeName

  • rolerequired

    string · data[].role

    One of buyer, seller
  • buyerIdrequired

    string (uuid) | null · data[].buyerId

    Null for the seller, who sees only the pseudonym
  • buyerLabelrequired

    string · data[].buyerLabel

  • categoryrequired

    string · data[].category

    One of call_failure, connectivity, quality, other
  • subjectrequired

    string | null · data[].subject

  • statusrequired

    string · data[].status

    One of open, acknowledged, resolved, confirmed, reopened, escalated, closed
  • evidence

    any · data[].evidence

    Call evidence; seller addresses are masked for the buyer
  • verifyResult

    any · data[].verifyResult

  • escalatedrequired

    boolean · data[].escalated

  • unreadrequired

    boolean · data[].unread

  • lastActivityAtrequired

    string (date-time) · data[].lastActivityAt

    ISO-8601 timestamp (UTC)
  • createdAtrequired

    string (date-time) · data[].createdAt

    ISO-8601 timestamp (UTC)
  • resolvedAtrequired

    string (date-time) | null · data[].resolvedAt

    ISO-8601 timestamp (UTC)
  • closedAtrequired

    string (date-time) | null · data[].closedAt

    ISO-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.

Report a problem with a route you bought

POST/api/v1/route-reports

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

Optionally attach a CDR and a fresh SIP trace. The seller sees you under a pseudonym.

Request body (application/json)

  • routeIdrequired

    string (uuid)

  • cdrId

    string (uuid)

  • category

    string

    One of call_failure, connectivity, quality, other
  • subject

    string

    max 200 chars
  • messagerequired

    string

    max 4000 chars
  • attachSipTrace

    boolean

Response 201

  • datarequired

    object

    Same fields as RouteReport, 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.

Count route reports waiting on you

GET/api/v1/route-reports/action-counts

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

Response 200

  • datarequired

    object

  • sellerrequired

    integer · data.seller

  • buyerrequired

    integer · data.buyer

  • totalrequired

    integer · data.total

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.

Get a route report with its thread

GET/api/v1/route-reports/{id}

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

Parameters

  • idrequired

    path · string

Response 200

  • datarequired

    object

  • idrequired

    string (uuid) · data.id

  • routeIdrequired

    string (uuid) · data.routeId

  • routeNamerequired

    string | null · data.routeName

  • rolerequired

    string · data.role

    One of buyer, seller
  • buyerIdrequired

    string (uuid) | null · data.buyerId

    Null for the seller, who sees only the pseudonym
  • buyerLabelrequired

    string · data.buyerLabel

  • categoryrequired

    string · data.category

    One of call_failure, connectivity, quality, other
  • subjectrequired

    string | null · data.subject

  • statusrequired

    string · data.status

    One of open, acknowledged, resolved, confirmed, reopened, escalated, closed
  • evidence

    any · data.evidence

    Call evidence; seller addresses are masked for the buyer
  • verifyResult

    any · data.verifyResult

  • escalatedrequired

    boolean · data.escalated

  • unreadrequired

    boolean · data.unread

  • lastActivityAtrequired

    string (date-time) · data.lastActivityAt

    ISO-8601 timestamp (UTC)
  • createdAtrequired

    string (date-time) · data.createdAt

    ISO-8601 timestamp (UTC)
  • resolvedAtrequired

    string (date-time) | null · data.resolvedAt

    ISO-8601 timestamp (UTC)
  • closedAtrequired

    string (date-time) | null · data.closedAt

    ISO-8601 timestamp (UTC)
  • messagesrequired

    object[] · data.messages

  • idrequired

    string (uuid) · data.messages[].id

  • rolerequired

    string · data.messages[].role

    One of buyer, seller, system, staff
  • kindrequired

    string · data.messages[].kind

    One of message, status_change, verification
  • authorLabelrequired

    string · data.messages[].authorLabel

  • minerequired

    boolean · data.messages[].mine

  • bodyrequired

    string · data.messages[].body

  • meta

    any · data.messages[].meta

  • createdAtrequired

    string (date-time) · data.messages[].createdAt

    ISO-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.
  • 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 on a route report

POST/api/v1/route-reports/{id}/messages

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

Parameters

  • idrequired

    path · string

Request body (application/json)

  • bodyrequired

    string

    max 4000 chars

Response 201

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.

Acknowledge a route report (seller)

POST/api/v1/route-reports/{id}/acknowledge

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

Parameters

  • idrequired

    path · string

Response 200

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.

Mark a route report resolved (seller)

POST/api/v1/route-reports/{id}/resolve

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

Parameters

  • idrequired

    path · string

Request body (application/json)

  • note

    string

    max 4000 chars

Response 200

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.

Confirm a route report is fixed (buyer)

POST/api/v1/route-reports/{id}/confirm

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

Parameters

  • idrequired

    path · string

Response 200

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.

Reopen a resolved route report (buyer)

POST/api/v1/route-reports/{id}/reopen

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

Parameters

  • idrequired

    path · string

Request body (application/json)

  • note

    string

    max 4000 chars

Response 200

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.

Escalate a route report to support

POST/api/v1/route-reports/{id}/escalate

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

Parameters

  • idrequired

    path · string

Request body (application/json)

  • note

    string

    max 4000 chars

Response 200

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.