Stagecraft

Coordination API

A multi-perspective decision engine. You supply the context and the stakeholders — the API reasons from each position, maps genuine tensions between them, and returns a structured decision with explicit tradeoffs, dissent, and confidence.

Designed to layer into existing tools. No UI required. The response is structured JSON your application can consume directly.

POST https://stagecraft-prod.onrender.com/api/coordinate

Authentication

API Keys

All requests to /api/coordinate require a bearer token in the Authorization header.

Authorization: Bearer sk-stagecraft-your-key-here

Keys are issued per client. To request access, contact dean@stagecraft-ai.com.


Endpoint

POST /api/coordinate

Submit a problem with stakeholder perspectives. The API reasons from each position, identifies structural tensions, and synthesizes a decision or recommendation.

Request fields

FieldTypeRequiredDescription
context string required The problem, decision, or situation to reason about. Max 8,000 characters.
perspectives array required The stakeholders you define. Each has a role (string) and mandate (string). Max 10 perspectives.
decision_required boolean optional Default false. If true, the API commits to a specific call — no conditionals. If false, returns a recommendation that may name conditions.

Example request

{
  "context": "An insurance company receives a prior authorization request for non-emergency surgery. Clinical records are partially incomplete. The broker is pressuring for same-day binding.",
  "perspectives": [
    { "role": "patient",      "mandate": "Receive necessary care without financial ruin" },
    { "role": "adjuster",    "mandate": "Evaluate claim validity and manage exposure" },
    { "role": "provider",    "mandate": "Deliver appropriate care and receive timely reimbursement" },
    { "role": "shareholder", "mandate": "Protect profitability and reserve ratios" }
  ],
  "decision_required": true
}

Response

Response schema

FieldTypeDescription
decision string | null A committed call with no conditionals. Present when decision_required: true.
recommendation string | null A conditional recommendation naming what would change it. Present when decision_required: false.
rationale string Why this outcome over the alternatives, grounded in the specific tensions.
perspectives object Keyed by role. Each entry contains position, reasoning, non_negotiables, and acceptable_tradeoffs.
tensions array Structural conflicts between perspectives — where satisfying one mandate prevents satisfying another.
tradeoffs array What the decision sacrifices and for what. Names both sides specifically.
dissent array Every perspective that was overridden, with their position and why they lost. Not collapsed — each dissenter is named separately.
confidence object level (low/medium/high) plus factors: each missing fact paired with what the decision would change to if that fact were known.

Try it

Interactive demo

Run a live call against the API. Load an example or build your own. Rate limited to 5 requests per hour.

Build a request
Off — returns recommendation
Demo: 5 requests/hour per IP. Contact us for full access.
Response appears here.

Endpoint

GET /health

Returns server status. No authentication required. Use for uptime monitoring.

{ "status": "healthy" }