Automate File Transfers

Automate recurring transfers based on schedules or triggers. Automation is managed through standard CRUD operations on the automations resource.

PurposeMethod · Path
Create automationPOST /api/automations
List automationsGET /api/automations
Get detailsGET /api/automations/{automationId}
Get details (progress · OS)GET /api/automations/{automationId}/details
Get execution logsGET /api/automations/{automationId}/executions
UpdatePATCH /api/automations/{automationId}
DeleteDELETE /api/automations/{automationId}
Pause/ResumePOST /api/automations/{automationId}/pause
Get next schedulesGET /api/automation-details/{detailId}/next-schedules

Creation example:

bash
curl -X POST https://app.innorix.com/api/automations \
  -H "Authorization: Bearer <ACCESS_TOKEN>" \
  -H "x-workspace-id: <WORKSPACE_ID>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Nightly backup",
    "transferType": "scheduled",
    "timezone": "Asia/Seoul",
    "schedules": [
      {
        "type": "day",
        "hour": "02",
        "minute": "00",
        "startDate": "2026-01-01T00:00:00.000Z",
        "endDate": "2026-12-31T00:00:00.000Z"
      }
    ],
    "details": [
      {
        "sourceItem": [ "D:/Projects/data/exported_users.csv" ],
        "targetPath": "D:/Backup/Daily_Reports",
        "senderId": "user123",
        "receiverId": "backup_sys_001",
        "step": 1,
        "fileCount": 1,
        "folderCount": 0,
        "sizeCount": 1000
      }
    ]
  }'

Response:

json
{
  "status_code": 200,
  "message": "success",
  "data": { "automationId": "auto_301", "status": "active" }
}

UpdatePATCH /api/automations/{automationId}

bash
curl -X PATCH https://app.innorix.com/api/automations/auto_301 \
  -H "Authorization: Bearer <ACCESS_TOKEN>" \
  -H "x-workspace-id: <WORKSPACE_ID>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Nightly backup (updated)",
    "timezone": "Asia/Seoul",
    "schedules": [
      { "type": "day", "hour": "03", "minute": "30" }
    ]
  }'

Pause/ResumePOST /api/automations/{automationId}/pause

Pause or resume a specific automation. Set pause to true to pause it and false to resume it.

bash
curl -X POST https://app.innorix.com/api/automations/auto_301/pause \
  -H "Authorization: Bearer <ACCESS_TOKEN>" \
  -H "x-workspace-id: <WORKSPACE_ID>" \
  -H "Content-Type: application/json" \
  -d '{ "pause": true }'

Get details (progress · OS type)GET /api/automations/{automationId}/details

Retrieve transfer progress together with the device OS type.

ParameterTypeDescription
pageintegerPage number
sizeintegerItems per page

Get next schedulesGET /api/automation-details/{detailId}/next-schedules

Retrieve the next execution time for the automation detail.

bash
curl "https://app.innorix.com/api/automation-details/D1234-5678/next-schedules" \
  -H "Authorization: Bearer <ACCESS_TOKEN>" \
  -H "x-workspace-id: <WORKSPACE_ID>"

Get execution logsGET /api/automations/{automationId}/executions

Retrieve execution logs for a specific automation.

bash
curl "https://app.innorix.com/api/automations/auto_301/executions" \
  -H "Authorization: Bearer <ACCESS_TOKEN>" \
  -H "x-workspace-id: <WORKSPACE_ID>"

Command Automation (URL Request Trigger)

Trigger an automation through an external URL request. First issue a trigger code and, if required, a command-specific API key. Then create the command automation using that code and execute it externally by calling https://app.innorix.com/command/{code}.

PurposeMethod · Path
Issue trigger codePOST /api/command/generate-code
Issue command-specific API keyGET /api/command/generate-api-key
Execute external triggerGET /command/{code} or POST /command/{code}

Issue trigger codePOST /api/command/generate-code

Issues an opaque code that identifies the command automation. There is no request body, and authentication uses a Bearer access token. Append the returned code to the trigger URL.

bash
curl -X POST https://app.innorix.com/api/command/generate-code \
  -H "Authorization: Bearer <ACCESS_TOKEN>" \
  -H "x-workspace-id: <WORKSPACE_ID>"

Issue command-specific API keyGET /api/command/generate-api-key

Issues a command-specific key (CommandApiKey) used to authenticate external triggers. This is separate from the general user API key issued through POST /api/auth/api-keys. Send it in the x-api-key header when triggering the automation.

bash
curl "https://app.innorix.com/api/command/generate-api-key" \
  -H "Authorization: Bearer <ACCESS_TOKEN>" \
  -H "x-workspace-id: <WORKSPACE_ID>"

Execute external triggerGET /command/{code} · POST /command/{code}

{code} specifies the command automation to execute. GET and POST behave identically and have no request body. This host differs from the /api base URL (there is no /api in the path). Required credentials depend on the automation's authType.

authTypeRequired credentials
0 (none)None — executes with a valid code only
1 (api_key)Command-specific API key in the x-api-key header
2 (bearer)Authorization: Bearer <token>

Missing or invalid credentials, or an unknown code, return 401. If the automation schedule is not in the RUNNING state, the request returns 400.

bash
# authType=1 (api_key) example
curl -X POST "https://app.innorix.com/command/<CODE>" \
  -H "x-api-key: <COMMAND_API_KEY>"