Skip to content
msMarketSDK

[ how it works ]

Headless by design.

MarketSDK handles the marketplace. You handle the UI. Call the API from your server, keep your own design system, and never send your users to a page you do not own.

// from signup to first sale

Five steps, no meetings.

  1. 01

    Create a workspace.

    Enter your email. There is no password and no form to fill in.

  2. 02

    Copy a test key.

    Your sandbox is ready at once. Make your first call in minutes.

  3. 03

    Build against test mode.

    Sellers, listings, orders, and webhooks all work in the sandbox, with no time limit.

  4. 04

    Connect Stripe.

    Add a restricted key from your own Stripe account. Skip this if you do not need payments or verification.

  5. 05

    Go live.

    Pick a plan and accept the acceptable use policy. Live keys are yours the same minute.

[ the api ]

Plain REST. No library required.

base url
https://api.marketsdk.com/v1
auth
A bearer key. The key alone decides the marketplace and the mode.
keys
msk_test_ and msk_live_. Secret keys for your server, publishable keys for the browser.
idempotency
An Idempotency-Key header on every POST. Replays within 24 hours return the original response.
pagination
Cursor-based.
money
Whole minor units and a currency code. Never decimals.
errors
One shape, with a machine-readable code and a request id.
versioning
The version is in the path. A published version never breaks.

// test and live

Two modes that never touch.

Your marketplace exists twice: once in test mode and once in live mode. Data never crosses between them, and a test key can never reach live data.

testlive

[ settings ]

Payments and verification are yours to switch.

Both are on by default. Every combination works. With both off, you do not need a Stripe account at all.

  • payments: on
  • seller_verification: on

// the order lifecycle

An order is a promise, tracked.

Most marketplaces track payments. MarketSDK tracks commitments. Every order moves through a small set of states, and every move is recorded.

The main path

  1. 01awaiting paymentOnly when payments are on.
  2. 02committedThe buyer has committed. The item is reserved.
  3. 03claimedOne side says the deal is done and waits for the other.
  4. 04completedThe other side confirms, or the window passes.

Other endings

  • disputedThe other side contests the claim. Your team decides.
  • cancelledA side backs out, both agree, or payment never arrives.
  • expiredNobody claimed in time.

every window is a setting: how long to pay, how long to claim, how long to confirm. two buyers racing for the last item can never both win.

[ reputation ]

Reputation that carries consequences.

Completing a deal builds reputation. Backing out of a commitment, or losing a dispute, costs it. Reviews are two-sided, and neither side sees the other's review until both are in.

completed_orders
10
backed_out
1
disputes_lost
0
review_count
6
average_rating
4.5
score · level
85 · good

you get the counts, not only a score. the weights behind the score are settings, and the score can always be recomputed from the record.

// payments

You are the platform. We are the software.

Payments run on your own Stripe account, with Stripe Connect. Your sellers are connected to you. Your platform fee goes straight to you. Seller onboarding carries your brand, not ours.

  • Funds can be held until the buyer confirms delivery.
  • Refunds can be full or partial, and your fee is returned in proportion.
  • Seller identity checks use Stripe Identity. We keep the result, never the documents.
buyer pays
Your Stripe account
your fee
Goes to you
the rest
Goes to the seller

[ webhooks ]

Every state change, delivered.

  • Signed with a secret for each endpoint, with a timestamp to stop replays.
  • Retried with backoff for at least 24 hours.
  • Every delivery is logged with its request and response, and can be replayed.

Make your first call.

The sandbox is free and has no time limit.

start free