{"openapi":"3.1.0","info":{"title":"BackupPlan API","version":"0.1.0","description":"A fully local data-backup-strategy toolkit: the 3-2-1 backup rule explained, a genuine backup-plan gap analyzer, an RPO-framework backup-frequency calculator, a backup-location/media-type reference, a common-mistakes checklist, and a backup-terms glossary.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://backupplan.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/backupplan/docs"},"termsOfService":"https://connectorbay.com/backupplan/terms"},"servers":[{"url":"https://backupplan.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/backupplan/docs"},"security":[{},{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/rule_321":{"post":{"operationId":"rule_321","summary":"Explains the 3-2-1 backup rule — at least 3 total copies of your data, on at least 2 different media","description":"Explains the 3-2-1 backup rule — at least 3 total copies of your data, on at least 2 different media\n    types, with at least 1 copy offsite — and why each of the three numbers matters. Use for \"what's the 3-2-1\n    backup rule\", \"why does backup media type matter\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"rule_321Arguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/backup_gap_analysis":{"post":{"operationId":"backup_gap_analysis","summary":"Checks a real list of current backup locations against the 3-2-1 rule: counts total copies, checks","description":"Checks a real list of current backup locations against the 3-2-1 rule: counts total copies, checks\n    whether your BACKUPS themselves span at least 2 different media types (two external drives share a\n    correlated-failure risk even though the count looks fine), and checks for at least one offsite copy — each\n    independently, with prioritized recommendations for whatever's actually missing, and reports \"compliant\" when\n    nothing is. Use for \"am I following the 3-2-1 rule for my photos\", \"what am I missing in my backup setup\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"data_category":{"description":"A label for the data you're checking, e.g. 'family photos' or 'tax documents'.","minLength":1,"title":"Data Category","type":"string"},"current_backups":{"default":[],"description":"Your current backup locations for this data. Each one of: external_drive, offsite_external_drive, nas, cloud, another_computer_same_location, optical_disc, offsite_optical_disc, tape. Omit/empty if you have no backups yet (just the original).","items":{"type":"string"},"title":"Current Backups","type":"array"}},"required":["data_category"],"title":"backup_gap_analysisArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/backup_frequency_recommendation":{"post":{"operationId":"backup_frequency_recommendation","summary":"Recommends a backup interval using the Recovery Point Objective (RPO) framework from IT disaster-recovery","description":"Recommends a backup interval using the Recovery Point Objective (RPO) framework from IT disaster-recovery\n    planning: a loss-cost tier implies a maximum tolerable hours-of-loss (the RPO), a change-frequency tier\n    implies roughly how many hours of new content accumulate between changes, and the tighter of the two sets the\n    real interval — with the reasoning and both numbers shown. Use for \"how often should I back up my work files\",\n    \"do I need to back up my photos daily or is weekly fine\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"change_frequency":{"description":"How often this data changes: continuous | hourly | daily | weekly | monthly | rarely","title":"Change Frequency","type":"string"},"loss_cost":{"description":"How costly losing recent changes would be: critical | high | moderate | low","title":"Loss Cost","type":"string"}},"required":["change_frequency","loss_cost"],"title":"backup_frequency_recommendationArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/backup_location_reference":{"post":{"operationId":"backup_location_reference","summary":"Every recognized backup-location type (external drive, NAS, cloud, tape, optical, a second computer, and","description":"Every recognized backup-location type (external drive, NAS, cloud, tape, optical, a second computer, and\n    offsite variants) with its media type and whether it counts as an offsite copy. Use for \"what counts as an\n    offsite backup\", \"is a NAS a different media type than an external drive\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"backup_location_referenceArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/common_backup_mistakes":{"post":{"operationId":"common_backup_mistakes","summary":"A checklist of well-known backup mistakes and why each one matters — assuming sync is a backup, assuming","description":"A checklist of well-known backup mistakes and why each one matters — assuming sync is a backup, assuming\n    RAID is a backup, never testing a restore, no offline/air-gapped copy, no versioning, and more. Use for \"what\n    are common backup mistakes\", \"is cloud sync the same as a backup\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"common_backup_mistakesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/backup_glossary":{"post":{"operationId":"backup_glossary","summary":"Definitions of common backup and disaster-recovery terms — RPO, RTO, full/incremental/differential backup,","description":"Definitions of common backup and disaster-recovery terms — RPO, RTO, full/incremental/differential backup,\n    versioning, air gap, bit rot. Use for \"what's the difference between RPO and RTO\", \"what's an air-gapped\n    backup\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"term":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A specific term to look up; omit to list all.","title":"Term"}},"title":"backup_glossaryArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}