Snapshots
Due to the nature of the platform and the way DigitalOcean handles snapshots DigitalOcean is handlered different
List Snapshots #
URL Parameters
string provider (optional)
Filter by provider. Must be one of the following: aws, aws_lightsail, exoscale, hetzner, gcp, upcloud, scaleway, vultr.
string status (optional)
Filter by snapshot status. Must be one of the following: pre_request, in_progress, expired, failed, completed.
object tags (optional)
Filter by specific tags. Options are specified as booleans: manual, hourly, daily, weekly, monthly.
string sort (optional)
Parameter to sort by. Must be one of the following: id, name, size, started_at, completed_at. Default direction is ascending, to request a descending order you can prefix the parameter value with a dash: sort=-size.
datetime started_since (optional)
Filter snapshots that have been started after the given date time.
datetime completed_since (optional)
Filter snapshots that have been completed after the given date time.
integer page_size (optional)
Amount of results to display per page. Must be betwen 15 and 100.
GET /v1/snapshots
curl https://api.snapshooter.com/v1/snapshots \ -X GET \ --header 'Authorization: Bearer API_TOKEN_HERE' \
HTTP/2 200{ "data": [ { "id": 1, "name": "ut", "status": "expired", "size": "255.89 MB", "tags": { "manual": 0, "hourly": 0, "daily": 1, "weekly": 0, "monthly": 1 }, "started_at": "2022-06-15T15:00:55.000000Z", "completed_at": "2022-06-15T15:05:55.000000Z", "credentials": { "id": 1, "name": "Shawna Botsford", "expires_at": null, "created_at": "2022-06-15T15:10:55.000000Z", "updated_at": "2022-06-15T15:10:55.000000Z" }, "provider": { "name": "aws", "pretty_name": "AWS" }, "resource": { "id": 1, "type": "disk", "backups_activated": false, "last_known_ip": "44.234.148.198", "last_synced_at": "2022-06-15 15:10:55" } }, { "id": 2, "name": "cum", "status": "pre_request", "size": "45.69 MB", "tags": { "manual": 0, "hourly": 0, "daily": 1, "weekly": 1, "monthly": 1 }, "started_at": "2022-06-15T15:00:55.000000Z", "completed_at": null, "credentials": { "id": 2, "name": "Durward Towne", "expires_at": null, "created_at": "2022-06-15T15:10:55.000000Z", "updated_at": "2022-06-15T15:10:55.000000Z" }, "provider": { "name": "gcp", "pretty_name": "GCP" }, "resource": { "id": 2, "type": "disk", "backups_activated": false, "last_known_ip": "11.58.91.94", "last_synced_at": "2022-06-15 15:10:55" } }, { "id": 3, "name": "minus", "status": "completed", "size": "331 bytes", "tags": { "manual": 0, "hourly": 0, "daily": 1, "weekly": 1, "monthly": 0 }, "started_at": "2022-06-15T15:00:55.000000Z", "completed_at": "2022-06-15T15:05:55.000000Z", "credentials": { "id": 3, "name": "Maria Waelchi", "expires_at": null, "created_at": "2022-06-15T15:10:55.000000Z", "updated_at": "2022-06-15T15:10:55.000000Z" }, "provider": { "name": "gcp", "pretty_name": "GCP" }, "resource": { "id": 3, "type": "server", "backups_activated": false, "last_known_ip": "229.61.103.106", "last_synced_at": "2022-06-15 15:10:55" } }, { "id": 4, "name": "culpa", "status": "delete-request", "size": "6.90 KB", "tags": { "manual": 0, "hourly": 1, "daily": 1, "weekly": 1, "monthly": 1 }, "started_at": "2022-06-15T15:00:55.000000Z", "completed_at": null, "credentials": { "id": 4, "name": "Ahmad Mayert DDS", "expires_at": null, "created_at": "2022-06-15T15:10:55.000000Z", "updated_at": "2022-06-15T15:10:55.000000Z" }, "provider": { "name": "aws_lightsail", "pretty_name": "AWS Lightsail" }, "resource": { "id": 4, "type": "server", "backups_activated": false, "last_known_ip": "91.154.194.208", "last_synced_at": "2022-06-15 15:10:55" } }, { "id": 5, "name": "ex", "status": "expired", "size": "28.12 KB", "tags": { "manual": 1, "hourly": 1, "daily": 1, "weekly": 0, "monthly": 1 }, "started_at": "2022-06-15T15:00:55.000000Z", "completed_at": "2022-06-15T15:05:55.000000Z", "credentials": { "id": 5, "name": "Rossie Kunze PhD", "expires_at": null, "created_at": "2022-06-15T15:10:55.000000Z", "updated_at": "2022-06-15T15:10:55.000000Z" }, "provider": { "name": "hetzner", "pretty_name": "Hetzner" }, "resource": { "id": 5, "type": "disk", "backups_activated": false, "last_known_ip": "89.239.118.84", "last_synced_at": "2022-06-15 15:10:55" } }, { "id": 6, "name": "reiciendis", "status": "failed", "fail_reason": "et", "size": "55 bytes", "tags": { "manual": 1, "hourly": 1, "daily": 0, "weekly": 1, "monthly": 1 }, "started_at": "2022-06-15T15:00:55.000000Z", "completed_at": null, "credentials": { "id": 6, "name": "Eugenia Bartell", "expires_at": null, "created_at": "2022-06-15T15:10:55.000000Z", "updated_at": "2022-06-15T15:10:55.000000Z" }, "provider": { "name": "vultr", "pretty_name": "Vultr" }, "resource": { "id": 6, "type": "server", "backups_activated": false, "last_known_ip": "108.133.185.3", "last_synced_at": "2022-06-15 15:10:55" } }, { "id": 7, "name": "eos", "status": "pre_request", "size": "76.10 MB", "tags": { "manual": 0, "hourly": 1, "daily": 0, "weekly": 0, "monthly": 0 }, "started_at": "2022-06-15T15:00:55.000000Z", "completed_at": null, "credentials": { "id": 7, "name": "Juston Deckow", "expires_at": null, "created_at": "2022-06-15T15:10:55.000000Z", "updated_at": "2022-06-15T15:10:55.000000Z" }, "provider": { "name": "upcloud", "pretty_name": "UpCloud" }, "resource": { "id": 7, "type": "server", "backups_activated": true, "last_known_ip": "95.241.30.81", "last_synced_at": "2022-06-15 15:10:55" } }, { "id": 8, "name": "et", "status": "in-progress", "size": "7.37 MB", "tags": { "manual": 1, "hourly": 0, "daily": 0, "weekly": 0, "monthly": 1 }, "started_at": "2022-06-15T15:00:55.000000Z", "completed_at": null, "credentials": { "id": 8, "name": "Prof. Ronaldo Durgan", "expires_at": null, "created_at": "2022-06-15T15:10:55.000000Z", "updated_at": "2022-06-15T15:10:55.000000Z" }, "provider": { "name": "exoscale", "pretty_name": "Exoscale" }, "resource": { "id": 8, "type": "disk", "backups_activated": false, "last_known_ip": "249.233.173.250", "last_synced_at": "2022-06-15 15:10:55" } }, { "id": 9, "name": "aliquam", "status": "in-progress", "size": "777.55 MB", "tags": { "manual": 1, "hourly": 1, "daily": 1, "weekly": 1, "monthly": 1 }, "started_at": "2022-06-15T15:00:55.000000Z", "completed_at": null, "credentials": { "id": 9, "name": "Sammie Pacocha", "expires_at": null, "created_at": "2022-06-15T15:10:55.000000Z", "updated_at": "2022-06-15T15:10:55.000000Z" }, "provider": { "name": "upcloud", "pretty_name": "UpCloud" }, "resource": { "id": 9, "type": "disk", "backups_activated": true, "last_known_ip": "100.87.208.87", "last_synced_at": "2022-06-15 15:10:55" } }, { "id": 10, "name": "consequatur", "status": "completed", "size": "201.84 MB", "tags": { "manual": 0, "hourly": 1, "daily": 0, "weekly": 1, "monthly": 0 }, "started_at": "2022-06-15T15:00:55.000000Z", "completed_at": "2022-06-15T15:05:55.000000Z", "credentials": { "id": 10, "name": "Loraine Lehner", "expires_at": null, "created_at": "2022-06-15T15:10:55.000000Z", "updated_at": "2022-06-15T15:10:55.000000Z" }, "provider": { "name": "exoscale", "pretty_name": "Exoscale" }, "resource": { "id": 10, "type": "disk", "backups_activated": false, "last_known_ip": "87.212.161.10", "last_synced_at": "2022-06-15 15:10:55" } } ], "links": {}, "meta": {}}
Show Snapshot #
URL Parameters
This endpoint does not accept any parametersGET /v1/snapshots/{snapshot_id}
curl https://api.snapshooter.com/v1/snapshots/{snapshot_id} \ -X GET \ --header 'Authorization: Bearer API_TOKEN_HERE'
HTTP/2 200{ "data": { "id": 1, "name": "nobis", "status": "delete-request", "size": "284 bytes", "tags": { "manual": 0, "hourly": 0, "daily": 1, "weekly": 0, "monthly": 1 }, "started_at": "2022-06-15T15:07:22.000000Z", "completed_at": null, "credentials": { "id": 1, "name": "Chaim Auer", "expires_at": null, "created_at": "2022-06-15T15:17:22.000000Z", "updated_at": "2022-06-15T15:17:22.000000Z" }, "provider": { "name": "upcloud", "pretty_name": "UpCloud" }, "resource": { "id": 1, "type": "disk", "backups_activated": false, "last_known_ip": "96.119.218.106", "last_synced_at": "2022-06-15 15:17:22" } }}
Errors
Delete Snapshot #
Parameters
This endpoint does not accept any parametersDELETE /v1/snapshots/{snapshot_id}
curl https://api.snapshooter.com/v1/snapshots/{snapshot_id} \ -X DELETE \ --header 'Authorization: Bearer API_TOKEN_HERE'
HTTP/2 204//Empty Response Body
Errors
Accounts
Connect Account #
Parameters
string name
The name of your account
string provider
Your account provider. Must be one of the following: aws, aws_lightsail, exoscale, hetzner, gcp, upcloud, scaleway, vultr.
array credentials
Array of credentials required for your provider.
string credentials.key
Required by: aws, aws_lightsail, exoscale, gcp, scaleway and vultr.
string credentials.secret
Required by: aws, aws_lightsail, exoscale, hetzner and scaleway.
string credentials.region
Required by: aws, aws_lightsail and scaleway.
string credentials.zone
Required by: gcp.
string credentials.username
Required by: upcloud.
string credentials.password
Required by: upcloud.
POST /v1/snapshots/accounts
curl https://api.snapshooter.com/v1/snapshots/accounts \ -X POST \ --header 'Authorization: Bearer API_TOKEN_HERE' \
HTTP/2 201{ "data": { "id": 1, "name": "My aws account", "expires_at": null, "created_at": "2022-06-08 12:47:00", "updated_at": "2022-06-08 12:47:00" }}
Examples
curl -X POST https://api.snapshooter.com/v1/snapshots/accounts \-H "Content-Type: application/json" \-H "Accept: application/json" \--data-binary @- <<DATA{ "name": "Demo AWS", "provider": "aws", "credentials": { "key": "<Access Key>", "secret": "<Secret Key>", "region": "us-east-1" }}DATA
curl -X POST https://api.snapshooter.com/v1/snapshots/accounts \-H "Content-Type: application/json" \-H "Accept: application/json" \--data-binary @- <<DATA{ "name": "Demo AWS Lightsail", "provider": "aws_lightsail", "credentials": { "key": "<Access Key>", "secret": "<Secret Key>", "region": "us-east-2" }}DATA
curl -X POST https://api.snapshooter.com/v1/snapshots/accounts \-H "Content-Type: application/json" \-H "Accept: application/json" \--data-binary @- <<DATA{ "name": "Demo Exoscale", "provider": "exoscale", "credentials": { "key": "<Access Key>", "secret": "<Secret Key>" }}DATA
curl -X POST https://api.snapshooter.com/v1/snapshots/accounts \-H "Content-Type: application/json" \-H "Accept: application/json" \--data-binary @- <<DATA{ "name": "Demo GCP", "provider": "gcp", "credentials": { "key": "<Access Key>", "zone": "europe-west4-b" }}DATA
curl -X POST https://api.snapshooter.com/v1/snapshots/accounts \-H "Content-Type: application/json" \-H "Accept: application/json" \--data-binary @- <<DATA{ "name": "Demo Hetzner", "provider": "hetzner", "credentials": { "secret": "<Secret Key>" }}DATA
curl -X POST https://api.snapshooter.com/v1/snapshots/accounts \-H "Content-Type: application/json" \-H "Accept: application/json" \--data-binary @- <<DATA{ "name": "Demo Scaleway", "provider": "scaleway", "credentials": { "key": "<Access Key>", "secret": "<Secret Key>", "region": "pl-waw-1" }}DATA
curl -X POST https://api.snapshooter.com/v1/snapshots/accounts \-H "Content-Type: application/json" \-H "Accept: application/json" \--data-binary @- <<DATA{ "name": "Demo Upcloud", "provider": "upcloud", "credentials": { "username": "snapshooter-demo", "password": "SnapshooterRocks!" }}DATA
curl -X POST https://api.snapshooter.com/v1/snapshots/accounts \-H "Content-Type: application/json" \-H "Accept: application/json" \--data-binary @- <<DATA{ "name": "Demo ", "provider": "", "credentials": { "key": "<Access Key>" }}DATA
Errors
List Connected Accounts #
URL Parameters
string provider (optional)
Account provider you want to filter by. Must be one of the following: aws, aws_lightsail, exoscale, hetzner, gcp, upcloud, scaleway, vultr.
string sort (optional)
Parameter to sort by. Must be one of the following: id, name, expires_at, created_at, updated_at. Default direction is ascending, to request a descending order you can prefix the parameter value with a dash: sort=-created_at.
datetime modified_since (optional)
Filter snapshot credentials that have only been modified after the given date time.
integer page_size (optional)
Amount of results to display per page. Must be betwen 15 and 100.
GET /v1/snapshots/accounts
curl https://api.snapshooter.com/v1/snapshots/accounts \ -X GET \ --header 'Authorization: Bearer API_TOKEN_HERE' \
HTTP/2 200{ "data": [ { "id": 1, "name": "Snapshooter Production Server", "expires_at": null, "created_at": "2022-06-08 12:50:00", "updated_at": "2022-06-08 12:50:00", "provider": { "name": "AWS", "pretty_name": "AWS" } } ]}
Errors
Update Account #
Parameters
string name (optional)
The name of your account
string provider (optional)
Your account provider. Must be one of the following: aws, aws_lightsail, exoscale, hetzner, gcp, upcloud, scaleway, vultr.
array credentials (optional)
Array of credentials required for your provider.
string credentials.key (optional)
Required by: aws, aws_lightsail, exoscale, gcp, scaleway and vultr.
string credentials.secret (optional)
Required by: aws, aws_lightsail, exoscale, hetzner and scaleway.
string credentials.region (optional)
Required by: aws, aws_lightsail and scaleway.
string credentials.zone (optional)
Required by: gcp.
string credentials.username (optional)
Required by: upcloud.
string credentials.password (optional)
Required by: upcloud.
PATCH /v1/snapshots/accounts/{account_id}
curl https://api.snapshooter.com/v1/snapshots/accounts/{account_id} \ -X PATCH \ --header 'Authorization: Bearer API_TOKEN_HERE' \
HTTP/2 204//Empty Response Body
Examples
curl -X POST https://api.snapshooter.com/v1/snapshots/accounts/{account_id} \-H "Content-Type: application/json" \-H "Accept: application/json" \--data-binary @- <<DATA{ "name": "Production Account"}DATA
curl -X POST https://api.snapshooter.com/v1/snapshots/accounts/{account_id} \-H "Content-Type: application/json" \-H "Accept: application/json" \--data-binary @- <<DATA{ "credentials": { "key": "<New Access Key>", "secret": "<New Secret Key>", "region": "<Same Region>" }}DATA
Errors
Disconnect Account #
Parameters
This endpoint does not accept any parametersDELETE /v1/snapshots/accounts/{account_id}
curl https://api.snapshooter.com/v1/snapshots/accounts/{account_id} \ -X DELETE \ --header 'Authorization: Bearer API_TOKEN_HERE'
HTTP/2 204//Empty Response Body
Errors
Sync Account #
Parameters
This endpoint does not accept any parametersPATCH /v1/snapshots/accounts/{account_id}/sync
curl https://api.snapshooter.com/v1/snapshots/accounts/{account_id}/sync \ -X PATCH \ --header 'Authorization: Bearer API_TOKEN_HERE'
HTTP/2 204//Empty Response Body
Errors
Resources
List Snapshot Resources #
URL Parameters
string provider (optional)
Filter resources by provider. Must be one of the following: aws, aws_lightsail, exoscale, hetzner, gcp, upcloud, scaleway, vultr.
string sort (optional)
Parameter to sort by. Must be one of the following: id, last_synced_at. Default direction is ascending, to request a descending order you can prefix the parameter value with a dash: sort=-last_synced_at.
datetime modified_since (optional)
Filter snapshot resources that have only been modified after the given date time.
integer page_size (optional)
Amount of results to display per page. Must be betwen 15 and 100.
GET /v1/snapshots/resources
curl https://api.snapshooter.com/v1/snapshots/resources \ -X GET \ --header 'Authorization: Bearer API_TOKEN_HERE' \
HTTP/2 200{ "data": [ { "id": 1, "type": "disk", "backups_activated": false, "last_known_ip": "76.108.122.184", "last_synced_at": "2022-06-15 16:59:14", "credentials": { "id": 1, "name": "Mathilde Brekke", "expires_at": null, "created_at": "2022-06-15T16:59:14.000000Z", "updated_at": "2022-06-15T16:59:14.000000Z" }, "provider": { "name": "upcloud", "pretty_name": "UpCloud" } }, { "id": 2, "type": "server", "backups_activated": true, "last_known_ip": "177.65.86.107", "last_synced_at": "2022-06-15 16:59:14", "credentials": { "id": 2, "name": "Golda Shields DDS", "expires_at": null, "created_at": "2022-06-15T16:59:14.000000Z", "updated_at": "2022-06-15T16:59:14.000000Z" }, "provider": { "name": "exoscale", "pretty_name": "Exoscale" } }, { "id": 3, "type": "server", "backups_activated": true, "last_known_ip": "173.62.174.75", "last_synced_at": "2022-06-15 16:59:14", "credentials": { "id": 3, "name": "Dr. Salvatore Carter V", "expires_at": null, "created_at": "2022-06-15T16:59:14.000000Z", "updated_at": "2022-06-15T16:59:14.000000Z" }, "provider": { "name": "gcp", "pretty_name": "GCP" } }, { "id": 4, "type": "server", "backups_activated": true, "last_known_ip": "168.24.64.86", "last_synced_at": "2022-06-15 16:59:14", "credentials": { "id": 4, "name": "Oren McClure III", "expires_at": null, "created_at": "2022-06-15T16:59:14.000000Z", "updated_at": "2022-06-15T16:59:14.000000Z" }, "provider": { "name": "vultr", "pretty_name": "Vultr" } }, { "id": 5, "type": "disk", "backups_activated": true, "last_known_ip": "216.37.234.122", "last_synced_at": "2022-06-15 16:59:14", "credentials": { "id": 5, "name": "Moses Moen V", "expires_at": null, "created_at": "2022-06-15T16:59:14.000000Z", "updated_at": "2022-06-15T16:59:14.000000Z" }, "provider": { "name": "scaleway", "pretty_name": "Scaleway" } }, { "id": 6, "type": "server", "backups_activated": true, "last_known_ip": "254.213.160.43", "last_synced_at": "2022-06-15 16:59:14", "credentials": { "id": 6, "name": "Mr. Lukas Veum", "expires_at": null, "created_at": "2022-06-15T16:59:14.000000Z", "updated_at": "2022-06-15T16:59:14.000000Z" }, "provider": { "name": "vultr", "pretty_name": "Vultr" } }, { "id": 7, "type": "server", "backups_activated": false, "last_known_ip": "181.154.175.254", "last_synced_at": "2022-06-15 16:59:14", "credentials": { "id": 7, "name": "Oceane Brown", "expires_at": null, "created_at": "2022-06-15T16:59:14.000000Z", "updated_at": "2022-06-15T16:59:14.000000Z" }, "provider": { "name": "aws", "pretty_name": "AWS" } }, { "id": 8, "type": "disk", "backups_activated": true, "last_known_ip": "211.211.198.20", "last_synced_at": "2022-06-15 16:59:14", "credentials": { "id": 8, "name": "Tevin Trantow I", "expires_at": null, "created_at": "2022-06-15T16:59:14.000000Z", "updated_at": "2022-06-15T16:59:14.000000Z" }, "provider": { "name": "scaleway", "pretty_name": "Scaleway" } }, { "id": 9, "type": "server", "backups_activated": true, "last_known_ip": "118.203.243.1", "last_synced_at": "2022-06-15 16:59:14", "credentials": { "id": 9, "name": "Elza Parisian Jr.", "expires_at": null, "created_at": "2022-06-15T16:59:14.000000Z", "updated_at": "2022-06-15T16:59:14.000000Z" }, "provider": { "name": "gcp", "pretty_name": "GCP" } }, { "id": 10, "type": "disk", "backups_activated": false, "last_known_ip": "221.163.165.33", "last_synced_at": "2022-06-15 16:59:14", "credentials": { "id": 10, "name": "Ova Luettgen DVM", "expires_at": null, "created_at": "2022-06-15T16:59:14.000000Z", "updated_at": "2022-06-15T16:59:14.000000Z" }, "provider": { "name": "upcloud", "pretty_name": "UpCloud" } } ], "links": {}, "meta": {}}
Show Snapshot Resource #
URL Parameters
This endpoint does not accept any parametersGET /v1/snapshots/resources/{resource_id}
curl https://api.snapshooter.com/v1/snapshots/resources/{resource_id} \ -X GET \ --header 'Authorization: Bearer API_TOKEN_HERE'
HTTP/2 200{ "data": { "id": 1, "type": "server", "backups_activated": true, "last_known_ip": "232.74.118.182", "last_synced_at": "2022-06-15 17:04:57" }}
Errors
Activate Snapshot Resource #
Parameters
string frequency required
int retention_hourly required
int retention_daily required
int retention_weekly required
int retention_monthly required
string timezone required
int run_offset required
PATCH /v1/snapshots/resources/{resource_id}/activate
curl https://api.snapshooter.com/v1/snapshots/resources/{resource_id}/activate \ -X PATCH \ --header 'Authorization: Bearer API_TOKEN_HERE' \
HTTP/2 204//Empty Response Body
Errors
Deactivate Snapshot Resource #
Parameters
This endpoint does not accept any parametersPATCH /v1/snapshots/resources/{resource_id}/deactivate
curl https://api.snapshooter.com/v1/snapshots/resources/{resource_id}/deactivate \ -X PATCH \ --header 'Authorization: Bearer API_TOKEN_HERE'
HTTP/2 204//Empty Response Body
Errors
Clear All Resource Snapshots #
Parameters
This endpoint does not accept any parametersDELETE /v1/snapshots/resources/{resource_id}/clear
curl https://api.snapshooter.com/v1/snapshots/resources/{resource_id}/clear \ -X DELETE \ --header 'Authorization: Bearer API_TOKEN_HERE'
HTTP/2 204//Empty Response Body
Errors
Thank you for helping us improve!