Skip to content

Record reference

Canonical records use public schema version 2 and camelCase JSON fields. Rust types, CLI JSON, Node.js values, and Python dictionaries share these serialized shapes.

Unknown fields are rejected for many closed request and policy records. Use the generated JSON Schemas for exhaustive field types and enum values.

Capture input and result

RecordContractSchema
CaptureRequestComplete one-page inputcapture-request.schema.json
ContentPolicyResource, password, scope, selector, optimization, and file-root policycontent-policy.schema.json
CaptureEventTagged progress or terminal eventcapture-event.schema.json
CaptureReceiptSuccessful terminal resultcapture-receipt.schema.json
VerificationReportStatic or offline HTML evidenceverification-report.schema.json
OffprintErrorStructured failureerror.schema.json

CaptureRequest contains schemaVersion, url, output, browser, optional headed, environment, readiness, content, optional credentials, network, limits, verification, and diagnostics.

CaptureReceipt contains captureId, redacted source, artifact, verification, aggregate resources, warnings, and timings. The artifact is tagged file or bytes.

Events and status

CaptureStatus uses camelCase lifecycle values from created through one of succeeded, cancelled, or failed.

CaptureEvent uses a type tag:

  • capture.started
  • browser.ready
  • navigation.started
  • navigation.redirected
  • readiness.changed
  • frame.collected
  • resource.discovered
  • resource.progress
  • transform.started
  • artifact.encoding
  • verification.started
  • warning
  • capture.succeeded
  • capture.failed
  • capture.cancelled

Progress values are snapshots. Event delivery can coalesce resource progress under backpressure.

Artifact records

RecordContractSchema
ArtifactManifestEmbedded HTML provenance and resource inventoryartifact-manifest.schema.json
ArtifactVerificationUniform CLI verification resultartifact-verification.schema.json
FormatVerificationExport-format verifier evidenceformat-verification.schema.json
ExportRequestRequested export setexport-request.schema.json
ExportResultCommitted exported representationsexport-result.schema.json

The artifact manifest contains individual resourceRecords. The capture receipt contains only their aggregate ResourceSummary and capture warnings.

Capture warnings

CaptureWarning contains code, message, and optional frameId and resourceId associations. Warnings describe a permitted fidelity gap or preservation fallback and do not make capture fail under the active policy.

Resource retrieval failures can reuse an offprint.resource.* error code as a warning code. Transform-specific warnings include values such as offprint.resource.css_preservation. Inspect the associated resource record, then select strict resource handling when the same condition must fail capture. Warning codes are not an exhaustive subset of the error registry.

Browser records

RecordContractSchema
BrowserDoctorReportReadiness, candidates, cache, collector, output, configuration, network, recoverybrowser-doctor-report.schema.json
BrowserOperationResultInstall, list, or remove resultbrowser-operation-result.schema.json

BrowserInfo.source records managed, system, explicit, or remote. Candidate state records selected, compatible, or shadowed with a reason code, priority, and active lease count.

Batch, crawl, and resume

RecordContractSchema
BatchRequestNamed complete requests plus concurrency and resume optionsbatch-request.schema.json
BatchResultOrdered scheduled outcomes and countsbatch-result.schema.json
CrawlRequestSeed request, bounds, origin rule, output, resume optionscrawl-request.schema.json
CrawlResultBreadth-first page outcomes and countscrawl-result.schema.json
ResumeManifestAtomic persisted scheduler checkpointresume-manifest.schema.json

BatchJob is a serialized descriptor. It is distinct from the live CaptureJob handle. ScheduledCaptureOutcome is tagged succeeded, failed, or resumed. The resumed counter overlaps terminal counts. A resumed success increments both resumed and succeeded. A resumed failure increments both resumed and failed.

Redaction and digests

Source summaries preserve redacted URLs and SHA-256 digests of the complete canonical URLs. Credential values serialize as [REDACTED]. Store original requests separately when replay requires credentials.

Full URL digests can confirm a guessed secret URL. BrowserInfo can contain a local executable path or redacted remote endpoint. Review manifests, receipts, doctor reports, and diagnostics for local or internal topology before sharing them.

ContentDigest serializes as lowercase SHA-256 hexadecimal text. Capture IDs use the cap_ prefix followed by a ULID, a time-sortable unique identifier.