{"openapi":"3.1.0","info":{"title":"Project Formatter Agent","description":"Convert CSV, XML, or Markdown to JSON or HTML. POST /v1/format requires x402 USDC micropayment ($0.005). POST /v1/format/trial is free, no ?validate support, 32KB limit.","version":"0.1.1"},"paths":{"/health":{"get":{"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"}}}}}},"head":{"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"}}}}}}},"/v1/format":{"post":{"summary":"Format Data","operationId":"format_data_v1_format_post","parameters":[{"name":"validate","in":"query","required":false,"schema":{"type":"boolean","description":"Run a self-validation pass on the output","default":false,"title":"Validate"},"description":"Run a self-validation pass on the output"},{"name":"X-Payment-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Payment-Token"}},{"name":"X-PAYMENT","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Payment"}},{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Payment-Signature"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FormatRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FormatResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/format/trial":{"post":{"summary":"Trial — no payment required","description":"Free trial endpoint. No x402 payment required. ?validate is not supported on trial. Request body must not exceed 32KB. Use POST /v1/format for full access.","operationId":"format_trial_v1_format_trial_post","parameters":[{"name":"validate","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Validate"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FormatRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FormatResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"FormatRequest":{"properties":{"input":{"type":"string","title":"Input","description":"Raw input content to convert"},"from":{"type":"string","title":"From","description":"Source format: csv | xml | markdown"},"to":{"type":"string","title":"To","description":"Target format: json | html"}},"type":"object","required":["input","from","to"],"title":"FormatRequest"},"FormatResponse":{"properties":{"result":{"type":"string","title":"Result","description":"Converted output content"},"valid":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Valid","description":"Structural validity (only present when ?validate=true)"},"errors":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Errors","description":"Structural errors   (only present when ?validate=true and valid=false)"}},"type":"object","required":["result"],"title":"FormatResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthResponse":{"properties":{"status":{"type":"string","title":"Status"},"service":{"type":"string","title":"Service"},"version":{"type":"string","title":"Version"}},"type":"object","required":["status","service","version"],"title":"HealthResponse"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}