Skip to main content
The Batch Compliance endpoints let you upload datasets of Post IDs or user IDs and receive their current compliance status. Use this to identify deleted Posts, suspended accounts, and other compliance events.

Overview

Post compliance

Check status of Posts in bulk

User compliance

Check status of users in bulk

Asynchronous

Submit jobs and retrieve results later

Large datasets

Process millions of IDs

How it works

  1. Create a job — Specify the type (Posts or users) and upload URL
  2. Upload IDs — Upload your dataset to the provided URL
  3. Wait for processing — Job processes asynchronously
  4. Download results — Get compliance status for each ID

Endpoints

MethodEndpointDescription
POST/2/compliance/jobsCreate a new compliance job
GET/2/compliance/jobs/:idGet job status
GET/2/compliance/jobsList all jobs

Job types

TypeDescription
tweetsCheck Post compliance status
usersCheck user compliance status

Compliance events

Post events

EventDescription
deletedPost was deleted by user
bouncedPost failed compliance check
protectedAccount became protected
suspendedAccount was suspended
scrub_geoGeo data was removed

User events

EventDescription
deletedAccount was deleted
suspendedAccount was suspended
protectedAccount became protected
deactivatedAccount was deactivated

Example: Create a job

curl -X POST "https://api.x.com/2/compliance/jobs" \
  -H "Authorization: Bearer $BEARER_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "tweets",
    "name": "my-compliance-job"
  }'

Getting started

Prerequisites