Skip to content
msMarketSDK

all endpoints

// api reference

Sellers

GET /v1/sellers

List sellers, newest first

secret key only

GET /v1/sellersrequest
curl https://api.marketsdk.com/v1/sellers \
  -H "Authorization: Bearer $MARKETSDK_KEY"
200 example response, seller list
{
  "object": "list",
  "data": [
    {
      "object": "seller",
      "id": "sel_034XtPDs7UJ0TXzTsdaHZa",
      "external_id": "string",
      "display_name": null,
      "status": "active",
      "suspended_reason": null,
      "verification": {
        "status": "unverified",
        "verified_at": null
      },
      "payouts": {
        "status": "not_started",
        "requirements_due": [
          null
        ],
        "stripe_account": null
      },
      "storefront": {
        "object": "storefront",
        "name": "string",
        "slug": "string",
        "description": null,
        "metadata": {},
        "updated_at": "2026-10-01T12:00:00.000Z"
      },
      "reputation": {
        "completed_orders": 0,
        "backed_out": 0,
        "disputes_lost": 0,
        "review_count": 0,
        "average_rating": null,
        "score": null,
        "level": "new"
      },
      "metadata": {},
      "erased": false,
      "created_at": "2026-10-01T12:00:00.000Z",
      "updated_at": "2026-10-01T12:00:00.000Z"
    }
  ],
  "has_more": false,
  "next_cursor": null
}

parameters

Parameters
fieldtypeabout
limitinteger, in querymin 1, max 100, default 20
starting_afterstring, in queryThe next_cursor of the previous page.
external_idstring, in queryFind the seller with this external id.
statusone of: active, suspended, in query

returns 200, seller list

fields
Response fields
fieldtypeabout
objectrequiredone of: list
datarequiredarray of seller
data[].objectrequiredone of: seller
data[].idrequiredstring
data[].external_idrequiredstring
data[].display_namerequiredstring or null
data[].statusrequiredone of: active, suspended
data[].suspended_reasonrequiredstring or null
data[].verificationrequiredseller verification summary
data[].verification.statusrequiredone of: unverified, pending, verified, requires_input, canceledFrom the latest identity verification. Once verified, a seller stays verified.
data[].verification.verified_atrequiredtimestamp or null
data[].payoutsrequiredseller payouts
data[].payouts.statusrequiredone of: not_started, pending, enabled, restrictednot_started before the first onboarding link; pending while Stripe onboarding is unfinished or under review; enabled when the seller can receive transfers; restricted when Stripe needs more from the seller.
data[].payouts.requirements_duerequiredarray of stringWhat Stripe still needs from the seller, by Stripe's field names. Send a new onboarding link to collect it.
data[].payouts.stripe_accountrequiredstring or nullThe seller's connected account on your Stripe account.
data[].storefrontrequiredstorefront or null
data[].storefront.objectrequiredone of: storefront
data[].storefront.namerequiredstring
data[].storefront.slugrequiredstring
data[].storefront.descriptionrequiredstring or null
data[].storefront.metadatarequiredobject of strings
data[].storefront.updated_atrequiredtimestamp
data[].reputationrequiredreputation
data[].reputation.completed_ordersrequiredintegerorder_completed events in the rolling window.
data[].reputation.backed_outrequiredintegerbacked_out events in the rolling window.
data[].reputation.disputes_lostrequiredintegerdispute_lost events in the rolling window.
data[].reputation.review_countrequiredintegerVisible reviews in the rolling window.
data[].reputation.average_ratingrequiredinteger or nullPlain mean of those ratings, or null.
data[].reputation.scorerequiredinteger or nullNull until the minimum number of events.min 0, max 100
data[].reputation.levelrequiredone of: new, low, fair, good, excellent
data[].metadatarequiredobject of strings
data[].erasedrequiredbooleanTrue once the seller's personal data has been erased at your request.
data[].created_atrequiredtimestamp
data[].updated_atrequiredtimestamp
has_morerequiredbooleanWhether another page follows.
next_cursorrequiredstring or nullPass as starting_after (or cursor for search) to get the next page.

errors

  • 400The request is not valid.
  • 401No API key, or not a valid one.
  • 429Rate limited. See Retry-After.

POST /v1/sellers

Create a seller

secret key only

POST /v1/sellersrequest
curl -X POST https://api.marketsdk.com/v1/sellers \
  -H "Authorization: Bearer $MARKETSDK_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"external_id":"string"}'
201 example response, seller
{
  "object": "seller",
  "id": "sel_034XtPDs7UJ0TXzTsdaHZa",
  "external_id": "string",
  "display_name": null,
  "status": "active",
  "suspended_reason": null,
  "verification": {
    "status": "unverified",
    "verified_at": null
  },
  "payouts": {
    "status": "not_started",
    "requirements_due": [
      "string"
    ],
    "stripe_account": null
  },
  "storefront": {
    "object": "storefront",
    "name": "string",
    "slug": "string",
    "description": null,
    "metadata": {},
    "updated_at": "2026-10-01T12:00:00.000Z"
  },
  "reputation": {
    "completed_orders": 0,
    "backed_out": 0,
    "disputes_lost": 0,
    "review_count": 0,
    "average_rating": null,
    "score": null,
    "level": "new"
  },
  "metadata": {},
  "erased": false,
  "created_at": "2026-10-01T12:00:00.000Z",
  "updated_at": "2026-10-01T12:00:00.000Z"
}

body, create party

Request body
fieldtypeabout
external_idrequiredstringYour own id for this person. Unique per marketplace.up to 200 characters
display_namestringup to 200 characters
metadataobject of strings

returns 201, seller

fields
Response fields
fieldtypeabout
objectrequiredone of: seller
idrequiredstring
external_idrequiredstring
display_namerequiredstring or null
statusrequiredone of: active, suspended
suspended_reasonrequiredstring or null
verificationrequiredseller verification summary
verification.statusrequiredone of: unverified, pending, verified, requires_input, canceledFrom the latest identity verification. Once verified, a seller stays verified.
verification.verified_atrequiredtimestamp or null
payoutsrequiredseller payouts
payouts.statusrequiredone of: not_started, pending, enabled, restrictednot_started before the first onboarding link; pending while Stripe onboarding is unfinished or under review; enabled when the seller can receive transfers; restricted when Stripe needs more from the seller.
payouts.requirements_duerequiredarray of stringWhat Stripe still needs from the seller, by Stripe's field names. Send a new onboarding link to collect it.
payouts.stripe_accountrequiredstring or nullThe seller's connected account on your Stripe account.
storefrontrequiredstorefront or null
storefront.objectrequiredone of: storefront
storefront.namerequiredstring
storefront.slugrequiredstring
storefront.descriptionrequiredstring or null
storefront.metadatarequiredobject of strings
storefront.updated_atrequiredtimestamp
reputationrequiredreputation
reputation.completed_ordersrequiredintegerorder_completed events in the rolling window.
reputation.backed_outrequiredintegerbacked_out events in the rolling window.
reputation.disputes_lostrequiredintegerdispute_lost events in the rolling window.
reputation.review_countrequiredintegerVisible reviews in the rolling window.
reputation.average_ratingrequiredinteger or nullPlain mean of those ratings, or null.
reputation.scorerequiredinteger or nullNull until the minimum number of events.min 0, max 100
reputation.levelrequiredone of: new, low, fair, good, excellent
metadatarequiredobject of strings
erasedrequiredbooleanTrue once the seller's personal data has been erased at your request.
created_atrequiredtimestamp
updated_atrequiredtimestamp

errors

  • 400The request is not valid.
  • 401No API key, or not a valid one.
  • 409The object is not in a state that allows this.
  • 429Rate limited. See Retry-After.

GET /v1/sellers/{id}

Retrieve a seller

secret key only

GET /v1/sellers/{id}request
curl https://api.marketsdk.com/v1/sellers/{id} \
  -H "Authorization: Bearer $MARKETSDK_KEY"
200 example response, seller
{
  "object": "seller",
  "id": "sel_034XtPDs7UJ0TXzTsdaHZa",
  "external_id": "string",
  "display_name": null,
  "status": "active",
  "suspended_reason": null,
  "verification": {
    "status": "unverified",
    "verified_at": null
  },
  "payouts": {
    "status": "not_started",
    "requirements_due": [
      "string"
    ],
    "stripe_account": null
  },
  "storefront": {
    "object": "storefront",
    "name": "string",
    "slug": "string",
    "description": null,
    "metadata": {},
    "updated_at": "2026-10-01T12:00:00.000Z"
  },
  "reputation": {
    "completed_orders": 0,
    "backed_out": 0,
    "disputes_lost": 0,
    "review_count": 0,
    "average_rating": null,
    "score": null,
    "level": "new"
  },
  "metadata": {},
  "erased": false,
  "created_at": "2026-10-01T12:00:00.000Z",
  "updated_at": "2026-10-01T12:00:00.000Z"
}

parameters

Parameters
fieldtypeabout
idrequiredstring, in path

returns 200, seller

fields
Response fields
fieldtypeabout
objectrequiredone of: seller
idrequiredstring
external_idrequiredstring
display_namerequiredstring or null
statusrequiredone of: active, suspended
suspended_reasonrequiredstring or null
verificationrequiredseller verification summary
verification.statusrequiredone of: unverified, pending, verified, requires_input, canceledFrom the latest identity verification. Once verified, a seller stays verified.
verification.verified_atrequiredtimestamp or null
payoutsrequiredseller payouts
payouts.statusrequiredone of: not_started, pending, enabled, restrictednot_started before the first onboarding link; pending while Stripe onboarding is unfinished or under review; enabled when the seller can receive transfers; restricted when Stripe needs more from the seller.
payouts.requirements_duerequiredarray of stringWhat Stripe still needs from the seller, by Stripe's field names. Send a new onboarding link to collect it.
payouts.stripe_accountrequiredstring or nullThe seller's connected account on your Stripe account.
storefrontrequiredstorefront or null
storefront.objectrequiredone of: storefront
storefront.namerequiredstring
storefront.slugrequiredstring
storefront.descriptionrequiredstring or null
storefront.metadatarequiredobject of strings
storefront.updated_atrequiredtimestamp
reputationrequiredreputation
reputation.completed_ordersrequiredintegerorder_completed events in the rolling window.
reputation.backed_outrequiredintegerbacked_out events in the rolling window.
reputation.disputes_lostrequiredintegerdispute_lost events in the rolling window.
reputation.review_countrequiredintegerVisible reviews in the rolling window.
reputation.average_ratingrequiredinteger or nullPlain mean of those ratings, or null.
reputation.scorerequiredinteger or nullNull until the minimum number of events.min 0, max 100
reputation.levelrequiredone of: new, low, fair, good, excellent
metadatarequiredobject of strings
erasedrequiredbooleanTrue once the seller's personal data has been erased at your request.
created_atrequiredtimestamp
updated_atrequiredtimestamp

errors

  • 400The request is not valid.
  • 401No API key, or not a valid one.
  • 404No object with that id in this marketplace.
  • 429Rate limited. See Retry-After.

PATCH /v1/sellers/{id}

Update a seller

secret key only

PATCH /v1/sellers/{id}request
curl -X PATCH https://api.marketsdk.com/v1/sellers/{id} \
  -H "Authorization: Bearer $MARKETSDK_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
200 example response, seller
{
  "object": "seller",
  "id": "sel_034XtPDs7UJ0TXzTsdaHZa",
  "external_id": "string",
  "display_name": null,
  "status": "active",
  "suspended_reason": null,
  "verification": {
    "status": "unverified",
    "verified_at": null
  },
  "payouts": {
    "status": "not_started",
    "requirements_due": [
      "string"
    ],
    "stripe_account": null
  },
  "storefront": {
    "object": "storefront",
    "name": "string",
    "slug": "string",
    "description": null,
    "metadata": {},
    "updated_at": "2026-10-01T12:00:00.000Z"
  },
  "reputation": {
    "completed_orders": 0,
    "backed_out": 0,
    "disputes_lost": 0,
    "review_count": 0,
    "average_rating": null,
    "score": null,
    "level": "new"
  },
  "metadata": {},
  "erased": false,
  "created_at": "2026-10-01T12:00:00.000Z",
  "updated_at": "2026-10-01T12:00:00.000Z"
}

parameters

Parameters
fieldtypeabout
idrequiredstring, in path

body, update party

Request body
fieldtypeabout
display_namestring or nullup to 200 characters
metadataobject of strings

returns 200, seller

fields
Response fields
fieldtypeabout
objectrequiredone of: seller
idrequiredstring
external_idrequiredstring
display_namerequiredstring or null
statusrequiredone of: active, suspended
suspended_reasonrequiredstring or null
verificationrequiredseller verification summary
verification.statusrequiredone of: unverified, pending, verified, requires_input, canceledFrom the latest identity verification. Once verified, a seller stays verified.
verification.verified_atrequiredtimestamp or null
payoutsrequiredseller payouts
payouts.statusrequiredone of: not_started, pending, enabled, restrictednot_started before the first onboarding link; pending while Stripe onboarding is unfinished or under review; enabled when the seller can receive transfers; restricted when Stripe needs more from the seller.
payouts.requirements_duerequiredarray of stringWhat Stripe still needs from the seller, by Stripe's field names. Send a new onboarding link to collect it.
payouts.stripe_accountrequiredstring or nullThe seller's connected account on your Stripe account.
storefrontrequiredstorefront or null
storefront.objectrequiredone of: storefront
storefront.namerequiredstring
storefront.slugrequiredstring
storefront.descriptionrequiredstring or null
storefront.metadatarequiredobject of strings
storefront.updated_atrequiredtimestamp
reputationrequiredreputation
reputation.completed_ordersrequiredintegerorder_completed events in the rolling window.
reputation.backed_outrequiredintegerbacked_out events in the rolling window.
reputation.disputes_lostrequiredintegerdispute_lost events in the rolling window.
reputation.review_countrequiredintegerVisible reviews in the rolling window.
reputation.average_ratingrequiredinteger or nullPlain mean of those ratings, or null.
reputation.scorerequiredinteger or nullNull until the minimum number of events.min 0, max 100
reputation.levelrequiredone of: new, low, fair, good, excellent
metadatarequiredobject of strings
erasedrequiredbooleanTrue once the seller's personal data has been erased at your request.
created_atrequiredtimestamp
updated_atrequiredtimestamp

errors

  • 400The request is not valid.
  • 401No API key, or not a valid one.
  • 404No object with that id in this marketplace.
  • 409The object is not in a state that allows this.
  • 429Rate limited. See Retry-After.

DELETE /v1/sellers/{id}

Erase a seller's personal data

Removes the name, external id, metadata, storefront, and review text, and takes the listings down. Orders and reputation stay, without personal data.

secret key only

DELETE /v1/sellers/{id}request
curl -X DELETE https://api.marketsdk.com/v1/sellers/{id} \
  -H "Authorization: Bearer $MARKETSDK_KEY"
200 example response, seller
{
  "object": "seller",
  "id": "sel_034XtPDs7UJ0TXzTsdaHZa",
  "external_id": "string",
  "display_name": null,
  "status": "active",
  "suspended_reason": null,
  "verification": {
    "status": "unverified",
    "verified_at": null
  },
  "payouts": {
    "status": "not_started",
    "requirements_due": [
      "string"
    ],
    "stripe_account": null
  },
  "storefront": {
    "object": "storefront",
    "name": "string",
    "slug": "string",
    "description": null,
    "metadata": {},
    "updated_at": "2026-10-01T12:00:00.000Z"
  },
  "reputation": {
    "completed_orders": 0,
    "backed_out": 0,
    "disputes_lost": 0,
    "review_count": 0,
    "average_rating": null,
    "score": null,
    "level": "new"
  },
  "metadata": {},
  "erased": false,
  "created_at": "2026-10-01T12:00:00.000Z",
  "updated_at": "2026-10-01T12:00:00.000Z"
}

parameters

Parameters
fieldtypeabout
idrequiredstring, in path

returns 200, seller

fields
Response fields
fieldtypeabout
objectrequiredone of: seller
idrequiredstring
external_idrequiredstring
display_namerequiredstring or null
statusrequiredone of: active, suspended
suspended_reasonrequiredstring or null
verificationrequiredseller verification summary
verification.statusrequiredone of: unverified, pending, verified, requires_input, canceledFrom the latest identity verification. Once verified, a seller stays verified.
verification.verified_atrequiredtimestamp or null
payoutsrequiredseller payouts
payouts.statusrequiredone of: not_started, pending, enabled, restrictednot_started before the first onboarding link; pending while Stripe onboarding is unfinished or under review; enabled when the seller can receive transfers; restricted when Stripe needs more from the seller.
payouts.requirements_duerequiredarray of stringWhat Stripe still needs from the seller, by Stripe's field names. Send a new onboarding link to collect it.
payouts.stripe_accountrequiredstring or nullThe seller's connected account on your Stripe account.
storefrontrequiredstorefront or null
storefront.objectrequiredone of: storefront
storefront.namerequiredstring
storefront.slugrequiredstring
storefront.descriptionrequiredstring or null
storefront.metadatarequiredobject of strings
storefront.updated_atrequiredtimestamp
reputationrequiredreputation
reputation.completed_ordersrequiredintegerorder_completed events in the rolling window.
reputation.backed_outrequiredintegerbacked_out events in the rolling window.
reputation.disputes_lostrequiredintegerdispute_lost events in the rolling window.
reputation.review_countrequiredintegerVisible reviews in the rolling window.
reputation.average_ratingrequiredinteger or nullPlain mean of those ratings, or null.
reputation.scorerequiredinteger or nullNull until the minimum number of events.min 0, max 100
reputation.levelrequiredone of: new, low, fair, good, excellent
metadatarequiredobject of strings
erasedrequiredbooleanTrue once the seller's personal data has been erased at your request.
created_atrequiredtimestamp
updated_atrequiredtimestamp

errors

  • 400The request is not valid.
  • 401No API key, or not a valid one.
  • 404No object with that id in this marketplace.
  • 429Rate limited. See Retry-After.

PUT /v1/sellers/{id}/storefront

Create or replace a seller's storefront

secret key only

PUT /v1/sellers/{id}/storefrontrequest
curl -X PUT https://api.marketsdk.com/v1/sellers/{id}/storefront \
  -H "Authorization: Bearer $MARKETSDK_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"string","slug":"jane-templates"}'
200 example response, storefront
{
  "object": "storefront",
  "name": "string",
  "slug": "string",
  "description": null,
  "metadata": {},
  "updated_at": "2026-10-01T12:00:00.000Z"
}

parameters

Parameters
fieldtypeabout
idrequiredstring, in path

body, storefront

Request body
fieldtypeabout
namerequiredstringup to 120 characters
slugrequiredstringLowercase letters, digits, and hyphens. Unique per marketplace.
descriptionstring or nullup to 5000 characters
metadataobject of strings

returns 200, storefront

fields
Response fields
fieldtypeabout
objectrequiredone of: storefront
namerequiredstring
slugrequiredstring
descriptionrequiredstring or null
metadatarequiredobject of strings
updated_atrequiredtimestamp

errors

  • 400The request is not valid.
  • 401No API key, or not a valid one.
  • 404No object with that id in this marketplace.
  • 409The object is not in a state that allows this.
  • 429Rate limited. See Retry-After.

GET /v1/sellers/{id}/profile

A seller's public profile

Callable with a publishable key. Shows only what a buyer may see.

secret key, or a publishable key from a browser

GET /v1/sellers/{id}/profilerequest
curl https://api.marketsdk.com/v1/sellers/{id}/profile \
  -H "Authorization: Bearer $MARKETSDK_KEY"
200 example response, seller profile
{
  "object": "seller_profile",
  "id": "string",
  "display_name": null,
  "verification_status": "unverified",
  "storefront": {
    "object": "storefront",
    "name": "string",
    "slug": "string",
    "description": null,
    "metadata": {},
    "updated_at": "2026-10-01T12:00:00.000Z"
  },
  "reputation": {
    "completed_orders": 0,
    "backed_out": 0,
    "disputes_lost": 0,
    "review_count": 0,
    "average_rating": null,
    "score": null,
    "level": "new"
  }
}

parameters

Parameters
fieldtypeabout
idrequiredstring, in path

returns 200, seller profile

fields
Response fields
fieldtypeabout
objectrequiredone of: seller_profile
idrequiredstring
display_namerequiredstring or null
verification_statusrequiredone of: unverified, pending, verified, requires_input, canceled
storefrontrequiredstorefront or null
storefront.objectrequiredone of: storefront
storefront.namerequiredstring
storefront.slugrequiredstring
storefront.descriptionrequiredstring or null
storefront.metadatarequiredobject of strings
storefront.updated_atrequiredtimestamp
reputationrequiredreputation
reputation.completed_ordersrequiredintegerorder_completed events in the rolling window.
reputation.backed_outrequiredintegerbacked_out events in the rolling window.
reputation.disputes_lostrequiredintegerdispute_lost events in the rolling window.
reputation.review_countrequiredintegerVisible reviews in the rolling window.
reputation.average_ratingrequiredinteger or nullPlain mean of those ratings, or null.
reputation.scorerequiredinteger or nullNull until the minimum number of events.min 0, max 100
reputation.levelrequiredone of: new, low, fair, good, excellent

errors

  • 400The request is not valid.
  • 401No API key, or not a valid one.
  • 404No object with that id in this marketplace.
  • 429Rate limited. See Retry-After.