Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
84 changes: 84 additions & 0 deletions docs/api/create-profile-backup.api.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
---
id: create-profile-backup
title: "Create Backup"
description: "Initiates a new backup generation for the specified profile. The backup is processed asynchronously in a background queue."
sidebar_label: "Create Backup"
hide_title: true
hide_table_of_contents: true
api: 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
sidebar_class_name: "post api-method"
info_path: docs/api/tagoio-api
custom_edit_url: null
---

import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint";
import ParamsDetails from "@theme/ParamsDetails";
import RequestSchema from "@theme/RequestSchema";
import StatusCodes from "@theme/StatusCodes";
import OperationTabs from "@theme/OperationTabs";
import TabItem from "@theme/TabItem";
import Heading from "@theme/Heading";

<Heading
as={"h1"}
className={"openapi__heading"}
children={"Create Backup"}
>
</Heading>

<MethodEndpoint
method={"post"}
path={"/profile/{profile_id}/backup"}
context={"endpoint"}
>

</MethodEndpoint>



Initiates a new backup generation for the specified profile. The backup is processed asynchronously in a background queue.

**What's included in the backup:**
- User storage files (uploaded via `/files` route)
- Dashboard version history
- Analysis script versions
- All resource configurations as JSON files (devices, actions, dashboards, analysis, access management, networks, connectors, secrets, dictionaries, run users, etc.)

**Important notes:**
- Backups are rate-limited (1 per day based on your account timezone)
- Free plan users do not have access to backup features
- Backup generation may take several minutes depending on profile size
- Restoration is manual - you can write scripts to parse the JSON files and recreate resources via API, or contact TagoIO support


<Heading
id={"request"}
as={"h2"}
className={"openapi-tabs__heading"}
children={"Request"}
>
</Heading>

<ParamsDetails
parameters={[{"name":"profile_id","in":"path","required":true,"schema":{"type":"string","example":"61fac4d9a5c9f40012a5ff92"},"description":"The ID of the profile"}]}
>

</ParamsDetails>

<RequestSchema
title={"Body"}
body={undefined}
>

</RequestSchema>

<StatusCodes
id={undefined}
label={undefined}
responses={{"200":{"description":"Backup creation initiated successfully","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Backup generation has been queued and will be processed shortly. You can check the status using the list backups endpoint."},"profile":{"type":"string","example":"61fac4d9a5c9f40012a5ff92"},"backup_id":{"type":"string","example":"678abc123def456789012345"}}}}}},"403":{"description":"Forbidden - Free plan or rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"boolean","example":false},"message":{"type":"string","example":"Daily backup limit reached (1 backups per day). Please try again in 8 hours or contact support to increase your limit."}}}}}}}}
>

</StatusCodes>



74 changes: 74 additions & 0 deletions docs/api/delete-profile-backup.api.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
---
id: delete-profile-backup
title: "Delete Backup"
description: "Permanently removes a backup from storage. This action is irreversible."
sidebar_label: "Delete Backup"
hide_title: true
hide_table_of_contents: true
api: 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
sidebar_class_name: "delete api-method"
info_path: docs/api/tagoio-api
custom_edit_url: null
---

import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint";
import ParamsDetails from "@theme/ParamsDetails";
import RequestSchema from "@theme/RequestSchema";
import StatusCodes from "@theme/StatusCodes";
import OperationTabs from "@theme/OperationTabs";
import TabItem from "@theme/TabItem";
import Heading from "@theme/Heading";

<Heading
as={"h1"}
className={"openapi__heading"}
children={"Delete Backup"}
>
</Heading>

<MethodEndpoint
method={"delete"}
path={"/profile/{profile_id}/backup/{backup_id}"}
context={"endpoint"}
>

</MethodEndpoint>



Permanently removes a backup from storage. This action is irreversible.

**Security:** This endpoint requires account password verification to prevent accidental or unauthorized deletion. If you have Two-Factor Authentication (2FA) enabled, you must also provide the OTP code.


<Heading
id={"request"}
as={"h2"}
className={"openapi-tabs__heading"}
children={"Request"}
>
</Heading>

<ParamsDetails
parameters={[{"name":"profile_id","in":"path","required":true,"schema":{"type":"string","example":"61fac4d9a5c9f40012a5ff92"},"description":"The ID of the profile"},{"name":"backup_id","in":"path","required":true,"schema":{"type":"string","example":"678abc123def456789012345"},"description":"The ID of the backup to delete"}]}
>

</ParamsDetails>

<RequestSchema
title={"Body"}
body={{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["password"],"properties":{"password":{"type":"string","description":"Your account password for verification","example":"your_account_password"},"otp_type":{"type":"string","enum":["authenticator","sms","email"],"description":"Type of OTP if 2FA is enabled (optional)","example":"authenticator"},"pin_code":{"type":"string","description":"OTP code if 2FA is enabled (optional)","example":"123456"}}},"examples":{"Without 2FA":{"value":{"password":"your_account_password"}},"With 2FA enabled":{"value":{"password":"your_account_password","otp_type":"authenticator","pin_code":"123456"}}}}}}}
>

</RequestSchema>

<StatusCodes
id={undefined}
label={undefined}
responses={{"200":{"description":"Backup deleted successfully","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"string","example":"Backup successfully removed"},"status":{"type":"boolean","example":true}}}}}},"401":{"description":"Unauthorized - Invalid password or OTP","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"boolean","example":false},"message":{"type":"string","example":"Invalid password"}}}}}},"404":{"description":"Not found - Backup does not exist","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"boolean","example":false},"message":{"type":"string","example":"Backup not found or you don't have permission to delete it."}}}}}}}}
>

</StatusCodes>



76 changes: 76 additions & 0 deletions docs/api/download-profile-backup.api.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
---
id: download-profile-backup
title: "Download Backup"
description: "Generates a secure, time-limited download URL for a specific backup. The download URL is valid for **2 hours**."
sidebar_label: "Download Backup"
hide_title: true
hide_table_of_contents: true
api: eJztWFtv2zgW/isE+9DWsORL7FwM7Czc226wgzZoEnRmkiClxSOLE4lUSSquG/i/Lw5JyVKcpp3dLtCH7Utb6/BcvnM/d9SypaGzC/qCJTdVSa/6lINJtCitUJLO6D9AgmYWDGHEQFJp6BMrCohyUQgLnHC1krlinJy//5WkSiNdCYlIRUIWjmlMzjLo0glDblkuuHvQ641Jpipter34Ul7KXu8UBQm7nvV65CwThoDkpRLSEg2fKqFRmyRRlbSkZMaslObkFjTKZKg3sYqUGm5BWlJJVtlMafEFOL4CY/CzV41wZllMjlOyVhXJ2C2Qs5WK3rDEKk3mlc1A2prps/Gb+XMCki1y4H33oqiMJSw3KE7dCg7EZkDenZ2QRHEI1hwXpdKWSYvmvJP5Ogg3ZCVsRoxltjLkY6KKMgcL/CNJmCSLLWTA40tJ+1SV6Aqh5DGnM1p/PdEqFTkEB/YpQgTGvlB8TWd3NCDG6czqCvo0UdKCtPiJlWUejBv8adDdd9QkGRQM/2XXJdAZVYs/IbGBr2d0QWvUMV5KjXpZAQZfNV+2HIzVQi7p/cj6XVV6140YEG1X0j6FzwyRoTO6VpW+Dk+uG0mbPlW2vPbSdqWCrArUmW29qTTtU1MY/Fowke+G/dm6BKJS50qRkvGbOXFh6HxPnilHx/LnHfW6EjZ9Wgp5jYHwbTDqkPl+YaPx3mS6TzebTfOrc8AHYTNVWeSC/71leQVdx3wNxk3fPXbyg/C/xqHthx24t1i0VHfaazClksarPx4O8a8uOq/atWMZKhInpnLpnFZ5vqb/RWR3I7jS+YNh1CCfWVua2WBg9mJWsC9KspWJE1UMLFuqSKhBHMd//y2aF1+ieb5UWtis+FscxztOP9EQGbGUwMnpXlM/67wWcumqSahUz7YFM5TL5xhiRnxph5esigXotrqj6cH4cH8yvC/8jciB4GsiJFmsLZia3XUlhX0cgoYeK8+1e1QsHn8ymsbD4Q4EHS0KWDLHmTxLlS6YtcCdkfC5FBqu2Te0Gg/H02g4ioYHZ6P92d5wNhzGw+Hwjx2pHzKQDttOU/JSnFke82vxYBnbCtw/OGSLZDTe45BOpvsHh0dDF9vIItGAQfqXlJ60la7TY/JQRrxgnIRCTyLiaz+RChsk42uiNBHSB0zJNCvAgjY/LkV8y2rRLZTKgXWKdcpyA5s+LcAYtny4MjcgBAOEadnQzoWYvKy0xnbuRc+w32LuI6MtUKNdoM7b7T8ixw0qod8ojTX+J4bmvsYtcye75r5VlqSqknwbFVyBhxU+C2N/YktbUexNUNoNWVzJp9YPZyXoQhgTRrwwzQkbB1Cw5W7DfXZxRyUrkHXpZyRM6D4VCFTJbNYZavx0tGP8Q1k/Slky4Udsmhylk+FwNGbTND0aY9bfmyIyIMevcI7AYhOUoJt+o9e2zvwAtR4pRo+pFfqLVU220c0VusxmCnt9qVzUOM1mdBCsGNxtMd0MPI/BXWPPZtAw61MD+rZ2iOuuTQtlpYgrE8Eoxt4ZC+XA2aWBKlq1aK6Qp18RHNMwAp+pG5B0dnHVJjhF6HzEvoJbkUAUyBosWSn+BeudJjEnbXpiM2axQFVSfKoA4cIhiHBHE5N6TyKMWEe/WIf4xD7uSD27p4aUbAk4DYQg6KgV4iADxl0f/xxtPTwF51AW8YMhiyYw5tHicI9H08R7Gn2O3n4LdqX0zfcbGh6QRy0NRDGZ+7Q7lhaWfh8x5JeGxy+ei1uylvdBSX1Kb5ltUfia+a+EKXO2fuupuqZ14Un5dHLE+Dg6HO0l0YTv70eL9GAcTYeHMF0cHbIU9hCeEC3fD094EGz4Cjw46+omyVsBIaQnqFcdA9YKuTQt27saPRYCbDQFNgUWcT7m0STZ34sOjybT6Gi8mE44mxwcjJmb5LGav99ugq9rDv+DMR71TZUDUlin5RlbquN3ZH5yvIPmkydPnpBe759qhchVBjdmYQhXSVWAtC6cer1L6U8GrR8RclPmwmJmrTKRZMEfa1U91VBfBnjNVvgJLwxJMSGXMqgVVnVDJoSLNAU3VzheZnYpI9LrtTOy15u5+0UIYK2KduL3gyrYp3BrX4L1NG667CT8pSQEtUABHYejhDneEG6kWhFmMMHQI/5rTH5X1Zavkx2CrAmlXQGdPEEBx8apdN+KJqndXYLdMpHj4odraMBVrSToulfIkOR1TIt2DdhRYi5ZvjbCeC38MWdXBRao+m3x3nn1p5p1FEWX0kXQqbfcUc1Pjsnr+kD0HpZCyUvpRvyC3SARa0Zlq9yLbXzeP+P409XaSy9x4NECk1g7tixvLlExeZkpZYAoCTU6qcpztUKJNZUhC2aAExXwWoJaalZmImF54DnDIxGidS7dPe3Uumvba2YsGSFmxEN6XqdKcwtbZVCXlu0Yh2niZQYMgRkLWpIO+7jm2uudv/8VpXz8aksefGz79HWFQyD5AD9APWSCqnme39CpMwKgTl4fdCV5BWWu1o02mDAmU1XOXSVwOqiVdIGCi15dwTvx5lu0KpiQBi+dTtvgWBTiZWDRxlnGF7NRPIyHYaJmCU7UbgRVxhbMdZa6w9drZnOk6xTFu+1I/v976090bw0t0MJnOyhzJiT2unAe8uPwRb1Z0D6ddZaMRe3pWXvGb4biqz7NcK6eXdC7O0yIc51vNvjzpwo0TrVXfXrLtEDj3YzLhQknObdUPRJCz96HVvicPLyAfMWyuuNLnIHC1Y/SPr2BdXeFwhn9B6jzwOLxH2m2BXhztenXcxNi5r+/9KpEeNNtvd/ZfdEs/wIn3NI+StvekE7enZ6hy8PFvfDjkWYr3OTYyuvqr7huD3G/3dGcyWXltmLqeeKffwNWv8A2
sidebar_class_name: "post api-method"
info_path: docs/api/tagoio-api
custom_edit_url: null
---

import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint";
import ParamsDetails from "@theme/ParamsDetails";
import RequestSchema from "@theme/RequestSchema";
import StatusCodes from "@theme/StatusCodes";
import OperationTabs from "@theme/OperationTabs";
import TabItem from "@theme/TabItem";
import Heading from "@theme/Heading";

<Heading
as={"h1"}
className={"openapi__heading"}
children={"Download Backup"}
>
</Heading>

<MethodEndpoint
method={"post"}
path={"/profile/{profile_id}/backup/{backup_id}/download"}
context={"endpoint"}
>

</MethodEndpoint>



Generates a secure, time-limited download URL for a specific backup. The download URL is valid for **2 hours**.

**Security:** This endpoint requires account password verification to prevent unauthorized access to backup data. If you have Two-Factor Authentication (2FA) enabled, you must also provide the OTP code.

**Important:** Only backups with status `completed` can be downloaded.


<Heading
id={"request"}
as={"h2"}
className={"openapi-tabs__heading"}
children={"Request"}
>
</Heading>

<ParamsDetails
parameters={[{"name":"profile_id","in":"path","required":true,"schema":{"type":"string","example":"61fac4d9a5c9f40012a5ff92"},"description":"The ID of the profile"},{"name":"backup_id","in":"path","required":true,"schema":{"type":"string","example":"678abc123def456789012345"},"description":"The ID of the backup to download"}]}
>

</ParamsDetails>

<RequestSchema
title={"Body"}
body={{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["password"],"properties":{"password":{"type":"string","description":"Your account password for verification","example":"your_account_password"},"otp_type":{"type":"string","enum":["authenticator","sms","email"],"description":"Type of OTP if 2FA is enabled (optional)","example":"authenticator"},"pin_code":{"type":"string","description":"OTP code if 2FA is enabled (optional)","example":"123456"}}},"examples":{"Without 2FA":{"value":{"password":"your_account_password"}},"With 2FA enabled":{"value":{"password":"your_account_password","otp_type":"authenticator","pin_code":"123456"}}}}}}}
>

</RequestSchema>

<StatusCodes
id={undefined}
label={undefined}
responses={{"200":{"description":"Download URL generated successfully","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","example":"https://s3.amazonaws.com/tago-io/...?X-Amz-Algorithm=...","description":"Pre-signed S3 URL for downloading the backup (valid for 2 hours)"},"size":{"type":"number","example":15728640,"description":"File size in bytes"},"size_unit":{"type":"string","example":"bytes"},"file_size_mb":{"type":"string","example":"15.00","description":"File size in megabytes (formatted)"},"expire_at":{"type":"string","example":"2025-01-07T16:30:00.000Z","description":"When the download URL expires"},"backup_id":{"type":"string","example":"678abc123def456789012345"},"created_at":{"type":"string","example":"2025-01-07T14:30:00.000Z"}}}}}},"400":{"description":"Bad request - Backup not ready or invalid parameters","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"boolean","example":false},"message":{"type":"string","example":"Backup is not ready for download. Current status: processing"}}}}}},"401":{"description":"Unauthorized - Invalid password or OTP","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"boolean","example":false},"message":{"type":"string","example":"Invalid password"}}}}}},"404":{"description":"Not found - Backup does not exist","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"boolean","example":false},"message":{"type":"string","example":"Backup not found or you don't have permission to access it."}}}}}}}}
>

</StatusCodes>



Loading