How to integrate status with third-party apps
Copy link
Android
iOS
Android
iOS
You can use WhatsApp’s Share to Status API to integrate status with your apps and allow your users to share content directly to their status. Your app can use Android Intents and iOS Custom URL Schemes to send photos, videos, and stickers to WhatsApp Status. WhatsApp receives this content and loads it in the status composer, allowing your user to edit and publish it like a regular status.
By accessing and using this functionality, you acknowledge and agree to be bound by the Meta Developer Terms. Additionally, you represent and warrant:
- Any content made available through your application or website, or shared to WhatsApp from your application or website, does not infringe upon the intellectual property rights of any third party and that you own, control or have otherwise secured all rights necessary to distribute, copy, publicly perform and display, or otherwise use the content via this functionality, including as uploaded and shared on WhatsApp.
- You have the authority to make the foregoing representations on behalf of your organization.
- If you do not have such authority or are otherwise unable to make the foregoing representations, you are not authorized to continue and should not do so.
Overview
WhatsApp's status composer consists of a background layer and a foreground layer.
- Background layer: Fills the screen and can be customized with a photo, video, solid color, or color gradient.
- Foreground layer: Contains an image and can be customized within the status composer.

Android implementation uses implicit intents to launch WhatsApp Status and pass it content.
Your sharing flow should:
- Instantiate an implicit intent with the content you want to pass to the WhatsApp app
- Start an activity for result and check that it can resolve the implicit intent
- Resolve the activity if it is able to
Data
You send the following data when you Share to Status.
Parameter name | Type | Description |
---|---|---|
source_app_package_name | String | Required The unique identifier of your app on a device |
share_type | String | Required Sharing type to be used for composer flow Always pass: “SHARE_TO_STATUS” |
android.intent.extra.STREAM | String | Optional URI to background media asset that is a local file on the device Images Supported formats: JPG, PNG Recommended Minimum dimensions: 720px x 1280px Videos Supported formats: MOV, MP4, WebM Supported resolutions: 720p, 1080p Duration: Up to 60 seconds Recommended aspect ratio: 9:16 |
foreground_media | String | Optional URI to foreground media asset that is a local file on the device Supported formats: JPG, PNG Additional media to show in the foreground. This can only be an image. You must pass WhatsApp a background asset, a foreground asset, or both. |
background_color | String | Optional hex_color A solid background based on the color is applied to the status. If both color and background asset are defined, the asset takes precedence. |
color_gradient_top
color_gradient_bottom | String | Optional hex_color A gradient background based on the two colors is applied to the status. If both gradient and color are defined, the gradient takes precedence. If both gradient and background asset are defined, the asset takes precedence. |
This example sends a background layer image asset and a foreground layer image asset to WhatsApp Status.
val shareIntent: Intent = Intent(Intent.ACTION_VIEW).apply {
data = Uri.parse("https://wa.me/status")
putExtra("source_app_package_name", app_package_name)
setPackage("com.whatsapp")
//Decides on which media composition flow
putExtra("share_type", "SHARE_TO_STATUS")
//Background media
//Uri must be granted FLAG_GRANT_READ_URI_PERMISSION
putExtra(Intent.EXTRA_STREAM, Uri.parse("uriToImage"))
//Foreground media
//Uri must be granted FLAG_GRANT_READ_URI_PERMISSION
putExtra("foreground_media", Uri.parse("uriToImage"))
context.grantUriPermission(packageName, Uri.parse("uriToImage"), Intent.FLAG_GRANT_READ_URI_PERMISSION)
flags = Intent.FLAG_GRANT_READ_URI_PERMISSION
}
// Verify that the activity resolves the intent and start it
startActivityForResult(shareIntent, 0)
The code example sends an image as background to WhatsApp Status.
val shareIntent: Intent = Intent(Intent.ACTION_VIEW).apply {
data = Uri.parse("https://wa.me/status")
putExtra("source_app_package_name", app_package_name)
setPackage("com.whatsapp")
//Decides on which media composition flow
putExtra("share_type", "SHARE_TO_STATUS")
//Background media
//Uri must be granted FLAG_GRANT_READ_URI_PERMISSION
putExtra(Intent.EXTRA_STREAM, Uri.parse("uriToImage"))
flags = Intent.FLAG_GRANT_READ_URI_PERMISSION
}
// Verify that the activity resolves the intent and start it
startActivityForResult(shareIntent, 0)
This example sends a foreground layer image asset and a set of background layer colors to WhatsApp Status. If you don't specify the background layer colors, the background layer color defaults to the most dominant color.
val shareIntent: Intent = Intent(Intent.ACTION_VIEW).apply
{
data = Uri.parse("https://wa.me/status")
putExtra("source_app_package_name", app_package_name)
setPackage("com.whatsapp")
//Decides on which media composition flow
putExtra("share_type", "SHARE_TO_STATUS")
//Foreground media
//Uri must be granted FLAG_GRANT_READ_URI_PERMISSION
putExtra("foreground_media", Uri.parse("uriToImage"))
context.grantUriPermission(packageName, Uri.parse("uriToImage"),
Intent.FLAG_GRANT_READ_URI_PERMISSION)
//Background color
putExtra("background_color", "hex_color")
//OR
putExtra("color_gradient_top", "hex_color")
putExtra("color_gradient_bottom", "hex_color")
flags = Intent.FLAG_GRANT_READ_URI_PERMISSION
}
// Verify that the activity resolves the intent and start it
startActivityForResult(shareIntent, 0)