# X Twitter API v2 API

> X Twitter API v2 API on Apizie: 80 endpoints (List Compliance Jobs, Create compliance job, Get Compliance Job, Create a new DM Conversation, …) returned as clean JSON through one API key. Send your own provider key in the x-upstream-key header. Call it over REST at https://apizie.tech/v1/social-media:twitter-current/{endpoint} or from Claude, ChatGPT and Cursor through the Apizie MCP server. Free plan: 1,000 requests a month.

- Project key: `social-media:twitter-current`
- Category: Social Media
- Status: byok
- Source: https://developer.x.com
- Page: https://apizie.tech/api/social-media/twitter-current
- OpenAPI: https://apizie.tech/api/social-media/twitter-current/openapi.json

Twitter API v2 available endpoints

## Endpoints

### List Compliance Jobs
`GET https://apizie.tech/v1/social-media:twitter-current/compliance-list-jobs` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| type | string | yes | Type of Compliance Job to list. |
| status | string | no | Status of Compliance Job to list. |
| compliance_job.fields | array | no | A comma separated list of ComplianceJob fields to display. |

### Create compliance job
`POST https://apizie.tech/v1/social-media:twitter-current/compliance-create-job` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Get Compliance Job
`GET https://apizie.tech/v1/social-media:twitter-current/compliance-get-job-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the Compliance Job to retrieve. |
| compliance_job.fields | array | no | A comma separated list of ComplianceJob fields to display. |

### Create a new DM Conversation
`POST https://apizie.tech/v1/social-media:twitter-current/direct-messages-create-new-dm-conversation` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Get DM Events for a DM Conversation
`GET https://apizie.tech/v1/social-media:twitter-current/direct-messages-get-dm-events` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| participant_id | string | yes | The ID of the participant user for the One to One DM conversation. |
| max_results | integer | no | The maximum number of results. |
| pagination_token | string | no | This parameter is used to get a specified 'page' of results. |
| event_types | array | no | The set of event_types to include in the results. |
| dm_event.fields | array | no | A comma separated list of DmEvent fields to display. |
| expansions | array | no | A comma separated list of fields to expand. |
| media.fields | array | no | A comma separated list of Media fields to display. |
| user.fields | array | no | A comma separated list of User fields to display. |
| tweet.fields | array | no | A comma separated list of Tweet fields to display. |

### Send a new message to a user
`POST https://apizie.tech/v1/social-media:twitter-current/direct-messages-send-new-message-to-user` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| participant_id | string | yes | The ID of the recipient user that will receive the DM. |
| body | object | no | JSON request body |

### Send a new message to a DM Conversation
`POST https://apizie.tech/v1/social-media:twitter-current/direct-messages-send-new-message-to-dm-conversation` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| dm_conversation_id | string | yes | The DM Conversation ID. |
| body | object | no | JSON request body |

### Get DM Events for a DM Conversation
`GET https://apizie.tech/v1/social-media:twitter-current/direct-messages-get-dm-events-2` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The DM Conversation ID. |
| max_results | integer | no | The maximum number of results. |
| pagination_token | string | no | This parameter is used to get a specified 'page' of results. |
| event_types | array | no | The set of event_types to include in the results. |
| dm_event.fields | array | no | A comma separated list of DmEvent fields to display. |
| expansions | array | no | A comma separated list of fields to expand. |
| media.fields | array | no | A comma separated list of Media fields to display. |
| user.fields | array | no | A comma separated list of User fields to display. |
| tweet.fields | array | no | A comma separated list of Tweet fields to display. |

### Get recent DM Events
`GET https://apizie.tech/v1/social-media:twitter-current/direct-messages-get-recent-dm-events` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| max_results | integer | no | The maximum number of results. |
| pagination_token | string | no | This parameter is used to get a specified 'page' of results. |
| event_types | array | no | The set of event_types to include in the results. |
| dm_event.fields | array | no | A comma separated list of DmEvent fields to display. |
| expansions | array | no | A comma separated list of fields to expand. |
| media.fields | array | no | A comma separated list of Media fields to display. |
| user.fields | array | no | A comma separated list of User fields to display. |
| tweet.fields | array | no | A comma separated list of Tweet fields to display. |

### Create List
`POST https://apizie.tech/v1/social-media:twitter-current/lists-create-new-list` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### List lookup by List ID.
`GET https://apizie.tech/v1/social-media:twitter-current/lists-lookup-by-list-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the List. |
| list.fields | array | no | A comma separated list of List fields to display. |
| expansions | array | no | A comma separated list of fields to expand. |
| user.fields | array | no | A comma separated list of User fields to display. |

### Update List.
`POST https://apizie.tech/v1/social-media:twitter-current/lists-update-owned-list` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the List to modify. |
| body | object | no | JSON request body |

### Delete List
`POST https://apizie.tech/v1/social-media:twitter-current/lists-delete-owned-list` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the List to delete. |

### Returns User objects that follow a List by the provided List ID
`GET https://apizie.tech/v1/social-media:twitter-current/users-get-followers-by-list-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the List. |
| max_results | integer | no | The maximum number of results. |
| pagination_token | string | no | This parameter is used to get a specified 'page' of results. |
| user.fields | array | no | A comma separated list of User fields to display. |
| expansions | array | no | A comma separated list of fields to expand. |
| tweet.fields | array | no | A comma separated list of Tweet fields to display. |

### Returns User objects that are members of a List by the provided List ID.
`GET https://apizie.tech/v1/social-media:twitter-current/users-get-members-by-list-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the List. |
| max_results | integer | no | The maximum number of results. |
| pagination_token | string | no | This parameter is used to get a specified 'page' of results. |
| user.fields | array | no | A comma separated list of User fields to display. |
| expansions | array | no | A comma separated list of fields to expand. |
| tweet.fields | array | no | A comma separated list of Tweet fields to display. |

### Add a List member
`POST https://apizie.tech/v1/social-media:twitter-current/lists-add-member` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the List for which to add a member. |
| body | object | no | JSON request body |

### Remove a List member
`POST https://apizie.tech/v1/social-media:twitter-current/lists-remove-member` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the List to remove a member. |
| user_id | string | yes | The ID of User that will be removed from the List. |

### List Tweets timeline by List ID.
`GET https://apizie.tech/v1/social-media:twitter-current/tweets-list-by-list-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the List. |
| max_results | integer | no | The maximum number of results. |
| pagination_token | string | no | This parameter is used to get the next 'page' of results. |
| tweet.fields | array | no | A comma separated list of Tweet fields to display. |
| expansions | array | no | A comma separated list of fields to expand. |
| media.fields | array | no | A comma separated list of Media fields to display. |
| poll.fields | array | no | A comma separated list of Poll fields to display. |
| user.fields | array | no | A comma separated list of User fields to display. |
| place.fields | array | no | A comma separated list of Place fields to display. |

### Returns the OpenAPI Specification document.
`GET https://apizie.tech/v1/social-media:twitter-current/general-get-open-api-spec` (byok)

### Space lookup up Space IDs
`GET https://apizie.tech/v1/social-media:twitter-current/spaces-lookup-space-ids` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| ids | array | yes | The list of Space IDs to return. |
| space.fields | array | no | A comma separated list of Space fields to display. |
| expansions | array | no | A comma separated list of fields to expand. |
| user.fields | array | no | A comma separated list of User fields to display. |
| topic.fields | array | no | A comma separated list of Topic fields to display. |

### Space lookup by their creators
`GET https://apizie.tech/v1/social-media:twitter-current/spaces-lookup-by-creator-ids` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| user_ids | array | yes | The IDs of Users to search through. |
| space.fields | array | no | A comma separated list of Space fields to display. |
| expansions | array | no | A comma separated list of fields to expand. |
| user.fields | array | no | A comma separated list of User fields to display. |
| topic.fields | array | no | A comma separated list of Topic fields to display. |

### Search for Spaces
`GET https://apizie.tech/v1/social-media:twitter-current/spaces-find-matching-spaces` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| query | string | yes | The search query. |
| state | string | no | The state of Spaces to search for. |
| max_results | integer | no | The number of results to return. |
| space.fields | array | no | A comma separated list of Space fields to display. |
| expansions | array | no | A comma separated list of fields to expand. |
| user.fields | array | no | A comma separated list of User fields to display. |
| topic.fields | array | no | A comma separated list of Topic fields to display. |

### Space lookup by Space ID
`GET https://apizie.tech/v1/social-media:twitter-current/spaces-lookup-space-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the Space to be retrieved. |
| space.fields | array | no | A comma separated list of Space fields to display. |
| expansions | array | no | A comma separated list of fields to expand. |
| user.fields | array | no | A comma separated list of User fields to display. |
| topic.fields | array | no | A comma separated list of Topic fields to display. |

### Retrieve the list of Users who purchased a ticket to the given space
`GET https://apizie.tech/v1/social-media:twitter-current/spaces-get-buyers-list` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the Space to be retrieved. |
| pagination_token | string | no | This parameter is used to get a specified 'page' of results. |
| max_results | integer | no | The maximum number of results. |
| user.fields | array | no | A comma separated list of User fields to display. |
| expansions | array | no | A comma separated list of fields to expand. |
| tweet.fields | array | no | A comma separated list of Tweet fields to display. |

### Retrieve Tweets from a Space.
`GET https://apizie.tech/v1/social-media:twitter-current/spaces-get-tweets` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the Space to be retrieved. |
| max_results | integer | no | The number of Tweets to fetch from the provided space. If not provided, the value will default to the maximum of 100. |
| tweet.fields | array | no | A comma separated list of Tweet fields to display. |
| expansions | array | no | A comma separated list of fields to expand. |
| media.fields | array | no | A comma separated list of Media fields to display. |
| poll.fields | array | no | A comma separated list of Poll fields to display. |
| user.fields | array | no | A comma separated list of User fields to display. |
| place.fields | array | no | A comma separated list of Place fields to display. |

### Tweet lookup by Tweet IDs
`GET https://apizie.tech/v1/social-media:twitter-current/tweets-lookup-by-tweet-ids` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| ids | array | yes | A comma separated list of Tweet IDs. Up to 100 are allowed in a single request. |
| tweet.fields | array | no | A comma separated list of Tweet fields to display. |
| expansions | array | no | A comma separated list of fields to expand. |
| media.fields | array | no | A comma separated list of Media fields to display. |
| poll.fields | array | no | A comma separated list of Poll fields to display. |
| user.fields | array | no | A comma separated list of User fields to display. |
| place.fields | array | no | A comma separated list of Place fields to display. |

### Creation of a Tweet
`POST https://apizie.tech/v1/social-media:twitter-current/tweets-create-tweet` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Tweets Compliance stream
`GET https://apizie.tech/v1/social-media:twitter-current/compliance-stream-data` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| backfill_minutes | integer | no | The number of minutes of backfill requested. |
| partition | integer | yes | The partition number. |
| start_time | string | no | YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Tweet Compliance events will be provided. |
| end_time | string | no | YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Tweet Compliance events will be provided. |

### Full archive search counts
`GET https://apizie.tech/v1/social-media:twitter-current/tweets-get-tweet-counts` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| query | string | yes | One query/rule/filter for matching Tweets. Refer to https://t.co/rulelength to identify the max query length. |
| start_time | string | no | YYYY-MM-DDTHH:mm:ssZ. The oldest UTC timestamp (from most recent 7 days) from which the Tweets will be provided. Timestamp is in second… |
| end_time | string | no | YYYY-MM-DDTHH:mm:ssZ. The newest, most recent UTC timestamp to which the Tweets will be provided. Timestamp is in second granularity and… |
| since_id | string | no | Returns results with a Tweet ID greater than (that is, more recent than) the specified ID. |
| until_id | string | no | Returns results with a Tweet ID less than (that is, older than) the specified ID. |
| next_token | string | no | This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided… |
| pagination_token | string | no | This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided… |
| granularity | string | no | The granularity for the search counts results. |
| search_count.fields | array | no | A comma separated list of SearchCount fields to display. |

### Recent search counts
`GET https://apizie.tech/v1/social-media:twitter-current/tweets-get-recent-tweet-counts` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| query | string | yes | One query/rule/filter for matching Tweets. Refer to https://t.co/rulelength to identify the max query length. |
| start_time | string | no | YYYY-MM-DDTHH:mm:ssZ. The oldest UTC timestamp (from most recent 7 days) from which the Tweets will be provided. Timestamp is in second… |
| end_time | string | no | YYYY-MM-DDTHH:mm:ssZ. The newest, most recent UTC timestamp to which the Tweets will be provided. Timestamp is in second granularity and… |
| since_id | string | no | Returns results with a Tweet ID greater than (that is, more recent than) the specified ID. |
| until_id | string | no | Returns results with a Tweet ID less than (that is, older than) the specified ID. |
| next_token | string | no | This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided… |
| pagination_token | string | no | This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided… |
| granularity | string | no | The granularity for the search counts results. |
| search_count.fields | array | no | A comma separated list of SearchCount fields to display. |

### Firehose stream
`GET https://apizie.tech/v1/social-media:twitter-current/tweets-get-firehose-stream` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| backfill_minutes | integer | no | The number of minutes of backfill requested. |
| partition | integer | yes | The partition number. |
| start_time | string | no | YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Tweets will be provided. |
| end_time | string | no | YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Tweets will be provided. |
| tweet.fields | array | no | A comma separated list of Tweet fields to display. |
| expansions | array | no | A comma separated list of fields to expand. |
| media.fields | array | no | A comma separated list of Media fields to display. |
| poll.fields | array | no | A comma separated list of Poll fields to display. |
| user.fields | array | no | A comma separated list of User fields to display. |
| place.fields | array | no | A comma separated list of Place fields to display. |

### Tweets Label stream
`GET https://apizie.tech/v1/social-media:twitter-current/compliance-stream-tweets-label-events` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| backfill_minutes | integer | no | The number of minutes of backfill requested. |
| start_time | string | no | YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Tweet labels will be provided. |
| end_time | string | no | YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp from which the Tweet labels will be provided. |

### Sample stream
`GET https://apizie.tech/v1/social-media:twitter-current/tweets-stream-sample` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| backfill_minutes | integer | no | The number of minutes of backfill requested. |
| tweet.fields | array | no | A comma separated list of Tweet fields to display. |
| expansions | array | no | A comma separated list of fields to expand. |
| media.fields | array | no | A comma separated list of Media fields to display. |
| poll.fields | array | no | A comma separated list of Poll fields to display. |
| user.fields | array | no | A comma separated list of User fields to display. |
| place.fields | array | no | A comma separated list of Place fields to display. |

### Sample 10% stream
`GET https://apizie.tech/v1/social-media:twitter-current/tweets-stream-sample10` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| backfill_minutes | integer | no | The number of minutes of backfill requested. |
| partition | integer | yes | The partition number. |
| start_time | string | no | YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp to which the Tweets will be provided. |
| end_time | string | no | YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Tweets will be provided. |
| tweet.fields | array | no | A comma separated list of Tweet fields to display. |
| expansions | array | no | A comma separated list of fields to expand. |
| media.fields | array | no | A comma separated list of Media fields to display. |
| poll.fields | array | no | A comma separated list of Poll fields to display. |
| user.fields | array | no | A comma separated list of User fields to display. |
| place.fields | array | no | A comma separated list of Place fields to display. |

### Full-archive search
`GET https://apizie.tech/v1/social-media:twitter-current/tweets-search-all` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| query | string | yes | One query/rule/filter for matching Tweets. Refer to https://t.co/rulelength to identify the max query length. |
| start_time | string | no | YYYY-MM-DDTHH:mm:ssZ. The oldest UTC timestamp from which the Tweets will be provided. Timestamp is in second granularity and is inclusive… |
| end_time | string | no | YYYY-MM-DDTHH:mm:ssZ. The newest, most recent UTC timestamp to which the Tweets will be provided. Timestamp is in second granularity and… |
| since_id | string | no | Returns results with a Tweet ID greater than (that is, more recent than) the specified ID. |
| until_id | string | no | Returns results with a Tweet ID less than (that is, older than) the specified ID. |
| max_results | integer | no | The maximum number of search results to be returned by a request. |
| next_token | string | no | This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided… |
| pagination_token | string | no | This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided… |
| sort_order | string | no | This order in which to return results. |
| tweet.fields | array | no | A comma separated list of Tweet fields to display. |
| expansions | array | no | A comma separated list of fields to expand. |
| media.fields | array | no | A comma separated list of Media fields to display. |
| poll.fields | array | no | A comma separated list of Poll fields to display. |
| user.fields | array | no | A comma separated list of User fields to display. |
| place.fields | array | no | A comma separated list of Place fields to display. |

### Recent search
`GET https://apizie.tech/v1/social-media:twitter-current/tweets-get-recent-tweets` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| query | string | yes | One query/rule/filter for matching Tweets. Refer to https://t.co/rulelength to identify the max query length. |
| start_time | string | no | YYYY-MM-DDTHH:mm:ssZ. The oldest UTC timestamp from which the Tweets will be provided. Timestamp is in second granularity and is inclusive… |
| end_time | string | no | YYYY-MM-DDTHH:mm:ssZ. The newest, most recent UTC timestamp to which the Tweets will be provided. Timestamp is in second granularity and… |
| since_id | string | no | Returns results with a Tweet ID greater than (that is, more recent than) the specified ID. |
| until_id | string | no | Returns results with a Tweet ID less than (that is, older than) the specified ID. |
| max_results | integer | no | The maximum number of search results to be returned by a request. |
| next_token | string | no | This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided… |
| pagination_token | string | no | This parameter is used to get the next 'page' of results. The value used with the parameter is pulled directly from the response provided… |
| sort_order | string | no | This order in which to return results. |
| tweet.fields | array | no | A comma separated list of Tweet fields to display. |
| expansions | array | no | A comma separated list of fields to expand. |
| media.fields | array | no | A comma separated list of Media fields to display. |
| poll.fields | array | no | A comma separated list of Poll fields to display. |
| user.fields | array | no | A comma separated list of User fields to display. |
| place.fields | array | no | A comma separated list of Place fields to display. |

### Filtered stream
`GET https://apizie.tech/v1/social-media:twitter-current/tweets-get-filtered-stream` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| backfill_minutes | integer | no | The number of minutes of backfill requested. |
| start_time | string | no | YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Tweets will be provided. |
| end_time | string | no | YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Tweets will be provided. |
| tweet.fields | array | no | A comma separated list of Tweet fields to display. |
| expansions | array | no | A comma separated list of fields to expand. |
| media.fields | array | no | A comma separated list of Media fields to display. |
| poll.fields | array | no | A comma separated list of Poll fields to display. |
| user.fields | array | no | A comma separated list of User fields to display. |
| place.fields | array | no | A comma separated list of Place fields to display. |

### Rules lookup
`GET https://apizie.tech/v1/social-media:twitter-current/tweets-search-stream-rules` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| ids | array | no | A comma-separated list of Rule IDs. |
| max_results | integer | no | The maximum number of results. |
| pagination_token | string | no | This value is populated by passing the 'next_token' returned in a request to paginate through results. |

### Add/Delete rules
`POST https://apizie.tech/v1/social-media:twitter-current/tweets-add-or-delete-rules` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| dry_run | boolean | no | Dry Run can be used with both the add and delete action, with the expected result given, but without actually taking any action in the… |
| body | object | yes | JSON request body |

### Tweet lookup by Tweet ID
`GET https://apizie.tech/v1/social-media:twitter-current/tweets-lookup-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | A single Tweet ID. |
| tweet.fields | array | no | A comma separated list of Tweet fields to display. |
| expansions | array | no | A comma separated list of fields to expand. |
| media.fields | array | no | A comma separated list of Media fields to display. |
| poll.fields | array | no | A comma separated list of Poll fields to display. |
| user.fields | array | no | A comma separated list of User fields to display. |
| place.fields | array | no | A comma separated list of Place fields to display. |

### Tweet delete by Tweet ID
`POST https://apizie.tech/v1/social-media:twitter-current/tweets-delete-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the Tweet to be deleted. |

### Returns User objects that have liked the provided Tweet ID
`GET https://apizie.tech/v1/social-media:twitter-current/users-list-liking-users` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | A single Tweet ID. |
| max_results | integer | no | The maximum number of results. |
| pagination_token | string | no | This parameter is used to get the next 'page' of results. |
| user.fields | array | no | A comma separated list of User fields to display. |
| expansions | array | no | A comma separated list of fields to expand. |
| tweet.fields | array | no | A comma separated list of Tweet fields to display. |

### Retrieve Tweets that quote a Tweet.
`GET https://apizie.tech/v1/social-media:twitter-current/tweets-get-quote-tweets` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | A single Tweet ID. |
| max_results | integer | no | The maximum number of results to be returned. |
| pagination_token | string | no | This parameter is used to get a specified 'page' of results. |
| exclude | array | no | The set of entities to exclude (e.g. 'replies' or 'retweets'). |
| tweet.fields | array | no | A comma separated list of Tweet fields to display. |
| expansions | array | no | A comma separated list of fields to expand. |
| media.fields | array | no | A comma separated list of Media fields to display. |
| poll.fields | array | no | A comma separated list of Poll fields to display. |
| user.fields | array | no | A comma separated list of User fields to display. |
| place.fields | array | no | A comma separated list of Place fields to display. |

### Returns User objects that have retweeted the provided Tweet ID
`GET https://apizie.tech/v1/social-media:twitter-current/users-get-retweeted-by-tweet-id-users` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | A single Tweet ID. |
| max_results | integer | no | The maximum number of results. |
| pagination_token | string | no | This parameter is used to get the next 'page' of results. |
| user.fields | array | no | A comma separated list of User fields to display. |
| expansions | array | no | A comma separated list of fields to expand. |
| tweet.fields | array | no | A comma separated list of Tweet fields to display. |

### Hide replies
`POST https://apizie.tech/v1/social-media:twitter-current/tweets-hide-reply` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| tweet_id | string | yes | The ID of the reply that you want to hide or unhide. |
| body | object | no | JSON request body |

### User lookup by IDs
`GET https://apizie.tech/v1/social-media:twitter-current/users-lookup-by-ids` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| ids | array | yes | A list of User IDs, comma-separated. You can specify up to 100 IDs. |
| user.fields | array | no | A comma separated list of User fields to display. |
| expansions | array | no | A comma separated list of fields to expand. |
| tweet.fields | array | no | A comma separated list of Tweet fields to display. |

### User lookup by usernames
`GET https://apizie.tech/v1/social-media:twitter-current/users-lookup-by-usernames` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| usernames | array | yes | A list of usernames, comma-separated. |
| user.fields | array | no | A comma separated list of User fields to display. |
| expansions | array | no | A comma separated list of fields to expand. |
| tweet.fields | array | no | A comma separated list of Tweet fields to display. |

### User lookup by username
`GET https://apizie.tech/v1/social-media:twitter-current/users-lookup-by-username` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | A username. |
| user.fields | array | no | A comma separated list of User fields to display. |
| expansions | array | no | A comma separated list of fields to expand. |
| tweet.fields | array | no | A comma separated list of Tweet fields to display. |

### Users Compliance stream
`GET https://apizie.tech/v1/social-media:twitter-current/compliance-stream-users-data` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| backfill_minutes | integer | no | The number of minutes of backfill requested. |
| partition | integer | yes | The partition number. |
| start_time | string | no | YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the User Compliance events will be provided. |
| end_time | string | no | YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp from which the User Compliance events will be provided. |

### User lookup me
`GET https://apizie.tech/v1/social-media:twitter-current/users-lookup-me` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| user.fields | array | no | A comma separated list of User fields to display. |
| expansions | array | no | A comma separated list of fields to expand. |
| tweet.fields | array | no | A comma separated list of Tweet fields to display. |

### User lookup by ID
`GET https://apizie.tech/v1/social-media:twitter-current/users-lookup-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the User to lookup. |
| user.fields | array | no | A comma separated list of User fields to display. |
| expansions | array | no | A comma separated list of fields to expand. |
| tweet.fields | array | no | A comma separated list of Tweet fields to display. |

### Returns User objects that are blocked by provided User ID
`GET https://apizie.tech/v1/social-media:twitter-current/users-get-blocked-users` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the authenticated source User for whom to return results. |
| max_results | integer | no | The maximum number of results. |
| pagination_token | string | no | This parameter is used to get a specified 'page' of results. |
| user.fields | array | no | A comma separated list of User fields to display. |
| expansions | array | no | A comma separated list of fields to expand. |
| tweet.fields | array | no | A comma separated list of Tweet fields to display. |

### Block User by User ID
`POST https://apizie.tech/v1/social-media:twitter-current/users-block-user-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the authenticated source User that is requesting to block the target User. |
| body | object | yes | JSON request body |

### Bookmarks by User
`GET https://apizie.tech/v1/social-media:twitter-current/bookmarks-get-user-bookmarks` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the authenticated source User for whom to return results. |
| max_results | integer | no | The maximum number of results. |
| pagination_token | string | no | This parameter is used to get the next 'page' of results. |
| tweet.fields | array | no | A comma separated list of Tweet fields to display. |
| expansions | array | no | A comma separated list of fields to expand. |
| media.fields | array | no | A comma separated list of Media fields to display. |
| poll.fields | array | no | A comma separated list of Poll fields to display. |
| user.fields | array | no | A comma separated list of User fields to display. |
| place.fields | array | no | A comma separated list of Place fields to display. |

### Add Tweet to Bookmarks
`POST https://apizie.tech/v1/social-media:twitter-current/bookmarks-add-tweet` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the authenticated source User for whom to add bookmarks. |
| body | object | yes | JSON request body |

### Remove a bookmarked Tweet
`POST https://apizie.tech/v1/social-media:twitter-current/bookmarks-remove-tweet` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the authenticated source User whose bookmark is to be removed. |
| tweet_id | string | yes | The ID of the Tweet that the source User is removing from bookmarks. |

### Get User's Followed Lists
`GET https://apizie.tech/v1/social-media:twitter-current/lists-get-followed` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the User to lookup. |
| max_results | integer | no | The maximum number of results. |
| pagination_token | string | no | This parameter is used to get a specified 'page' of results. |
| list.fields | array | no | A comma separated list of List fields to display. |
| expansions | array | no | A comma separated list of fields to expand. |
| user.fields | array | no | A comma separated list of User fields to display. |

### Follow a List
`POST https://apizie.tech/v1/social-media:twitter-current/lists-follow-list` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the authenticated source User that will follow the List. |
| body | object | no | JSON request body |

### Unfollow a List
`POST https://apizie.tech/v1/social-media:twitter-current/lists-unfollow-list` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the authenticated source User that will unfollow the List. |
| list_id | string | yes | The ID of the List to unfollow. |

### Followers by User ID
`GET https://apizie.tech/v1/social-media:twitter-current/users-get-followers-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the User to lookup. |
| max_results | integer | no | The maximum number of results. |
| pagination_token | string | no | This parameter is used to get a specified 'page' of results. |
| user.fields | array | no | A comma separated list of User fields to display. |
| expansions | array | no | A comma separated list of fields to expand. |
| tweet.fields | array | no | A comma separated list of Tweet fields to display. |

### Following by User ID
`GET https://apizie.tech/v1/social-media:twitter-current/users-get-following-users` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the User to lookup. |
| max_results | integer | no | The maximum number of results. |
| pagination_token | string | no | This parameter is used to get a specified 'page' of results. |
| user.fields | array | no | A comma separated list of User fields to display. |
| expansions | array | no | A comma separated list of fields to expand. |
| tweet.fields | array | no | A comma separated list of Tweet fields to display. |

### Follow User
`POST https://apizie.tech/v1/social-media:twitter-current/users-follow-user` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the authenticated source User that is requesting to follow the target User. |
| body | object | no | JSON request body |

### Returns Tweet objects liked by the provided User ID
`GET https://apizie.tech/v1/social-media:twitter-current/tweets-get-liked-tweets` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the User to lookup. |
| max_results | integer | no | The maximum number of results. |
| pagination_token | string | no | This parameter is used to get the next 'page' of results. |
| tweet.fields | array | no | A comma separated list of Tweet fields to display. |
| expansions | array | no | A comma separated list of fields to expand. |
| media.fields | array | no | A comma separated list of Media fields to display. |
| poll.fields | array | no | A comma separated list of Poll fields to display. |
| user.fields | array | no | A comma separated list of User fields to display. |
| place.fields | array | no | A comma separated list of Place fields to display. |

### Causes the User (in the path) to like the specified Tweet
`POST https://apizie.tech/v1/social-media:twitter-current/tweets-like-tweet` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the authenticated source User that is requesting to like the Tweet. |
| body | object | no | JSON request body |

### Causes the User (in the path) to unlike the specified Tweet
`POST https://apizie.tech/v1/social-media:twitter-current/tweets-unlike-tweet-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the authenticated source User that is requesting to unlike the Tweet. |
| tweet_id | string | yes | The ID of the Tweet that the User is requesting to unlike. |

### Get a User's List Memberships
`GET https://apizie.tech/v1/social-media:twitter-current/lists-get-user-memberships` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the User to lookup. |
| max_results | integer | no | The maximum number of results. |
| pagination_token | string | no | This parameter is used to get a specified 'page' of results. |
| list.fields | array | no | A comma separated list of List fields to display. |
| expansions | array | no | A comma separated list of fields to expand. |
| user.fields | array | no | A comma separated list of User fields to display. |

### User mention timeline by User ID
`GET https://apizie.tech/v1/social-media:twitter-current/tweets-get-mentions-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the User to lookup. |
| since_id | string | no | The minimum Tweet ID to be included in the result set. This parameter takes precedence over start_time if both are specified. |
| until_id | string | no | The maximum Tweet ID to be included in the result set. This parameter takes precedence over end_time if both are specified. |
| max_results | integer | no | The maximum number of results. |
| pagination_token | string | no | This parameter is used to get the next 'page' of results. |
| start_time | string | no | YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Tweets will be provided. The since_id parameter takes precedence if it is… |
| end_time | string | no | YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Tweets will be provided. The until_id parameter takes precedence if it is also… |
| tweet.fields | array | no | A comma separated list of Tweet fields to display. |
| expansions | array | no | A comma separated list of fields to expand. |
| media.fields | array | no | A comma separated list of Media fields to display. |
| poll.fields | array | no | A comma separated list of Poll fields to display. |
| user.fields | array | no | A comma separated list of User fields to display. |
| place.fields | array | no | A comma separated list of Place fields to display. |

### Returns User objects that are muted by the provided User ID
`GET https://apizie.tech/v1/social-media:twitter-current/users-get-muted-users-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the authenticated source User for whom to return results. |
| max_results | integer | no | The maximum number of results. |
| pagination_token | string | no | This parameter is used to get the next 'page' of results. |
| user.fields | array | no | A comma separated list of User fields to display. |
| expansions | array | no | A comma separated list of fields to expand. |
| tweet.fields | array | no | A comma separated list of Tweet fields to display. |

### Mute User by User ID.
`POST https://apizie.tech/v1/social-media:twitter-current/users-mute-user-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the authenticated source User that is requesting to mute the target User. |
| body | object | no | JSON request body |

### Get a User's Owned Lists.
`GET https://apizie.tech/v1/social-media:twitter-current/lists-get-user-owned-lists` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the User to lookup. |
| max_results | integer | no | The maximum number of results. |
| pagination_token | string | no | This parameter is used to get a specified 'page' of results. |
| list.fields | array | no | A comma separated list of List fields to display. |
| expansions | array | no | A comma separated list of fields to expand. |
| user.fields | array | no | A comma separated list of User fields to display. |

### Get a User's Pinned Lists
`GET https://apizie.tech/v1/social-media:twitter-current/lists-get-user-pinned-lists` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the authenticated source User for whom to return results. |
| list.fields | array | no | A comma separated list of List fields to display. |
| expansions | array | no | A comma separated list of fields to expand. |
| user.fields | array | no | A comma separated list of User fields to display. |

### Pin a List
`POST https://apizie.tech/v1/social-media:twitter-current/lists-pin-list` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the authenticated source User that will pin the List. |
| body | object | yes | JSON request body |

### Unpin a List
`POST https://apizie.tech/v1/social-media:twitter-current/lists-unpin-list` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the authenticated source User for whom to return results. |
| list_id | string | yes | The ID of the List to unpin. |

### Causes the User (in the path) to retweet the specified Tweet.
`POST https://apizie.tech/v1/social-media:twitter-current/tweets-retweet-tweet-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the authenticated source User that is requesting to retweet the Tweet. |
| body | object | no | JSON request body |

### Causes the User (in the path) to unretweet the specified Tweet
`POST https://apizie.tech/v1/social-media:twitter-current/tweets-unretweet-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the authenticated source User that is requesting to retweet the Tweet. |
| source_tweet_id | string | yes | The ID of the Tweet that the User is requesting to unretweet. |

### User home timeline by User ID
`GET https://apizie.tech/v1/social-media:twitter-current/tweets-get-user-home-timeline` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the authenticated source User to list Reverse Chronological Timeline Tweets of. |
| since_id | string | no | The minimum Tweet ID to be included in the result set. This parameter takes precedence over start_time if both are specified. |
| until_id | string | no | The maximum Tweet ID to be included in the result set. This parameter takes precedence over end_time if both are specified. |
| max_results | integer | no | The maximum number of results. |
| pagination_token | string | no | This parameter is used to get the next 'page' of results. |
| exclude | array | no | The set of entities to exclude (e.g. 'replies' or 'retweets'). |
| start_time | string | no | YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Tweets will be provided. The since_id parameter takes precedence if it is… |
| end_time | string | no | YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Tweets will be provided. The until_id parameter takes precedence if it is also… |
| tweet.fields | array | no | A comma separated list of Tweet fields to display. |
| expansions | array | no | A comma separated list of fields to expand. |
| media.fields | array | no | A comma separated list of Media fields to display. |
| poll.fields | array | no | A comma separated list of Poll fields to display. |
| user.fields | array | no | A comma separated list of User fields to display. |
| place.fields | array | no | A comma separated list of Place fields to display. |

### User Tweets timeline by User ID
`GET https://apizie.tech/v1/social-media:twitter-current/tweets-list-by-user-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the User to lookup. |
| since_id | string | no | The minimum Tweet ID to be included in the result set. This parameter takes precedence over start_time if both are specified. |
| until_id | string | no | The maximum Tweet ID to be included in the result set. This parameter takes precedence over end_time if both are specified. |
| max_results | integer | no | The maximum number of results. |
| pagination_token | string | no | This parameter is used to get the next 'page' of results. |
| exclude | array | no | The set of entities to exclude (e.g. 'replies' or 'retweets'). |
| start_time | string | no | YYYY-MM-DDTHH:mm:ssZ. The earliest UTC timestamp from which the Tweets will be provided. The since_id parameter takes precedence if it is… |
| end_time | string | no | YYYY-MM-DDTHH:mm:ssZ. The latest UTC timestamp to which the Tweets will be provided. The until_id parameter takes precedence if it is also… |
| tweet.fields | array | no | A comma separated list of Tweet fields to display. |
| expansions | array | no | A comma separated list of fields to expand. |
| media.fields | array | no | A comma separated list of Media fields to display. |
| poll.fields | array | no | A comma separated list of Poll fields to display. |
| user.fields | array | no | A comma separated list of User fields to display. |
| place.fields | array | no | A comma separated list of Place fields to display. |

### Unblock User by User ID
`POST https://apizie.tech/v1/social-media:twitter-current/users-unblock-user-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| source_user_id | string | yes | The ID of the authenticated source User that is requesting to unblock the target User. |
| target_user_id | string | yes | The ID of the User that the source User is requesting to unblock. |

### Unfollow User
`POST https://apizie.tech/v1/social-media:twitter-current/users-unfollow-user` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| source_user_id | string | yes | The ID of the authenticated source User that is requesting to unfollow the target User. |
| target_user_id | string | yes | The ID of the User that the source User is requesting to unfollow. |

### Unmute User by User ID
`POST https://apizie.tech/v1/social-media:twitter-current/users-unmute-by-user-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| source_user_id | string | yes | The ID of the authenticated source User that is requesting to unmute the target User. |
| target_user_id | string | yes | The ID of the User that the source User is requesting to unmute. |

## Example
```
curl "https://apizie.tech/v1/social-media:twitter-current/compliance-list-jobs" \
  -H "x-api-key: $APIZIE_KEY" \
  -H "x-upstream-key: $PROVIDER_KEY"
```

## FAQ

### How do I call the X Twitter API v2 API?
Create a free Apizie key, then send GET https://apizie.tech/v1/social-media:twitter-current/compliance-list-jobs with the header x-api-key. Every endpoint returns { project, data, timestamp }.

### Is the X Twitter API v2 API free on Apizie?
Yes. The Free plan includes 1,000 requests a month at 100 requests a minute, no credit card. X Twitter API v2 itself also needs your own key from api.twitter.com.

### Can AI agents use the X Twitter API v2 API?
Yes. Add the Apizie MCP server (https://apizie.tech/mcp) to Claude, ChatGPT, Cursor or VS Code, then ask in plain language. The agent calls run_scraper with project key social-media:twitter-current.

### What is the status of the X Twitter API v2 API?
Needs your own provider key (bring your own key)
