{"openapi":"3.1.0","info":{"title":"PlatPhorm Contacts public API","version":"0.5.0","description":"Public platform health and privacy metadata. Contact records remain inside the user's browser and are never available through this API."},"servers":[{"url":"https://contacts.platphormnews.com","description":"Production"}],"paths":{"/api/health":{"get":{"summary":"Read public service health","responses":{"200":{"description":"Health envelope"}}}},"/api/v1/health":{"get":{"summary":"Read versioned public service health","responses":{"200":{"description":"Health envelope"}}}},"/api/mcp":{"get":{"summary":"Read metadata-only MCP usage","responses":{"200":{"description":"MCP metadata"}}},"post":{"summary":"Use metadata-only JSON-RPC methods","description":"No method can read, mutate, import, or export browser-local contact values.","responses":{"200":{"description":"JSON-RPC response"}}}},"/api/v1/connected/publish":{"post":{"summary":"Explicitly publish one generated CSV to PlatPhorm Files or Sheets","description":"Protected opt-in transfer through data.platphormnews.com. Maximum 4 MiB. No source file or API key is retained.","security":[{"PlatPhormBearer":[]},{"PlatPhormHeader":[]}],"responses":{"201":{"description":"Durable destination receipt"},"400":{"description":"Invalid generated export metadata"},"401":{"description":"PLATPHORM_API_KEY required"},"413":{"description":"Generated export exceeds 4 MiB"},"502":{"description":"Destination did not return a durable receipt"}}}}},"components":{"securitySchemes":{"PlatPhormBearer":{"type":"http","scheme":"bearer","bearerFormat":"PLATPHORM_API_KEY"},"PlatPhormHeader":{"type":"apiKey","in":"header","name":"X-PlatPhorm-API-Key"}}}}