API Key
You can use the API key available here to authenticate your requests when needed. Use the Create a Join API link for your device option there (or the JOIN API button if the window is narrow).
Send Push
With Join you can easily send pushes to your devices by using a simple URL.
To get started, go here, click on the a device and then click the Create a Join API link for your device option there (or the JOIN API button if the window is narrow) button. You’ll be able to generate a URL that will send a push to your device.
These are the possible URL parameters you can use in the URL. All parameters need to be URL encoded before used (you can URL Encode some text here):
- deviceId – The device ID or group ID of the device you want to send the message to. It is mandatory that you either set this or the deviceIds parameter. Possible groups are
- group.all
- group.android
- group.windows10
- group.phone
- group.tablet
- group.pc
- deviceIds – a comma separated list of device IDs you want to send the push to. It is mandatory that you either set this or the deviceId parameter
- deviceNames – a comma separated list of device names you want to send the push to. It can be parcial names. For example, if you set deviceNames to Nexus,PC it’ll send it to devices called Nexus 5, Nexus 6, Home PC and Work PC if you have devices named that way. Must be used with the API key to work!
- text – usually used as a Tasker or EventGhost command. Can also be used with URLs and Files to add a description for those elements
- url – A URL you want to open on the device. If a notification is created with this push, this will make clicking the notification open this URL.
- clipboard – some text you want to set on the receiving device’s clipboard. If the device is an Android device and the Join accessibility service is enabled the text will be pasted right away in the app that’s currently opened.
- file – a publicly accessible URL of a file. You can also send the url of a file on your personal Google Drive
- smsnumber – phone number to send an SMS to. If you want to set an SMS you need to set this and the smstext values
- smstext – some text to send in an SMS. If you want to set an SMS you need to set this and the smsnumber values
- smscontactname – Alternatively to the smsnumber you can specify this and Join will send the SMS to the first number that matches the name
- mmssubject – Subject for the message. This will make the sent message be an MMS instead of an SMS
- mmsfile – File attached to the message. Must be a local (to the phone) file or a publicly accessible URL. This will make the sent message be an MMS instead of an SMS
- mmsurgent – Set to 1 if this is an urgent MMS. This will make the sent message be an MMS instead of an SMS
- callnumber– phone number to call
- wallpaper – a publicly accessible URL of an image file. Will set the wallpaper on the receiving device
- lockWallpaper – a publicly accessible URL of an image file. Will set the lockscreen wallpaper on the receiving device if the device has Android 7 or above
- find – set to true to make your device ring loudly
- mediaVolume, ringVolume or alarmVolume – set the corresponding volumes on your device
- interruptionFilter – Set to
- 1 to allow all interruptions
- 2 to allow only priority interrupions (like priority notifications or calls)
- 3 to not allow any interruptions
- 4 to only allow alarm related interruptions
- say – Say some text out loud.
- language – The language to use for the say text
- app – App name of the app you want to open on the remote device
- appPackage – Package name of the app you want to open on the remote device. You can check the package name for an app by going to its Google Play page and checking the end of the URL. Example: for YouTube this is the URL (https://play.google.com/store/apps/details?id=com.google.android.youtube) and this is the package name (com.google.android.youtube)
Notification Fields
These fields are meant for notifications created using the Join API.
- title – If used, will always create a notification on the receiving device with this as the title and text as the notification’s text
- icon – If a notification is created on the receiving device and this is set, then it’ll be used as the notification’s icon. If this image has transparency, it’ll also be used as the status bar icon is smallicon is not set. It’ll also be used to tint the notification with its dominating color
- smallicon – If a notification is created on the receiving device and this is set, then it’ll be used as the notification’s status bar icon
- priority – control how your notification is displayed: lower priority notifications are usually displayed lower in the notification list. Values from -2 (lowest priority) to 2 (highest priority). Default is 2.
- vibration – if the notification is received on an Android device, the vibration pattern in this field will change the way the device vibrates with it. You can easily create a pattern by going here and generating the pattern in the Vibration Pattern field
- dismissOnTouch – set to true to make the notification go away when you touch it
- image – publicly available URL for an image to show up in the notification
- group – unique ID to group your notifications with
- sound – publicly available URL for a sound to play with the notification
- actions – Set notification buttons with customized behaviour. More info here.
- notificationId – This is the unique identifier for your notifications. If you create multiple notifications using the same ID, the new notifications will overwrite the existing notification that has the same ID.
- category – the notification category defines the Android System category the notification will be in, so you can change the notification sound, vibration etc for the specific category you want (long click the notification to configure)
- timeout – time in milliseconds the notification will show for. If not set the notification will not be dismissed automatically.
Media Fields
These fields related to media actions
- mediaApp – the media app name that you want to use the commands below. If left empty, the currently playing app will be used
- mediaAppPackage – the media app’s package name. Will override the name above if set.
- playpause – toggle play/pause in the currently playing app or the app specified above
- play – play in the currently playing app or the app specified above
- pause – pause in the currently playing app or the app specified above
- back – press the “rewind” button in the currently playing app or the app specified above. What this actually does depends on the app.
- next – press the “fast forward” button in the currently playing app or the app specified above. What this actually does depends on the app.
- mediaSearch – Search and play the media specified in this field in the app specified above.
List Devices
URL: https://joinjoaomgcd.appspot.com/_ah/api/registration/v1/listDevices?apikey={apikey}
Replace {apikey} with your own API key.
Example output:
{ "success" : true, "userAuthError" : false, "records" : [ { "id" : "1461864582973", "regId" : "APA91bFr0ASDFSAFASFASFR8w4HzbINUkBGESARbUPDNUX_Lo02o4NXAPUH2g", "userAccount" : "example@example.com", "deviceId" : "bd76a9c03b5b4f98aa8bb335aff728f1", "deviceName" : "Chrome", "deviceType" : 3, "apiLevel" : 0 }, { "id" : "1461864586607", "regId" : "f3bsRvTqfjk:APA91bG_L3TxbS3d4FPo-QkhfwNElGrZbo7MRWIWIASDIAOSDA_JNJYivZYo23p5TN9k61FVUBdRobNW", "userAccount" : "example@example.com", "deviceId" : "c3cbc0cf5eb84244a8cc3e10f5da1213", "deviceName" : "Unknown Android SDK built for x86_64", "deviceType" : 1, "apiLevel" : 23, "model" : "Nexus 6" } ] }