Inventory

Republish inventory

Queues current quantity publication without a movement.

POST
/v1/sellers/{sellerId}/inventory-publications

Publish inventory

  • MockDevelopment only
  • Mercado LivreNot supported
  • MagaluPlanned
  • AmazonPlanned
  • TikTok ShopPlanned
  • ShopeePlanned

Use it to resend an already confirmed balance to specific targets. The response is a Job; it changes neither the ledger nor content, price, or media.

Authorization

api_key
headerAuthorizationBearer <token>

API key (mk_...)

Path Parameters

sellerId*string

Seller the new resource belongs to.

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

Header Parameters

Idempotency-Key?string

Optional. A unique value (for example a UUID), 1 to 255 characters, that makes the request safe to retry: repeating it with the same body within 24h returns the original response with Idempotency-Replayed: true instead of running the operation again. Scoped to your account. Reusing it with a different body returns 409.

Length1 <= length <= 255

Request Body

application/json
  1. body

Resend current inventory without creating a new ledger movement. Only bindings of variants whose inventoryAuthority is marketapi or derived are published.

variantIds?array<>

Publish the eligible bindings of these local variants. Alone, it selects every one of them; with listingIds, bindingIds or connectionIds, it narrows those targets to these variants.

Items1 <= items <= 100
listingIds?array<>

Publish eligible bindings of these listings.

Items1 <= items <= 100
bindingIds?array<>

Publish these exact variant bindings.

Items1 <= items <= 100
connectionIds?array<>

Publish eligible bindings of listings in these connections.

Items1 <= items <= 100

Response Body

The queued quantity-only publication job.

application/json
  1. response

A job: an operation that runs in the background, tracked by id.

id*string

Opaque unique identifier of the job, generated by the API. Use it in the /v1/jobs/{id} routes.

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
sellerId*|

The seller the job works for. null for a job of the whole account.

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
type*string

What the job does. connection.sync: first sync of a new connection. listing.publish and listing.remove: publish a listing to the marketplace or remove it there. listing.import and listing.reconcile: read the listings of a connection from the marketplace into their observed state. inventory.publish: send stock quantities to the marketplace. marketplace_product.publish: publish the content of a marketplace product alone, without any offer field. order.import and order.reconcile: read the orders of a connection from the marketplace into marketapi.

Value in"connection.sync""listing.publish""listing.remove""listing.import""listing.reconcile""inventory.publish""marketplace_product.publish""order.import""order.reconcile"
status*string

State of the job. queued: waiting. running: in progress. completed: every item succeeded. partial: some items failed. failed: no item succeeded.

Value in"queued""running""completed""partial""failed"
total*integer

Items in the job.

Range0 <= value <= 9007199254740991
processed*integer

Items already processed, succeeded or failed.

Range0 <= value <= 9007199254740991
succeeded*integer

Items that succeeded.

Range0 <= value <= 9007199254740991
failed*integer

Items that failed.

Range0 <= value <= 9007199254740991
input*

What the job was asked to do, by type. connection.sync, listing.import and listing.reconcile: { connectionId }. listing.publish: { listingId, mode }. listing.remove: { listingId, publication }. inventory.publish: { source }. marketplace_product.publish: { marketplaceProductId, mode }. order.import: { connectionId, placedFrom, placedTo }, with the period resolved to instants even when the request gave none. order.reconcile: { connectionId }.

result*|

Summary of the outcome, when the type has one. null otherwise.

error*|

Why the job failed, when it failed as a whole. null otherwise; the error of each item is in its items.

startedAt*|

When it started running, in ISO-8601 (UTC). null while queued.

Match^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
Formatdate-time
finishedAt*|

When it finished, in ISO-8601 (UTC). null while queued or running.

Match^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
Formatdate-time
createdAt*string

When the job was created, in ISO-8601 (UTC).

Match^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
Formatdate-time
updatedAt*string

When the job last changed, in ISO-8601 (UTC).

Match^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
Formatdate-time
curl -X POST "https://example.com/v1/sellers/b6a1c0de-3f0c-4f53-9c6e-2a1d7d3b9e10/inventory-publications" \  -H "Content-Type: application/json" \  -d '{    "variantIds": [      "47c9f819-fcf6-4478-b21a-678ecc594a11"    ],    "listingIds": [      "0e2ce906-a6ab-4101-9461-4168c8b6b902"    ]  }'
{  "id": "7c6b5a49-3827-4615-a0b9-c8d7e6f5a4b3",  "sellerId": "3d1c8a52-7f0e-4b0a-8a65-9c1b2f6d7e01",  "type": "connection.sync",  "status": "completed",  "total": 1,  "processed": 1,  "succeeded": 1,  "failed": 0,  "input": {    "connectionId": "9a1b2c3d-4e5f-4a6b-8c7d-0e1f2a3b4c5d"  },  "result": null,  "error": null,  "startedAt": "2026-10-06T14:32:01.000Z",  "finishedAt": "2026-10-06T14:32:01.500Z",  "createdAt": "2026-10-06T14:32:00.000Z",  "updatedAt": "2026-10-06T14:32:01.500Z"}