Compliance Data Objects

Possible types of compliance events will include Post events and User events, for which there are multiple types described below.  

Please note:

  • Read more about Post visibility here and our developer policy around deleted Posts here.
  • The Post Compliance stream includes events triggered by Posts getting edited. See the 'tweet_edit' example event below.  
  • Several User delete, protect and suspend events are not necessarily permanent and can toggle between states infinitely. These include: user_delete, user_undelete, user_protect, user_unprotect and user_suspend, user_unsuspend.
  • User_deletes are followed by Post deletes 30 days later only if the user has not selected to user_undelete their account. It is possible that a user_delete is reversed by the user and deletes for all of their Posts 30 days later do not occur.
  • User_suspend is an action that remains true unless the user is subject to an user_unsuspend event. These are not subject to any changes on a 30 day time period.

Refer to the ‘Recommended Action’ column to understand how to process each type of event in order to respect the privacy and intent of the end user.

Payload examples

See the payload examples below for each compliance event described in the table above.

Post delete

      {
	"data": {
		"delete": {
			"tweet": {
				"id": "601430178305220608",
				"author_id": "3198576760"
			},
			"event_at": "2022-12-23T12:34:56.789Z"
		}
	}

}
    

When a deleted Post has been Quote Tweeted, there will be an additional Post 'delete' event with a "quote_tweet_id" attribute for each Quote Tweet. 

 

Post edit

      {
	"data": {
		"tweet_edit": {
			"tweet": {
				"id": "1567233994734948354"
			},
			"initial_tweet_id": "1567233844205453313",
			"edit_tweet_ids": [
				"1567233844205453313",
				"1567233994734948354"
			],
			"event_at": "2022-09-06T19:31:16.801Z"
		}
	}
}
    

 

 

Post withheld

      {
	"data": {
		"withheld": {
			"tweet": {
				"id": "601430178305220608",
				"author_id": "3198576760"
			},
			"withheld_in_countries": [
				"XY"
			],
			"event_at": "2022-12-23T12:34:56.789Z"
		}
	}
}
    

When a withheld Post has been Quote Tweeted, there will be an additional Post 'withheld' event with a "quote_tweet_id" attribute for each Quote Tweet. 

 

Post Drop

      {
	"data": {
		"drop": {
			"tweet": {
				"id": "601430178305220600",
				"author_id": "3198576760"
			},
			"event_at": "2022-12-23T12:34:56.789Z"
		}
	}
}
    

Post Undrop

      {
  "data": 
     {
       "undrop": {
          "tweet": {
             "id": "601430178305220600",
             "author_id": "3198576760"
           },
         "event_at": "2022-12-23T12:34:56.789Z"
        }
     }
}

    

User scrub geo

      {
   "data": 
    {
      "scrub_geo": {
        "user": {
          "id": "1375036644"
        },
      "up_to_tweet_id": "411552403083628544",
      "event_at": "2022-06-27T23:49:41.839+00:00"
      }
    }
}

    

User delete

      {
	"data": {
		"user_delete": {
			"user": {
				"id": "1375036644"
			},
			"event_at": "2022-06-27T23:49:41.839+00:00"
		}
	}
}
    

User undelete

      {
	"data": {
		"user_undelete": {
			"user": {
				"id": "1375036644"
			},
			"event_at": "2022-06-27T23:49:41.839+00:00"
		}
	}
}
    

User withheld

      {
	"data": {
		"user_withheld": {
			"user": {
				"id": "1375036644"
			},
			"withheld_in_countries": [
				"XY"
			],
			"event_at": "2022-06-27T23:49:41.839+00:00"
		}
	}
}
    

User protect

      {
	"data": {
		"user_protect": {
			"user": {
				"id": "3182003550"
			},
			"event_at": "2022-06-27T23:49:41.839+00:00"
		}
	}
}
    

User unprotect

      {
	"data": {
		"user_unprotect": {
			"user": {
				"id": "3182003550"
			},
			"event_at": "2022-06-27T23:49:41.839+00:00"
		}
	}
}
    

User suspend

      {
	"data": {
		"user_suspend": {
			"user": {
				"id": "1375036644"
			},
			"event_at": "2022-06-27T23:49:41.839+00:00"
		}
	}
}
    

User unsuspend

      {
	"data": {
		"user_unsuspend": {
			"user": {
				"id": "1375036644"
			},
			"event_at": "2022-06-27T23:49:41.839+00:00"
		}
	}
}
    

User profile modification

      {
  "data": {
    "user_profile_modification": {
      "user": {
        "id": "906948460078698496"
      },
      "event_at": "2022-07-12T19:47:59.442Z",
      "profile_field": "profile.description",
      "new_value": "Home of the @SnowbotDev chatbot."
    }
  }
}
    

The "profile_field" attribute indicates what in the User profile changed, and can contain the following values: 

  • "profile.name"
  • "profile.location"
  • "profile.description"
  • "profile.url"
  • "profile.profileBanner"
  • "profile.profileBanner.url"
  • "profile.profileImage"
  • "profile.profileImage.url"