As pages interact with users on various Meta apps, Meta may flag pages for violating the various community standards and other policies. When violations are detected, Meta may warn or restrict pages from performing various actions. Restrictions may range from not being able to change the name of a page for a few days to more severe ones, such as being unable to message users, use Meta platform APIs, or having the page completely disabled and unpublished.
The webhook documented on this page provides apps with API access to the integrity status of a page, any violation(s) for which a page has been flagged, restrictions that Meta has applied because of the violation(s), and recommended material to educate page administrators on the violation, restriction, what actions they can take to resolve the restriction, and how to prevent them in the future.
This guide assumes you have set up your webhooks server to receive notifications and subscribed to the business_integrity field.
You need the following:
pages_manage_metadata permissionThe page integrity webhook provides the same information as the Page Integrity API but it does so with incremental events that can be used to notify the page administrator of any integrity updates (e.g. new violations, restrictions, resolutions, action updates) in real-time.
To get real-time integrity updates, the app needs to set up webhooks and subscribe to the business_integrity field. The page should have granted the necessary pages_manage_metadata permission
When a violation or restriction occurs, your webhook will receive a payload similar to the following:
The following webhook shows an example of a page status being changed to restricted due to a cybersecurity violation.
{
"object": "page",
"entry": [
{
"time": 1761804073668,
"id": "{PAGE_ID}",
"messaging": [
{
"timestamp": 1761803759,
"status": "restricted",
"violations": [
{
"type": "CYBERSECURITY",
"description": "The Page may try to gather sensitive information from others.",
"url": "https://www.transparency.meta.com/policies/community-standards/cybersecurity/"
}
]
}
]
}
]
}The following response shows an example of a page being restricted from sending messages via the Messaging APIs due to a SPAM violation.
{
"object": "page",
"entry": [
{
"time": 1760978707275,
"id": "{PAGE_ID}",
"messaging": [
{
"timestamp": 1760977876,
"status": "ok",
"violations": [
{
"type": "SPAM",
"description": "We don't allow people to take actions at high volume that might bother others.",
"url": "https://transparency.meta.com/policies/community-standards/spam/"
}
]
}
],
"restrictions": [
{
"feature": "page_messaging_api",
"status": "RESTRICTED",
"description": "This page is restricted from sending messages via Messenger Platform for 1 day",
"applied_time": 1760977876,
"expiration_time": 1761064276
},
{
"feature": "page_messaging",
"status": "RESTRICTED",
"description": "This page is restricted from sending messages via Messenger Platform for 1 day",
"applied_time": 1760977876,
"expiration_time": 1761064276
}
]
}
]
}The following webhook shows an example of a page being suspended / unpublished from Meta's apps.
{
"object": "page",
"entry": [
{
"time": 1761251584556,
"id": "{PAGE_ID}",
"messaging": [
{
"timestamp": 1761251502,
"status": "suspended",
"violations": [
{
"type": "NUDITY",
"description": "The Page may show nudity.",
"link": "https://www.meta.com/policies/community-standards/adult-nudity-sexual-activity/"
}
],
"restrictions": [
{
"feature": "page_publish",
"status": "RESTRICTED",
"description": "We suspended your Page",
"applied_time": 1761251502
}
]
}
]
}
]
}The following webhook shows an example of a page restriction being lifted and the page is now able to send messages via the Messaging API.
{
"object": "page",
"entry": [
{
"time": 1760978542664,
"id": "{PAGE_ID}",
"messaging": [
{
"timestamp": 1760978516,
"status": "ok",
"restrictions": [
{
"feature": "page_messaging_api",
"status": "UNRESTRICTED",
"description": "this page is no longer restricted from sending messages",
"applied_time": 1760978516
}
]
}
]
}
]
}The following example shows the page getting a webhook notification after filing a new appeal with Meta.
{
"object": "page",
"entry": [
{
"time": 1761672505662,
"id": "{PAGE_ID}",
"messaging": [
{
"timestamp": 1761672452,
"status": "restricted",
"action_events": [
{
"type": "APPEAL",
"status": "OPENED",
"created_time": 1761672452,
"updated_time": 1761672452
}
]
}
]
}
]
}The following webhook shows an example of the appeal being resolved after Meta finished reviewing it. This may or may not remove the restriction, but the webhook lets the administrator know that the appeal is no longer in progress.
{
"object": "page",
"entry": [
{
"time": 1761672786564,
"id": "{PAGE_ID}",
"messaging": [
{
"timestamp": 1761672720,
"status": "restricted",
"action_events": [
{
"type": "APPEAL",
"status": "RESOLVED",
"created_time": 1761672452,
"updated_time": 1761672720
}
]
}
]
}
]
}