{"openapi":"3.1.0","info":{"title":"MDS Data Preview API","version":"3.0.0"},"servers":[{"url":"https://datapreview.momentumdatasolutions.com"}],"components":{"securitySchemes":{"Supabase":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}},"security":[{"Supabase":[]}],"paths":{"/api/v1/inspect":{"post":{"summary":"inspect data within your organization","parameters":[{"name":"X-Organization-ID","in":"header","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":100}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"csv":{"type":"string"},"format":{"enum":["csv","json","xlsx"]},"json":{"type":["array","string"]},"base64":{"type":"string","description":"XLSX workbook bytes encoded as base64"},"sheetName":{"type":"string"},"templateId":{"type":"string"},"template":{"type":"object","description":"Customer-supplied versioned field specification"},"headerRow":{"type":"integer","minimum":1},"mapping":{"type":"object"},"emailDomain":{"type":"string"},"approveEmailRepairs":{"type":"boolean","default":false},"authorizedSensitiveProcessing":{"type":"boolean","default":false},"background":{"type":"boolean","default":false}}}}}},"responses":{"200":{"description":"Result or inspection report"},"202":{"description":"Durable job accepted; poll statusUrl"},"401":{"description":"Supabase session or linked ChatGPT identity required"},"403":{"description":"Organization membership required"},"413":{"description":"Configured file limit exceeded"},"422":{"description":"Sensitive processing confirmation required"},"429":{"description":"Monthly preparation allowance reached"}}}},"/api/v1/prepare":{"post":{"summary":"prepare data within your organization","parameters":[{"name":"X-Organization-ID","in":"header","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":100}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"csv":{"type":"string"},"format":{"enum":["csv","json","xlsx"]},"json":{"type":["array","string"]},"base64":{"type":"string","description":"XLSX workbook bytes encoded as base64"},"sheetName":{"type":"string"},"templateId":{"type":"string"},"template":{"type":"object","description":"Customer-supplied versioned field specification"},"headerRow":{"type":"integer","minimum":1},"mapping":{"type":"object"},"emailDomain":{"type":"string"},"approveEmailRepairs":{"type":"boolean","default":false},"authorizedSensitiveProcessing":{"type":"boolean","default":false},"background":{"type":"boolean","default":false}}}}}},"responses":{"200":{"description":"Result or inspection report"},"202":{"description":"Durable job accepted; poll statusUrl"},"401":{"description":"Supabase session or linked ChatGPT identity required"},"403":{"description":"Organization membership required"},"413":{"description":"Configured file limit exceeded"},"422":{"description":"Sensitive processing confirmation required"},"429":{"description":"Monthly preparation allowance reached"}}}},"/api/templates":{"get":{"summary":"Get built-in and tenant templates","responses":{"200":{"description":"Versioned templates"}}}},"/api/orgs":{"get":{"summary":"List organizations for the authenticated user","responses":{"200":{"description":"Accessible organizations"}}}},"/api/v1/analyze":{"post":{"summary":"analyze data within your organization","parameters":[{"name":"X-Organization-ID","in":"header","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":100}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"csv":{"type":"string"},"format":{"enum":["csv","json","xlsx"]},"json":{"type":["array","string"]},"base64":{"type":"string","description":"XLSX workbook bytes encoded as base64"},"sheetName":{"type":"string"},"templateId":{"type":"string"},"template":{"type":"object","description":"Customer-supplied versioned field specification"},"headerRow":{"type":"integer","minimum":1},"mapping":{"type":"object"},"emailDomain":{"type":"string"},"approveEmailRepairs":{"type":"boolean","default":false},"authorizedSensitiveProcessing":{"type":"boolean","default":false},"background":{"type":"boolean","default":false}}}}}},"responses":{"200":{"description":"Result or inspection report"},"202":{"description":"Durable job accepted; poll statusUrl"},"401":{"description":"Supabase session or linked ChatGPT identity required"},"403":{"description":"Organization membership required"},"413":{"description":"Configured file limit exceeded"},"422":{"description":"Sensitive processing confirmation required"},"429":{"description":"Monthly preparation allowance reached"}}}},"/api/v1/validate":{"post":{"summary":"validate data within your organization","parameters":[{"name":"X-Organization-ID","in":"header","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":100}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"csv":{"type":"string"},"format":{"enum":["csv","json","xlsx"]},"json":{"type":["array","string"]},"base64":{"type":"string","description":"XLSX workbook bytes encoded as base64"},"sheetName":{"type":"string"},"templateId":{"type":"string"},"template":{"type":"object","description":"Customer-supplied versioned field specification"},"headerRow":{"type":"integer","minimum":1},"mapping":{"type":"object"},"emailDomain":{"type":"string"},"approveEmailRepairs":{"type":"boolean","default":false},"authorizedSensitiveProcessing":{"type":"boolean","default":false},"background":{"type":"boolean","default":false}}}}}},"responses":{"200":{"description":"Result or inspection report"},"202":{"description":"Durable job accepted; poll statusUrl"},"401":{"description":"Supabase session or linked ChatGPT identity required"},"403":{"description":"Organization membership required"},"413":{"description":"Configured file limit exceeded"},"422":{"description":"Sensitive processing confirmation required"},"429":{"description":"Monthly preparation allowance reached"}}}},"/api/v1/workbook":{"post":{"summary":"workbook data within your organization","parameters":[{"name":"X-Organization-ID","in":"header","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":100}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"csv":{"type":"string"},"format":{"enum":["csv","json","xlsx"]},"json":{"type":["array","string"]},"base64":{"type":"string","description":"XLSX workbook bytes encoded as base64"},"sheetName":{"type":"string"},"templateId":{"type":"string"},"template":{"type":"object","description":"Customer-supplied versioned field specification"},"headerRow":{"type":"integer","minimum":1},"mapping":{"type":"object"},"emailDomain":{"type":"string"},"approveEmailRepairs":{"type":"boolean","default":false},"authorizedSensitiveProcessing":{"type":"boolean","default":false},"background":{"type":"boolean","default":false}}}}}},"responses":{"200":{"description":"Result or inspection report"},"202":{"description":"Durable job accepted; poll statusUrl"},"401":{"description":"Supabase session or linked ChatGPT identity required"},"403":{"description":"Organization membership required"},"413":{"description":"Configured file limit exceeded"},"422":{"description":"Sensitive processing confirmation required"},"429":{"description":"Monthly preparation allowance reached"}}}},"/api/queue/{jobId}":{"get":{"summary":"Read durable job status","parameters":[{"name":"jobId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-Organization-ID","in":"header","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Job status, progress, attempts and expiration"}}}},"/api/queue/{jobId}/result":{"get":{"summary":"Read completed job report before its 24-hour expiration","parameters":[{"name":"jobId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-Organization-ID","in":"header","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Prepared output and reports"},"410":{"description":"Files expired"}}}},"/api/settings":{"get":{"summary":"Read organization limits and allowance","responses":{"200":{"description":"Organization limits"}}},"post":{"summary":"Owner-only update of file size, row and background thresholds","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["maxBytes","maxRows","syncRows"],"properties":{"maxBytes":{"type":"integer"},"maxRows":{"type":"integer"},"syncRows":{"type":"integer"}}}}}},"responses":{"200":{"description":"Saved limits"}}}}}}