# X (Twitter) Timelines API Reference

Canonical: https://monsterapi.co/docs/api/x-twitter-timelines

Read the X (Twitter) Timelines reference. Review parameters, response fields, examples, and current credit prices.

OpenAPI specification: [X (Twitter)](https://monsterapi.co/docs/openapi/platforms/twitter.yaml).

---

Current operation prices: [public catalog](https://monsterapi.co/account/api/v1/public/api-prices). Prices use credits per request.

---

# X (Twitter): Post conversation

`GET /twitter/api/tweet/{id}/thread`

Documentation: https://monsterapi.co/docs/api/twitter#post-conversation

Operation ID: `twitter_tweet_thread`

Returns a page of conversation posts around one post by numeric identifier. Requires sign-in and is unavailable through the public guest API.

## Authentication

Send your billing API key in the `Authorization: Bearer <YOUR_API_KEY>` header. Your account login is separate.

## Inputs

- `id` (path, required): Required post identifier from its X status URL, or `posts[].id` in [GET /user/id/{rest_id}/tweets](https://monsterapi.co/docs/twitter#account-posts). Decimal digits from 1 to 9223372036854775807, no leading zero.

- `cursor` (query, optional): Optional continuation: send top-level `next_cursor` from [GET /tweet/{id}/thread](https://monsterapi.co/docs/twitter#unavailable-endpoints) unchanged as `cursor` to GET /tweet/{id}/thread. Up to 8,192 characters; base64/base64url decoding to at least five bytes, or two signed 64-bit decimal numbers separated by |. Omit for the first page.

- `limit` (query, optional): Optional requested number of posts: 1 to 100, default 40. The response may contain more or fewer.

## Responses

- 200: Page of posts; a page without posts carries the cursor of the next one

- 400: Identifier, cursor or limit outside the accepted set, or a cursor that cannot continue this list

Refused at the gateway: the request target, path and query string together, is longer than 8,192 bytes; or the headers, the target counted among them, exceed 16,384 bytes or 64 fields

- 401: #/components/responses/GatewayUnauthorized

- 402: #/components/responses/GatewayPaymentRequired

- 403: X answered with the error of a suspended account

Refused at the gateway: the API key is unknown or revoked

- 404: No such post, or an empty list without next_cursor

- 405: `method_not_allowed`: the endpoint answers GET alone, and any other method, HEAD included, is refused

Refused at the gateway: the path exists, but no operation on it takes the method of the request, HEAD included; `Allow` names the methods that do

- 409: #/components/responses/GatewayConflict

- 429: #/components/responses/GatewayTooManyRequests

- 500: The requested information could not be read; this does not establish that the object is absent

- 501: The requested information is unavailable without sign-in

- 503: Rate limit (`rate_limited`), temporary request failure (`upstream_error`), service capacity unavailable (`no_proxies`), too many concurrent requests (`overloaded`), or request temporarily unavailable (`upstream_stale`)

Refused at the gateway: the check could not complete, the account is suspended, or the platform did not answer; each may pass later, and `Retry-After` comes only when the platform did not answer

## Credits

Check the live price in the documentation before sending. Platform 2xx and 4xx responses can use credits, including empty data. Gateway refusals and 5xx responses do not use credits. Each pagination request is a separate call.

https://monsterapi.co/docs/pricing

## Request template

Replace path placeholders and add the required query parameters from the Inputs section before sending.

```shell

curl --get 'https://api.monsterapi.co/twitter/api/tweet/{id}/thread' \
  -H 'Authorization: Bearer <YOUR_API_KEY>'

```

---

# X (Twitter): Account highlights

`GET /twitter/api/user/id/{rest_id}/highlights`

Documentation: https://monsterapi.co/docs/api/twitter#account-highlights

Operation ID: `twitter_user_highlights_by_id`

Returns a page of posts selected for one account's highlights by numeric identifier.

## Authentication

Send your billing API key in the `Authorization: Bearer <YOUR_API_KEY>` header. Your account login is separate.

## Inputs

- `rest_id` (path, required): Required account identifier from `user.id` in [GET /user/{name}](https://monsterapi.co/docs/twitter#account-profiles). Decimal digits from 1 to 9223372036854775807, no leading zero.

- `cursor` (query, optional): Optional continuation: send top-level `next_cursor` from [GET /user/id/{rest_id}/highlights](https://monsterapi.co/docs/twitter#account-posts) unchanged as `cursor` to GET /user/id/{rest_id}/highlights. Up to 8,192 characters; base64/base64url decoding to at least five bytes, or two signed 64-bit decimal numbers separated by |. Omit for the first page.

- `limit` (query, optional): Optional requested number of posts: 1 to 100, default 40. The response may contain more or fewer.

## Responses

- 200: Page of posts; a page without posts carries the cursor of the next one

- 400: Identifier, cursor or limit outside the accepted set, or a cursor that cannot continue this list

Refused at the gateway: the request target, path and query string together, is longer than 8,192 bytes; or the headers, the target counted among them, exceed 16,384 bytes or 64 fields

- 401: #/components/responses/GatewayUnauthorized

- 402: #/components/responses/GatewayPaymentRequired

- 403: Account not available anonymously

Refused at the gateway: the API key is unknown or revoked

- 404: No such account, or an empty list without next_cursor

- 405: `method_not_allowed`: the endpoint answers GET alone, and any other method, HEAD included, is refused

Refused at the gateway: the path exists, but no operation on it takes the method of the request, HEAD included; `Allow` names the methods that do

- 409: #/components/responses/GatewayConflict

- 429: #/components/responses/GatewayTooManyRequests

- 500: The requested information could not be read; this does not establish that the object is absent

- 501: The requested information is unavailable without sign-in

- 503: Rate limit (`rate_limited`), temporary request failure (`upstream_error`), service capacity unavailable (`no_proxies`), too many concurrent requests (`overloaded`), or request temporarily unavailable (`upstream_stale`)

Refused at the gateway: the check could not complete, the account is suspended, or the platform did not answer; each may pass later, and `Retry-After` comes only when the platform did not answer

## Credits

Check the live price in the documentation before sending. Platform 2xx and 4xx responses can use credits, including empty data. Gateway refusals and 5xx responses do not use credits. Each pagination request is a separate call.

https://monsterapi.co/docs/pricing

## Request template

Replace path placeholders and add the required query parameters from the Inputs section before sending.

```shell

curl --get 'https://api.monsterapi.co/twitter/api/user/id/{rest_id}/highlights' \
  -H 'Authorization: Bearer <YOUR_API_KEY>'

```

---

# X (Twitter): Account liked posts

`GET /twitter/api/user/id/{rest_id}/likes`

Documentation: https://monsterapi.co/docs/api/twitter#account-liked-posts

Operation ID: `twitter_user_likes_by_id`

Returns a page of posts liked by one account by numeric identifier. Requires sign-in and is unavailable through the public guest API.

## Authentication

Send your billing API key in the `Authorization: Bearer <YOUR_API_KEY>` header. Your account login is separate.

## Inputs

- `rest_id` (path, required): Required account identifier from `user.id` in [GET /user/{name}](https://monsterapi.co/docs/twitter#account-profiles). Decimal digits from 1 to 9223372036854775807, no leading zero.

- `cursor` (query, optional): Optional continuation: send top-level `next_cursor` from [GET /user/id/{rest_id}/likes](https://monsterapi.co/docs/twitter#unavailable-endpoints) unchanged as `cursor` to GET /user/id/{rest_id}/likes. Up to 8,192 characters; base64/base64url decoding to at least five bytes, or two signed 64-bit decimal numbers separated by |. Omit for the first page.

- `limit` (query, optional): Optional requested number of posts: 1 to 100, default 40. The response may contain more or fewer.

## Responses

- 200: Page of posts; a page without posts carries the cursor of the next one

- 400: Identifier, cursor or limit outside the accepted set, or a cursor that cannot continue this list

Refused at the gateway: the request target, path and query string together, is longer than 8,192 bytes; or the headers, the target counted among them, exceed 16,384 bytes or 64 fields

- 401: #/components/responses/GatewayUnauthorized

- 402: #/components/responses/GatewayPaymentRequired

- 403: Account not available anonymously

Refused at the gateway: the API key is unknown or revoked

- 404: No such account, or an empty list without next_cursor

- 405: `method_not_allowed`: the endpoint answers GET alone, and any other method, HEAD included, is refused

Refused at the gateway: the path exists, but no operation on it takes the method of the request, HEAD included; `Allow` names the methods that do

- 409: #/components/responses/GatewayConflict

- 429: #/components/responses/GatewayTooManyRequests

- 500: The requested information could not be read; this does not establish that the object is absent

- 501: The requested information is unavailable without sign-in

- 503: Rate limit (`rate_limited`), temporary request failure (`upstream_error`), service capacity unavailable (`no_proxies`), too many concurrent requests (`overloaded`), or request temporarily unavailable (`upstream_stale`)

Refused at the gateway: the check could not complete, the account is suspended, or the platform did not answer; each may pass later, and `Retry-After` comes only when the platform did not answer

## Credits

Check the live price in the documentation before sending. Platform 2xx and 4xx responses can use credits, including empty data. Gateway refusals and 5xx responses do not use credits. Each pagination request is a separate call.

https://monsterapi.co/docs/pricing

## Request template

Replace path placeholders and add the required query parameters from the Inputs section before sending.

```shell

curl --get 'https://api.monsterapi.co/twitter/api/user/id/{rest_id}/likes' \
  -H 'Authorization: Bearer <YOUR_API_KEY>'

```

---

# X (Twitter): Account media posts

`GET /twitter/api/user/id/{rest_id}/media`

Documentation: https://monsterapi.co/docs/api/twitter#account-media-posts

Operation ID: `twitter_user_media_by_id`

Returns a page of media posts for one account by numeric identifier. Requires sign-in and is unavailable through the public guest API.

## Authentication

Send your billing API key in the `Authorization: Bearer <YOUR_API_KEY>` header. Your account login is separate.

## Inputs

- `rest_id` (path, required): Required account identifier from `user.id` in [GET /user/{name}](https://monsterapi.co/docs/twitter#account-profiles). Decimal digits from 1 to 9223372036854775807, no leading zero.

- `cursor` (query, optional): Optional continuation: send top-level `next_cursor` from [GET /user/id/{rest_id}/media](https://monsterapi.co/docs/twitter#unavailable-endpoints) unchanged as `cursor` to GET /user/id/{rest_id}/media. Up to 8,192 characters; base64/base64url decoding to at least five bytes, or two signed 64-bit decimal numbers separated by |. Omit for the first page.

- `limit` (query, optional): Optional requested number of posts: 1 to 100, default 40. The response may contain more or fewer.

## Responses

- 200: Page of posts; a page without posts carries the cursor of the next one

- 400: Identifier, cursor or limit outside the accepted set, or a cursor that cannot continue this list

Refused at the gateway: the request target, path and query string together, is longer than 8,192 bytes; or the headers, the target counted among them, exceed 16,384 bytes or 64 fields

- 401: #/components/responses/GatewayUnauthorized

- 402: #/components/responses/GatewayPaymentRequired

- 403: Account not available anonymously

Refused at the gateway: the API key is unknown or revoked

- 404: No such account, or an empty list without next_cursor

- 405: `method_not_allowed`: the endpoint answers GET alone, and any other method, HEAD included, is refused

Refused at the gateway: the path exists, but no operation on it takes the method of the request, HEAD included; `Allow` names the methods that do

- 409: #/components/responses/GatewayConflict

- 429: #/components/responses/GatewayTooManyRequests

- 500: The requested information could not be read; this does not establish that the object is absent

- 501: The requested information is unavailable without sign-in

- 503: Rate limit (`rate_limited`), temporary request failure (`upstream_error`), service capacity unavailable (`no_proxies`), too many concurrent requests (`overloaded`), or request temporarily unavailable (`upstream_stale`)

Refused at the gateway: the check could not complete, the account is suspended, or the platform did not answer; each may pass later, and `Retry-After` comes only when the platform did not answer

## Credits

Check the live price in the documentation before sending. Platform 2xx and 4xx responses can use credits, including empty data. Gateway refusals and 5xx responses do not use credits. Each pagination request is a separate call.

https://monsterapi.co/docs/pricing

## Request template

Replace path placeholders and add the required query parameters from the Inputs section before sending.

```shell

curl --get 'https://api.monsterapi.co/twitter/api/user/id/{rest_id}/media' \
  -H 'Authorization: Bearer <YOUR_API_KEY>'

```

---

# X (Twitter): Account posts and replies

`GET /twitter/api/user/id/{rest_id}/replies`

Documentation: https://monsterapi.co/docs/api/twitter#account-posts-and-replies

Operation ID: `twitter_user_replies_by_id`

Returns a page of posts, reposts and replies for one account by numeric identifier. Requires sign-in and is unavailable through the public guest API.

## Authentication

Send your billing API key in the `Authorization: Bearer <YOUR_API_KEY>` header. Your account login is separate.

## Inputs

- `rest_id` (path, required): Required account identifier from `user.id` in [GET /user/{name}](https://monsterapi.co/docs/twitter#account-profiles). Decimal digits from 1 to 9223372036854775807, no leading zero.

- `cursor` (query, optional): Optional continuation: send top-level `next_cursor` from [GET /user/id/{rest_id}/replies](https://monsterapi.co/docs/twitter#unavailable-endpoints) unchanged as `cursor` to GET /user/id/{rest_id}/replies. Up to 8,192 characters; base64/base64url decoding to at least five bytes, or two signed 64-bit decimal numbers separated by |. Omit for the first page.

- `limit` (query, optional): Optional requested number of posts: 1 to 100, default 40. The response may contain more or fewer.

## Responses

- 200: Page of posts; a page without posts carries the cursor of the next one

- 400: Identifier, cursor or limit outside the accepted set, or a cursor that cannot continue this list

Refused at the gateway: the request target, path and query string together, is longer than 8,192 bytes; or the headers, the target counted among them, exceed 16,384 bytes or 64 fields

- 401: #/components/responses/GatewayUnauthorized

- 402: #/components/responses/GatewayPaymentRequired

- 403: Account not available anonymously

Refused at the gateway: the API key is unknown or revoked

- 404: No such account, or an empty list without next_cursor

- 405: `method_not_allowed`: the endpoint answers GET alone, and any other method, HEAD included, is refused

Refused at the gateway: the path exists, but no operation on it takes the method of the request, HEAD included; `Allow` names the methods that do

- 409: #/components/responses/GatewayConflict

- 429: #/components/responses/GatewayTooManyRequests

- 500: The requested information could not be read; this does not establish that the object is absent

- 501: The requested information is unavailable without sign-in

- 503: Rate limit (`rate_limited`), temporary request failure (`upstream_error`), service capacity unavailable (`no_proxies`), too many concurrent requests (`overloaded`), or request temporarily unavailable (`upstream_stale`)

Refused at the gateway: the check could not complete, the account is suspended, or the platform did not answer; each may pass later, and `Retry-After` comes only when the platform did not answer

## Credits

Check the live price in the documentation before sending. Platform 2xx and 4xx responses can use credits, including empty data. Gateway refusals and 5xx responses do not use credits. Each pagination request is a separate call.

https://monsterapi.co/docs/pricing

## Request template

Replace path placeholders and add the required query parameters from the Inputs section before sending.

```shell

curl --get 'https://api.monsterapi.co/twitter/api/user/id/{rest_id}/replies' \
  -H 'Authorization: Bearer <YOUR_API_KEY>'

```

---

# X (Twitter): Account post preview

`GET /twitter/api/user/id/{rest_id}/timeline/syndication`

Documentation: https://monsterapi.co/docs/api/twitter#account-post-preview

Operation ID: `twitter_user_timeline_syndication_by_id`

Returns an account's identifier, current handle and a preview of its posts by numeric identifier. Has no pagination cursor.

## Authentication

Send your billing API key in the `Authorization: Bearer <YOUR_API_KEY>` header. Your account login is separate.

## Inputs

- `rest_id` (path, required): Required account identifier from `user.id` in [GET /user/{name}](https://monsterapi.co/docs/twitter#account-profiles). Decimal digits from 1 to 9223372036854775807, no leading zero.

## Responses

- 200: Posts of the account

- 400: Identifier outside the accepted set

Refused at the gateway: the request target, path and query string together, is longer than 8,192 bytes; or the headers, the target counted among them, exceed 16,384 bytes or 64 fields

- 401: #/components/responses/GatewayUnauthorized

- 402: #/components/responses/GatewayPaymentRequired

- 403: #/components/responses/GatewayForbidden

- 404: No such account

- 405: `method_not_allowed`: the endpoint answers GET alone, and any other method, HEAD included, is refused

Refused at the gateway: the path exists, but no operation on it takes the method of the request, HEAD included; `Allow` names the methods that do

- 409: #/components/responses/GatewayConflict

- 429: #/components/responses/GatewayTooManyRequests

- 500: The requested information could not be read; this does not establish that the object is absent

- 501: The requested information is unavailable without sign-in

- 503: Rate limit (`rate_limited`), temporary request failure (`upstream_error`), service capacity unavailable (`no_proxies`), or too many concurrent requests (`overloaded`)

Refused at the gateway: the check could not complete, the account is suspended, or the platform did not answer; each may pass later, and `Retry-After` comes only when the platform did not answer

## Credits

Check the live price in the documentation before sending. Platform 2xx and 4xx responses can use credits, including empty data. Gateway refusals and 5xx responses do not use credits. Each pagination request is a separate call.

https://monsterapi.co/docs/pricing

## Request template

Replace path placeholders and add the required query parameters from the Inputs section before sending.

```shell

curl --get 'https://api.monsterapi.co/twitter/api/user/id/{rest_id}/timeline/syndication' \
  -H 'Authorization: Bearer <YOUR_API_KEY>'

```

---

# X (Twitter): Account posts

`GET /twitter/api/user/id/{rest_id}/tweets`

Documentation: https://monsterapi.co/docs/api/twitter#account-posts-2

Operation ID: `twitter_user_tweets_by_id`

Returns a page of posts and reposts for one account by numeric identifier, newest first.

## Authentication

Send your billing API key in the `Authorization: Bearer <YOUR_API_KEY>` header. Your account login is separate.

## Inputs

- `rest_id` (path, required): Required account identifier from `user.id` in [GET /user/{name}](https://monsterapi.co/docs/twitter#account-profiles). Decimal digits from 1 to 9223372036854775807, no leading zero.

- `cursor` (query, optional): Optional continuation: send top-level `next_cursor` from [GET /user/id/{rest_id}/tweets](https://monsterapi.co/docs/twitter#account-posts) unchanged as `cursor` to GET /user/id/{rest_id}/tweets. Up to 8,192 characters; base64/base64url decoding to at least five bytes, or two signed 64-bit decimal numbers separated by |. Omit for the first page.

- `limit` (query, optional): Optional requested number of posts: 1 to 100, default 40. The response may contain more or fewer.

## Responses

- 200: Page of posts; a page without posts carries the cursor of the next one

- 400: Identifier, cursor or limit outside the accepted set, or a cursor that cannot continue this list

Refused at the gateway: the request target, path and query string together, is longer than 8,192 bytes; or the headers, the target counted among them, exceed 16,384 bytes or 64 fields

- 401: #/components/responses/GatewayUnauthorized

- 402: #/components/responses/GatewayPaymentRequired

- 403: Account not available anonymously

Refused at the gateway: the API key is unknown or revoked

- 404: No such account, or an empty list without next_cursor

- 405: `method_not_allowed`: the endpoint answers GET alone, and any other method, HEAD included, is refused

Refused at the gateway: the path exists, but no operation on it takes the method of the request, HEAD included; `Allow` names the methods that do

- 409: #/components/responses/GatewayConflict

- 429: #/components/responses/GatewayTooManyRequests

- 500: The requested information could not be read; this does not establish that the object is absent

- 501: The requested information is unavailable without sign-in

- 503: Rate limit (`rate_limited`), temporary request failure (`upstream_error`), service capacity unavailable (`no_proxies`), too many concurrent requests (`overloaded`), or request temporarily unavailable (`upstream_stale`)

Refused at the gateway: the check could not complete, the account is suspended, or the platform did not answer; each may pass later, and `Retry-After` comes only when the platform did not answer

## Credits

Check the live price in the documentation before sending. Platform 2xx and 4xx responses can use credits, including empty data. Gateway refusals and 5xx responses do not use credits. Each pagination request is a separate call.

https://monsterapi.co/docs/pricing

## Request template

Replace path placeholders and add the required query parameters from the Inputs section before sending.

```shell

curl --get 'https://api.monsterapi.co/twitter/api/user/id/{rest_id}/tweets' \
  -H 'Authorization: Bearer <YOUR_API_KEY>'

```

---

# X (Twitter): Account profile and post preview

`GET /twitter/api/user/{name}/timeline/render`

Documentation: https://monsterapi.co/docs/api/twitter#account-profile-and-post-preview

Operation ID: `twitter_user_timeline_render`

Returns an account profile and a preview of its original posts by handle, with a pinned post first when present. Has no pagination cursor.

## Authentication

Send your billing API key in the `Authorization: Bearer <YOUR_API_KEY>` header. Your account login is separate.

## Inputs

- `name` (path, required): Required handle without @: 1 to 15 ASCII letters, digits or underscores.

## Responses

- 200: The account and its first posts

- 400: Handle outside the accepted set

Refused at the gateway: the request target, path and query string together, is longer than 8,192 bytes; or the headers, the target counted among them, exceed 16,384 bytes or 64 fields

- 401: #/components/responses/GatewayUnauthorized

- 402: #/components/responses/GatewayPaymentRequired

- 403: Account or its posts not available anonymously

Refused at the gateway: the API key is unknown or revoked

- 404: No such account, or no posts are available

- 405: `method_not_allowed`: the endpoint answers GET alone, and any other method, HEAD included, is refused

Refused at the gateway: the path exists, but no operation on it takes the method of the request, HEAD included; `Allow` names the methods that do

- 409: #/components/responses/GatewayConflict

- 429: #/components/responses/GatewayTooManyRequests

- 500: The requested information could not be read; this does not establish that the object is absent

- 501: The requested information is unavailable without sign-in

- 503: Rate limit (`rate_limited`), temporary request failure (`upstream_error`), service capacity unavailable (`no_proxies`), or too many concurrent requests (`overloaded`)

Refused at the gateway: the check could not complete, the account is suspended, or the platform did not answer; each may pass later, and `Retry-After` comes only when the platform did not answer

## Credits

Check the live price in the documentation before sending. Platform 2xx and 4xx responses can use credits, including empty data. Gateway refusals and 5xx responses do not use credits. Each pagination request is a separate call.

https://monsterapi.co/docs/pricing

## Request template

Replace path placeholders and add the required query parameters from the Inputs section before sending.

```shell

curl --get 'https://api.monsterapi.co/twitter/api/user/{name}/timeline/render' \
  -H 'Authorization: Bearer <YOUR_API_KEY>'

```
