{"protocol":{"version":1,"min_supported":1},"record_types":["collection","section","task","task_placement","time_entry","tag","comment","attachment","habit","habit_checkin","app_settings"],"commands":["collection.create","collection.update","collection.archive","collection.delete","collection.restore","section.create","section.update","section.delete","section.restore","task.create","task.update","task.set_status","task.delete","task.restore","task.set_assignee","task.set_tag","placement.move","placement.set_archived","tag.create","tag.update","tag.delete","tag.restore","comment.create","comment.update","comment.delete","attachment.create","attachment.update","attachment.delete","time.start","time.pause","time.resume","time.finish","time.extend","time.add_manual","time.correct","time.delete","time.distraction_add","time.distraction_update","time.distraction_remove","time.import","habit.create","habit.update","habit.set_goal","habit.delete","habit.restore","checkin.set_count","checkin.set_override","checkin.set_excused","checkin.set_note","app_settings.set"],"features":{"sync":true,"sharing":true,"sync_heads":true,"activity":true,"mcp":true,"billing":{"pilot_rate_zero":false,"payments":{"enabled":true,"provider":"stripe","test_mode":true},"exhausted_purge_days":30,"chips_validity_days":{"promotional":180},"withdrawal_days":14,"storage_limits":{"free_bytes":100000000,"purchased_bytes":10000000000,"max_attachment_bytes_free":10485760,"max_attachment_bytes_purchased":209715200},"gifting":{"enabled":true,"purchase_lock_days":7,"daily_cap_chips":500,"monthly_cap_chips":2000},"account_fee":{"chips_per_day":"0.5"}},"webhooks":true,"export_server":false,"temporal":true,"auth":{"provider":"firebase","admin_credentials":true,"proof_refresh":true,"emulator":false,"oauth":{"issuer":"https://auth.fair.ninja/","authorize_endpoint":"https://auth.fair.ninja/oauth2/auth","token_endpoint":"https://auth.fair.ninja/oauth2/token","revoke_endpoint":"https://auth.fair.ninja/oauth2/revoke","client_id":"tomato-android","redirect_uri":"ninja.fair.tomato:/oauth/callback","scope":"offline_access fn.full"},"email_confirmation":{"refresh":true,"resend":false}},"exports":true,"deletion":true,"task_labels":true,"habits":true,"apps_enabled":["tomato","habit","board","todo"],"attachment_files":true,"event_types":["task.created","task.updated","task.status_changed","task.deleted","task.restored","task.moved","collection.created","collection.updated","collection.archived","timer.started","timer.paused","timer.resumed","timer.finished","timer.extended","time_entry.added","time_entry.corrected","time_entry.deleted","time_entry.distraction_added","time_entry.distraction_updated","time_entry.distraction_removed","habit.created","habit.updated","habit.goal_changed","habit.checked_in","webhook.ping","collection.deleted","section.created","section.updated","tag.created","comment.created","comment.updated","comment.deleted","attachment.created","task.assigned","task.archived","space.member_added","space.member_removed"],"webhook_details":{"signature_scheme":"standard-webhooks-v1","max_attempts":8,"retry_window_hours":72,"max_endpoints_per_space":20,"pause_after_failures":50,"pause_hours":72,"payload_modes":["readable","meta","raw"]},"mcp_details":{"endpoint":"/mcp","profile":"2026-07-28","transport":"streamable-http","auth":"oauth","tools":25,"resource_metadata":"https://api.fair.ninja/.well-known/oauth-protected-resource/mcp"},"api_tokens":true,"realtime":{"path":"/v1/realtime","heartbeat_s":25},"device_streams":true,"pull_since":true,"time_sessions":true,"policy_acceptance":{"terms_version":"3-draft-2026-10-06","privacy_version":"3-draft-2026-10-06","terms_url":"https://fair.ninja/terms/","privacy_url":"https://fair.ninja/privacy/"}},"limits":{"push_max_commands":100,"push_max_bytes":1048576,"pull_max_records":500,"pull_max_bytes":262144,"title_max":200,"note_max":4000,"clock_ahead_ms":2592000000,"stream_op_max_age_ms":5184000000},"build":{"commit":"6f08f063ac15","built_at":"2026-11-06T16:47:31.000Z"}}