API Reference

OpenSheets exposes public read-only sheet discovery and protected ingest/report actions using the shared PlatPhorm contract.

Authentication
Public reads do not require auth. Protected actions accept only PLATPHORM_API_KEY.
curl -X GET "https://sheets.platphormnews.com/api/v1/sheets"

curl -X POST "https://sheets.platphormnews.com/api/v1/ingest/paste" \
  -H "Authorization: Bearer $PLATPHORM_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{"text":"name,value\nalpha,1"}'

Alternate protected header: X-PlatPhorm-API-Key: $PLATPHORM_API_KEY.

Base URL
https://sheets.platphormnews.com

Endpoints

GET/api/v1/sheetspublic
List server-indexed public sheets. Returns an honest empty/degraded registry until DATABASE_URL persistence is wired.
Success: { "ok": true, "data": {} }
Error:   { "ok": false, "error": { "code": "...", "message": "...", "details": {} } }
GET/api/v1/sheets/{id}public
Get a server-indexed sheet by id. Browser-local sheets are only readable in the UI on the importing device.
Success: { "ok": true, "data": {} }
Error:   { "ok": false, "error": { "code": "...", "message": "...", "details": {} } }
GET/api/v1/sheets/{id}/rowspublic
Read rows for a server-indexed public sheet.
Success: { "ok": true, "data": {} }
Error:   { "ok": false, "error": { "code": "...", "message": "...", "details": {} } }
GET/api/v1/sheets/{id}/summarypublic
Read computed summary for a server-indexed public sheet.
Success: { "ok": true, "data": {} }
Error:   { "ok": false, "error": { "code": "...", "message": "...", "details": {} } }
GET/api/v1/search?q=public
Search server-indexed sheets and rows. UI search also works against browser-local previews.
Success: { "ok": true, "data": {} }
Error:   { "ok": false, "error": { "code": "...", "message": "...", "details": {} } }
POST/api/v1/ingest/pasteprotected
Parse pasted CSV/TSV server-side. Requires PLATPHORM_API_KEY and does not persist while storage is degraded.
Success: { "ok": true, "data": {} }
Error:   { "ok": false, "error": { "code": "...", "message": "...", "details": {} } }
POST/api/v1/ingest/urlprotected
SSRF-gated protected URL ingest. Degraded until durable persistence and response limits are wired.
Success: { "ok": true, "data": {} }
Error:   { "ok": false, "error": { "code": "...", "message": "...", "details": {} } }
POST/api/v1/sheets/{id}/export/csvpublic/degraded
Server CSV export for server-indexed sheets. Browser-local CSV export works from the viewer.
Success: { "ok": true, "data": {} }
Error:   { "ok": false, "error": { "code": "...", "message": "...", "details": {} } }
POST/api/v1/sheets/{id}/export/pdfpublic/degraded
Reports PDF export as degraded until a server PDF renderer is wired.
Success: { "ok": true, "data": {} }
Error:   { "ok": false, "error": { "code": "...", "message": "...", "details": {} } }
GET/api/mcppublic
MCP metadata and usage.
Success: { "ok": true, "data": {} }
Error:   { "ok": false, "error": { "code": "...", "message": "...", "details": {} } }
POST/api/mcpmixed
JSON-RPC 2.0 MCP endpoint. Read-only introspection is public; protected ingest/report tools require PLATPHORM_API_KEY.
Success: { "ok": true, "data": {} }
Error:   { "ok": false, "error": { "code": "...", "message": "...", "details": {} } }
Discovery
Machine-readable surfaces for agents and platform services.
workbookshttps://sheets.platphormnews.com/api/v1/workbooks
workbookhttps://sheets.platphormnews.com/api/v1/workbooks/{id}
workbookSheetshttps://sheets.platphormnews.com/api/v1/workbooks/{id}/sheets
sheetshttps://sheets.platphormnews.com/api/v1/sheets
sheethttps://sheets.platphormnews.com/api/v1/sheets/{id}
rowshttps://sheets.platphormnews.com/api/v1/sheets/{id}/rows
columnshttps://sheets.platphormnews.com/api/v1/sheets/{id}/columns
summaryhttps://sheets.platphormnews.com/api/v1/sheets/{id}/summary
chartshttps://sheets.platphormnews.com/api/v1/sheets/{id}/charts
qualityhttps://sheets.platphormnews.com/api/v1/sheets/{id}/quality
schemahttps://sheets.platphormnews.com/api/v1/sheets/{id}/schema
duplicateshttps://sheets.platphormnews.com/api/v1/sheets/{id}/duplicates
lineagehttps://sheets.platphormnews.com/api/v1/sheets/{id}/lineage
provenancehttps://sheets.platphormnews.com/api/v1/sheets/{id}/provenance
searchhttps://sheets.platphormnews.com/api/v1/search
ingestPastehttps://sheets.platphormnews.com/api/v1/ingest/paste
ingestUrlhttps://sheets.platphormnews.com/api/v1/ingest/url
ingestUploadhttps://sheets.platphormnews.com/api/v1/ingest/upload
ingestJsonhttps://sheets.platphormnews.com/api/v1/ingest/json
ingestMarkdownhttps://sheets.platphormnews.com/api/v1/ingest/markdown
queryPreviewhttps://sheets.platphormnews.com/api/v1/query/preview
groupByhttps://sheets.platphormnews.com/api/v1/group-by
pivothttps://sheets.platphormnews.com/api/v1/pivot-summary
joinPreviewhttps://sheets.platphormnews.com/api/v1/join/preview
computedPreviewhttps://sheets.platphormnews.com/api/v1/sheets/{id}/computed-columns/preview
exportCsvhttps://sheets.platphormnews.com/api/v1/sheets/{id}/export/csv
exportJsonhttps://sheets.platphormnews.com/api/v1/sheets/{id}/export/json
exportMarkdownhttps://sheets.platphormnews.com/api/v1/sheets/{id}/export/markdown
exportPdfhttps://sheets.platphormnews.com/api/v1/sheets/{id}/export/pdf
sharehttps://sheets.platphormnews.com/api/v1/sheets/{id}/share
dashboardshttps://sheets.platphormnews.com/api/v1/dashboards
reportPackshttps://sheets.platphormnews.com/api/v1/report-packs
integrationshttps://sheets.platphormnews.com/api/v1/integrations
healthhttps://sheets.platphormnews.com/api/health
docshttps://sheets.platphormnews.com/api/docs
openapihttps://sheets.platphormnews.com/openapi.yaml
openapiJsonhttps://sheets.platphormnews.com/openapi.json
mcphttps://sheets.platphormnews.com/api/mcp