Background image
iProxy.online logo
Proxy cho
Tài nguyên
Công ty
Search icon
Đăng nhập
/
VI
English
Português
Русский
Español
Türkçe
Українська
Tiếng Việt
ไทย
中文
हिंदी
Show menu icon

iProxy Connection API

This is an API available using per-connection API KEY. Please generate connection API KEY using console api.

Prerequisites

Every request to the iProxy API must include the connection API KEY in Authorization header as Bearer token: curl --header 'Authorization: Bearer <connection_api_key>'
The API endpoint is: https://iproxy.online/api/cn/v1/

Connection control

1. Get connection

Endpoint: GET /api/cn/v1/
Example:
curl --request GET \
--header "Authorization: Bearer <conn_api_key>" \
--url https:/iproxy.online/api/cn/v1/
Response: 200: OK
{
  "id": "{conn_id}",
  "basic_info": {
    "name": "online connection",
    "description": "connection_description (optional)",
    "created_at": "2025-07-11T10:36:38.006Z",
    "updated_at": "2025-07-11T10:58:51.42Z",
    "server_geo": {
      "country": "pl",
      "city": "waw"
    },
    "is_onboarding": false,
    "user_id": "myOrOwnerUserId",
    "server_id": "someServerId"
  },
  "shared_users": [],
  "plan_info": {
    "active_plan": {
      "id": "nlUs1D8PKL",
      "started_at": "2025-07-11T10:55:10.913Z",
      "expires_at": "2025-08-10T10:55:10.913Z"
    }
  },
  "settings": {
    "prolongation_enabled": false,
    "dns": [],
    "telegram_change_ip_notification_enabled": false,
    "telegram_status_notification_enabled": true,
    "reboot_cron_string": "",
    "low_battery_reboot_threshold": 0,
    "no_network_reboot_timeout_seconds": 0,
    "ip_change_airplane_mode_time_seconds": 0,
    "no_network_airplane_toggle_timeout_seconds": 0,
    "tariff_notify_hours_before_expired": [],
    "no_wifi_inet_disable_wifi_timeout_seconds": 0,
    "no_wifi_connection_reboot_timeout_seconds": 0,
    "tcp_fingerprint": "",
    "ip_change_wait_unique": false,
    "ip_change_wait_unique_attempts": 0,
    "ip_change_wait_unique_lookbehind_minutes": 0,
    "ip_change_enabled": false,
    "ip_change_interval_minutes": 0,
    "macros_url": "",
    "app_restart_interval_minutes": 0,
    "connection_refresh_interval_minutes": 0
  },
  "app_data": {
    "device_info": {
      "is_root": false,
      "manufacturer": "Samsung",
      "model": "SM-A236B",
      "android_version": "14",
      "system_fingerprint": "6e1334d2",
      "system_device_id": "397ff68",
      "voice_assist_configured": true,
      "mobile_data_always_on": true,
      "owner_mode_enabled": false
    },
    "app_id": "com.iproxy.android",
    "app_version": "574",
    "app_version_patch": "1",
    "build_number": "57401",
    "agent_setup_complete": false,
    "ready_to_change_ip": true,
    "wifi_split_enabled": false,
    "last_activity_at": "2025-07-11T10:58:51.417Z",
    "installation_id": "phone-9da94533-e175-42a5-bdcb-f80b4c621117"
  }
}

2. Update connection basic info

Endpoint: POST /api/cn/v1/update-basic-info
Example:
curl --request POST \
--header "Authorization: Bearer <conn_api_key>" \
--header 'Content-Type: application/json' \
--url https:/iproxy.online/api/cn/v1/update-basic-info \
-d '{
  "name": "new_name",
  "description": "new_description"
}'
Response: 200: OK
{
    "id": "connection_id",
    "name": "new_name",
    "description": "new_description"
}

3. Update connection settings

Endpoint: POST /api/cn/v1/update-settings
Example:
curl --request POST \
--header "Authorization: Bearer <conn_api_key>" \
--header 'Content-Type: application/json' \
--url https:/iproxy.online/api/cn/v1/update-settings \
-d '{
    "prolongation_enabled": false,
    "dns": ["1.1.1.1"],
    "telegram_change_ip_notification_enabled": false,
    "telegram_status_notification_enabled": true,
    "reboot_cron_string": "30 */3 * * *",
    "low_battery_reboot_threshold": 0,
    "no_network_reboot_timeout_seconds": 0,
    "ip_change_airplane_mode_time_seconds": 0,
    "no_network_airplane_toggle_timeout_seconds": 0,
    "tariff_notify_hours_before_expired": [2, 12, 48],
    "no_wifi_inet_disable_wifi_timeout_seconds": 0,
    "no_wifi_connection_reboot_timeout_seconds": 0,
    "tcp_fingerprint": "Win10",
    "ip_change_wait_unique": false,
    "ip_change_wait_unique_attempts": 0,
    "ip_change_wait_unique_lookbehind_minutes": 0,
    "ip_change_enabled": false,
    "ip_change_interval_minutes": 0,
    "macros_url": "https:/example.com",
    "app_restart_interval_minutes": 0,
    "connection_refresh_interval_minutes": 0
}'
Quote icon
You only need to send the fields you want to update. The current values of the fields can be retrieved via a GET request.
JSON KeyTypeValidationDescription
prolongation_enabledboolEnables automatic prolongation payments.
dnslist of stringEach entry must be a valid IP address (e.g., Cloudflare ["1.1.1.1"], Google ["8.8.8.8"], or custom). Send an empty array to clear the list.Sets Global DNS.
telegram_change_ip_notification_enabledboolSends Telegram alerts when the external IP changes.
telegram_status_notification_enabledboolSends Telegram alerts for status changes.
reboot_cron_stringstringCron expression. Send an empty string to disable.Enables scheduled reboots.
low_battery_reboot_thresholdfloat0 ≤ value ≤ 95. Send 0 to disable.Reboots the device if the battery level drops below the specified percentage.
no_network_reboot_timeout_secondsint0–3600 seconds. Send 0 to disable.Reboots the device if proxies are disconnected for the specified duration.
ip_change_airplane_mode_time_secondsint0–3600 seconds. Send 0 to disable.Sets minimum time in Airplane Mode to change IP.
no_network_airplane_toggle_timeout_secondsint0–3600 seconds. Send 0 to disable.Toggles Airplane Mode if the mobile network is idle for more than the specified timeout.
tariff_notify_hours_before_expiredlist of intSend an empty array to clear all notifications.Enables payment notifications.
no_wifi_inet_disable_wifi_timeout_secondsint0–3600 seconds. Send 0 to disable.Disables Wi-Fi if no internet is detected over Wi-Fi for the specified timeout.
no_wifi_connection_reboot_timeout_secondsint0–40320 seconds (up to 7 days). Send 0 to disable.Enables automatic Wi-Fi reconnection after the specified timeout.
tcp_fingerprintstringMust be one of: none, WinXP, Win78, Win10, WinNT, Nintendo, FreeBSD, FreeBSD9, MacOS, iOS. Send an empty string to disable.Sets the device fingerprint.
ip_change_wait_uniqueboolEnables unique IP assignment based on history.
ip_change_wait_unique_attemptsint0–10. Send 0 to disable.Maximum number of attempts to acquire a unique IP.
ip_change_wait_unique_lookbehind_minutesint0–64800 minutes (up to 45 days). Send 0 to disable.IP history time window for uniqueness.
ip_change_enabledboolMaster switch for the IP change engine.
ip_change_interval_minutesint0–1439 minutes (up to 24 hours). Send 0 to disable.Minimum time between IP changes.
macros_urlstringMust be a valid URL. Send an empty string to disable.Webhook URL for MacroDroid integration.
app_restart_interval_minutesintSets the interval (in minutes) for automatic app restarts.
connection_refresh_interval_minutesintForces a connection refresh after the specified interval (in minutes).
Response: 200: OK
{
  "id": "{conn_id}",
  "prolongation_enabled": false,
  "dns": ["1.1.1.1"],
  "telegram_change_ip_notification_enabled": false,
  "telegram_status_notification_enabled": true,
  "reboot_cron_string": "30 */3 * * *",
  "low_battery_reboot_threshold": 0,
  "no_network_reboot_timeout_seconds": 0,
  "ip_change_airplane_mode_time_seconds": 0,
  "no_network_airplane_toggle_timeout_seconds": 0,
  "tariff_notify_hours_before_expired": [
    2,
    12,
    48
  ],
  "no_wifi_inet_disable_wifi_timeout_seconds": 0,
  "no_wifi_connection_reboot_timeout_seconds": 0,
  "tcp_fingerprint": "Win10",
  "ip_change_wait_unique": false,
  "ip_change_wait_unique_attempts": 0,
  "ip_change_wait_unique_lookbehind_minutes": 0,
  "ip_change_enabled": false,
  "ip_change_interval_minutes": 0,
  "macros_url": "https:/example.com",
  "app_restart_interval_minutes": 0,
  "connection_refresh_interval_minutes": 0
}

4. Modify team access

Endpoint: POST /api/cn/v1/team-access/modify
Example:
curl --request POST \
--header "Authorization: Bearer <conn_api_key>" \
--header 'Content-Type: application/json' \
--url https:/iproxy.online/api/cn/v1/team-access/modify \
-d '{
  "email": "[email protected]",
    "permissions": {
    "action_link_create": true,
    "action_link_remove": true,
    "airplane_mode_time_edit": true
  }
}'
Response: 200: OK
{
  "email": "[email protected]",
  "permissions": {
    "airplane_mode_time_edit": false,
    "authorization_pin_create": false,
    "battery_level_threshold": false,
    "connection_change_tariff": false,
    "connection_payment": false,
    "connection_remove": false,
    "description_edit": false,
    "dns_setting": false,
    "enable_unique_ip": false,
    "find_device": false,
    "fix_lte": false,
    "ip_history_view": false,
    "logs_download": false,
    "macros_url": false,
    "name_edit": false,
    "open_vpn_create": false,
    "open_vpn_view": false,
    "open_vpn_edit": false,
    "open_vpn_remove": false,
    "pof_setting": false,
    "no_network_reboot": false,
    "proxy_create": false,
    "proxy_edit": false,
    "proxy_remove": false,
    "proxy_view": false,
    "reboot_device": false,
    "repeating_ip_view": false,
    "rotation_setting": false,
    "scheduled_reboot": false,
    "sms_control": false,
    "tariff_statistic_view": false,
    "no_network_airplane_toggle_time_edit": false,
    "uptime_view": false,
    "url_change_ip_create": false,
    "url_change_ip_remove": false,
    "team_members_edit": false,
    "api_key_create": false,
    "action_link_create": true,
    "action_link_view": false,
    "action_link_remove": true,
    "basic_info_edit": false,
    "settings_edit": false,
    "connection_control": false
  }
}

5. Remove team access

Endpoint: POST /api/cn/v1/team-access/remove
Example:
curl --request POST \
--header "Authorization: Bearer <conn_api_key>" \
--header 'Content-Type: application/json' \
--url https:/iproxy.online/api/cn/v1/team-access/remove \
-d '{
  "email": "[email protected]"
}'
Response: 200: OK
{
    "email": "[email protected]"
}

6. Change connection tariff

Endpoint: POST /api/cn/v1/change-plan/{new_plan}
Example:
curl --request POST \
--header "Authorization: Bearer <conn_api_key>" \
--header 'Content-Type: application/json' \
--url https:/iproxy.online/api/cn/v1/change-plan \
-d '{
  "plan_id": "M7Fq2RKexi"
}'
Response: 200: OK
{
  "active_plan": {
    "id": "M7Fq2RKexi",
    "started_at": "2025-07-11T10:55:10.913Z",
    "expires_at": "2025-08-10T10:55:10.913Z"
  }
}

7. Get last 100 sms

Endpoint: GET /api/cn/v1/sms-history
Example:
curl --request GET \
--header "Authorization: Bearer <conn_api_key>" \
--url https:/iproxy.online/api/cn/v1/sms-history
Response: 200: OK
{
  "sms_messages": [
    {
      "id": "sms_id",
      "message": "Example message",
      "from": "Somebody",
      "from_contact": "Mike (may be empty)",
      "created_at": "2025-06-01T04:24:48Z"
    }
  ]
}

8. Command push

Endpoint: /api/console/v1/connection/{connection_id}/command-push
Example:
curl --request POST \
--url https://iproxy.online/api/console/v1/connection/{connection_id}/command-push
--header 'Authorization: Bearer <conn_api_key>'
-d '{"action":"<command_name>", "<command_name>_params": {}}'
Allowed actions:
  • refresh_fingerprint
  • refresh
  • reboot
  • changeip
  • fix_lte
  • toggle_proxy
  • find_my_device
  • debug_report
  • upgrade_app
Action with params:
  • toggle_proxy_params:
    • enabled: bool
Response: 200:
{"message": "{action} command has been sent"}

Connection API key and PIN code

1. Generate new connection PIN code

Endpoint: POST /api/cn/v1/pin-code
Example:
curl --request POST \
--header "Authorization: Bearer <conn_api_key>" \
--url https:/iproxy.online/api/cn/v1/pin-code
Response: 200: New generated PIN code
{
  "pincode": "<generated pin>",
  "expires_at": "2025-05-05T05:05:05Z"
}

expires_at is an RFC 3339 timestamp


Proxy access control

1. Create proxy access

Endpoint: POST /api/cn/v1/proxy-access
Request Body:
{
  "listen_service": "http",  // http or socks5
  "auth_type": "userpass",  // userpass or noauth
  "auth": { // optional, will be generated
    "login": "proxy_login",
    "password": "proxy_pass"
  },
  "description": "new proxy description",
  "acl_inbound_policy": "deny_except", // optional, required only if auth_type: noauth
  "acl_inbound_ips": ["127.0.0.1"],    // optional IP ACL, non-empty; required only if acl_inbound_policy is set
  "expires_at": "2026-01-01T01:01:01Z" // optional date of proxy expiry
}
expires_at is an RFC 3339 timestamp
Example:
curl --request POST \
--header "Authorization: Bearer <conn_api_key>" \
--header 'Content-Type: application/json' \
--url https://iproxy.online/api/cn/v1/proxy-access \
-d '{
"listen_service": "socks5",
"auth_type": "userpass",
"description": "new proxy description"
}'
Response: 201: A proxy access created
{
  "id": "2CiQPfoWcJ",
  "connection_id": "2W1IlyssyF",
  "description": "new proxy description",
  "listen_service": "socks5",
  "auth_type": "userpass",
  "auth": {
    "login": "username",
    "password": "superpassword"
  },
  "ip": "1.2.3.4",
  "port": 13874,
  "hostname": "x1.fxdx.in",
  "password_updated_at": "2025-07-11T18:05:18.622Z"
}

2. Update proxy access

Endpoint: POST /api/cn/v1/proxy-access/{proxy_id}/update
Request Body:
{
  "listen_service": "http",  // http or socks5
  "auth_type": "userpass",  // userpass or noauth
  "auth": {
    "login": "new_login",
    "password": "new_pass"
  },
  "description": "new proxy description",
  "acl_inbound_ips": [],  // allowed IPs, set '[]' to disable
  "expires_at": "2026-01-01T01:01:01Z"  // date of proxy expiry, set '0001-01-01T00:00:00Z' to disable
}
expires_at is an RFC 3339 timestamp

all fields are optional, only set fields are updated

Example:
curl --request POST \
--header "Authorization: Bearer <conn_api_key>" \
--header 'Content-Type: application/json' \
--url https://iproxy.online/api/cn/v1/proxy-access/{proxy_id}/update \
-d '{
"listen_service": "http",
"auth_type": "userpass",
"auth": {
  "login": "new_login",
  "password": "new_pass"
},
"description": "new description",
"acl_inbound_ips": [],
"expires_at": "0001-01-01T00:00:00Z"
}'
expires_at is an RFC 3339 timestamp
Response: 200: Updated proxy access
{
  "id": "k31kcls",
  "connection_id": "ksdfmw343",
  "description": "new description",
  "listen_service": "http",
  "auth_type": "userpass",
  "auth": {
    "login": "new_login",
    "password": "new_pass"
  },
  "ip": "1.2.3.4",
  "port": 13872,
  "hostname": "x1.fxdx.in",
  "password_updated_at": "2025-07-11T16:55:21.37Z"
}

3. List proxy accesses by connection

Endpoint: GET /api/cn/v1/proxy-access
Example:
curl --request GET \
--header "Authorization: Bearer <conn_api_key>" \
--url https://iproxy.online/api/cn/v1/proxy-access
Response: 200: List of proxy accesses
{
  "proxy_accesses": [
    {
      "id": "2CiQPfoWcJ",
      "connection_id": "2W1IlyssyF",
      "description": "new proxy description",
      "listen_service": "socks5",
      "auth_type": "userpass",
      "auth": {
        "login": "user",
        "password": "pass"
      },
      "ip": "1.2.3.4",
      "port": 13874,
      "hostname": "x1.fxdx.in",
      "password_updated_at": "2025-07-11T18:05:18.622Z"
    },
    {
      "id": "HjttgsJjG3",
      "connection_id": "2W1IlyssyF",
      "description": "new description",
      "listen_service": "http",
      "auth_type": "userpass",
      "auth": {
        "login": "new_login",
        "password": "new_pass"
      },
      "acl_inbound_policy": "deny_except",
      "acl_inbound_ips": ["1.2.3.4"],
      "ip": "3.2.1.0",
      "port": 13875,
      "hostname": "x1.fxdx.in",
      "password_updated_at": "2025-07-11T18:07:35.919Z"
    }
  ]
}
expires_at is an RFC 3339 timestamp

4. Delete proxy access

Endpoint: DELETE /api/cn/v1/proxy-access/{proxy_id}
Example:
curl --request DELETE \
--header "Authorization: Bearer <conn_api_key>" \
--url https://iproxy.online/api/cn/v1/proxy-access/{proxy_id}
Response: 200: Proxy successfully deleted
{
  "id": "4cbI8O21Rd"
}

OpenVPN access api

1. Create OpenVPN access

Endpoint: POST /api/cn/v1/ovpn-access
Request Body:
{
  "name": "new VPN name",
  "description": "new VPN description",
}
Example:
curl --request POST \
--header "Authorization: Bearer <conn_api_key>" \
--url https://iproxy.online/api/cn/v1/ovpn-access \
-d '{
  "name": "new VPN name",
  "description": "new VPN description"
}'
Response: 201: A VPN access created
{
  "status": "active",
  "name": "new VPN name",
  "description": "new VPN description",
  "expires_at": "2045-07-06T18:23:09.787673959Z",
  "dns": [],
  "id": "1InLOU8GWR",
  "connection_id": "{conn_id}"
}
expires_at is an RFC 3339 timestamp

2. List VPN accesses

Endpoint: GET /api/cn/v1/ovpn-access
Example:
curl --request GET \
--header "Authorization: Bearer <conn_api_key>" \
--url https://iproxy.online/api/cn/v1/ovpn-access
Response: 200: List of VPN accesses
{
  "ovpn_accesses": [{
    "name": "VPN name",
    "description": "VPN description",
    "status": "active",
    "dns": [],
    "id": "ovpn_id",
    "connection_id": "{conn_id}",
    "expires_at": "2026-01-01T01:01:01Z"
  }]
}
expires_at is an RFC 3339 timestamp

4. Update VPN access

Endpoint: POST /api/cn/v1/ovpn-access/{ovpn_id}/update
Request Body:
{
  "name": "VPN name",
  "description": "VPN description",
  "expires_at": "2026-01-01T01:01:01Z"
}
expires_at is an RFC 3339 timestamp.

All fields are optional, only set fields are updated

Example:
curl --request POST \
--header "Authorization: Bearer <conn_api_key>" \
--header 'Content-Type: application/json' \
--url https://iproxy.online/api/cn/v1/ovpn-access/{ovpn_id}/update \
-d '{
    "name": "VPN name",
    "description": "VPN description",
    "expires_at": "2026-01-01T01:01:01Z"
}'
expires_at is an RFC 3339 timestamp
Response: 200: Updated VPN access
{
    "name": "VPN name",
    "description": "VPN description",
    "status": "active",
    "dns": [],
    "id": "ovpn_id",
    "connection_id": "{conn_id}",
    "expires_at": "2026-01-01T01:01:01Z"
}

5. Delete VPN access

Endpoint: DELETE /api/cn/v1/ovpn-access/{ovpn_id}
Example:
curl --request DELETE \
--header "Authorization: Bearer <conn_api_key>" \
--url https://iproxy.online/api/cn/v1/ovpn-access/{ovpn_id}
Response: 200: Deleted VPN access
{
    "id": "ovpn_id"
}

Connection statistics API

1. Daily traffic details.

Endpoint: /api/cn/v1/traffic/by-day
Example:
curl --request GET \
--header "Authorization: Bearer <conn_api_key>" \
--url 'https://iproxy.online/api/cn/v1/traffic/by-day?from=2025-07-01T00%3A00%3A00Z&to=2025-08-01T03%3A00%3A00%2B03%3A00&timezone=Europe/Lisbon'
from and to query parameters should be url-encoded RFC 3339 timestamps timezone optional query parameter should be a valid timezone. Invalid and empty values are defaulted to UTC
Response: 200: Traffic stats for the requested period
{
  "total_in_bytes": 1300000, // Inbound traffic in bytes
  "total_out_bytes": 1000000, // Outbound traffic in bytes
  "daily_stats": [{
    "date": "2025-03-31T00:00:00Z",
    "in_bytes": 1000,  // Inbound traffic for the day in bytes
    "out_bytes": 1000,  // Outbound traffic for the day in bytes
  }]
}
date is an RFC 3339 timestamp

2. Hourly traffic details by port

Endpoint: /api/cn/v1/traffic/by-hour-port
Example:
curl --request GET \
--header "Authorization: Bearer <conn_api_key>" \
--url 'https://iproxy.online/api/cn/v1/traffic/by-hour-port?from=2025-07-01T00%3A00%3A00Z&to=2025-08-02T03%3A00%3A00%2B03%3A00'
from and to query parameters should be url-encoded RFC 3339 timestamps
Response: 200: Traffic stats for the requested period
{
  "port_stats": [{
    "port": "20314",
    "total_in_bytes": 1300000, // Inbound traffic in bytes
    "total_out_bytes": 1000000, // Outbound traffic in bytes
    "hourly_stats": [{
      "date": "2025-03-01T14:00:00Z",
      "in_bytes": 1000,  // Inbound traffic for the hour in bytes
      "out_bytes": 1000,  // Outbound traffic for the hour in bytes
  }]
}
date is an RFC 3339 timestamp

3. Uptime statistics

Endpoint: /api/cn/v1/uptime
Example:
curl --request GET \
--header "Authorization: Bearer <conn_api_key>" \
--url 'https://iproxy.online/api/cn/v1/uptime?from=2025-07-01T00%3A00%3A00Z&to=2025-08-02T03%3A00%3A00%2B03%3A00'
from and to query parameters should be url-encoded RFC 3339 timestamps
Response: 200: Uptime stats for the requested period
{
  "uptime": [{
    "date": "2025-03-01T14:00:00Z",
    "status": "UP"
  ]}
}
date is an RFC 3339 timestamp

4. IP history

Endpoint: /api/cn/v1/ip-history
Example:
curl --request GET \
--header "Authorization: Bearer <conn_api_key>" \
--url 'https://iproxy.online/api/cn/v1/ip-history?from=2025-03-01T00%3A00%3A00Z&to=2025-03-02T03%3A00%3A00%2B03%3A00'
from and to query parameters should be url-encoded RFC 3339 timestamps
Response: 200: IP history for the requested period
{
  "ip_history": [{
    "date": "2025-03-01T14:00:00Z",
    "ipv4": "127.0.0.1",
    "ipv6": "::1"
  ]}
}
date is an RFC 3339 timestamp

Action links API

1. Create Action Link

Endpoint: POST /api/cn/v1/actionlinks
Request Body: { "action": "reboot", "comment": "link for client AAAA" }
action string parameter is one of [reboot changeip] comment string is optional parameter
Example:
curl --request POST \
--header "Authorization: Bearer <conn_api_key>" \
--header 'Content-Type: application/json' \
--url https://iproxy.online/api/cn/v1/actionlinks \
-d '{"action": "changeip", "comment": "link for client AAAA"}'
Response: 201: A link created
{
    "id": "xyzXYZ"
}

2. Get List of Action Links

Endpoint: GET /api/cn/v1/actionlinks action parameter is one of [reboot changeip]
Example:
curl --request GET \
--header "Authorization: Bearer <conn_api_key>" \
--url https://iproxy.online/api/cn/v1/actionlinks
Response: 200: List of links retrieved
{
    "action_links": [{
        "id": "xyzXYZ",
        "link": "https://i.fxdx.in/actionlinks/do/reboot/xyzXYZ",
        "action": "changeip",
        "connection_id": "abcdABCD",
        "comment": "link for client AAAA",
        "created_at": "2025-03-19T13:06:30Z"
    }]
}
created_at is an RFC 3339 timestamp

3. Delete Action Link

Endpoint: DELETE /api/cn/v1/actionlinks/{link_id}
Example:
curl --request DELETE \
--header "Authorization: Bearer <conn_api_key>" \
--url https://iproxy.online/api/cn/v1/actionlinks/{link_id}
Response: 200 OK
{
    "id": "xyzXYZ"
}

4. Execute Action Link

Note for better usability:
  • No authentication needed, don't share to unknown persons
  • It's a simple GET request, be careful with the reboot action!
Endpoint: GET https://i.fxdx.in/actionlinks/do/{action}/{link_id}
Example:
curl --request GET \
--url https://i.fxdx.in/actionlinks/do/{action}/{link_id}
Response: 200 OK
{
    "message": "{action} command has been sent"
}