Listings

List publish attempts

Every attempt to publish or remove the offer.

GET
/v1/listings/{listingId}/publish-attempts

Lists the attempts to publish or remove the offer, newest first. Each entry is a Job item that touched the offer (listing.publish or listing.remove). Use it when the offer is failed or stuck: the error of the failed item says why.

curl "$BACKEND_URL/v1/listings/<listingId>/publish-attempts" \
  -H "Authorization: Bearer mk_your_api_key"

One attempt that failed, shortened:

{
  "jobId": "7c6b5a49-3827-4615-a0b9-c8d7e6f5a4b3",
  "jobItemId": "b4a39281-7065-4f43-9e21-0d1c2b3a4f5e",
  "type": "listing.publish",
  "status": "failed",
  "mode": "auto",
  "error": "The marketplace refused the price.",
  "result": null
}
  • status is pending, succeeded or failed. finishedAt is null while pending.
  • mode is the mode that was asked for (auto, create, update or recreate). On a removal it is null.
  • result is the item's summary. It is null while pending and after a failure.
  • jobId leads to the Job, and jobItemId to the item.

Fix what the error points at and publish again. Full flow: Publish listings.

Authorization

api_key
headerAuthorizationBearer <token>

API key (mk_...)

Path Parameters

listingId*string
Match^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
Formatuuid

Query Parameters

page?integer

Page number, starting at 1. Defaults to 1. A page beyond pagination.totalPages is not an error: it returns empty data.

Range1 <= value <= 9007199254740991
Default1
pageSize?integer

Items per page, from 1 to 100. Defaults to 20.

Range1 <= value <= 100
Default20

Response Body

One page of attempts, newest first. A page beyond pagination.totalPages returns empty data, not 404.

application/json
  1. response

One page of the publication attempts of an offer.

data*array<>

The attempts of this page, newest first.

pagination*

Where this page sits in the whole listing: the totals and whether there are pages before and after it.

curl -X GET "https://example.com/v1/listings/497f6eca-6276-4993-bfeb-53cbbbba6f08/publish-attempts"
{  "data": [    {      "jobId": "7c6b5a49-3827-4615-a0b9-c8d7e6f5a4b3",      "jobItemId": "b4a39281-7065-4f43-9e21-0d1c2b3a4f5e",      "type": "listing.publish",      "status": "failed",      "mode": "auto",      "requestedAt": "2026-10-19T12:00:00.000Z",      "finishedAt": "2026-10-19T12:00:03.000Z",      "error": "The marketplace refused the price.",      "result": null    }  ],  "pagination": {    "page": 1,    "pageSize": 20,    "totalItems": 1,    "totalPages": 1,    "hasNext": false,    "hasPrev": false  }}