Skip to content

Autoblow API V1

Welcome to the Autoblow Ultra API! You can use our API to control your Autoblow Ultra device.

The Autoblow API is hosted on multiple clusters around the world. When a device goes online it will connect to the lowest latency server. To control the device you must connect to the same cluster as the device. You can find the cluster your device is connected to by checking the cluster property in the /autoblow/connected response.

https://us-east-1.autoblowapi.com
https://us-east-2.autoblowapi.com
https://us-west-1.autoblowapi.com
https://us-west-2.autoblowapi.com
https://ca-central-1.autoblowapi.com
https://ap-southeast-2.autoblowapi.com
https://eu-west-2.autoblowapi.com
https://eu-central-1.autoblowapi.com

Check if a device is connected and get the cluster it is connected to. This request can be performed on any cluster but for the reliability porposes we recommend using https://latency.autoblowapi.com which will connect you to the cluster with the lowest latency. All the other requests can be only performed on the cluster the device is connected to.

See documentation
Request Parameters
namerequiredtypedescription
x-device-token
(header)
yesstringThe autoblow device token
Response Parameters
namedatadescription
connectedboolTrue if the device is currently connected
clusterstring or undefinedURI to the connected cluster, undefined if not connected
Example Request
Terminal window
curl --request GET \
--url https://us-east-2.autoblowapi.com/autoblow/connected \
--header 'x-device-token: jya6vksq08q3'
Example Responses

Status Code: 200, Content-Type: application/json

{
"connected": true,
"cluster": "https://us-east-1.autoblowapi.com"
}

Status Code: 200, Content-Type: application/json

{
"connected": false
}

Get additional information about the device such as the firmware/hardware version. It’s important to note the device type. If the device type is autoblow-ultra you should use the Autoblow Ultra API V1 otherwise if the device type is vacuglide you should use the Vacuglide API V1.

See documentation
Request Parameters
namerequiredtypedescription
x-device-token
(header)
yesstringThe autoblow device token
Response Parameters
nametypedescription
firmwareStatusenum:
UP_TO_DATE,
UPDATE_AVAILABLE,
UPDATE_REQUIRED
The firmware status
firmwareVersionfloatThe current device firmware version
firmwareBranchstringThe firmware branch
hardwareVersionstringThe hardware version
macstringThe device mac address
deviceTypestringThe device type
Example Request
Terminal window
curl --request GET \
--url https://eu-central-1.autoblowapi.com/autoblow/info \
--header 'x-device-token: jya6vksq08q3'
Example Responses

Status Code: 200, Content-Type: application/json

{
"firmwareStatus": "UP_TO_DATE",
"firmwareVersion": 1.01,
"firmwareBranch": "prod",
"hardwareVersion": "ultra",
"mac": "b0b21c3141e8",
"deviceType": "autoblow-ultra"
}

Get the current state of the device

See documentation
Request Parameters
namerequiredtypedescription
x-device-token
(header)
yesstringThe autoblow device token
Response Parameters
nametypedescription
operationalModeenum:
ONLINE_CONNECTED,
SYNC_SCRIPT_PLAYING,
SYNC_SCRIPT_PAUSED,
LOCAL_SCRIPT_PLAYING,
LOCAL_SCRIPT_PAUSED,
OSCILLATOR_PLAYING,
OSCILLATOR_PAUSED,
GO_TO,
FIRMWARE_UPDATING,
ERROR,
ERROR_MOTOR_STUCK,
ERROR_OVERHEATING
The current operational mode
localScriptnumber
(min:0)
(max:9)
The index of the local script
localScriptSpeednumber
(min:0)
(max:9)
The speed index of the local script
motorTemperaturenumberThe motor temperature in °C
oscillatorTargetSpeednumber
(min:0)
(max:100)
The oscillator target speed in percent
oscillatorLowPointnumber
(min:0)
(max:100)
The oscillator low point in percent
oscillatorHighPointnumber
(min:0)
(max:100)
The oscillator high point in percent
syncScriptCurrentTimenumberThe current time of the sync script in MS
syncScriptOffsetTimenumberThe offset time of the sync script in MS
syncScriptTokenstringThe loaded sync script token
syncScriptLoopboolIf set to true, it will restart sync script when finished
Example Request
Terminal window
curl --request GET \
--url https://eu-central-1.autoblowapi.com/autoblow/state \
--header 'x-device-token: jya6vksq08q3'
Example Response

Status Code: 200, Content-Type: application/json

{
"operationalMode": "ONLINE_CONNECTED",
"localScript": 0,
"localScriptSpeed": 0,
"motorTemperature": 30,
"oscillatorTargetSpeed": 50,
"oscillatorLowPoint": 0,
"oscillatorHighPoint": 100,
"syncScriptCurrentTime": 0,
"syncScriptOffsetTime": 0,
"syncScriptToken": "",
"syncScriptLoop": false
}

Place the device in oscillate mode. This will cause the device to oscillate between the minimum and maximum stroke points with the given speed.

See documentation
Request Parameters
namerequiredtypedescription
x-device-token
(header)
yesstringThe autoblow device token
speed
(body)
yesnumber
(min:0)
(max:100)
Oscillator speed in percent
minY
(body)
yesnumber
(min:0)
(max:100)
Oscillator min point in percent
maxY
(body)
yesnumber
(min:0)
(max:100)
Oscillator max point in percent
Response Parameters
nametypedescription
operationalModeenum:
ONLINE_CONNECTED,
SYNC_SCRIPT_PLAYING,
SYNC_SCRIPT_PAUSED,
LOCAL_SCRIPT_PLAYING,
LOCAL_SCRIPT_PAUSED,
OSCILLATOR_PLAYING,
OSCILLATOR_PAUSED,
GO_TO,
FIRMWARE_UPDATING,
ERROR,
ERROR_MOTOR_STUCK,
ERROR_OVERHEATING
The current operational mode
localScriptnumber
(min:0)
(max:9)
The index of the local script
localScriptSpeednumber
(min:0)
(max:9)
The speed index of the local script
motorTemperaturenumberThe motor temperature in °C
oscillatorTargetSpeednumber
(min:0)
(max:100)
The oscillator target speed in percent
oscillatorLowPointnumber
(min:0)
(max:100)
The oscillator low point in percent
oscillatorHighPointnumber
(min:0)
(max:100)
The oscillator high point in percent
syncScriptCurrentTimenumberThe current time of the sync script in MS
syncScriptOffsetTimenumberThe offset time of the sync script in MS
syncScriptTokenstringThe loaded sync script token
syncScriptLoopboolIf set to true, it will restart sync script when finished
Example Request
Terminal window
curl --request PUT \
--url https://eu-central-1.autoblowapi.com/autoblow/oscillate \
--header 'Content-Type: application/json' \
--header 'x-device-token: jya6vksq08q3' \
--data '{
"speed": 0,
"minY": 5,
"maxY": 100
}'
Example Responses

Status Code: 200, Content-Type: application/json

{
"operationalMode": "OSCILLATOR_PLAYING",
"localScript": 0,
"localScriptSpeed": 0,
"motorTemperature": 30,
"oscillatorTargetSpeed": 0,
"oscillatorLowPoint": 5,
"oscillatorHighPoint": 100,
"syncScriptCurrentTime": 0,
"syncScriptOffsetTime": 0,
"syncScriptToken": "",
"syncScriptLoop": false
}

Will start the oscillate mode with the current settings without having to send the settings again.

See documentation
Request Parameters
namerequiredtypedescription
x-device-token
(header)
yesstringThe autoblow device token
Response Parameters
nametypedescription
operationalModeenum:
ONLINE_CONNECTED,
SYNC_SCRIPT_PLAYING,
SYNC_SCRIPT_PAUSED,
LOCAL_SCRIPT_PLAYING,
LOCAL_SCRIPT_PAUSED,
OSCILLATOR_PLAYING,
OSCILLATOR_PAUSED,
GO_TO,
FIRMWARE_UPDATING,
ERROR,
ERROR_MOTOR_STUCK,
ERROR_OVERHEATING
The current operational mode
localScriptnumber
(min:0)
(max:9)
The index of the local script
localScriptSpeednumber
(min:0)
(max:9)
The speed index of the local script
motorTemperaturenumberThe motor temperature in °C
oscillatorTargetSpeednumber
(min:0)
(max:100)
The oscillator target speed in percent
oscillatorLowPointnumber
(min:0)
(max:100)
The oscillator low point in percent
oscillatorHighPointnumber
(min:0)
(max:100)
The oscillator high point in percent
syncScriptCurrentTimenumberThe current time of the sync script in MS
syncScriptOffsetTimenumberThe offset time of the sync script in MS
syncScriptTokenstringThe loaded sync script token
syncScriptLoopboolIf set to true, it will restart sync script when finished
Example Request
Terminal window
curl --request PUT \
--url https://eu-central-1.autoblowapi.com/autoblow/oscillate/start \
--header 'x-device-token: jya6vksq08q3'
Example Response

Status Code: 200, Content-Type: application/json

{
"operationalMode": "OSCILLATOR_PLAYING",
"localScript": 0,
"localScriptSpeed": 0,
"motorTemperature": 30,
"oscillatorTargetSpeed": 10,
"oscillatorLowPoint": 5,
"oscillatorHighPoint": 100,
"syncScriptCurrentTime": 0,
"syncScriptOffsetTime": 0,
"syncScriptToken": "",
"syncScriptLoop": false
}

Will stop the oscillate mode.

See documentation
Request Parameters
namerequiredtypedescription
x-device-token
(header)
yesstringThe autoblow device token
Response Parameters
nametypedescription
operationalModeenum:
ONLINE_CONNECTED,
SYNC_SCRIPT_PLAYING,
SYNC_SCRIPT_PAUSED,
LOCAL_SCRIPT_PLAYING,
LOCAL_SCRIPT_PAUSED,
OSCILLATOR_PLAYING,
OSCILLATOR_PAUSED,
GO_TO,
FIRMWARE_UPDATING,
ERROR,
ERROR_MOTOR_STUCK,
ERROR_OVERHEATING
The current operational mode
localScriptnumber
(min:0)
(max:9)
The index of the local script
localScriptSpeednumber
(min:0)
(max:9)
The speed index of the local script
motorTemperaturenumberThe motor temperature in °C
oscillatorTargetSpeednumber
(min:0)
(max:100)
The oscillator target speed in percent
oscillatorLowPointnumber
(min:0)
(max:100)
The oscillator low point in percent
oscillatorHighPointnumber
(min:0)
(max:100)
The oscillator high point in percent
syncScriptCurrentTimenumberThe current time of the sync script in MS
syncScriptOffsetTimenumberThe offset time of the sync script in MS
syncScriptTokenstringThe loaded sync script token
syncScriptLoopboolIf set to true, it will restart sync script when finished
Example Request
Terminal window
curl --request PUT \
--url https://eu-central-1.autoblowapi.com/autoblow/oscillate/stop \
--header 'x-device-token: jya6vksq08q3'
Example Response

Status Code: 200, Content-Type: application/json

{
"operationalMode": "OSCILLATOR_PAUSED",
"localScript": 0,
"localScriptSpeed": 0,
"motorTemperature": 30,
"oscillatorTargetSpeed": 10,
"oscillatorLowPoint": 5,
"oscillatorHighPoint": 100,
"syncScriptCurrentTime": 0,
"syncScriptOffsetTime": 0,
"syncScriptToken": "",
"syncScriptLoop": false
}

Will start playing the loaded sync script from the specified time. If there is no sync script loaded it will return an error.

See documentation
Request Parameters
namerequiredtypedescription
x-device-token
(header)
yesstringThe autoblow device token
startTimeMs
(body)
yesnumberAt what time to start playing the sync script from
Response Parameters
nametypedescription
operationalModeenum:
ONLINE_CONNECTED,
SYNC_SCRIPT_PLAYING,
SYNC_SCRIPT_PAUSED,
LOCAL_SCRIPT_PLAYING,
LOCAL_SCRIPT_PAUSED,
OSCILLATOR_PLAYING,
OSCILLATOR_PAUSED,
GO_TO,
FIRMWARE_UPDATING,
ERROR,
ERROR_MOTOR_STUCK,
ERROR_OVERHEATING
The current operational mode
localScriptnumber
(min:0)
(max:9)
The index of the local script
localScriptSpeednumber
(min:0)
(max:9)
The speed index of the local script
motorTemperaturenumberThe motor temperature in °C
oscillatorTargetSpeednumber
(min:0)
(max:100)
The oscillator target speed in percent
oscillatorLowPointnumber
(min:0)
(max:100)
The oscillator low point in percent
oscillatorHighPointnumber
(min:0)
(max:100)
The oscillator high point in percent
syncScriptCurrentTimenumberThe current time of the sync script in MS
syncScriptOffsetTimenumberThe offset time of the sync script in MS
syncScriptTokenstringThe loaded sync script token
syncScriptLoopboolIf set to true, it will restart sync script when finished
Example Request
Terminal window
curl --request PUT \
--url https://eu-central-1.autoblowapi.com/autoblow/sync-script/start \
--header 'Content-Type: application/json' \
--header 'x-device-token: jya6vksq08q3' \
--data '
{
"startTimeMs": 0
}'
Example Response

Status Code: 200, Content-Type: application/json

{
"operationalMode": "SYNC_SCRIPT_PLAYING",
"localScript": 0,
"localScriptSpeed": 0,
"motorTemperature": 30,
"oscillatorTargetSpeed": 50,
"oscillatorLowPoint": 0,
"oscillatorHighPoint": 100,
"syncScriptCurrentTime": 15,
"syncScriptOffsetTime": 0,
"syncScriptToken": "7a93bfc5-4043-4ade-aee5-bec8012b0e12",
"syncScriptLoop": false
}

Will stop playing the sync script.

See documentation
Request Parameters
namerequiredtypedescription
x-device-token
(header)
yesstringThe autoblow device token
Response Parameters
nametypedescription
operationalModeenum:
ONLINE_CONNECTED,
SYNC_SCRIPT_PLAYING,
SYNC_SCRIPT_PAUSED,
LOCAL_SCRIPT_PLAYING,
LOCAL_SCRIPT_PAUSED,
OSCILLATOR_PLAYING,
OSCILLATOR_PAUSED,
GO_TO,
FIRMWARE_UPDATING,
ERROR,
ERROR_MOTOR_STUCK,
ERROR_OVERHEATING
The current operational mode
localScriptnumber
(min:0)
(max:9)
The index of the local script
localScriptSpeednumber
(min:0)
(max:9)
The speed index of the local script
motorTemperaturenumberThe motor temperature in °C
oscillatorTargetSpeednumber
(min:0)
(max:100)
The oscillator target speed in percent
oscillatorLowPointnumber
(min:0)
(max:100)
The oscillator low point in percent
oscillatorHighPointnumber
(min:0)
(max:100)
The oscillator high point in percent
syncScriptCurrentTimenumberThe current time of the sync script in MS
syncScriptOffsetTimenumberThe offset time of the sync script in MS
syncScriptTokenstringThe loaded sync script token
syncScriptLoopboolIf set to true, it will restart sync script when finished
Example Request
Terminal window
curl --request PUT \
--url https://eu-central-1.autoblowapi.com/autoblow/sync-script/stop \
--header 'x-device-token: jya6vksq08q3'
Example Response

Status Code: 200, Content-Type: application/json

{
"operationalMode": "SYNC_SCRIPT_PAUSED",
"localScript": 0,
"localScriptSpeed": 0,
"motorTemperature": 30,
"oscillatorTargetSpeed": 50,
"oscillatorLowPoint": 0,
"oscillatorHighPoint": 100,
"syncScriptCurrentTime": 0,
"syncScriptOffsetTime": 0,
"syncScriptToken": "346d0210-3708-48c8-8e1c-55f3ed1960ec",
"syncScriptLoop": false
}

Will load a sync script from a token.

See documentation
Request Parameters
namerequiredtypedescription
x-device-token
(header)
yesstringVacuglide device token
scriptToken
(body)
yesstringThe sync script token you want to load on the device
Response Parameters
nametypedescription
operationalModeenum:
ONLINE_CONNECTED,
SYNC_SCRIPT_PLAYING,
SYNC_SCRIPT_PAUSED,
LOCAL_SCRIPT_PLAYING,
LOCAL_SCRIPT_PAUSED,
OSCILLATOR_PLAYING,
OSCILLATOR_PAUSED,
GO_TO,
FIRMWARE_UPDATING,
ERROR,
ERROR_MOTOR_STUCK,
ERROR_OVERHEATING
The current operational mode
localScriptnumber
(min:0)
(max:9)
The index of the local script
localScriptSpeednumber
(min:0)
(max:9)
The speed index of the local script
motorTemperaturenumberThe motor temperature in °C
oscillatorTargetSpeednumber
(min:0)
(max:100)
The oscillator target speed in percent
oscillatorLowPointnumber
(min:0)
(max:100)
The oscillator low point in percent
oscillatorHighPointnumber
(min:0)
(max:100)
The oscillator high point in percent
syncScriptCurrentTimenumberThe current time of the sync script in MS
syncScriptOffsetTimenumberThe offset time of the sync script in MS
syncScriptTokenstringThe loaded sync script token
syncScriptLoopboolIf set to true, it will restart sync script when finished
Example Request
Terminal window
curl --request PUT \
--url https://eu-central-1.autoblowapi.com/vacuglide/sync-script/load-token \
--header 'Content-Type: application/json' \
--header 'x-device-token: jya6vksq08q3' \
--data '
{"scriptToken": "ea5d85d2-4db7-4f76-88fe-23a6fb5a8eab"}'
Example Response

Status Code: 200, Content-Type: application/json

{
"operationalMode": "SYNC_SCRIPT_PAUSED",
"localScript": 0,
"localScriptSpeed": 0,
"motorTemperature": 30,
"oscillatorTargetSpeed": 50,
"oscillatorLowPoint": 0,
"oscillatorHighPoint": 100,
"syncScriptCurrentTime": 0,
"syncScriptOffsetTime": 0,
"syncScriptToken": "ea5d85d2-4db7-4f76-88fe-23a6fb5a8eab",
"syncScriptLoop": false
}

Will upload a sync script from a file. The script will be converted to a binary format that the autoblow can play and it will be stored on our servers for 48 hours. Each uploaded script will be assigned a token that can be used to load the script on the device or to check if the script is loaded.

See documentation
Request Parameters
namerequiredtypedescription
x-device-token
(header)
yesstringThe autoblow device token
file
(multipart)
yesfileThe funscript file you want to upload
Response Parameters
nametypedescription
operationalModeenum:
ONLINE_CONNECTED,
SYNC_SCRIPT_PLAYING,
SYNC_SCRIPT_PAUSED,
LOCAL_SCRIPT_PLAYING,
LOCAL_SCRIPT_PAUSED,
OSCILLATOR_PLAYING,
OSCILLATOR_PAUSED,
GO_TO,
FIRMWARE_UPDATING,
ERROR,
ERROR_MOTOR_STUCK,
ERROR_OVERHEATING
The current operational mode
localScriptnumber
(min:0)
(max:9)
The index of the local script
localScriptSpeednumber
(min:0)
(max:9)
The speed index of the local script
motorTemperaturenumberThe motor temperature in °C
oscillatorTargetSpeednumber
(min:0)
(max:100)
The oscillator target speed in percent
oscillatorLowPointnumber
(min:0)
(max:100)
The oscillator low point in percent
oscillatorHighPointnumber
(min:0)
(max:100)
The oscillator high point in percent
syncScriptCurrentTimenumberThe current time of the sync script in MS
syncScriptOffsetTimenumberThe offset time of the sync script in MS
syncScriptTokenstringThe loaded sync script token
syncScriptLoopboolIf set to true, it will restart sync script when finished
Example Request
Terminal window
curl --request PUT \
--url https://eu-central-1.autoblowapi.com/autoblow/sync-script/upload-funscript \
--header 'Content-Type: multipart/form-data' \
--header 'x-device-token: jya6vksq08q3' \
--form 'file=@/path_to_file/test.funscript'
Example Response

Status Code: 200, Content-Type: application/json

{
"operationalMode": "SYNC_SCRIPT_PAUSED",
"localScript": 0,
"localScriptSpeed": 0,
"motorTemperature": 30,
"oscillatorTargetSpeed": 50,
"oscillatorLowPoint": 0,
"oscillatorHighPoint": 100,
"syncScriptCurrentTime": 0,
"syncScriptOffsetTime": 0,
"syncScriptToken": "346d0210-3708-48c8-8e1c-55f3ed1960ec",
"syncScriptLoop": false
}

Will upload a sync script from a csv file. The script will be converted to a binary format that the autoblow can play and it will be stored on our servers for 48 hours. Each uploaded script will be assigned a token that can be used to load the script on the device or to check if the script is loaded.

See documentation
Request Parameters
namerequiredtypedescription
x-device-token
(header)
yesstringThe autoblow device token
file
(multipart)
yesfileThe csv file you want to upload
Response Parameters
nametypedescription
operationalModeenum:
ONLINE_CONNECTED,
SYNC_SCRIPT_PLAYING,
SYNC_SCRIPT_PAUSED,
LOCAL_SCRIPT_PLAYING,
LOCAL_SCRIPT_PAUSED,
OSCILLATOR_PLAYING,
OSCILLATOR_PAUSED,
GO_TO,
FIRMWARE_UPDATING,
ERROR,
ERROR_MOTOR_STUCK,
ERROR_OVERHEATING
The current operational mode
localScriptnumber
(min:0)
(max:9)
The index of the local script
localScriptSpeednumber
(min:0)
(max:9)
The speed index of the local script
motorTemperaturenumberThe motor temperature in °C
oscillatorTargetSpeednumber
(min:0)
(max:100)
The oscillator target speed in percent
oscillatorLowPointnumber
(min:0)
(max:100)
The oscillator low point in percent
oscillatorHighPointnumber
(min:0)
(max:100)
The oscillator high point in percent
syncScriptCurrentTimenumberThe current time of the sync script in MS
syncScriptOffsetTimenumberThe offset time of the sync script in MS
syncScriptTokenstringThe loaded sync script token
syncScriptLoopboolIf set to true, it will restart sync script when finished
Example Request
Terminal window
curl --request PUT \
--url https://eu-central-1.autoblowapi.com/autoblow/sync-script/upload-csv \
--header 'Content-Type: multipart/form-data' \
--header 'x-device-token: jya6vksq08q3' \
--form 'file=@/path_to_file/test.csv'
Example Response

Status Code: 200, Content-Type: application/json

{
"operationalMode": "SYNC_SCRIPT_PAUSED",
"localScript": 0,
"localScriptSpeed": 0,
"motorTemperature": 30,
"oscillatorTargetSpeed": 50,
"oscillatorLowPoint": 0,
"oscillatorHighPoint": 100,
"syncScriptCurrentTime": 0,
"syncScriptOffsetTime": 0,
"syncScriptToken": "346d0210-3708-48c8-8e1c-55f3ed1960ec",
"syncScriptLoop": false
}

Will upload a sync script from a url. The script will be converted to a binary format that the autoblow can play and it will be stored on our servers for 48 hours. Each uploaded script will be assigned a token that can be used to load the script on the device or to check if the script is loaded.

See documentation
Request Parameters
namerequiredtypedescription
x-device-token
(header)
yesstringThe autoblow device token
url
(body)
yesstringThe URL that hosts the funscript you want to upload onto the device
Response Parameters
nametypedescription
operationalModeenum:
ONLINE_CONNECTED,
SYNC_SCRIPT_PLAYING,
SYNC_SCRIPT_PAUSED,
LOCAL_SCRIPT_PLAYING,
LOCAL_SCRIPT_PAUSED,
OSCILLATOR_PLAYING,
OSCILLATOR_PAUSED,
GO_TO,
FIRMWARE_UPDATING,
ERROR,
ERROR_MOTOR_STUCK,
ERROR_OVERHEATING
The current operational mode
localScriptnumber
(min:0)
(max:9)
The index of the local script
localScriptSpeednumber
(min:0)
(max:9)
The speed index of the local script
motorTemperaturenumberThe motor temperature in °C
oscillatorTargetSpeednumber
(min:0)
(max:100)
The oscillator target speed in percent
oscillatorLowPointnumber
(min:0)
(max:100)
The oscillator low point in percent
oscillatorHighPointnumber
(min:0)
(max:100)
The oscillator high point in percent
syncScriptCurrentTimenumberThe current time of the sync script in MS
syncScriptOffsetTimenumberThe offset time of the sync script in MS
syncScriptTokenstringThe loaded sync script token
syncScriptLoopboolIf set to true, it will restart sync script when finished
Example Request
Terminal window
curl --request PUT \
--url https://eu-central-1.autoblowapi.com/autoblow/sync-script/upload-funscript-url \
--header 'Content-Type: application/json' \
--header 'x-device-token: jya6vksq08q3' \
--data '
{
"url": "https://vieci-uploads.s3.amazonaws.com/funscripts/test.funscript"
}'
Example Response

Status Code: 200, Content-Type: application/json

{
"operationalMode": "SYNC_SCRIPT_PAUSED",
"localScript": 0,
"localScriptSpeed": 0,
"motorTemperature": 30,
"oscillatorTargetSpeed": 50,
"oscillatorLowPoint": 0,
"oscillatorHighPoint": 100,
"syncScriptCurrentTime": 0,
"syncScriptOffsetTime": 0,
"syncScriptToken": "346d0210-3708-48c8-8e1c-55f3ed1960ec",
"syncScriptLoop": false
}

Will upload a sync script from a csv url. The script will be converted to a binary format that the autoblow can play and it will be stored on our servers for 48 hours. Each uploaded script will be assigned a token that can be used to load the script on the device or to check if the script is loaded.

See documentation
Request Parameters
namerequiredtypedescription
x-device-token
(header)
yesstringThe autoblow device token
url
(body)
yesstringThe URL that hosts the csv script you want to upload onto the device
Response Parameters
nametypedescription
operationalModeenum:
ONLINE_CONNECTED,
SYNC_SCRIPT_PLAYING,
SYNC_SCRIPT_PAUSED,
LOCAL_SCRIPT_PLAYING,
LOCAL_SCRIPT_PAUSED,
OSCILLATOR_PLAYING,
OSCILLATOR_PAUSED,
GO_TO,
FIRMWARE_UPDATING,
ERROR,
ERROR_MOTOR_STUCK,
ERROR_OVERHEATING
The current operational mode
localScriptnumber
(min:0)
(max:9)
The index of the local script
localScriptSpeednumber
(min:0)
(max:9)
The speed index of the local script
motorTemperaturenumberThe motor temperature in °C
oscillatorTargetSpeednumber
(min:0)
(max:100)
The oscillator target speed in percent
oscillatorLowPointnumber
(min:0)
(max:100)
The oscillator low point in percent
oscillatorHighPointnumber
(min:0)
(max:100)
The oscillator high point in percent
syncScriptCurrentTimenumberThe current time of the sync script in MS
syncScriptOffsetTimenumberThe offset time of the sync script in MS
syncScriptTokenstringThe loaded sync script token
syncScriptLoopboolIf set to true, it will restart sync script when finished
Example Request
Terminal window
curl --request PUT \
--url https://eu-central-1.autoblowapi.com/autoblow/sync-script/upload-csv-url \
--header 'Content-Type: application/json' \
--header 'x-device-token: jya6vksq08q3' \
--data '
{
"url": "https://vieci-uploads.s3.amazonaws.com/funscripts/test.csv"
}'
Example Response

Status Code: 200, Content-Type: application/json

{
"operationalMode": "SYNC_SCRIPT_PAUSED",
"localScript": 0,
"localScriptSpeed": 0,
"motorTemperature": 30,
"oscillatorTargetSpeed": 50,
"oscillatorLowPoint": 0,
"oscillatorHighPoint": 100,
"syncScriptCurrentTime": 0,
"syncScriptOffsetTime": 0,
"syncScriptToken": "346d0210-3708-48c8-8e1c-55f3ed1960ec",
"syncScriptLoop": false
}

Add an offset to sync script for latency compensation. The offset is in milliseconds and can be positive or negative.

See documentation
Request Parameters
namerequiredtypedescription
x-device-token
(header)
yesstringThe autoblow device token
offsetTimeMs
(body)
yesnumberSet an offset, the offset will get added to syncScriptCurrentTime, the offset can be positive or negative
Response Parameters
nametypedescription
operationalModeenum:
ONLINE_CONNECTED,
SYNC_SCRIPT_PLAYING,
SYNC_SCRIPT_PAUSED,
LOCAL_SCRIPT_PLAYING,
LOCAL_SCRIPT_PAUSED,
OSCILLATOR_PLAYING,
OSCILLATOR_PAUSED,
GO_TO,
FIRMWARE_UPDATING,
ERROR,
ERROR_MOTOR_STUCK,
ERROR_OVERHEATING
The current operational mode
localScriptnumber
(min:0)
(max:9)
The index of the local script
localScriptSpeednumber
(min:0)
(max:9)
The speed index of the local script
motorTemperaturenumberThe motor temperature in °C
oscillatorTargetSpeednumber
(min:0)
(max:100)
The oscillator target speed in percent
oscillatorLowPointnumber
(min:0)
(max:100)
The oscillator low point in percent
oscillatorHighPointnumber
(min:0)
(max:100)
The oscillator high point in percent
syncScriptCurrentTimenumberThe current time of the sync script in MS
syncScriptOffsetTimenumberThe offset time of the sync script in MS
syncScriptTokenstringThe loaded sync script token
syncScriptLoopboolIf set to true, it will restart sync script when finished
Example Request
Terminal window
curl --request PUT \
--url https://eu-central-1.autoblowapi.com/autoblow/sync-script/offset \
--header 'Content-Type: application/json' \
--header 'x-device-token: jya6vksq08q3' \
--data '
{
"offsetTimeMs" : 100
}'
Example Response

Status Code: 200, Content-Type: application/json

{
"operationalMode": "SYNC_SCRIPT_PAUSED",
"localScript": 0,
"localScriptSpeed": 0,
"motorTemperature": 30,
"oscillatorTargetSpeed": 50,
"oscillatorLowPoint": 0,
"oscillatorHighPoint": 100,
"syncScriptCurrentTime": 7840,
"syncScriptOffsetTime": 100,
"syncScriptToken": "7a93bfc5-4043-4ade-aee5-bec8012b0e12",
"syncScriptLoop": true
}

Set the script to play in a loop

See documentation
Request Parameters
namerequiredtypedescription
x-device-token
(header)
yesstringThe autoblow device token
loop
(body)
yesboolIf set to true it will restart the script after it finishes playing it
Response Parameters
nametypedescription
operationalModeenum:
ONLINE_CONNECTED,
SYNC_SCRIPT_PLAYING,
SYNC_SCRIPT_PAUSED,
LOCAL_SCRIPT_PLAYING,
LOCAL_SCRIPT_PAUSED,
OSCILLATOR_PLAYING,
OSCILLATOR_PAUSED,
GO_TO,
FIRMWARE_UPDATING,
ERROR,
ERROR_MOTOR_STUCK,
ERROR_OVERHEATING
The current operational mode
localScriptnumber
(min:0)
(max:9)
The index of the local script
localScriptSpeednumber
(min:0)
(max:9)
The speed index of the local script
motorTemperaturenumberThe motor temperature in °C
oscillatorTargetSpeednumber
(min:0)
(max:100)
The oscillator target speed in percent
oscillatorLowPointnumber
(min:0)
(max:100)
The oscillator low point in percent
oscillatorHighPointnumber
(min:0)
(max:100)
The oscillator high point in percent
syncScriptCurrentTimenumberThe current time of the sync script in MS
syncScriptOffsetTimenumberThe offset time of the sync script in MS
syncScriptTokenstringThe loaded sync script token
syncScriptLoopboolIf set to true, it will restart sync script when finished
Example Request
Terminal window
curl --request PUT \
--url https://eu-central-1.autoblowapi.com/autoblow/sync-script/loop \
--header 'Content-Type: application/json' \
--header 'x-device-token: jya6vksq08q3' \
--data '
{
"loop" : true
}'
Example Response

Status Code: 200, Content-Type: application/json

{
"operationalMode": "SYNC_SCRIPT_PAUSED",
"localScript": 0,
"localScriptSpeed": 0,
"motorTemperature": 30,
"oscillatorTargetSpeed": 50,
"oscillatorLowPoint": 0,
"oscillatorHighPoint": 100,
"syncScriptCurrentTime": 7840,
"syncScriptOffsetTime": 0,
"syncScriptToken": "7a93bfc5-4043-4ade-aee5-bec8012b0e12",
"syncScriptLoop": true
}

Play one of the 10 loaded local scripts on the device.

See documentation
Request Parameters
namerequiredtypedescription
x-device-token
(header)
yesstringThe autoblow device token
localScriptIndex
(body)
yesnumber
(min:0)
(max:10)
Local script playing index
speedIndex
(body)
yesnumber
(min:0)
(max:10)
Local script speed playing index
Response Parameters
nametypedescription
operationalModeenum:
ONLINE_CONNECTED,
SYNC_SCRIPT_PLAYING,
SYNC_SCRIPT_PAUSED,
LOCAL_SCRIPT_PLAYING,
LOCAL_SCRIPT_PAUSED,
OSCILLATOR_PLAYING,
OSCILLATOR_PAUSED,
GO_TO,
FIRMWARE_UPDATING,
ERROR,
ERROR_MOTOR_STUCK,
ERROR_OVERHEATING
The current operational mode
localScriptnumber
(min:0)
(max:9)
The index of the local script
localScriptSpeednumber
(min:0)
(max:9)
The speed index of the local script
motorTemperaturenumberThe motor temperature in °C
oscillatorTargetSpeednumber
(min:0)
(max:100)
The oscillator target speed in percent
oscillatorLowPointnumber
(min:0)
(max:100)
The oscillator low point in percent
oscillatorHighPointnumber
(min:0)
(max:100)
The oscillator high point in percent
syncScriptCurrentTimenumberThe current time of the sync script in MS
syncScriptOffsetTimenumberThe offset time of the sync script in MS
syncScriptTokenstringThe loaded sync script token
syncScriptLoopboolIf set to true, it will restart sync script when finished
Example Request
Terminal window
curl --request PUT \
--url https://eu-central-1.autoblowapi.com/autoblow/local-script \
--header 'Content-Type: application/json' \
--header 'x-device-token: jya6vksq08q3' \
--data '
{
"localScriptIndex": 5,
"speedIndex": 2
}'
Example Responses

Status Code: 200, Content-Type: application/json

{
"operationalMode": "LOCAL_SCRIPT_PLAYING",
"localScript": 5,
"localScriptSpeed": 2,
"motorTemperature": 30,
"oscillatorTargetSpeed": 50,
"oscillatorLowPoint": 0,
"oscillatorHighPoint": 100,
"syncScriptCurrentTime": 0,
"syncScriptOffsetTime": 0,
"syncScriptToken": "",
"syncScriptLoop": false
}

Play the already selected local script on the device.

See documentation
Request Parameters
namerequiredtypedescription
x-device-token
(header)
yesstringThe autoblow device token
Response Parameters
nametypedescription
operationalModeenum:
ONLINE_CONNECTED,
SYNC_SCRIPT_PLAYING,
SYNC_SCRIPT_PAUSED,
LOCAL_SCRIPT_PLAYING,
LOCAL_SCRIPT_PAUSED,
OSCILLATOR_PLAYING,
OSCILLATOR_PAUSED,
GO_TO,
FIRMWARE_UPDATING,
ERROR,
ERROR_MOTOR_STUCK,
ERROR_OVERHEATING
The current operational mode
localScriptnumber
(min:0)
(max:9)
The index of the local script
localScriptSpeednumber
(min:0)
(max:9)
The speed index of the local script
motorTemperaturenumberThe motor temperature in °C
oscillatorTargetSpeednumber
(min:0)
(max:100)
The oscillator target speed in percent
oscillatorLowPointnumber
(min:0)
(max:100)
The oscillator low point in percent
oscillatorHighPointnumber
(min:0)
(max:100)
The oscillator high point in percent
syncScriptCurrentTimenumberThe current time of the sync script in MS
syncScriptOffsetTimenumberThe offset time of the sync script in MS
syncScriptTokenstringThe loaded sync script token
syncScriptLoopboolIf set to true, it will restart sync script when finished
Example Request
Terminal window
curl --request PUT \
--url https://eu-central-1.autoblowapi.com/autoblow/local-script/start \
--header 'x-device-token: jya6vksq08q3'
Example Responses

Status Code: 200, Content-Type: application/json

{
"operationalMode": "LOCAL_SCRIPT_PLAYING",
"localScript": 5,
"localScriptSpeed": 2,
"motorTemperature": 30,
"oscillatorTargetSpeed": 50,
"oscillatorLowPoint": 0,
"oscillatorHighPoint": 100,
"syncScriptCurrentTime": 0,
"syncScriptOffsetTime": 0,
"syncScriptToken": "",
"syncScriptLoop": false
}

Stop playing the local script on the device.

See documentation
Request Parameters
namerequiredtypedescription
x-device-token
(header)
yesstringThe autoblow device token
Response Parameters
nametypedescription
operationalModeenum:
ONLINE_CONNECTED,
SYNC_SCRIPT_PLAYING,
SYNC_SCRIPT_PAUSED,
LOCAL_SCRIPT_PLAYING,
LOCAL_SCRIPT_PAUSED,
OSCILLATOR_PLAYING,
OSCILLATOR_PAUSED,
GO_TO,
FIRMWARE_UPDATING,
ERROR,
ERROR_MOTOR_STUCK,
ERROR_OVERHEATING
The current operational mode
localScriptnumber
(min:0)
(max:9)
The index of the local script
localScriptSpeednumber
(min:0)
(max:9)
The speed index of the local script
motorTemperaturenumberThe motor temperature in °C
oscillatorTargetSpeednumber
(min:0)
(max:100)
The oscillator target speed in percent
oscillatorLowPointnumber
(min:0)
(max:100)
The oscillator low point in percent
oscillatorHighPointnumber
(min:0)
(max:100)
The oscillator high point in percent
syncScriptCurrentTimenumberThe current time of the sync script in MS
syncScriptOffsetTimenumberThe offset time of the sync script in MS
syncScriptTokenstringThe loaded sync script token
syncScriptLoopboolIf set to true, it will restart sync script when finished
Example Request
Terminal window
curl --request PUT \
--url https://eu-central-1.autoblowapi.com/autoblow/local-script/stop \
--header 'x-device-token: jya6vksq08q3'
Example Responses

Status Code: 200, Content-Type: application/json

{
"operationalMode": "LOCAL_SCRIPT_PAUSED",
"localScript": 5,
"localScriptSpeed": 2,
"motorTemperature": 30,
"oscillatorTargetSpeed": 50,
"oscillatorLowPoint": 0,
"oscillatorHighPoint": 100,
"syncScriptCurrentTime": 0,
"syncScriptOffsetTime": 100,
"syncScriptToken": "",
"syncScriptLoop": false
}

Move the stroker to a specific stroke point with a specific speed.

See documentation
Request Parameters
namerequiredtypedescription
x-device-token
(header)
yesstringThe autoblow device token
position
(body)
yesnumber
(min:0)
(max:100)
Position in percent
speed
(body)
yesnumber
(min:0)
(max:100)
Speed in percent
Response Parameters
nametypedescription
operationalModeenum:
ONLINE_CONNECTED,
SYNC_SCRIPT_PLAYING,
SYNC_SCRIPT_PAUSED,
LOCAL_SCRIPT_PLAYING,
LOCAL_SCRIPT_PAUSED,
OSCILLATOR_PLAYING,
OSCILLATOR_PAUSED,
GO_TO,
FIRMWARE_UPDATING,
ERROR,
ERROR_MOTOR_STUCK,
ERROR_OVERHEATING
The current operational mode
localScriptnumber
(min:0)
(max:9)
The index of the local script
localScriptSpeednumber
(min:0)
(max:9)
The speed index of the local script
motorTemperaturenumberThe motor temperature in °C
oscillatorTargetSpeednumber
(min:0)
(max:100)
The oscillator target speed in percent
oscillatorLowPointnumber
(min:0)
(max:100)
The oscillator low point in percent
oscillatorHighPointnumber
(min:0)
(max:100)
The oscillator high point in percent
syncScriptCurrentTimenumberThe current time of the sync script in MS
syncScriptOffsetTimenumberThe offset time of the sync script in MS
syncScriptTokenstringThe loaded sync script token
syncScriptLoopboolIf set to true, it will restart sync script when finished
Example Request
Terminal window
curl --request PUT \
--url https://eu-central-1.autoblowapi.com/autoblow/goto \
--header 'Content-Type: application/json' \
--header 'x-device-token: jya6vksq08q3' \
--data '
{
"position" : 100,
"speed": 10
}'
Example Responses

Status Code: 200, Content-Type: application/json

{
"success": true
}

The events are sent through Server Sent Events (SSE) and the client can subscribe to the stream by sending a GET request to the /events/stream endpoint. Autoblow Ultra will send the following events:

  • speed-up-button-pressed - The speed up button was pressed
  • speed-down-button-pressed - The speed down button was pressed
  • mode-button-pressed - The mode button was pressed
  • pause-button-pressed - The pause button was pressed
See documentation
Request Parameters
namerequiredtypedescription
deviceToken
(query)
yesstringDevice token
Response Parameters
nametypedescription
eventstringThe event type
dataobjectThe event data
Example Request
Terminal window
curl --request GET \
--url https://eu-central-1.autoblowapi.com/events/stream?deviceToken=jya6vksq08q3 \
Example Responses

Status Code: 200, Content-Type: application/json

event: connected
data: {"connectionId":"bedffe18-f62e-4c9c-8e9b-7082f88d5f0c","subscribedDevice":"yksf9n31sahp"}
event: heartbeat
data: {"timestamp":1752685746276}

This API is rate limited. Each response will contain the following headers:

nametypedescription
x-ratelimit-limitnumberHow many requests the client can make
x-ratelimit-remainingnumberHow many requests remain to the client in the timewindow
x-ratelimit-resetnumberHow many seconds until the rate limit resets

The following codes are used in the operationalCode property of the /autoblow/state response.

  • ONLINE_CONNECTED - Device is connected to the server, the device is ready to receive commands.
  • SYNC_SCRIPT_PLAYING - The device is playing a sync script, for additional information check the following relevant state properties syncScriptToken,syncScriptCurrentTime,syncScriptOffsetTime,syncScriptLoop.
  • SYNC_SCRIPT_PAUSED - Sync script is paused
  • LOCAL_SCRIPT_PLAYING - Local script is playing, for additional information check the following relevant state properties localScript,localScriptSpeed.
  • LOCAL_SCRIPT_PAUSED - Local script is paused
  • OSCILLATOR_PLAYING - Oscillator is playing, for additional information check the following relevant state properties oscillatorTargetSpeed,oscillatorLowPoint,oscillatorHighPoint.
  • OSCILLATOR_PAUSED - Oscillator is paused
  • GO_TO - Device is moving to a specific stroke point
  • FIRMWARE_UPDATING - Device is updating the firmware
  • ERROR_MOTOR_STUCK - Device is in an error state because the motor is stuck
  • ERROR_OVERHEATING - Device is in an error state because it is overheating
  • ERROR - Device is in an error state