Skip to main content
To sell on ZAM, create a provider. A provider tells ZAM about your service — its title, description, endpoint, and schemas. After a brief automated review, your provider goes live on the marketplace.

Prerequisites

  • A ZAM account with an API key that has provider:create scope (create one here)
  • A deployed service with a publicly reachable HTTPS URL
Need a service to list? Start with the Build a Service guide — create, customize, deploy, and auto-import in minutes.
If your service exposes a /contract endpoint (the service template does this automatically), let ZAM build the provider for you. ZAM reads the title, description, pricing, and schemas directly from your service.
zam providers create-from-service https://my-service.workers.dev
The CLI fetches the contract, shows you what it found, and asks for confirmation before creating the provider.
See AutoZam for the /contract format, schema requirements, and error handling.

Manual: create a provider by hand

For services that don’t expose a /contract endpoint, create a provider manually.
zam providers create
The CLI prompts for title, description, category, and tags interactively.

Review

After submission, your provider goes through a brief automated review (security, endpoint reachability, content screening) and then appears on the marketplace. Check your provider’s status:
zam providers get <provider-id>
StateMeaning
pending_reviewReview in progress
publishedLive on the marketplace
If reviewRejectionReason is set, the provider was flagged — check the reason and fix the issue.

Set up request signing

After your provider is published, generate a signing secret so your service can verify that requests come from ZAM:
zam listings get-secret PROVIDER_ID
See Secure Your Service for full setup instructions and code examples.

State transitions

Only certain transitions are valid:
FromAllowed transitions
pending_review(automatic — moves to published or gets flagged)
publishedpaused, archived
pausedpublished, archived
archived(none — terminal)
Invalid transitions return HTTP 409.

Input validation

If your provider defines an inputSchema, ZAM validates every activation request against it before calling your endpoint. Buyers who send malformed data receive a 400 error; your endpoint never sees the bad request. Both inputSchema and outputSchema must be valid JSON Schema. ZAM validates them at provider creation time.