Build time can use reverse engineering, browser or network capture, official-surface discovery, and verification loops. Runtime never replans and never calls back into a model. It only executes the published endpoint contract.
Runtime contract
You call the runtime through one of the public adapters:POST /v1/apis/{api_id}/endpoints/{endpoint_name}:call- MCP tool
call_endpoint
1
Build
Peel investigates the target, verifies candidate surfaces, and compiles an endpoint contract.
2
Publish
The contract is stored as a binding/version-backed API with named endpoints.
3
Run
Every later call uses that stored contract. Runtime can execute only the transport steps already compiled into that endpoint.
Runtime transport modes
Every compiled endpoint carries exactly one execution transport. The transport is chosen at build time, and runtime never switches into a new investigation mode.Replay
http_replay and graphql_replay issue deterministic requests against a compiled request surface. They are the cheapest and most stable options when the target exposes a usable request shape.Flow
http_flow executes a fixed multi-step request chain when one request is not enough to produce the result.HTML (TLS)
html_tls performs a deterministic TLS fetch and parses the response HTML. It is used when the target has no stable request surface but is visible to a plain HTTP client.Compiled Artifact
custom_api_artifact runs a policy-checked deterministic artifact compiled during build. It receives fetched page evidence through Peel’s runtime path and cannot use network, browser, filesystem, package install, environment, eval, or model access.- a single replay request
- a fixed multi-step request flow
- a TLS fetch plus HTML extraction
- a policy-checked compiled artifact over fetched evidence
- a fallback step that was already compiled into the stored contract
method records the compiled target transport method; the Peel-facing runtime route is still always POST /v1/apis/{api_id}/endpoints/{endpoint_name}:call.
session_required stays separate
session_required endpoints execute against a target-site session created by a compiled login endpoint, not your Peel host credentials. If a protected endpoint is called without both session_id and encryption_key, runtime rejects the call before it reaches the target.
The full credential flow, header precedence, and scope boundaries are covered in Authenticated APIs.
What runtime does not do
- Programmable browser sessions. Runtime does not click through flows, fill forms dynamically, or react to UI state at call time.
- Runtime browser fallback. If a TLS fetch hits an anti-bot or JavaScript-only wall, runtime marks the endpoint for stronger build-time evidence and returns a structured retry/rebuild error instead of launching a browser.
- Open-ended UI interaction. Runtime never decides what to click next. All interactions that matter for a result are pinned at build time.
- Hidden runtime replanning. A published endpoint’s transport plan is frozen. Runtime cannot pick a different request shape or discover a new hidden API mid-call.
- Generated-code escape hatches. Compiled artifacts cannot call
fetch, read files, inspect environment variables, import packages dynamically, or invoke LLM/browser/shell APIs. - Legacy scraper-only endpoints. Everything runtime executes is backed by a binding-versioned API contract.