Skip to main content

Transfer Endpoints

This document provides detailed information about the cloud-to-cloud transfer endpoints exposed by the Amove desktop agent's Click API. Use these endpoints to list existing transfers, queue a new transfer, or cancel a running one.

This API is bound to http://localhost:29123 on a machine running the Amove desktop agent. It is not a hosted service.

Endpoints

  1. Get All Transfers
  2. Transfer
  3. Cancel Transfer

Get All Transfers

Returns the paginated list of transfers associated with the current user's account, filtered by transfer type.

  • URL: /transfer/get_all
  • Method: GET
  • Auth Required: Yes

Query Parameters

ParameterTypeDefaultDescription
tokenstringSession token
pageinteger1Starting page
pagesizeinteger50Page size
sortfieldstring"RequestDate"Field to sort by
descendingbooleantrueSort direction
typeinteger (flags)15Bitwise OR of TransferType values (see below)

The type parameter is a bitmask over TransferType:

ValueMeaning
1Transfer
2Sync
4SyncInitTransfer
8ManualTransfer

The default 15 (1 + 2 + 4 + 8) returns every transfer type.

Response

Returns a DTOCollection<Transfer>.

Transfer

Queues a new cloud-to-cloud transfer from a source cloud account/bucket/path to a destination cloud account/bucket/path.

  • URL: /transfer/transfer
  • Method: POST
  • Auth Required: Yes

Query Parameters

ParameterTypeDescription
tokenstringSession token

Request Body

{
"sourceCloudAccountId": "00000000-0000-0000-0000-000000000000",
"sourceBucket": "source-bucket",
"sourceBucketId": "",
"sourcePath": "folder/file.mov",
"sourceId": "",
"destinationCloudAccountId": "11111111-1111-1111-1111-111111111111",
"destinationBucket": "destination-bucket",
"destinationBucketId": "",
"destinationPath": "archive/folder/",
"destinationId": "",
"allowSkip": true,
"keepSourceTree": false
}
FieldTypeDescription
sourceCloudAccountIdstring (uuid)Cloud account the source objects live in
sourceBucketstringSource bucket name
sourceBucketIdstringOptional source bucket id (used by parent-style providers)
sourcePathstringPath (key prefix) of the source object or folder
sourceIdstringOptional source object id (used by parent-style providers)
destinationCloudAccountIdstring (uuid)Cloud account the destination lives in
destinationBucketstringDestination bucket name
destinationBucketIdstringOptional destination bucket id
destinationPathstringPath under which the source objects will be placed
destinationIdstringOptional destination object id
allowSkipbooleanSkip transfer when a newer version already exists at the destination
keepSourceTreebooleanPreserve the source folder tree under the destination path

Response

Returns HTTP 200 when the transfer has been queued. Progress and completion are delivered out-of-band via the WebSocket notification channel.

Cancel Transfer

Sends a cancel request to a running transfer.

  • URL: /transfer/cancel_transfer
  • Method: POST
  • Auth Required: Yes

Query Parameters

ParameterTypeDescription
tokenstringSession token

Request Body

{
"id": "00000000-0000-0000-0000-000000000000"
}
FieldTypeDescription
idstring (uuid)Transfer id to cancel

Response

Returns HTTP 200 on success.

Sample Code

Queue a Transfer

Python
import requests

response = requests.post(
"http://localhost:29123/transfer/transfer",
params={"token": "EXAMPLE_TOKEN"},
json={
"sourceCloudAccountId": "00000000-0000-0000-0000-000000000000",
"sourceBucket": "source-bucket",
"sourcePath": "folder/",
"destinationCloudAccountId": "11111111-1111-1111-1111-111111111111",
"destinationBucket": "destination-bucket",
"destinationPath": "archive/folder/",
"allowSkip": True,
"keepSourceTree": False,
},
)
print(response.status_code)
JavaScript
const res = await fetch(
"http://localhost:29123/transfer/transfer?token=EXAMPLE_TOKEN",
{
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
sourceCloudAccountId: "00000000-0000-0000-0000-000000000000",
sourceBucket: "source-bucket",
sourcePath: "folder/",
destinationCloudAccountId: "11111111-1111-1111-1111-111111111111",
destinationBucket: "destination-bucket",
destinationPath: "archive/folder/",
allowSkip: true,
keepSourceTree: false,
}),
}
);
console.log(res.status);

Cancel a Running Transfer

Python
import requests

response = requests.post(
"http://localhost:29123/transfer/cancel_transfer",
params={"token": "EXAMPLE_TOKEN"},
json={"id": "00000000-0000-0000-0000-000000000000"},
)
print(response.status_code)

For error handling, see Error Model.