curl --request POST \
--url https://api.sendrealm.com/push/live-activity-tests/{test_id}/notifications \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"activity_type": "<string>",
"attributes_type": "<string>",
"title": "<string>",
"subtitle": "<string>",
"body": "<string>",
"status": "<string>",
"progress": 0.5,
"eta": "<string>",
"image_url": "<string>",
"accent_color": "<string>",
"launch_url": "<string>",
"content_state": {},
"attributes": {},
"stale_at": "2023-11-07T05:31:56Z",
"dismiss_at": "2023-11-07T05:31:56Z",
"relevance_score": 0.5,
"sound": "<string>",
"data": {},
"stale_date": "2023-11-07T05:31:56Z",
"dismissal_date": "2023-11-07T05:31:56Z",
"buttons": [
{
"id": "<string>",
"text": "<string>",
"title": "<string>",
"icon": "<string>",
"launch_url": "<string>"
}
]
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
activity_type: '<string>',
attributes_type: '<string>',
title: '<string>',
subtitle: '<string>',
body: JSON.stringify('<string>'),
status: '<string>',
progress: 0.5,
eta: '<string>',
image_url: '<string>',
accent_color: '<string>',
launch_url: '<string>',
content_state: {},
attributes: {},
stale_at: '2023-11-07T05:31:56Z',
dismiss_at: '2023-11-07T05:31:56Z',
relevance_score: 0.5,
sound: '<string>',
data: {},
stale_date: '2023-11-07T05:31:56Z',
dismissal_date: '2023-11-07T05:31:56Z',
buttons: [
{
id: '<string>',
text: '<string>',
title: '<string>',
icon: '<string>',
launch_url: '<string>'
}
]
})
};
fetch('https://api.sendrealm.com/push/live-activity-tests/{test_id}/notifications', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.sendrealm.com/push/live-activity-tests/{test_id}/notifications"
payload = {
"activity_type": "<string>",
"attributes_type": "<string>",
"title": "<string>",
"subtitle": "<string>",
"body": "<string>",
"status": "<string>",
"progress": 0.5,
"eta": "<string>",
"image_url": "<string>",
"accent_color": "<string>",
"launch_url": "<string>",
"content_state": {},
"attributes": {},
"stale_at": "2023-11-07T05:31:56Z",
"dismiss_at": "2023-11-07T05:31:56Z",
"relevance_score": 0.5,
"sound": "<string>",
"data": {},
"stale_date": "2023-11-07T05:31:56Z",
"dismissal_date": "2023-11-07T05:31:56Z",
"buttons": [
{
"id": "<string>",
"text": "<string>",
"title": "<string>",
"icon": "<string>",
"launch_url": "<string>"
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"data": {
"test_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"activity_id": "<string>",
"device_id": "<string>",
"state": "<string>",
"recipients": {
"total": 123,
"sent": 123,
"failed": 123
},
"events": [
"<string>"
],
"events_has_more": true,
"links": {}
},
"status": 123,
"metadata": {
"total": 123,
"items": 123,
"limit": 123,
"after": "<string>",
"next": "<string>",
"has_more": true
}
}{
"status": 123,
"error": {
"code": "<string>",
"message": "<string>",
"details": "<string>",
"issues": [
{
"code": "<string>",
"path": "<string>",
"message": "<string>"
}
]
}
}{
"status": 123,
"error": {
"code": "<string>",
"message": "<string>",
"details": "<string>",
"issues": [
{
"code": "<string>",
"path": "<string>",
"message": "<string>"
}
]
}
}{
"status": 123,
"error": {
"code": "<string>",
"message": "<string>",
"details": "<string>",
"issues": [
{
"code": "<string>",
"path": "<string>",
"message": "<string>"
}
]
}
}{
"status": 123,
"error": {
"code": "<string>",
"message": "<string>",
"details": "<string>",
"issues": [
{
"code": "<string>",
"path": "<string>",
"message": "<string>"
}
]
}
}{
"status": 123,
"error": {
"code": "<string>",
"message": "<string>",
"details": "<string>",
"issues": [
{
"code": "<string>",
"path": "<string>",
"message": "<string>"
}
]
}
}Update or End Live Activity Test
Update or end the owned test using its pinned test handle.
curl --request POST \
--url https://api.sendrealm.com/push/live-activity-tests/{test_id}/notifications \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"activity_type": "<string>",
"attributes_type": "<string>",
"title": "<string>",
"subtitle": "<string>",
"body": "<string>",
"status": "<string>",
"progress": 0.5,
"eta": "<string>",
"image_url": "<string>",
"accent_color": "<string>",
"launch_url": "<string>",
"content_state": {},
"attributes": {},
"stale_at": "2023-11-07T05:31:56Z",
"dismiss_at": "2023-11-07T05:31:56Z",
"relevance_score": 0.5,
"sound": "<string>",
"data": {},
"stale_date": "2023-11-07T05:31:56Z",
"dismissal_date": "2023-11-07T05:31:56Z",
"buttons": [
{
"id": "<string>",
"text": "<string>",
"title": "<string>",
"icon": "<string>",
"launch_url": "<string>"
}
]
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
activity_type: '<string>',
attributes_type: '<string>',
title: '<string>',
subtitle: '<string>',
body: JSON.stringify('<string>'),
status: '<string>',
progress: 0.5,
eta: '<string>',
image_url: '<string>',
accent_color: '<string>',
launch_url: '<string>',
content_state: {},
attributes: {},
stale_at: '2023-11-07T05:31:56Z',
dismiss_at: '2023-11-07T05:31:56Z',
relevance_score: 0.5,
sound: '<string>',
data: {},
stale_date: '2023-11-07T05:31:56Z',
dismissal_date: '2023-11-07T05:31:56Z',
buttons: [
{
id: '<string>',
text: '<string>',
title: '<string>',
icon: '<string>',
launch_url: '<string>'
}
]
})
};
fetch('https://api.sendrealm.com/push/live-activity-tests/{test_id}/notifications', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.sendrealm.com/push/live-activity-tests/{test_id}/notifications"
payload = {
"activity_type": "<string>",
"attributes_type": "<string>",
"title": "<string>",
"subtitle": "<string>",
"body": "<string>",
"status": "<string>",
"progress": 0.5,
"eta": "<string>",
"image_url": "<string>",
"accent_color": "<string>",
"launch_url": "<string>",
"content_state": {},
"attributes": {},
"stale_at": "2023-11-07T05:31:56Z",
"dismiss_at": "2023-11-07T05:31:56Z",
"relevance_score": 0.5,
"sound": "<string>",
"data": {},
"stale_date": "2023-11-07T05:31:56Z",
"dismissal_date": "2023-11-07T05:31:56Z",
"buttons": [
{
"id": "<string>",
"text": "<string>",
"title": "<string>",
"icon": "<string>",
"launch_url": "<string>"
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"data": {
"test_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"activity_id": "<string>",
"device_id": "<string>",
"state": "<string>",
"recipients": {
"total": 123,
"sent": 123,
"failed": 123
},
"events": [
"<string>"
],
"events_has_more": true,
"links": {}
},
"status": 123,
"metadata": {
"total": 123,
"items": 123,
"limit": 123,
"after": "<string>",
"next": "<string>",
"has_more": true
}
}{
"status": 123,
"error": {
"code": "<string>",
"message": "<string>",
"details": "<string>",
"issues": [
{
"code": "<string>",
"path": "<string>",
"message": "<string>"
}
]
}
}{
"status": 123,
"error": {
"code": "<string>",
"message": "<string>",
"details": "<string>",
"issues": [
{
"code": "<string>",
"path": "<string>",
"message": "<string>"
}
]
}
}{
"status": 123,
"error": {
"code": "<string>",
"message": "<string>",
"details": "<string>",
"issues": [
{
"code": "<string>",
"path": "<string>",
"message": "<string>"
}
]
}
}{
"status": 123,
"error": {
"code": "<string>",
"message": "<string>",
"details": "<string>",
"issues": [
{
"code": "<string>",
"path": "<string>",
"message": "<string>"
}
]
}
}{
"status": 123,
"error": {
"code": "<string>",
"message": "<string>",
"details": "<string>",
"issues": [
{
"code": "<string>",
"path": "<string>",
"message": "<string>"
}
]
}
}push.test.send and the test’s explicitly selected project. Supply event: "update" or "end" and the permitted payload. The existing creator, app, and device remain pinned. End the authorized test when the workflow is complete.Authorizations
Integration key for backend workloads, or a scoped personal key (sr_user_) for account discovery and supported project operations. MCP accepts only personal keys.
Headers
Explicit project context. Required for personal-key project resource calls; integration keys retain their configured default. MCP clients supply project_id in each tool call instead.
Path Parameters
Body
Test lifecycle event.
update, end Native activity type.
Native activity attributes type.
Activity title.
Activity subtitle.
Activity message.
Application status.
0 <= x <= 1Application ETA.
Image URL.
Accent color.
Tap destination.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
5, 10 ISO 8601 stale time.
ISO 8601 dismiss time.
0 <= x <= 1Native sound.
Show child attributes
Show child attributes
Legacy alias for stale_at.
Legacy alias for dismiss_at.
Native activity buttons.
3Show child attributes
Show child attributes