Skip to content

HTTP API V1 Reference

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

Selecting A Cluster

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

Basic Requests

GET /autoblow/connected

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 best performance you should use https://us-east-1.autoblowapi.com.

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 /autoblow/info

Get additional information about the device such as the firmware/hardware version.

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
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"
}

GET /autoblow/state

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
}

Oscillate Commands

PUT /autoblow/oscillate

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
}

PUT /autoblow/oscillate/start

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
}

PUT /autoblow/oscillate/stop

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
}

Sync Scripts Commands

PUT /autoblow/sync-script/start

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
}

PUT /autoblow/sync-script/stop

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
}

PUT /autoblow/sync-script/load-token

Will load a sync script from a token.

See documentation
Request Parameters
namerequiredtypedescription
x-device-token
(header)
yesstringThe autoblow 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/autoblow/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
}

PUT /autoblow/sync-script/upload-fun-file

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
}

PUT /autoblow/sync-script/upload-csv-file

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
}

PUT /autoblow/sync-script/upload-fun-url

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
}

PUT /autoblow/sync-script/upload-csv-url

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
}

PUT /autoblow/sync-script/offset

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
}

PUT /autoblow/sync-script/loop

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
}

Local Scripts Commands

PUT /autoblow/local-script

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
}

PUT /autoblow/local-script/start

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
}

PUT /autoblow/local-script/stop

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
}

Go To Commands

PUT /autoblow/goto

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
}

Rate Limiting

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

Operational Codes

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