Get started with Live Activity

With the Firebase Cloud Messaging HTTP v1 API, you can remotely send, update, and end live activity notifications on iOS devices. Note that you need iOS 16.1 to use live activity and iOS 17.2 to remotely start a live activity notification.

Before you begin

Before you get started with live activity on Firebase Cloud Messaging, follow the instructions in Set up a Firebase Cloud Messaging client app on Apple platforms to create and add Firebase Cloud Messaging to your client app.

Start a live activity

To start a live activity remotely using Firebase Cloud Messaging, you need to obtain a push-to-start token from Apple. You will also need the FCM registration token for the target app.

To construct a payload that starts a live activity, fill in the apns.payload field from the following code sample to remotely start a live activity using FCM.

REST

{
"message": {
  "token": "FCM_TOKEN",
  "apns": {
    "live_activity_token": "LIVE_ACTIVITY_PUSH_TO_START_TOKEN",
    "headers": {
      "apns-priority": "10"
    },
    "payload": {
      "aps": {
        "timestamp": TIMESTAMP,
        "event": "start",
        "content-state": {
          "demo": 1
        },
        "attributes-type": "DemoAttributes",
        "attributes": {
          "demoAttribute": 1
        },
        "alert": {
          "title": "test title",
          "body": "test body"
        }
      }
    }
  }
}
}

cURL

curl -X POST -H "Authorization: Bearer OAUTH2_ACCESS_TOKEN" -H "Content-Type: application/json" -d '{
"message": {
"token": "FCM_TOKEN",
"apns": {
  "live_activity_token": "LIVE_ACTIVITY_PUSH_TO_START_TOKEN",
  "headers": {
    "apns-priority": "10"
  },
  "payload": {
    "aps": {
      "timestamp": TIMESTAMP,
      "event": "start",
      "content-state": {
        "demo": 1
      },
      "attributes-type": "DemoAttributes",
      "attributes": {
        "demoAttribute": 1
      },
      "alert": {
        "title": "test title",
        "body": "test body"
      }
    }
  }
}
}
}' https://fcm.googleapis.com/v1/projects/YOUR_PROJECT_ID/messages:send

Run

Click Run to try the sample in the API Explorer.

Update a live activity

To update a live activity remotely using Firebase Cloud Messaging, you need to obtain a push token from Apple. You will also need the FCM registration token for the target app.

To construct a payload that updates a Live Activity, fill in the apns.payload field from the following code sample to remotely update a live activity using FCM.

REST

{
"message": {
  "token": "FCM_TOKEN",
  "apns": {
    "live_activity_token": "LIVE_ACTIVITY_PUSH_TOKEN",
    "headers": {
      "apns-priority": "10"
    },
    "payload": {
      "aps": {
        "timestamp": TIMESTAMP,
        "event": "update",
        "content-state": {
          "test1": 100,
          "test2": "demo"
        },
        "alert": {
          "title": "test title",
          "body": "test body"
        }
      }
    }
  }
}
}

cURL

curl -X POST -H "Authorization: Bearer OAUTH2_ACCESS_TOKEN" -H "Content-Type: application/json" -d '{
"message": {
"token": "FCM_TOKEN",
"apns": {
  "live_activity_token": "LIVE_ACTIVITY_PUSH_TOKEN",
  "headers": {
    "apns-priority": "10"
  },
  "payload": {
    "aps": {
      "timestamp": TIMESTAMP,
      "event": "update",
      "content-state": {
        "test1": 100,
        "test2": "demo"
      },
      "alert": {
        "title": "test title",
        "body": "test body"
      }
    }
  }
}
}
}' https://fcm.googleapis.com/v1/projects/YOUR_PROJECT_ID/messages:send

Run

Click Run to try the sample in the API Explorer.

End a live activity

To end a live activity using Firebase Cloud Messaging, you need to obtain a push token from Apple. You will also need the FCM registration token for the target app.

To construct a payload that ends a live activity, fill in the apns.payload field from the following code sample to remotely end a live activity using FCM.

REST

{
"message": {
  "token": "FCM_TOKEN",
  "apns": {
    "live_activity_token": "LIVE_ACTIVITY_PUSH_TOKEN",
    "headers": {
      "apns-priority": "10"
    },
    "payload": {
      "aps": {
        "timestamp": TIMESTAMP,
        "dismissal-date": DISMISSAL_DATE,
        "event": "end",
        "content-state": {
          "test1": 100,
          "test2": "demo"
        },
        "alert": {
          "title": "test title",
          "body": "test body"
        }
      }
    }
  }
}
}

cURL

curl -X POST -H "Authorization: Bearer OAUTH2_ACCESS_TOKEN" -H "Content-Type: application/json" -d '{
"message": {
"token": "FCM_TOKEN",
"apns": {
  "live_activity_token": "LIVE_ACTIVITY_PUSH_TOKEN",
  "headers": {
    "apns-priority": "10"
  },
  "payload": {
    "aps": {
      "timestamp": TIMESTAMP,
      "dismissal-date": DISMISSAL_DATE,
      "event": "end",
      "content-state": {
        "test1": 100,
        "test2": "demo"
      },
      "alert": {
        "title": "test title",
        "body": "test body"
      }
    }
  }
}
}
}' https://fcm.googleapis.com/v1/projects/YOUR_PROJECT_ID/messages:send

Run

Click Run to try the sample in the API Explorer.