# policies.biz59.net > Privacy policies, terms and other compliance documents (GDPR, UK GDPR, CCPA/CPRA ready templates) for websites and apps. Hosted, themed policy pages; markdown and JSON API; consent records; MCP server. Free. Biz59 LLC, New York. Base URL: https://policies.biz59.net/api OpenAPI: https://policies.biz59.net/api/docs ## Sign in (bots and agents) 1. POST /api/auth {"email": "you@example.com"} -> a 6-digit code is emailed. 2. POST /api/auth {"email": "you@example.com", "otp": "123456"} -> {"session_key": "pols_..."} (new emails are signed up). 3. Send "Authorization: Bearer " on every call. API keys (pol_live_..., POST /api/keys) work the same way. ## Read a policy (no key) - GET /api/public/policies/{id}.md raw markdown - GET /api/public/policies/{id} JSON with version, theme, published versions - Page for people: https://policies.biz59.net/page?pageid={id} (&theme=dark|light, &v=) ## Write policies - POST /api/projects {"name", "kind": "WEB|MOBILE|OTHER", "url"} - GET /api/templates ; POST /api/policies/from-template {"project_id", "template", "values": {"COMPANY_NAME": "..."}, "publish": true} - PUT /api/policies/{id} {"markdown", "is_active": true, "version_no": "2.0"} - POST /api/themes {"name", "bg_light", "bg_dark", "bg_image_light", "accent", "font", "width", "mode"} ## Consent - POST /api/public/consents {"policy_id", "subject", "consent_key", "action": "accept|withdraw"} - GET /api/public/consents/status?policy_id&subject&consent_key ## MCP POST https://policies.biz59.net/api/mcp (Streamable HTTP, JSON-RPC 2.0). Tools: auth, list_templates, get_template, get_public_policy, get_account, list_projects, create_project, update_project, delete_project, list_policies, get_policy, create_policy, create_policy_from_template, update_policy, delete_policy, list_themes, create_theme, update_theme, list_consents, create_api_key.