API
Automate transfers, remotely set settings, and control licenses.
You can tell OffShoot to do something by calling this URL – offshoot://. You can call this from any app or script that can open an URL.
Using Hedge? Then use hedge:// instead of offshoot://
Using a browser
Copy/paste the URL below in a web browser, press Enter, and OffShoot will open.
offshoot://openUsing a shell
Copy/paste the command below in a shell, press Enter, and OffShoot will open.
Using Terminal
open 'offshoot://open'Using PowerShell
start 'offshoot://open'Using a script
AppleScript:
do shell script ("open 'offshoot://open'")Python:
import os
os.system("open 'offshoot://open'")Python
import os
os.system("start 'offshoot://open'")The result of an API call is logged in a text file.
Location: ~/Library/Logs/Hedge/urlSchemeResponseLog.txt
This log will contain a single line with either a success or fail state. It's empty when OffShoot starts, then emptied after each call.
Location: C:\Users\$username\AppData\Roaming\Hedge\HedgeCallback.log
This is a multi-line log. It's emptied on app start and after each call.
$time | $id | $arguments_passed
$time | $id | $call_result
OffShoot API calls
Control OffShoot's application state.
Open
offshoot://openQuit
offshoot://quitRestart
offshoot://restartCheck for updates
offshoot://updateActivate
offshoot://activate?key=xxxx-xxxx-xxxx-xxxxkey
String
Required
Deactivate
offshoot://deactivateChain Actions
The actions call allows you to pass multiple API calls in a single request:
offshoot://actions?json=[{"<action>":{"<property>": "<value>"}},{"<action>":{"<property>": "<value>"}}]Example
offshoot://actions?json=[{"deactivate":{}},{"activate":{"key":"xxxx-xxxx-xxxx-xxxx"}}]json
Array containing JSON object(s)
Required
<action>
String
An API action
<property>
String
An action property
<value>
Various
The value of the property
Reset Disks
Removes disks from Sources and/or Destinations dropzones. Existing transfers are not affected. If type is not defined, both Sources and Destinations are reset.
offshoot://reset?type=sourcestype
Sting
Optional (sources or destinations).
Set Source
Sets a single Source or a collection of paths and applies a Label when defined.
offshoot://setSource?paths=["/Volumes/UNTITLED"]&label=Clipspaths
Array
Required
label
String
Optional
Terminal examples:
open 'offshoot://actions?json=[{"setSource":{"paths":["/Volumes/Untitled/The Clips"],"label":"test"}}]'Call with URL encoded json= value
open 'offshoot://actions?json=%5B%7B%22setSource%22%3A%7B%22paths%22%3A%5B%22%2FVolumes%2FUntitled%2FThe%20Clips%22%5D%2C%22label%22%3A%22test%22%7D%7D%5DPowerShell examples:
Call with escaped quotes
start 'offshoot://actions?json=[{\"setSource\":{\"paths\":[\"G:\The Clips\"],\"label\":\"test\"}}]'Call with URL encoded json= value (don't escape quotes)
start 'offshoot://actions?json=[{"setSource":{"paths":["G:\The Clips"],"label":"test"}}]'start 'offshoot://actions?json=%5B%7B%22setSource%22%3A%7B%22paths%22%3A%5B%22G%3A%5CThe%20Clips%22%5D%2C%22label%22%3A%22test%22%7D%7D%5D'Set Destination
Sets a single Destination
offshoot://setDestination?path=/Volumes/BACKUPpath
Array
Required / URL encoded
Terminal examples:
open 'offshoot://actions?json=[{"setDestination":{"path":"/Volumes/Untitled/The Project"}}]'Call with URL encoded json= value
open 'offshoot://actions?json=%5B%7B%22setDestination%22%3A%7B%22path%22%3A%22%2FVolumes%2FUntitled%2FThe%20Project%22%7D%7D%5D'PowerShell examples:
start "offshoot://setDestination?path=SSD"start "offshoot://setDestination?path=H:\"Call with escaped quotes
start 'offshoot://actions?json=[{\"setDestination\":{\"path\":\"G:\The Clips\"}}]'Call with URL encoded json= value (don't escape quotes)
start 'offshoot://actions?json=[{"setSource":{"paths":["G:\The Clips"],"label":"test"}}]'start 'offshoot://actions?json=%5B%7B%22setSource%22%3A%7B%22paths%22%3A%5B%22G%3A%5CThe%20Clips%22%5D%2C%22label%22%3A%22test%22%7D%7D%5D'Reload Presets
Reloads all presets. Call this after making changes to preset files.
offshoot://reloadPresetsAdd transfers
Creates transfers for all new combinations of Sources and Destinations. Identical to pressing the Add Transfers button in OffShoot.
offshoot://addTransfersSet Preferences
Sets a specific preference to a specific value. A complete list of all key names is available here: /Applications/OffShoot.app/Contents/Resources/SFIDefaults.plist
offshoot://setPreferences?preferences={"SFIDefaultsAutoSources":"0"}preferences
JSON Object
Required
Last updated