Docs
API

Praxis API v1

The API uses the same projects, sources, objectives, compute queue, events, and retained artifacts as Mission Studio.

Open Mission Studio, select API access, and create a key. The full key is shown once and stored only as a SHA-256 hash.

Resource model#

A project owns uploaded sources and reusable objectives. A run snapshots the selected objective version before it enters the compute queue. Editing an objective later does not change historical run records.

resource model
project
  source
  objective (versioned)
  run
    events
    reviews
    track stories
    artifacts
    read-only shares

Submit one run#

1
Create a project
Projects isolate sources, objectives, run history, results, and retention. API keys belong to the owning workspace.
2
Upload a source
Send a video with an Idempotency-Key. The server validates and normalizes it before returning source metadata.
3
Save an objective
Choose a subject family and either an area trigger or a subject-following objective.
4
Create the run
Reference the project, source, and objective. Model, tracker, and rule builds are assigned by the server.
5
Poll and inspect
Poll the run until it completes, then retrieve events, a signed manifest, and expiring artifact URLs.
create a run
curl "$PRAXIS_API/v1/runs" \
  -H "Authorization: Bearer $PRAXIS_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
    "project_id": "prj_...",
    "source_id": "upl_...",
    "objective_id": "obj_..."
  }'

Authentication and isolation#

AuthorizationBearer tokenrequired
Use a prx_live_ API key created by the owning browser workspace.
Idempotency-Keystringrequired
Required for uploads and run creation. Reusing a key returns the original resource.
scopesstring[]
Keys can be limited to project, source, objective, run, event, artifact, and sharing operations.

Requests for an object owned by another workspace return 404. API key plaintext is not retained. Signed media URLs expire and read-only result shares can be revoked.

Current hosted limits#

InputLimit
Video duration60 seconds
Upload size80 MB
Area points3 to 8 normalized points
Run submissions3 per workspace per hour on the public worker
ExecutionQueued, one CPU analysis at a time

SDK source#

The repository includes a dependency-light TypeScript client covering projects, sources, objectives, run polling and cancellation, events and reviews, track stories, artifacts, and shares. Package publication is separate from the HTTP API and should not be assumed from the source tree alone.