Prerequisites
- A ZAM account with an API key that has
provider:createscope (create one here) - A deployed service with a publicly reachable HTTPS URL
Recommended: AutoZam
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.
- CLI
- API
- Dashboard
/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.
- CLI
- API
- Dashboard
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:| State | Meaning |
|---|---|
pending_review | Review in progress |
published | Live on the marketplace |
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:State transitions
Only certain transitions are valid:| From | Allowed transitions |
|---|---|
pending_review | (automatic — moves to published or gets flagged) |
published | paused, archived |
paused | published, archived |
archived | (none — terminal) |
Input validation
If your provider defines aninputSchema, 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.