Autoblow API V1
Welcome to the Autoblow Ultra API! You can use our API to control your Autoblow Ultra device.
Selecting A Cluster
Section titled “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
Section titled “Basic Requests”GET
/autoblow/connected
Section titled “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 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
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
Section titled “GET /autoblow/info”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
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 |
deviceType | string | The device type |
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", "deviceType": "autoblow-ultra"}
GET
/autoblow/state
Section titled “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
Section titled “Oscillate Commands”PUT
/autoblow/oscillate
Section titled “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
Section titled “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
Section titled “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
Section titled “Sync Scripts Commands”PUT
/autoblow/sync-script/start
Section titled “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
Section titled “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
Section titled “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 | Vacuglide 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/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}
PUT
/autoblow/sync-script/upload-fun
Section titled “PUT /autoblow/sync-script/upload-fun”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
Section titled “PUT /autoblow/sync-script/upload-csv”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
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “Local Scripts Commands”PUT
/autoblow/local-script
Section titled “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
Section titled “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
Section titled “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
Section titled “Go To Commands”PUT
/autoblow/goto
Section titled “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}
Device Events
Section titled “Device Events”GET
/events/stream
Section titled “GET /events/stream”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
name | required | type | description |
---|---|---|---|
deviceToken (query) | yes | string | Device token |
Response Parameters
name | type | description |
---|---|---|
event | string | The event type |
data | object | The event data |
Example Request
curl --request GET \ --url https://eu-central-1.autoblowapi.com/events/stream?deviceToken=jya6vksq08q3 \
Example Responses
Status Code: 200, Content-Type: application/json
event: connecteddata: {"connectionId":"bedffe18-f62e-4c9c-8e9b-7082f88d5f0c","subscribedDevice":"yksf9n31sahp"}event: heartbeatdata: {"timestamp":1752685746276}
Rate Limiting
Section titled “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
Section titled “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