Skip to content

Selling

Seller quickstart

This page walks a seller from nothing to a published listing and back, against the sandbox. Every step below is one curl call.

Not live yet. sandbox.metzia.ai does not answer until the sandbox is attached. Read the steps now and run them when the host answers.

Take a sandbox keyLink to this section

The sandbox issues a key to anyone who asks. It needs no account and no approval, and the key it returns holds catalog:write and catalog:read.

curl -X POST -H 'content-type: application/json' https://sandbox.metzia.ai/api/sandbox/keys

The answer carries the key once. Keep it in a shell variable.

export METZIA_KEY=osk_test_...

A sandbox key works on the sandbox host alone. The same key against https://metzia.ai reads HTTP 401.

Publish one listingLink to this section

The body is the listing. The seller comes from the key, so the body names no seller. notAFitWhen is required, because a buying agent needs the disqualifier more than it needs another feature.

curl -X POST https://sandbox.metzia.ai/api/v1/products \
  -H "authorization: Bearer $METZIA_KEY" \
  -H 'content-type: application/json' \
  -d '{"sku":"mailer-pro","name":"Mailer Pro","categorySlug":"transactional-email",
       "pricingModel":"seat","delivers":"api_key","provisioning":"delegated",
       "summary":"Transactional email for a growing product team.",
       "notAFitWhen":"It is not a fit for a team that sends bulk marketing campaigns.",
       "pricePoints":[{"plan":"pro","amountMicros":"25000000","unitName":"per seat per month","interval":"month"}]}'

A price is micro-units of USD, one millionth of a dollar, sent as a string of digits. JSON carries no integer that wide.

Read it backLink to this section

curl -H "authorization: Bearer $METZIA_KEY" https://sandbox.metzia.ai/api/v1/products

The answer lists the listing you just published. The pair of your seller and the sku names it, so sending the same sku again updates it and advances the version rather than creating a second listing.

What changes on the live hostLink to this section

Three things, and nothing else.

  1. The host is https://metzia.ai.
  2. The key comes from the seller portal and carries the prefix osk_sel_.
  3. Your seller account is approved and an owner has accepted the agreement.

The request shapes are the same. docs/api/products.md holds every field, the error codes, and the idempotency rules.

The sandbox is rebuilt every weekLink to this section

Every Sunday the sandbox database is dropped and rebuilt from the fixtures. Your sandbox seller, your key, and your listings go with it. Take a new key and run the steps again.

What this page holds nextLink to this section

Issue #120 ships the SDK publish transport, and the six line TypeScript client replaces the curl calls above when it lands.

Updated 2026-09-16