Page Integrity Webhook

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.

How It Works

  1. The page interacts with users on Meta's apps (e.g., Facebook).
  2. Meta flags the page for one or more violations of Meta's Community Standards and may apply one or more restrictions depending on the violation.
    • A webhook is triggered to the subscribed third-party app with the violation and/or restriction.
  3. The third-party app can notify the page administrator of the violation and/or restriction.
  4. The page administrator logs in to the third-party app to see more information about the violation and recommended actions.
  5. The page administrator is redirected to various Meta surfaces (Page Status, Business Support Home, Business Help Center, Developer Support) to learn more about the violation, file an appeal, file support tickets, etc.

Before You Start

This guide assumes you have set up your webhooks server to receive notifications and subscribed to the business_integrity field.

You need the following:

  • The ID for the Page sending the message
  • A Page access token from your app user
  • Your app user has granted your app the pages_manage_metadata permission

Limitations

  • The webhook provide information only for Pages you have access to with the required permissions

Integrity Fields Available Webhook

  • id - the page ID for which the information is provided
  • timestamp - the time of the request and when the information was retrieved
  • status - the current integrity status of the page. It can be:
    • ok - the page is OK, with no active violations or restrictions
    • warning - the page is not restricted but may be restricted soon due to potential violations
    • restricted - the page is currently restricted because of one or more violations
    • suspended - the page is suspended due to severe violations
  • violations - the list of active violations for the page
    • type - the type of violation corresponding to the community standards
    • description - user-friendly short description of the violation
    • url - the link where to learn more about the violation
  • restrictions - the list of active restrictions of the page
    • feature - the restricted feature. This can be one of:
      • page_publish - this feature means the page is unpublished from Meta's platform due to serious violations.
      • page_read_only - an enforcement action that prevents the page from posting new content or making changes for a specified period of time.
      • page_messaging - this feature limit blocks the Page from sending any messages to users via Messenger
      • page_messaging_api - this feature blocks the Page from sending messages via the Messenger Platform API
    • description - user-friendly short description of the restriction
    • status - current status of the restriction. This can be one of:
      • RESTRICTED - the restriction is currently enforced
      • UNRESTRICTED - the restriction is currently not enforced
    • applied_time - the time when the restriction was applied
    • expiration_time - the time when the restriction will expire
  • actions_events
    • type - the type of action. This can be one of:
      • LEARN_MORE - action with link to an article where the admin can learn more about the violation, restriction, and what to do next
      • FILE_APPEAL - an action with a link to the Page Status or Business Support Home website where the administrator can file an appeal.
      • SUPPORT_TICKET - an action with a link where the administrator or developer can file a support ticket.
    • status - the status of the action
      • OPEN - the action (e.g. support ticket or appeal) has been created
      • PENDING - the action is still pending (e.g. being reviewed). This will only be available for the GET API (not webhook).
      • RESOLVED - the action has been resolved or closed
    • created_time - the time when the action was taken (e.g. ticket created, appeal filed)
    • updated_time - the last time the action was updated

Page Integrity Webhook

The 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:

Example webhook: New Violation

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/"
           }
         ]
       }
     ]
   }
 ]
}

Example webhook: New Violation and Restrictions

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
        }
      ]
    }
  ]
}

Example webhook: New Restriction for Suspended Page

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
            }
          ]
        }
      ]
    }
  ]
}

Example webhook: Restriction is Lifted

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
            }
          ]
        }
      ]
    }
  ]
}

Example webhook: Administrator Requests an Appeal

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
           }
         ]
       }
     ]
   }
 ]
}

Example webhook: Appeal Is Resolved

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
           }
         ]
       }
     ]
   }
 ]
}