/examplepay/ on the sandbox listener. It may not contain slashes or whitespace.
Formats
--spec takes a local path or an http(s) URL to:
Documents up to 32 MiB are accepted. Remote and absolute
$refs are refused; see Multi-file specs.
Provenance
Every field in the imported contract carries where it came from:EXPLICIT (stated in the source) or DERIVED (a deterministic transformation of it). A contract a model wrote from documentation carries LLM_EXTRACTED and imports as DRAFT. The levels never merge, so extracted behaviour is never presented as documented behaviour.
Seeds and credentials
The seed drives every synthesised value, every webhook delivery id, and the issued test credential. It is random by default. Pin one for reproducible transcripts:pikopod sandbox list. Send it the way the spec’s auth scheme expects: a bearer token in Authorization, an API key header, or basic auth. A request without it is refused as the spec declares.
Linking to an upstream
When an agent upstream of the same name exists inpikopod.yaml, the sandbox is linked automatically. --upstream <name> links explicitly. A linked upstream’s traffic can refine the contract and feed the recordings tier. See Contract and Recordings tier.
Webhooks at import
--webhook-url sets the sink deliveries POST to. --webhooks <file> attaches an envelope and event bindings. See Webhooks.
Keeping the spec you imported
Updating
spec-diff. The webhook envelope and every event binding the new spec still declares are kept, and the spec watcher’s pin is reset. Restart pikopod up to serve the updated contract.
Where it lives
The registry is<data_dir>/sandboxes.json, and the normalized contract is <data_dir>/apis/<name>.ir.json. See Data directory.