{"openapi":"3.1.0","info":{"title":"OpenSheets / PlatPhorm Sheets API","version":"0.3.0-phase3","description":"Public-safe tabular intelligence, workbook, ingestion, schema inference, data quality, query, export, MCP, and policy API. Public reads work without auth; protected writes require PLATPHORM_API_KEY."},"servers":[{"url":"https://sheets.platphormnews.com"}],"components":{"securitySchemes":{"PlatPhormApiKey":{"type":"http","scheme":"bearer","bearerFormat":"PLATPHORM_API_KEY","description":"Use Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY."}},"schemas":{"RestSuccess":{"type":"object","required":["ok","data"],"properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object"}}},"RestError":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object"}}}}},"paths":{"/api/health":{"get":{"security":[],"summary":"Public health summary","description":"Public health summary. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/v1/health":{"get":{"security":[],"summary":"Versioned public health summary","description":"Versioned public health summary. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/docs":{"get":{"security":[],"summary":"API endpoint inventory","description":"API endpoint inventory. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/v1/workbooks":{"get":{"security":[],"summary":"List public server-backed workbooks","description":"List public server-backed workbooks. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}},"post":{"security":[{"PlatPhormApiKey":[]}],"summary":"Protected create workbook and first sheet from rows or text","description":"Protected create workbook and first sheet from rows or text. Access: protected. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/v1/workbooks/{id}":{"get":{"security":[],"summary":"Get public workbook","description":"Get public workbook. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/v1/workbooks/{id}/sheets":{"get":{"security":[],"summary":"List sheets in a public workbook","description":"List sheets in a public workbook. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/v1/sheets":{"get":{"security":[],"summary":"List public server-backed sheets","description":"List public server-backed sheets. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}},"post":{"security":[{"PlatPhormApiKey":[]}],"summary":"Protected create server-backed sheet","description":"Protected create server-backed sheet. Access: protected. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/v1/sheets/{id}":{"get":{"security":[],"summary":"Get public server-backed sheet","description":"Get public server-backed sheet. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}},"put":{"security":[{"PlatPhormApiKey":[]}],"summary":"Protected update sheet metadata","description":"Protected update sheet metadata. Access: protected. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}},"delete":{"security":[{"PlatPhormApiKey":[]}],"summary":"Protected delete/archive sheet","description":"Protected delete/archive sheet. Access: protected. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/v1/sheets/{id}/rows":{"get":{"security":[],"summary":"Get sheet rows","description":"Get sheet rows. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/v1/sheets/{id}/columns":{"get":{"security":[],"summary":"Get sheet columns","description":"Get sheet columns. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/v1/sheets/{id}/summary":{"get":{"security":[],"summary":"Get deterministic sheet summary","description":"Get deterministic sheet summary. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/v1/sheets/{id}/charts":{"get":{"security":[],"summary":"Get deterministic chart summaries","description":"Get deterministic chart summaries. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/v1/sheets/{id}/schema":{"get":{"security":[],"summary":"Get inferred schema","description":"Get inferred schema. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/v1/sheets/{id}/quality":{"get":{"security":[],"summary":"Get data quality checks","description":"Get data quality checks. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/v1/sheets/{id}/duplicates":{"get":{"security":[],"summary":"Get duplicate row report","description":"Get duplicate row report. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/v1/sheets/{id}/lineage":{"get":{"security":[],"summary":"Get lineage events","description":"Get lineage events. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/v1/sheets/{id}/provenance":{"get":{"security":[],"summary":"Get row/cell provenance summary","description":"Get row/cell provenance summary. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/v1/sheets/{id}/computed-columns/preview":{"post":{"security":[],"summary":"Preview a safe computed column","description":"Preview a safe computed column. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/v1/sheets/{id}/group-by":{"post":{"security":[],"summary":"Group rows by a column","description":"Group rows by a column. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/v1/sheets/{id}/pivot":{"post":{"security":[],"summary":"Preview pivot/group aggregates","description":"Preview pivot/group aggregates. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/v1/sheets/{id}/aggregates":{"post":{"security":[],"summary":"Preview aggregate results","description":"Preview aggregate results. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/v1/sheets/{id}/validate-rows":{"post":{"security":[],"summary":"Validate rows with supplied rules","description":"Validate rows with supplied rules. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/v1/sheets/{id}/export/csv":{"get":{"security":[],"summary":"Export CSV for persisted public sheets","description":"Export CSV for persisted public sheets. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/v1/sheets/{id}/export/json":{"get":{"security":[],"summary":"Export JSON for persisted public sheets","description":"Export JSON for persisted public sheets. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/v1/sheets/{id}/export/markdown":{"get":{"security":[],"summary":"Export Markdown table for persisted public sheets","description":"Export Markdown table for persisted public sheets. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/v1/sheets/{id}/export/pdf":{"post":{"security":[{"PlatPhormApiKey":[]}],"summary":"Protected/degraded PDF export status","description":"Protected/degraded PDF export status. Access: protected. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/v1/search":{"get":{"security":[],"summary":"Search server-backed sheets and rows","description":"Search server-backed sheets and rows. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/v1/ingest/paste":{"post":{"security":[{"PlatPhormApiKey":[]}],"summary":"Public paste preview; protected persist with PLATPHORM_API_KEY","description":"Public paste preview; protected persist with PLATPHORM_API_KEY. Access: mixed. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/v1/ingest/url":{"post":{"security":[{"PlatPhormApiKey":[]}],"summary":"Bounded SSRF-gated URL preview; protected persist with PLATPHORM_API_KEY","description":"Bounded SSRF-gated URL preview; protected persist with PLATPHORM_API_KEY. Access: mixed. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/v1/ingest/upload":{"post":{"security":[{"PlatPhormApiKey":[]}],"summary":"Protected/degraded upload ingest endpoint","description":"Protected/degraded upload ingest endpoint. Access: protected. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/v1/ingest/json":{"post":{"security":[],"summary":"JSON table preview","description":"JSON table preview. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/v1/ingest/xml":{"post":{"security":[],"summary":"XML table preview","description":"XML table preview. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/v1/ingest/markdown":{"post":{"security":[],"summary":"Markdown table preview","description":"Markdown table preview. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/v1/analyze":{"post":{"security":[],"summary":"Deterministic sheet analysis","description":"Deterministic sheet analysis. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/v1/compare":{"post":{"security":[],"summary":"Deterministic comparison scaffold","description":"Deterministic comparison scaffold. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/v1/trends":{"post":{"security":[],"summary":"Deterministic trend/summary scaffold","description":"Deterministic trend/summary scaffold. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/v1/profile-columns":{"post":{"security":[],"summary":"Profile columns","description":"Profile columns. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/v1/detect-schema":{"post":{"security":[],"summary":"Infer schema from rows","description":"Infer schema from rows. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/v1/detect-duplicates":{"post":{"security":[],"summary":"Detect duplicate rows","description":"Detect duplicate rows. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/v1/data-quality":{"post":{"security":[],"summary":"Score data quality","description":"Score data quality. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/v1/group-by":{"post":{"security":[],"summary":"Group rows by a column","description":"Group rows by a column. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/v1/pivot-summary":{"post":{"security":[],"summary":"Create pivot summary preview","description":"Create pivot summary preview. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/v1/join/preview":{"post":{"security":[],"summary":"Preview safe sheet join","description":"Preview safe sheet join. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/v1/lookup/preview":{"post":{"security":[],"summary":"Preview lookup join","description":"Preview lookup join. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/v1/query/preview":{"post":{"security":[],"summary":"Run read-only scoped SQL-style query preview","description":"Run read-only scoped SQL-style query preview. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/v1/query/examples":{"get":{"security":[],"summary":"Get query examples","description":"Get query examples. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/v1/events":{"get":{"security":[],"summary":"List public event contract names","description":"List public event contract names. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/v1/webhook-contracts":{"get":{"security":[],"summary":"List webhook event contracts","description":"List webhook event contracts. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/v1/webhook-contracts/publish":{"post":{"security":[{"PlatPhormApiKey":[]}],"summary":"Protected publish webhook contracts","description":"Protected publish webhook contracts. Access: protected. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/v1/integrations":{"get":{"security":[],"summary":"List integration matrix","description":"List integration matrix. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/v1/agent-policy":{"get":{"security":[],"summary":"Get agent access policy","description":"Get agent access policy. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/api/mcp":{"get":{"security":[],"summary":"MCP metadata","description":"MCP metadata. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}},"post":{"security":[{"PlatPhormApiKey":[]}],"summary":"JSON-RPC 2.0 MCP endpoint","description":"JSON-RPC 2.0 MCP endpoint. Access: mixed. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/openapi.yaml":{"get":{"security":[],"summary":"OpenAPI YAML","description":"OpenAPI YAML. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/openapi.json":{"get":{"security":[],"summary":"OpenAPI JSON","description":"OpenAPI JSON. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/llms.txt":{"get":{"security":[],"summary":"Readable LLM summary","description":"Readable LLM summary. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/llms-full.txt":{"get":{"security":[],"summary":"Full LLM discovery text","description":"Full LLM discovery text. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/llms-index.json":{"get":{"security":[],"summary":"LLM discovery index","description":"LLM discovery index. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/rss.xml":{"get":{"security":[],"summary":"Public RSS feed","description":"Public RSS feed. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/feed.xml":{"get":{"security":[],"summary":"Public Atom feed","description":"Public Atom feed. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/sitemap.xml":{"get":{"security":[],"summary":"Public sitemap","description":"Public sitemap. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/robots.txt":{"get":{"security":[],"summary":"Robots policy","description":"Robots policy. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/.well-known/mcp.json":{"get":{"security":[],"summary":"MCP well-known discovery","description":"MCP well-known discovery. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/.well-known/agents.json":{"get":{"security":[],"summary":"Agent discovery","description":"Agent discovery. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/.well-known/agent-policy.json":{"get":{"security":[],"summary":"Agent policy","description":"Agent policy. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/.well-known/ai-policy.json":{"get":{"security":[],"summary":"AI policy","description":"AI policy. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/.well-known/trust.json":{"get":{"security":[],"summary":"Trust policy","description":"Trust policy. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}},"/.well-known/security.txt":{"get":{"security":[],"summary":"Security contact","description":"Security contact. Access: public. Protected operations accept Authorization: Bearer $PLATPHORM_API_KEY or X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.","responses":{"200":{"description":"Success response using { ok: true, data } where applicable."},"400":{"description":"Invalid request using { ok: false, error }."},"401":{"description":"PLATPHORM_API_KEY required for protected actions."},"404":{"description":"Requested workbook, sheet, view, or resource was not found."},"503":{"description":"Dependency or persistence is degraded."}}}}}}