Developers: Known Endpoints - alandtse/alexa_media_player GitHub Wiki
This is a list of known endpoints. This can be discovered by debugging https://alexa.amazon.com.
- https://alexa.amazon.com/api/bootstrap
- https://alexa.amazon.com/api/devices-v2/device
- https://alexa.amazon.com/api/wake-word
- https://alexa.amazon.com/api/device-preferences
- https://alexa.amazon.com/api/get-languages
- https://alexa.amazon.com/api/activities?startTime=&size=10&offset=1
- https://alexa.amazon.com/api/behaviors/automations (deprecated) use https://alexa.amazon.com/api/behaviors/v2/automations
- https://alexa.amazon.com/api/dnd/device-status-list
- https://alexa.amazon.com/api/cards?limit=50
- https://alexa.amazon.com/api/amazon-music-benefits?customerId=XXX&deviceSerialNumber=XXX&deviceType=XXX
- https://alexa.amazon.com/api/featureaccess-v3 (post)
- https://alexa.amazon.com/api/household
- https://alexa.amazon.com/api/device-wifi-details?deviceSerialNumber=XXX&deviceType=XXX
- https://alexa.amazon.com/api/wake-words-locale?deviceSerialNumber=XXX&deviceType=XXX&softwareVersion=XXX
- https://alexa.amazon.com/api/dnd/schedule?deviceType=XXX&deviceSerialNumber=XXX
Notifications
- https://alexa.amazon.com/api/notifications (list all notifications)
- https://alexa.amazon.com/api/notifications/[id] (specific notification)
Shared fields
id: f"{deviceType}-{deviceSerialNumber}-{notificationIndex}"
status: ON|OFF
version: appears to iterate as changes are made to the same id
There are three types of Notifications based on type
Alarm
originalDate
and originalTime
are the time it will trigger displayed in local time.
Snooze not investigated yet.
recurringPattern
Alarms appear to be able to repeat. Once an alarm is triggered, Amazon's JSON is not updated to reflect the next date until midnight PST. This means the client will need to calculate the next valid date until the reset.
{
None: "Never Repeat",
"P1D": "Every day",
"XXXX-WE": "Weekends",
"XXXX-WD": "Weekdays",
"XXXX-WXX-1": "Every Monday",
"XXXX-WXX-2": "Every Tuesday",
"XXXX-WXX-3": "Every Wednesday",
"XXXX-WXX-4": "Every Thursday",
"XXXX-WXX-5": "Every Friday",
"XXXX-WXX-6": "Every Saturday",
"XXXX-WXX-7": "Every Sunday"
}
Reminder
Will speak or display and smspush reminderLabel
on completion.
alarmTime
is timestamp when it will trigger.
Create (put) https://alexa.amazon.com/api/notifications/createReminder
{"type":"Reminder","status":"ON","alarmTime":1569488160000,"originalTime":"01:56:00.000","originalDate":null,"timeZoneId":null,"reminderIndex":null,"skillInfo":null,"sound":null,"deviceSerialNumber":"XXX","deviceType":"XXX","recurringPattern":"P1D","reminderLabel":"sleep","isSaveInFlight":true,"id":"createReminder","isRecurring":true,"createdDate":1569567414250}
Edit (put)
{"id":"XXX","alarmTime":1569574560000,"automationId":null,"createdDate":1569567695311,"deferredAtTime":null,"deviceSerialNumber":"XXX","deviceType":"XXX","extensibleAttribute":null,"geoLocationTriggerData":null,"lastOccurrenceTimeInMilli":0,"lastUpdatedDate":0,"musicAlarmId":null,"musicEntity":null,"notificationIndex":"fd15defe-a99e-4ae3-b149-f5db074998ef","originalDate":"2019-09-27","originalTime":"01:56:00.000","personProfile":null,"provider":null,"rRuleData":{"byMonthDays":null,"byWeekDays":null,"flexibleRecurringPatternType":"ONCE_A_DAY","frequency":null,"intervals":[1],"nextTriggerTimes":null,"notificationTimes":["01:56:00.000"],"recurEndDate":null,"recurEndTime":null,"recurStartDate":null,"recurStartTime":null,"recurrenceRules":["FREQ=DAILY;BYHOUR=1;BYMINUTE=56;BYSECOND=0;INTERVAL=1;"]},"recurrenceEligibility":false,"recurringPattern":"","remainingTime":0,"reminderAppLabel":null,"reminderLabel":"Sleep","reminderSubLabel":null,"skillInfo":null,"snoozedToTime":null,"sound":{"displayName":"Simple Alarm","folder":null,"id":"system_alerts_melodic_01","providerId":"ECHO","sampleUrl":"https://s3.amazonaws.com/deeappservice.prod.notificationtones/system_alerts_melodic_01.mp3"},"status":"ON","targetPersonProfiles":null,"timeZoneId":null,"timerLabel":null,"tmwNotificationProperties":null,"triggerTime":0,"type":"Reminder","version":"3","reminderIndex":null,"isSaveInFlight":true,"isRecurring":false}
Reminder's for all devices with recurrence uses a new json and a new flexible recurring structure. alarmTime does not appear accurate in this case.
{
"alarmTime": 1601942400000,
"automationId": None,
"createdDate": 1601954621115,
"deferredAtTime": None,
"deliveryType": "ALL_DEVICES",
"deviceName": "OTHER_MOBILE_DEVICE",
"deviceSerialNumber": "XXX",
"deviceType": "A2TF17PFR55MTB",
"extensibleAttribute": None,
"geoLocationTriggerData": None,
"id": "A2TF17PFR55MTB-XXX_REMINDER",
"lastOccurrenceTimeInMilli": 0,
"lastUpdatedDate": 0,
"loopCount": None,
"mrmGroupContext": {
"groupId": None,
"groupType": None
},
"musicAlarmId": None,
"musicEntity": None,
"notificationIndex": "XXX",
"originalDate": "2020-10-05",
"originalTime": None,
"personProfile": {
"firstName": None,
"lastName": None,
"personId": "amzn1.account.XXX",
"speakerId": None
},
"provider": None,
"rRuleData": {
"byMonthDays": [],
"byMonths": [],
"byWeekDays": ["MO"],
"flexibleRecurringPatternType": "X_TIMES_A_WEEK",
"frequency": None,
"intervals": [1],
"nextTriggerTimes": ["2020-10-05T21:00:00.000-07:00"],
"notificationTimes": ["21:00:00.000"],
"offset": [0],
"recurEndDate": None,
"recurEndTime": None,
"recurStartDate": "2020-10-05",
"recurStartTime": "00:00:00.000",
"recurrenceRules": ["FREQ=WEEKLY;BYDAY=MO;BYHOUR=21;BYMINUTE=0;BYSECOND=0;INTERVAL=1;"]
},
"recurrenceEligibility": False,
"recurringPattern": None,
"remainingTime": 0,
"reminderAppLabel": None,
"reminderLabel": "Go to sleep",
"reminderSubLabel": None,
"skillInfo": None,
"snoozedToTime": None,
"sound": {
"displayName": "Simple Alarm",
"folder": None,
"id": "system_alerts_melodic_01",
"isChildDirected": False,
"pricing": None,
"providerId": "ECHO",
"sampleUrl": "https://s3.amazonaws.com/deeappservice.prod.notificationtones/system_alerts_melodic_01.mp3"
},
"status": "ON",
"targetPersonProfiles": None,
"timeZoneId"
None,
"timerLabel": None,
"tmwNotificationProperties": None,
"triggerTime": 0,
"type": "Reminder",
"version": "5"
}
Timer
status: ON|OFF|PAUSED
counts down based on `remainingTime` in ms
Player
- https://alexa.amazon.com/api/np/queue?deviceSerialNumber=XXX&deviceType=XXX&size=25
- https://alexa.amazon.com/api/np/player?deviceSerialNumber=XXX&deviceType=XXX&screenWidth=1402&lemurId=XXX&lemurDeviceType=XXX
- https://alexa.amazon.com/api/media/historical-queue?deviceSerialNumber=XXX&deviceType=XXX&size=50&offset=-1
Notifications settings (volume)
- https://alexa.amazon.com/api/device-notification-state/
- https://alexa.amazon.com/api/device-notification-state/[deviceType]/[softwareVersion]/[deviceSerialNumber]
Get and Put
{"deviceSerialNumber":"XXX","deviceType":"A3S5BH2HU6VAYF","softwareVersion":"649649820","volumeLevel":38}
Lists (brackets means replace with value)
- https://alexa.amazon.com/api/namedLists
- https://alexa.amazon.com/api/namedLists/[List itemId]/items?startTime=&endTime=&completed=&listIds=[List itemId]
item json
{
"completed": false,
"createdDateTime": 1567557744041,
"customerId": null,
"id": "[Item ID]",
"listId": "[List itemId]",
"shoppingListItem": true,
"updatedDateTime": 1567557744041,
"value": "batteries",
"version": 1
},
Update item (put)
- https://alexa.amazon.com/api/namedLists/[List itemId]/item/[id] PUT with json of the object with added
lastLocalUpdatedDate: 1568015674666
Delete item (delete)
- https://alexa.amazon.com/api/namedLists/[List itemId]/item/[id]
{
"id": "[itemId]",
"listId": "[List itemId]",
"value": "batteries"
}
Websocket updates
Received websocket command: PUSH_LIST_ITEM_CHANGE : {'destinationUserId': 'A**********3EG', 'listId': '[List itemId]', 'eventName': 'itemCreated', 'version': 1, 'listItemId': '[itemId]'}
Smarthome
- https://alexa.amazon.com/api/phoenix/group (Alexa Whole-House Audio Groups)