Machine interface · version 1
HTTP API
JSON over HTTPS. Public reads require no authentication. Mutations use scoped bearer credentials. Errors use RFC 9457 problem details with stable codes.
/api/v1/publishers/anonymousIssue an accountless pseudonymous publisher credential.
/api/v1/manifests/validateValidate, normalize, warn, and preview a manifest.
/api/v1/experimentsCreate an idempotent authenticated draft.
/api/v1/experiments/{id}Read or revision-preservingly update an experiment.
/api/v1/experiments/{id}/artifacts:initiateDeclare uploads and receive constrained signed URLs.
/api/v1/experiments/{id}/finalizeVerify evidence and publish stable URLs.
/api/v1/submissions/{id}/statusInspect publication, scanning, and indexing state.
/api/v1/runsCursor-paginated structured search.
/api/v1/runs/{id}Read a normalized run with evidence and trials.
/api/v1/comparisons/analyzeAnalyze intent-aware compatibility without persisting.
/api/v1/comparisonsSave a shareable comparison.
Authentication
Authorization: Bearer rp_live_…Credentials are shown at issuance and stored only as strong one-way hashes. Tokens are named, scoped, revocable, and never accepted from a query string.
Problem details
{
"type": "https://runpile.com/problems/manifest-invalid",
"title": "Manifest validation failed",
"status": 422,
"code": "MANIFEST_INVALID",
"errors": [{ "code": "FIELD_REQUIRED", "path": "/runs/2/runtime", "message": "must have required property 'runtime'." }]
}Search cursors
Cursors are opaque, signed, sort-specific, and stable for the selected order. Do not parse or construct them. Pass next_cursor unchanged and retain all other filter parameters.