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.comhttps://us-east-2.autoblowapi.comhttps://us-west-1.autoblowapi.comhttps://us-west-2.autoblowapi.comhttps://ca-central-1.autoblowapi.comhttps://ap-southeast-2.autoblowapi.comhttps://eu-west-2.autoblowapi.comhttps://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
name | required | type | description |
---|---|---|---|
x-device-token (header) | yes | string | The autoblow device token |
Response Parameters
name | data | description |
---|---|---|
connected | bool | True if the device is currently connected |
cluster | string or undefined | URI to the connected cluster, undefined if not connected |
Example Request
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
name | required | type | description |
---|---|---|---|
x-device-token (header) | yes | string | The autoblow device token |
Response Parameters
name | type | description |
---|---|---|
firmwareStatus | enum: UP_TO_DATE, UPDATE_AVAILABLE, UPDATE_REQUIRED | The firmware status |
firmwareVersion | float | The current device firmware version |
firmwareBranch | string | The firmware branch |
hardwareVersion | string | The hardware version |
mac | string | The device mac address |
Example Request
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
name | required | type | description |
---|---|---|---|
x-device-token (header) | yes | string | The autoblow device token |
Response Parameters
name | type | description |
---|---|---|
operationalMode | enum: 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 |
localScript | number (min:0) (max:9) | The index of the local script |
localScriptSpeed | number (min:0) (max:9) | The speed index of the local script |
motorTemperature | number | The motor temperature in °C |
oscillatorTargetSpeed | number (min:0) (max:100) | The oscillator target speed in percent |
oscillatorLowPoint | number (min:0) (max:100) | The oscillator low point in percent |
oscillatorHighPoint | number (min:0) (max:100) | The oscillator high point in percent |
syncScriptCurrentTime | number | The current time of the sync script in MS |
syncScriptOffsetTime | number | The offset time of the sync script in MS |
syncScriptToken | string | The loaded sync script token |
syncScriptLoop | bool | If set to true, it will restart sync script when finished |
Example Request
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
name | required | type | description |
---|---|---|---|
x-device-token (header) | yes | string | The autoblow device token |
speed (body) | yes | number (min:0) (max:100) | Oscillator speed in percent |
minY (body) | yes | number (min:0) (max:100) | Oscillator min point in percent |
maxY (body) | yes | number (min:0) (max:100) | Oscillator max point in percent |
Response Parameters
name | type | description |
---|---|---|
operationalMode | enum: 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 |
localScript | number (min:0) (max:9) | The index of the local script |
localScriptSpeed | number (min:0) (max:9) | The speed index of the local script |
motorTemperature | number | The motor temperature in °C |
oscillatorTargetSpeed | number (min:0) (max:100) | The oscillator target speed in percent |
oscillatorLowPoint | number (min:0) (max:100) | The oscillator low point in percent |
oscillatorHighPoint | number (min:0) (max:100) | The oscillator high point in percent |
syncScriptCurrentTime | number | The current time of the sync script in MS |
syncScriptOffsetTime | number | The offset time of the sync script in MS |
syncScriptToken | string | The loaded sync script token |
syncScriptLoop | bool | If set to true, it will restart sync script when finished |
Example Request
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
name | required | type | description |
---|---|---|---|
x-device-token (header) | yes | string | The autoblow device token |
Response Parameters
name | type | description |
---|---|---|
operationalMode | enum: 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 |
localScript | number (min:0) (max:9) | The index of the local script |
localScriptSpeed | number (min:0) (max:9) | The speed index of the local script |
motorTemperature | number | The motor temperature in °C |
oscillatorTargetSpeed | number (min:0) (max:100) | The oscillator target speed in percent |
oscillatorLowPoint | number (min:0) (max:100) | The oscillator low point in percent |
oscillatorHighPoint | number (min:0) (max:100) | The oscillator high point in percent |
syncScriptCurrentTime | number | The current time of the sync script in MS |
syncScriptOffsetTime | number | The offset time of the sync script in MS |
syncScriptToken | string | The loaded sync script token |
syncScriptLoop | bool | If set to true, it will restart sync script when finished |
Example Request
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
name | required | type | description |
---|---|---|---|
x-device-token (header) | yes | string | The autoblow device token |
Response Parameters
name | type | description |
---|---|---|
operationalMode | enum: 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 |
localScript | number (min:0) (max:9) | The index of the local script |
localScriptSpeed | number (min:0) (max:9) | The speed index of the local script |
motorTemperature | number | The motor temperature in °C |
oscillatorTargetSpeed | number (min:0) (max:100) | The oscillator target speed in percent |
oscillatorLowPoint | number (min:0) (max:100) | The oscillator low point in percent |
oscillatorHighPoint | number (min:0) (max:100) | The oscillator high point in percent |
syncScriptCurrentTime | number | The current time of the sync script in MS |
syncScriptOffsetTime | number | The offset time of the sync script in MS |
syncScriptToken | string | The loaded sync script token |
syncScriptLoop | bool | If set to true, it will restart sync script when finished |
Example Request
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
name | required | type | description |
---|---|---|---|
x-device-token (header) | yes | string | The autoblow device token |
startTimeMs (body) | yes | number | At what time to start playing the sync script from |
Response Parameters
name | type | description |
---|---|---|
operationalMode | enum: 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 |
localScript | number (min:0) (max:9) | The index of the local script |
localScriptSpeed | number (min:0) (max:9) | The speed index of the local script |
motorTemperature | number | The motor temperature in °C |
oscillatorTargetSpeed | number (min:0) (max:100) | The oscillator target speed in percent |
oscillatorLowPoint | number (min:0) (max:100) | The oscillator low point in percent |
oscillatorHighPoint | number (min:0) (max:100) | The oscillator high point in percent |
syncScriptCurrentTime | number | The current time of the sync script in MS |
syncScriptOffsetTime | number | The offset time of the sync script in MS |
syncScriptToken | string | The loaded sync script token |
syncScriptLoop | bool | If set to true, it will restart sync script when finished |
Example Request
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
name | required | type | description |
---|---|---|---|
x-device-token (header) | yes | string | The autoblow device token |
Response Parameters
name | type | description |
---|---|---|
operationalMode | enum: 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 |
localScript | number (min:0) (max:9) | The index of the local script |
localScriptSpeed | number (min:0) (max:9) | The speed index of the local script |
motorTemperature | number | The motor temperature in °C |
oscillatorTargetSpeed | number (min:0) (max:100) | The oscillator target speed in percent |
oscillatorLowPoint | number (min:0) (max:100) | The oscillator low point in percent |
oscillatorHighPoint | number (min:0) (max:100) | The oscillator high point in percent |
syncScriptCurrentTime | number | The current time of the sync script in MS |
syncScriptOffsetTime | number | The offset time of the sync script in MS |
syncScriptToken | string | The loaded sync script token |
syncScriptLoop | bool | If set to true, it will restart sync script when finished |
Example Request
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
name | required | type | description |
---|---|---|---|
x-device-token (header) | yes | string | The autoblow device token |
scriptToken (body) | yes | string | The sync script token you want to load on the device |
Response Parameters
name | type | description |
---|---|---|
operationalMode | enum: 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 |
localScript | number (min:0) (max:9) | The index of the local script |
localScriptSpeed | number (min:0) (max:9) | The speed index of the local script |
motorTemperature | number | The motor temperature in °C |
oscillatorTargetSpeed | number (min:0) (max:100) | The oscillator target speed in percent |
oscillatorLowPoint | number (min:0) (max:100) | The oscillator low point in percent |
oscillatorHighPoint | number (min:0) (max:100) | The oscillator high point in percent |
syncScriptCurrentTime | number | The current time of the sync script in MS |
syncScriptOffsetTime | number | The offset time of the sync script in MS |
syncScriptToken | string | The loaded sync script token |
syncScriptLoop | bool | If set to true, it will restart sync script when finished |
Example Request
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
name | required | type | description |
---|---|---|---|
x-device-token (header) | yes | string | The autoblow device token |
file (multipart) | yes | file | The funscript file you want to upload |
Response Parameters
name | type | description |
---|---|---|
operationalMode | enum: 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 |
localScript | number (min:0) (max:9) | The index of the local script |
localScriptSpeed | number (min:0) (max:9) | The speed index of the local script |
motorTemperature | number | The motor temperature in °C |
oscillatorTargetSpeed | number (min:0) (max:100) | The oscillator target speed in percent |
oscillatorLowPoint | number (min:0) (max:100) | The oscillator low point in percent |
oscillatorHighPoint | number (min:0) (max:100) | The oscillator high point in percent |
syncScriptCurrentTime | number | The current time of the sync script in MS |
syncScriptOffsetTime | number | The offset time of the sync script in MS |
syncScriptToken | string | The loaded sync script token |
syncScriptLoop | bool | If set to true, it will restart sync script when finished |
Example Request
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
name | required | type | description |
---|---|---|---|
x-device-token (header) | yes | string | The autoblow device token |
file (multipart) | yes | file | The csv file you want to upload |
Response Parameters
name | type | description |
---|---|---|
operationalMode | enum: 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 |
localScript | number (min:0) (max:9) | The index of the local script |
localScriptSpeed | number (min:0) (max:9) | The speed index of the local script |
motorTemperature | number | The motor temperature in °C |
oscillatorTargetSpeed | number (min:0) (max:100) | The oscillator target speed in percent |
oscillatorLowPoint | number (min:0) (max:100) | The oscillator low point in percent |
oscillatorHighPoint | number (min:0) (max:100) | The oscillator high point in percent |
syncScriptCurrentTime | number | The current time of the sync script in MS |
syncScriptOffsetTime | number | The offset time of the sync script in MS |
syncScriptToken | string | The loaded sync script token |
syncScriptLoop | bool | If set to true, it will restart sync script when finished |
Example Request
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
name | required | type | description |
---|---|---|---|
x-device-token (header) | yes | string | The autoblow device token |
url (body) | yes | string | The URL that hosts the funscript you want to upload onto the device |
Response Parameters
name | type | description |
---|---|---|
operationalMode | enum: 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 |
localScript | number (min:0) (max:9) | The index of the local script |
localScriptSpeed | number (min:0) (max:9) | The speed index of the local script |
motorTemperature | number | The motor temperature in °C |
oscillatorTargetSpeed | number (min:0) (max:100) | The oscillator target speed in percent |
oscillatorLowPoint | number (min:0) (max:100) | The oscillator low point in percent |
oscillatorHighPoint | number (min:0) (max:100) | The oscillator high point in percent |
syncScriptCurrentTime | number | The current time of the sync script in MS |
syncScriptOffsetTime | number | The offset time of the sync script in MS |
syncScriptToken | string | The loaded sync script token |
syncScriptLoop | bool | If set to true, it will restart sync script when finished |
Example Request
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
name | required | type | description |
---|---|---|---|
x-device-token (header) | yes | string | The autoblow device token |
url (body) | yes | string | The URL that hosts the csv script you want to upload onto the device |
Response Parameters
name | type | description |
---|---|---|
operationalMode | enum: 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 |
localScript | number (min:0) (max:9) | The index of the local script |
localScriptSpeed | number (min:0) (max:9) | The speed index of the local script |
motorTemperature | number | The motor temperature in °C |
oscillatorTargetSpeed | number (min:0) (max:100) | The oscillator target speed in percent |
oscillatorLowPoint | number (min:0) (max:100) | The oscillator low point in percent |
oscillatorHighPoint | number (min:0) (max:100) | The oscillator high point in percent |
syncScriptCurrentTime | number | The current time of the sync script in MS |
syncScriptOffsetTime | number | The offset time of the sync script in MS |
syncScriptToken | string | The loaded sync script token |
syncScriptLoop | bool | If set to true, it will restart sync script when finished |
Example Request
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
name | required | type | description |
---|---|---|---|
x-device-token (header) | yes | string | The autoblow device token |
offsetTimeMs (body) | yes | number | Set an offset, the offset will get added to syncScriptCurrentTime, the offset can be positive or negative |
Response Parameters
name | type | description |
---|---|---|
operationalMode | enum: 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 |
localScript | number (min:0) (max:9) | The index of the local script |
localScriptSpeed | number (min:0) (max:9) | The speed index of the local script |
motorTemperature | number | The motor temperature in °C |
oscillatorTargetSpeed | number (min:0) (max:100) | The oscillator target speed in percent |
oscillatorLowPoint | number (min:0) (max:100) | The oscillator low point in percent |
oscillatorHighPoint | number (min:0) (max:100) | The oscillator high point in percent |
syncScriptCurrentTime | number | The current time of the sync script in MS |
syncScriptOffsetTime | number | The offset time of the sync script in MS |
syncScriptToken | string | The loaded sync script token |
syncScriptLoop | bool | If set to true, it will restart sync script when finished |
Example Request
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
name | required | type | description |
---|---|---|---|
x-device-token (header) | yes | string | The autoblow device token |
loop (body) | yes | bool | If set to true it will restart the script after it finishes playing it |
Response Parameters
name | type | description |
---|---|---|
operationalMode | enum: 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 |
localScript | number (min:0) (max:9) | The index of the local script |
localScriptSpeed | number (min:0) (max:9) | The speed index of the local script |
motorTemperature | number | The motor temperature in °C |
oscillatorTargetSpeed | number (min:0) (max:100) | The oscillator target speed in percent |
oscillatorLowPoint | number (min:0) (max:100) | The oscillator low point in percent |
oscillatorHighPoint | number (min:0) (max:100) | The oscillator high point in percent |
syncScriptCurrentTime | number | The current time of the sync script in MS |
syncScriptOffsetTime | number | The offset time of the sync script in MS |
syncScriptToken | string | The loaded sync script token |
syncScriptLoop | bool | If set to true, it will restart sync script when finished |
Example Request
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
name | required | type | description |
---|---|---|---|
x-device-token (header) | yes | string | The autoblow device token |
localScriptIndex (body) | yes | number (min:0) (max:10) | Local script playing index |
speedIndex (body) | yes | number (min:0) (max:10) | Local script speed playing index |
Response Parameters
name | type | description |
---|---|---|
operationalMode | enum: 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 |
localScript | number (min:0) (max:9) | The index of the local script |
localScriptSpeed | number (min:0) (max:9) | The speed index of the local script |
motorTemperature | number | The motor temperature in °C |
oscillatorTargetSpeed | number (min:0) (max:100) | The oscillator target speed in percent |
oscillatorLowPoint | number (min:0) (max:100) | The oscillator low point in percent |
oscillatorHighPoint | number (min:0) (max:100) | The oscillator high point in percent |
syncScriptCurrentTime | number | The current time of the sync script in MS |
syncScriptOffsetTime | number | The offset time of the sync script in MS |
syncScriptToken | string | The loaded sync script token |
syncScriptLoop | bool | If set to true, it will restart sync script when finished |
Example Request
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
name | required | type | description |
---|---|---|---|
x-device-token (header) | yes | string | The autoblow device token |
Response Parameters
name | type | description |
---|---|---|
operationalMode | enum: 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 |
localScript | number (min:0) (max:9) | The index of the local script |
localScriptSpeed | number (min:0) (max:9) | The speed index of the local script |
motorTemperature | number | The motor temperature in °C |
oscillatorTargetSpeed | number (min:0) (max:100) | The oscillator target speed in percent |
oscillatorLowPoint | number (min:0) (max:100) | The oscillator low point in percent |
oscillatorHighPoint | number (min:0) (max:100) | The oscillator high point in percent |
syncScriptCurrentTime | number | The current time of the sync script in MS |
syncScriptOffsetTime | number | The offset time of the sync script in MS |
syncScriptToken | string | The loaded sync script token |
syncScriptLoop | bool | If set to true, it will restart sync script when finished |
Example Request
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
name | required | type | description |
---|---|---|---|
x-device-token (header) | yes | string | The autoblow device token |
Response Parameters
name | type | description |
---|---|---|
operationalMode | enum: 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 |
localScript | number (min:0) (max:9) | The index of the local script |
localScriptSpeed | number (min:0) (max:9) | The speed index of the local script |
motorTemperature | number | The motor temperature in °C |
oscillatorTargetSpeed | number (min:0) (max:100) | The oscillator target speed in percent |
oscillatorLowPoint | number (min:0) (max:100) | The oscillator low point in percent |
oscillatorHighPoint | number (min:0) (max:100) | The oscillator high point in percent |
syncScriptCurrentTime | number | The current time of the sync script in MS |
syncScriptOffsetTime | number | The offset time of the sync script in MS |
syncScriptToken | string | The loaded sync script token |
syncScriptLoop | bool | If set to true, it will restart sync script when finished |
Example Request
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
name | required | type | description |
---|---|---|---|
x-device-token (header) | yes | string | The autoblow device token |
position (body) | yes | number (min:0) (max:100) | Position in percent |
speed (body) | yes | number (min:0) (max:100) | Speed in percent |
Response Parameters
name | type | description |
---|---|---|
operationalMode | enum: 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 |
localScript | number (min:0) (max:9) | The index of the local script |
localScriptSpeed | number (min:0) (max:9) | The speed index of the local script |
motorTemperature | number | The motor temperature in °C |
oscillatorTargetSpeed | number (min:0) (max:100) | The oscillator target speed in percent |
oscillatorLowPoint | number (min:0) (max:100) | The oscillator low point in percent |
oscillatorHighPoint | number (min:0) (max:100) | The oscillator high point in percent |
syncScriptCurrentTime | number | The current time of the sync script in MS |
syncScriptOffsetTime | number | The offset time of the sync script in MS |
syncScriptToken | string | The loaded sync script token |
syncScriptLoop | bool | If set to true, it will restart sync script when finished |
Example Request
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:
name | type | description |
---|---|---|
x-ratelimit-limit | number | How many requests the client can make |
x-ratelimit-remaining | number | How many requests remain to the client in the timewindow |
x-ratelimit-reset | number | How 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