Connections

Get a connection

Reads a connection by id.

GET
/v1/connections/{id}

Returns a connection of your account by its id. No Seller-Id needed: the id already identifies the connection.

Use it to check the status after a connection.updated or connection.revoked event. A connection from another account returns 404, the same as one that does not exist.

Authorization

api_key
headerAuthorizationBearer <token>

API key (mk_...)

Path Parameters

id*string

Identifier of the resource, as returned by the API.

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

Response Body

The requested connection.

application/json
  1. response

A marketplace account connected to a seller.

id*string

Opaque unique identifier of the connection, generated by the API. Use it in the /v1/connections/{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*string

The seller that owns this connection.

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

The marketplace of the connected account.

Value in"mock""mercadolivre""magalu""amazon""tiktok""shopee"
app*string

Which app the seller authorized. platform: ours. own: the one you registered in the dashboard. It never changes on its own: only a reconnection moves the connection to the app in use at that moment.

Value in"platform""own"
externalAccountId*string

The seller's account id at the marketplace (on Mercado Livre, the user_id).

externalShopId*|

The shop inside that account, on marketplaces that split an account into shops (TikTok Shop, Shopee). null on the others.

displayName*string

Name of the account at the marketplace, to show your users (on Mercado Livre, the nickname).

status*string

State of the connection. active: it works. revoked: it was disconnected (see revokedReason), and the seller must connect again. error: it stopped working for good for a reason that is not the end of the access — renewing it failed in an unexpected way (later also a sync failure that does not go away) — and the seller must connect again.

Value in"active""revoked""error"
scopes*array<string>

Permissions the seller granted at the marketplace.

tokenExpiresAt*|

When the current access token expires, in ISO-8601 (UTC). We renew it before that on our own. null when the marketplace gives no expiry.

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

When the authorization itself ends and the seller must connect again, in ISO-8601 (UTC). null when it does not end.

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

When the connection was revoked, in ISO-8601 (UTC). null while it is not revoked.

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

Who revoked it: client (you, with DELETE /v1/connections/{id} or by removing your own app's credential in the dashboard (BYOK)) or marketplace (the access ended at the marketplace: the seller removed it, or the marketplace refused to renew it). null while it is not revoked.

Value in"client""marketplace"null
createdAt*string

When the connection 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 connection 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 GET "https://example.com/v1/connections/3d1c8a52-7f0e-4b0a-8a65-9c1b2f6d7e01"
{  "id": "9a1b2c3d-4e5f-4a6b-8c7d-0e1f2a3b4c5d",  "sellerId": "3d1c8a52-7f0e-4b0a-8a65-9c1b2f6d7e01",  "marketplace": "mercadolivre",  "app": "platform",  "externalAccountId": "123456789",  "externalShopId": null,  "displayName": "ACME_STORE",  "status": "active",  "scopes": [    "offline_access",    "read",    "write"  ],  "tokenExpiresAt": "2026-10-06T20:32:00.000Z",  "authorizationExpiresAt": null,  "revokedAt": null,  "revokedReason": null,  "createdAt": "2026-10-06T14:32:00.000Z",  "updatedAt": "2026-10-06T14:32:00.000Z"}