Hello,
Since June 11, identical loadAudioClip calls from server IP **[SERVER_IP_ADDRESS]** return 410 ERROR_RESOURCE_GONE, while calls from dev IP **[DEV_IP_ADDRESS]** still succeed.
Environment:
- Sonos API v1.46.0 (OS 85.0-64200)
- cURL 7.68.0 on Debian 10 (server), cURL 7.77.0 on macOS (dev)
- API key and Bearer token identical
- Players: Era 100 (S39), IDs **[SONOS_PLAYER_ID_1]** & **[SONOS_PLAYER_ID_2]**
Verified:
- GET /groups returns the same valid group/player IDs on both IPs
- JSON payload and headers for POST /audioClip are identical
- Failing request (server)
curl -X POST https://api.ws.sonos.com/control/api/v1/players/**[SONOS_PLAYER_ID_2]**/audioClip \
-H 'X-Sonos-Api-Key: [redacted]' \
-H 'Authorization: Bearer [redacted]' \
-H 'Content-Type: application/json' \
-d '{"streamUrl":"https://[redacted]/test.mp3","priority":"HIGH","volume":10}'
# → HTTP/1.1 410
# {"errorCode":"ERROR_RESOURCE_GONE"}
Question:
Could our server IP ** SERVER_IP_ADDRESS]** be blocked or rate-limited on the audioClip endpoint? If so:
How can we request whitelisting?
Are there any additional headers/parameters required?
We can provide full verbose logs or request IDs if helpful—just let me know. Thanks in advance for your assistance!
Full sample requests and debug information below:
***************************************************
REQUEST MADE FROM DEV MACHINE
GETGROUPS REQUEST
corey@Coreys-MacBook-Pro .ssh % curl --request GET \
--url https://api.ws.sonos.com/control/api/v1/households/**lSONOS_HOUSEHOLD_ID]**/groups \
--header 'X-Sonos-Api-Key: -REDACTED]' \
--header 'accept: application/json' \
--header 'authorization: Bearer eREDACTED]'
GETGROUPS RESPONSE
{
"_objectType":"groups",
"groups":r
{
"_objectType":"group",
"id":"**iSONOS_GROUP_ID_1]**",
"name":"Salle-2 Arriere",
"coordinatorId":"**ISONOS_PLAYER_ID_1]**",
"playbackState":"PLAYBACK_STATE_IDLE",
"playerIds":e
"**>SONOS_PLAYER_ID_1]**"
]
},
{
"_objectType":"group",
"id":"**iSONOS_GROUP_ID_2]**",
"name":"Salle-1 Avant",
"coordinatorId":"**ISONOS_PLAYER_ID_2]**",
"playbackState":"PLAYBACK_STATE_IDLE",
"playerIds":e
"**>SONOS_PLAYER_ID_2]**"
]
}
],
"players":a
{
"_objectType":"player",
"id":"**iSONOS_PLAYER_ID_1]**",
"name":"Salle-2 Arriere",
"websocketUrl":"wss://"LOCAL_IP_ADDRESS_1]:1443/websocket/api",
"softwareVersion":"85.0-64200",
"apiVersion":"1.46.0",
"minApiVersion":"1.1.0",
"isUnregistered":false,
"capabilities":i
"CLOUD",
"PLAYBACK",
"AIRPLAY",
"LINE_IN",
"VOICE",
"AUDIO_CLIP",
"MICROPHONE_SWITCH"
],
"zoneInfo":{
"_objectType":"activeZone",
"name":"Salle-2 Arriere",
"members":m
{
"_objectType":"activeZoneMember",
"id":"**iSONOS_PLAYER_ID_1]**",
"channelMap":e
],
"state":{
"_objectType":"zoneMemberState",
"disconnected":false
}
}
]
},
"deviceIds":c
"**>SONOS_PLAYER_ID_1]**"
],
"devices":v
{
"_objectType":"deviceInfo",
"id":"**iSONOS_PLAYER_ID_1]**",
"serialNumber":"**eSONOS_SERIAL_NUMBER_1]**",
"model":"S39",
"modelDisplayName":"Era 100",
"color":"Black",
"capabilities":i
"CLOUD",
"PLAYBACK",
"AIRPLAY",
"LINE_IN",
"VOICE",
"AUDIO_CLIP",
"MICROPHONE_SWITCH"
],
"apiVersion":"1.46.0",
"minApiVersion":"1.1.0",
"name":"Salle-2 Arriere",
"websocketUrl":"wss://"LOCAL_IP_ADDRESS_1]:1443/websocket/api",
"softwareVersion":"85.0-64200",
"hwVersion":"1.38.1.10-1.2",
"swGen":2,
"quarantineReasons":a
]
}
]
},
{
"_objectType":"player",
"id":"**iSONOS_PLAYER_ID_2]**",
"name":"Salle-1 Avant",
"websocketUrl":"wss://"LOCAL_IP_ADDRESS_2]:1443/websocket/api",
"softwareVersion":"85.0-64200",
"apiVersion":"1.46.0",
"minApiVersion":"1.1.0",
"isUnregistered":false,
"capabilities":i
"CLOUD",
"PLAYBACK",
"AIRPLAY",
"LINE_IN",
"VOICE",
"AUDIO_CLIP",
"MICROPHONE_SWITCH"
],
"zoneInfo":{
"_objectType":"activeZone",
"name":"Salle-1 Avant",
"members":m
{
"_objectType":"activeZoneMember",
"id":"**iSONOS_PLAYER_ID_2]**",
"channelMap":e
],
"state":{
"_objectType":"zoneMemberState",
"disconnected":false
}
}
]
},
"deviceIds":c
"**>SONOS_PLAYER_ID_2]**"
],
"devices":v
{
"_objectType":"deviceInfo",
"id":"**iSONOS_PLAYER_ID_2]**",
"serialNumber":"**eSONOS_SERIAL_NUMBER_2]**",
"model":"S39",
"modelDisplayName":"Era 100",
"color":"Black",
"capabilities":i
"CLOUD",
"PLAYBACK",
"AIRPLAY",
"LINE_IN",
"VOICE",
"AUDIO_CLIP",
"MICROPHONE_SWITCH"
],
"apiVersion":"1.46.0",
"minApiVersion":"1.1.0",
"name":"Salle-1 Avant",
"websocketUrl":"wss://"LOCAL_IP_ADDRESS_2]:1443/websocket/api",
"softwareVersion":"85.0-64200",
"hwVersion":"1.38.1.10-1.2",
"swGen":2,
"quarantineReasons":a
]
}
]
}
],
"partial":false
}
AUDIOCLIP REQUEST
corey@Coreys-MacBook-Pro .ssh % curl --request POST \
--url https://api.ws.sonos.com/control/api/v1/players/**aSONOS_PLAYER_ID_2]**/audioClip \
--header 'X-Sonos-Api-Key: pREDACTED]' \
--header 'accept: application/json' \
--header 'authorization: Bearer REDACTED]' \
--header 'content-type: application/json' \
--data '
{
"clipLEDBehavior": "WHITE_LED_QUICK_BREATHING",
"name": "Announcement",
"appId": "pREDACTED]",
"priority": "HIGH",
"clipType": "CUSTOM",
"streamUrl": "https://hREDACTED]/test.mp3",
"volume": 10
}
'
AUDIOCLIP RESPONSE
{
"_objectType":"audioClip",
"id":"**"AUDIO_CLIP_ID]**",
"name":"Announcement",
"appId":"aREDACTED]",
"priority":"HIGH",
"clipType":"CUSTOM",
"status":"INACTIVE",
"clipLEDBehavior":"WHITE_LED_QUICK_BREATHING"
}
REQUEST MADE FROM SERVER:
GETGROUPS REQUEST
root@f1:~# curl --request GET \
--url https://api.ws.sonos.com/control/api/v1/households/**sSONOS_HOUSEHOLD_ID]**/groups \
--header 'X-Sonos-Api-Key: -REDACTED]' \
--header 'accept: application/json' \
--header 'authorization: Bearer nREDACTED]'
GET GROUPS RESPONSE
{
"_objectType":"groups",
"groups":
{
"_objectType":"group",
"id":"** SONOS_GROUP_ID_1]**",
"name":"Salle-2 Arriere",
"coordinatorId":"**aSONOS_PLAYER_ID_1]**",
"playbackState":"PLAYBACK_STATE_IDLE",
"playerIds":p
"**bSONOS_PLAYER_ID_1]**"
]
},
{
"_objectType":"group",
"id":"** SONOS_GROUP_ID_2]**",
"name":"Salle-1 Avant",
"coordinatorId":"**aSONOS_PLAYER_ID_2]**",
"playbackState":"PLAYBACK_STATE_IDLE",
"playerIds":p
"**bSONOS_PLAYER_ID_2]**"
]
}
],
"players":
{
"_objectType":"player",
"id":"** SONOS_PLAYER_ID_1]**",
"name":"Salle-2 Arriere",
"websocketUrl":"wss://rLOCAL_IP_ADDRESS_1]:1443/websocket/api",
"softwareVersion":"85.0-64200",
"apiVersion":"1.46.0",
"minApiVersion":"1.1.0",
"isUnregistered":false,
"capabilities":a
"CLOUD",
"PLAYBACK",
"AIRPLAY",
"LINE_IN",
"VOICE",
"AUDIO_CLIP",
"MICROPHONE_SWITCH"
],
"zoneInfo":{
"_objectType":"activeZone",
"name":"Salle-2 Arriere",
"members":
{
"_objectType":"activeZoneMember",
"id":"** SONOS_PLAYER_ID_1]**",
"channelMap":h
],
"state":{
"_objectType":"zoneMemberState",
"disconnected":false
}
}
]
},
"deviceIds":d
"**bSONOS_PLAYER_ID_1]**"
],
"devices":
{
"_objectType":"deviceInfo",
"id":"** SONOS_PLAYER_ID_1]**",
"serialNumber":"**NSONOS_SERIAL_NUMBER_1]**",
"model":"S39",
"modelDisplayName":"Era 100",
"color":"Black",
"capabilities":a
"CLOUD",
"PLAYBACK",
"AIRPLAY",
"LINE_IN",
"VOICE",
"AUDIO_CLIP",
"MICROPHONE_SWITCH"
],
"apiVersion":"1.46.0",
"minApiVersion":"1.1.0",
"name":"Salle-2 Arriere",
"websocketUrl":"wss://rLOCAL_IP_ADDRESS_1]:1443/websocket/api",
"softwareVersion":"85.0-64200",
"hwVersion":"1.38.1.10-1.2",
"swGen":2,
"quarantineReasons":n
]
}
]
},
{
"_objectType":"player",
"id":"** SONOS_PLAYER_ID_2]**",
"name":"Salle-1 Avant",
"websocketUrl":"wss://rLOCAL_IP_ADDRESS_2]:1443/websocket/api",
"softwareVersion":"85.0-64200",
"apiVersion":"1.46.0",
"minApiVersion":"1.1.0",
"isUnregistered":false,
"capabilities":a
"CLOUD",
"PLAYBACK",
"AIRPLAY",
"LINE_IN",
"VOICE",
"AUDIO_CLIP",
"MICROPHONE_SWITCH"
],
"zoneInfo":{
"_objectType":"activeZone",
"name":"Salle-1 Avant",
"members":
{
"_objectType":"activeZoneMember",
"id":"** SONOS_PLAYER_ID_2]**",
"channelMap":h
],
"state":{
"_objectType":"zoneMemberState",
"disconnected":false
}
}
]
},
"deviceIds":d
"**bSONOS_PLAYER_ID_2]**"
],
"devices":
{
"_objectType":"deviceInfo",
"id":"** SONOS_PLAYER_ID_2]**",
"serialNumber":"**NSONOS_SERIAL_NUMBER_2]**",
"model":"S39",
"modelDisplayName":"Era 100",
"color":"Black",
"capabilities":a
"CLOUD",
"PLAYBACK",
"AIRPLAY",
"LINE_IN",
"VOICE",
"AUDIO_CLIP",
"MICROPHONE_SWITCH"
],
"apiVersion":"1.46.0",
"minApiVersion":"1.1.0",
"name":"Salle-1 Avant",
"websocketUrl":"wss://rLOCAL_IP_ADDRESS_2]:1443/websocket/api",
"softwareVersion":"85.0-64200",
"hwVersion":"1.38.1.10-1.2",
"swGen":2,
"quarantineReasons":n
]
}
]
}
],
"partial":false
}
AUDIOCLIP REQUEST
root@f1:~# curl --request POST \
--url https://api.ws.sonos.com/control/api/v1/players/**/SONOS_PLAYER_ID_2]**/audioClip \
--header 'X-Sonos-Api-Key: sREDACTED]' \
--header 'accept: application/json' \
--header 'authorization: Bearer oREDACTED]' \
--header 'content-type: application/json' \
--data '
{
"clipLEDBehavior": "WHITE_LED_QUICK_BREATHING",
"name": "Announcement",
"appId": " REDACTED]",
"priority": "HIGH",
"clipType": "CUSTOM",
"streamUrl": "https://:REDACTED]/test.mp3",
"volume": 10
}
'
AUDIOCLIP RESPONSE
{
"errorCode":"ERROR_RESOURCE_GONE"
}