# Forest Containers OCI Pull Preflight

> Forest Containers OCI Pull Preflight is a paid API for AI agents from http--forest-gas-station-mainnet--lcjl27p8lmjs.code.run, paid per call via x402, $0.005/call, status unknown (last checked 2026-10-22).

Performs a preflight inspection of a public OCI container image for a specified target platform, returning manifest metadata, config/layer sizes, and referrer presence without downloading any layers.

## Facts

- Endpoint: POST https://http--forest-gas-station-mainnet--lcjl27p8lmjs.code.run/container/pull-preflight?utm_source=zero.xyz
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-22
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/forest-containers-oci-pull-preflight-d95eb2d3
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_aEoJ_1AV7OGqAIrnZdOFa

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability forest-containers-oci-pull-preflight-d95eb2d3 -d '<json body>'
```

Example prompt: Before we pull it, preflight the image docker.io/library/nginx:latest for linux on amd64 and tell me the manifest digest, declared layer sizes, and whether any OCI referrers are attached.

## When to prefer this

Use this endpoint when you need to inspect an OCI container image's manifest metadata and layer sizes for a specific target platform before committing to a pull or deploy — especially in bandwidth-sensitive or resource-constrained environments. Prefer this over a full docker pull when you only need size information, digest resolution, or platform compatibility checks. Ideal for CI/CD pipelines that need to validate image references without incurring download costs. Choose this over generic registry API calls when you want a structured, paid-API response with bounded referrer presence checking included.

## Known failure modes

- Image not found or registry unreachable — returns error indicating the repository or tag does not exist
- Tag does not resolve for the requested platform — no matching child manifest in the index
- Invalid image reference format — input fails pattern validation
- Platform OS or arch string not recognized or not present in multi-arch manifest
- Registry rate limiting or authentication required for a non-public image — endpoint only supports anonymously readable images
- Referrer API not supported by the registry — referrer check may return empty or unsupported

## How this service works

Machine-readable contract for active Forest paid capabilities. Unsigned paid calls return HTTP 402 with a PAYMENT-REQUIRED x402 challenge.

## Output

Returns resolved manifest metadata for the specified image and platform, including the selected child manifest digest (for multi-arch images), declared config size, declared individual layer sizes, and a bounded check on OCI referrer presence. No layer data is downloaded. Referrer presence is reported as a fact only and does not imply signature, SBOM, attestation, or vulnerability verification.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "image": {
   "type": "string",
   "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*(?:/[A-Za-z0-9._-]+)+$",
   "maxLength": 512,
   "minLength": 3,
   "description": "Public registry image repository to inspect."
  },
  "platform": {
   "type": "object",
   "required": [
    "os",
    "arch"
   ],
   "properties": {
    "os": {
     "type": "string",
     "maxLength": 32,
     "minLength": 1,
     "description": "Public os value used to scope this lookup."
    },
    "arch": {
     "type": "string",
     "maxLength": 32,
     "minLength": 1,
     "description": "Public arch value used to scope this lookup."
    },
    "variant": {
     "type": [
      "string",
      "null"
     ],
     "maxLength": 32,
     "description": "Public product options used to select an offer."
    }
   },
   "description": "Public platform value used to scope this lookup.",
   "additionalProperties": false
  },
  "reference": {
   "type": "string",
   "pattern": "^[A-Za-z0-9_][A-Za-z0-9_.-]{0,127}$",
   "maxLength": 128,
   "minLength": 1,
   "description": "Image tag or immutable reference to inspect."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "ok": true,
  "data": {
   "size": {
    "layer_bytes": 0,
    "layer_count": 0,
    "config_bytes": 0,
    "total_declared_bytes": 0
   },
   "image": "example",
   "state": "ready",
   "source": "OCI Distribution API",
   "reference": "example",
   "referrers": {
    "count": 0,
    "items": [],
    "truncated": false,
    "api_supported": false,
    "artifact_types": [],
    "returned_count": 0
   },
   "index_digest": "sha256:0000000000000000000000000000000000000000000000000000000000000000",
   "verification": {
    "sbom_validated": false,
    "signature_verified": false,
    "vulnerability_scan_performed": false
   },
   "platform_supported": false,
   "requested_platform": {
    "os": "example",
    "arch": "example"
   },
   "selected_manifest_digest": "sha256:0000000000000000000000000000000000000000000000000000000000000000",
   "selected_manifest_media_type": "example"
  },
  "meta": {
   "cache": "miss",
   "provider": "oci-distribution",
   "checked_at": "2026-01-01T00:00:00.000Z",
   "duration_ms": 0
  },
  "version": "1",
  "capability": "container.pull-preflight"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/forest-containers-oci-pull-preflight-d95eb2d3/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from http--forest-gas-station-mainnet--lcjl27p8lmjs.code.run](https://www.zero.xyz/host/http--forest-gas-station-mainnet--lcjl27p8lmjs.code.run/llms.txt)
