{"openapi":"3.1.0","info":{"title":"STEADYWRK Dispatch API","version":"1.0.0","summary":"STEADYWRK is a foundry and Studio in Aqaba, Jordan: one operating system, multiple ventures. Dispatch is a capability of the foundry, not the identity.","description":"The public dispatch capability of STEADYWRK. The evals and trade-index reads are public and require no key; quote and order are gated by a server-side dispatch key. The same capabilities are exposed as Model Context Protocol tools at POST /api/mcp. Figures returned by the evals endpoint are self-reported estimates: read the \"estimated\" flag on the wire rather than treating them as a binding service level. Also exposes POST /api/agentic-commerce/probe (free readiness snapshot → Store Guard).","contact":{"name":"STEADYWRK","url":"https://steadywrk.app/build"}},"servers":[{"url":"https://steadywrk.app","description":"Production"}],"externalDocs":{"description":"What STEADYWRK is, and the registry listing for this server","url":"https://steadywrk.app/what-is-steadywrk"},"tags":[{"name":"dispatch-public","description":"Public, no-auth reads. Safe to call with zero setup."},{"name":"dispatch-write","description":"Key-gated dispatch writes (ApiKeyAuth via x-api-key)."},{"name":"agentic-commerce","description":"Free readiness probe snapshots. Attested bilingual grades are the Store Guard SKU."}],"paths":{"/api/dispatch/v1/quote":{"post":{"operationId":"dispatchQuote","summary":"Dispatch quote","description":"Return an instant dispatch quote for a field-service job. Accepts trade + location + urgency and returns matched contractor, estimated cost in cents, ETA tier, and valid_for_minutes.","tags":["dispatch-write"],"security":[{"ApiKeyAuth":[]}],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid API key."},"422":{"description":"Validation failed."},"429":{"description":"Rate limit exceeded."},"503":{"description":"Dispatch API not configured on the server."}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["trade","location"],"properties":{"trade":{"type":"string","description":"Trade code (plumbing, electrical, HVAC, etc.)"},"location":{"type":"object","required":["state"],"properties":{"state":{"type":"string","minLength":2,"maxLength":2},"zip":{"type":"string","maxLength":10},"city":{"type":"string","maxLength":255}}},"urgency":{"type":"string","enum":["emergency","urgent","routine","scheduled"],"default":"routine"},"nte_cents":{"type":"integer","minimum":1},"description":{"type":"string","maxLength":2000}}}}}}}},"/api/dispatch/v1/order":{"post":{"operationId":"dispatchOrder","summary":"Dispatch order","description":"Create a dispatch work order. Auto-matches a contractor from the active pool and returns a tracked order with masked contractor reference and status URL.","tags":["dispatch-write"],"security":[{"ApiKeyAuth":[]}],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid API key."},"422":{"description":"Validation failed."},"429":{"description":"Rate limit exceeded."},"503":{"description":"Dispatch API not configured on the server."}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["trade","location","description"],"properties":{"trade":{"type":"string"},"location":{"type":"object","required":["state"],"properties":{"state":{"type":"string","minLength":2,"maxLength":2},"zip":{"type":"string","maxLength":10},"city":{"type":"string","maxLength":255},"address":{"type":"string","maxLength":1000},"name":{"type":"string","maxLength":500}}},"urgency":{"type":"string","enum":["emergency","urgent","routine","scheduled"],"default":"routine"},"nte_cents":{"type":"integer","minimum":1},"description":{"type":"string","minLength":1,"maxLength":5000},"callback_url":{"type":"string","format":"uri"},"reference_id":{"type":"string","maxLength":255}}}}}}}},"/api/dispatch/analytics/evals":{"get":{"operationId":"dispatchEvals","summary":"Dispatch evals (public)","description":"Return the public evals dashboard: completion rate, NTE variance, dispatch latency, human-override rate, and operational counts for the selected rolling window. No API key required.","tags":["dispatch-public"],"security":[],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object"}}}}},"parameters":[{"name":"period","in":"query","required":false,"schema":{"type":"string","enum":["rolling_7d","rolling_30d","rolling_90d"],"default":"rolling_30d"}}]}},"/api/dispatch/index":{"get":{"operationId":"dispatchIndex","summary":"Dispatch trade index (public)","description":"Return the catalog of 8 dispatch trade verticals with baseline model rates (routine urgency, 1.0× multiplier). Rates are STEADYWRK model rates informed by BLS OES data — not BLS verbatim. No API key required.","tags":["dispatch-public"],"security":[],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/agentic-commerce/probe":{"post":{"operationId":"agenticCommerceProbe","summary":"Free agentic commerce readiness probe","description":"Multi-surface snapshot (UCP/ACP discovery, product schema, robots, answer-engine maps). Not an attested Store Guard grade and not a merchant UCP endpoint. Rate-limited; no API key.","tags":["agentic-commerce"],"security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"Public storefront URL or domain","maxLength":255}}}}}},"responses":{"200":{"description":"Probe report with grade, score, and checks.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid URL."},"429":{"description":"Rate limit exceeded."}}}}},"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"x-api-key","description":"Server-issued dispatch key. Required for quote and order only."}}}}