markaDocs

Plans & limits

Which plan unlocks programmatic writes, what is actually enforced, and what is not.

Marka has three seller plans. Marketplace fees are 0% on all of them — Marka's revenue is the subscription, not a cut of your sales.

FreeProBusiness
PriceCA$0CA$29/monthCA$99/month
Annual—CA$290CA$990

What that means for the API

CapabilityFreeProBusiness
Read through /api/v1yesyesyes
Write through /api/v1 (api_write)noyesyes
Hosted MCP read toolsyesyesyes
Hosted MCP draft tools3 / monthunlimitedunlimited
Active listings50unlimitedunlimited
AI copilot runs / month3unlimitedunlimited

A seller with no subscription — or one that has lapsed — resolves to free. A subscription counts as effective while it is trialing, active, or past due.

GET /api/v1/me reports your effective tier and the exact entitlement list your key carries. Check it rather than inferring from a plan name:

{
  "plan": {
    "tier": "pro",
    "entitlements": ["api_write", "cross_post_oneway", "ai_unlimited"],
    "limits": { "maxActiveListings": null, "aiCopilotRunsPerMonth": null, "apiRequestsPerMonth": 5000 }
  }
}

null means unlimited.

api_write

Programmatic writes are the one API capability behind a paid plan. createListing, updateListing and publishListing require the api_write entitlement when called with an API key — that is Pro or Business.

Without it, those three answer 402:

{
  "error": "Programmatic writes require the api_write entitlement (Pro plan or higher).",
  "code": "entitlement_required"
}

Two things this gate deliberately does not cover:

  • Reads are ungated. Any valid key can call /v1/me, /v1/listings, /v1/search, /v1/categories and /v1/orders.
  • Cookie sessions are ungated. Writes made from a signed-in browser — the Marka app's own requests — pass without api_write. Free sellers must be able to create and edit listings; "free to list" is not a write gate. Only programmatic writes are a paid feature.

Hosted MCP drafts are metered differently

The hosted MCP gateway's create_listing_draft and update_listing_draft do not go through /api/v1 and therefore do not require api_write. They consume your AI copilot run quota instead — the same monthly allowance the in-app assistant draws on: 3 runs per month on free, unlimited on Pro and Business.

So on a free plan you can draft a listing through the hosted MCP server (three times a month) but cannot create one through POST /api/v1/listings. That is the actual behaviour, not an oversight to route around.

What is enforced, and what is not

Being precise here matters more than looking generous.

Enforced

LimitWhere
api_write on key-authenticated writesevery /api/v1 write
Per-key request budget — 1000 requests, 60-second idle windowevery /api/v1 and /api/mcp request
AI copilot runs per month (free: 3)hosted MCP draft tools, and the in-app assistant
Active listing cap (free: 50)at the moment a listing is published, not when it is created
Search horizon — the 200 most recently listed active listingsGET /v1/search

Reported but not enforced

apiRequestsPerMonth is advisory

GET /v1/me reports an apiRequestsPerMonth figure per tier (0 on free, 5,000 on Pro, 50,000 on Business). No monthly counter is metered against it today. It is published as the tier's intended allowance, and the contract labels it advisory for exactly this reason. The request limit that actually stops traffic is the per-key burst budget described in Authentication → Rate limits — and note that a free-tier figure of 0 does not mean free keys cannot read; they can.

Treat apiRequestsPerMonth as a signal of intent, not a contract. If your integration would break when it starts being enforced, size it against the published number now.

Managing your plan

Plans are changed in the Marka app, under billing. There is no API for subscriptions — a plan change takes effect for API keys as soon as the subscription is effective, since every request resolves the tier from the subscription at call time rather than from anything stamped on the key.

On this page