Get List Tweet Timeline
curl --request GET \
--url https://api.aisa.one/apis/v1/twitter/list/tweets_timeline \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.aisa.one/apis/v1/twitter/list/tweets_timeline"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.aisa.one/apis/v1/twitter/list/tweets_timeline', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.aisa.one/apis/v1/twitter/list/tweets_timeline",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.aisa.one/apis/v1/twitter/list/tweets_timeline"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.aisa.one/apis/v1/twitter/list/tweets_timeline")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aisa.one/apis/v1/twitter/list/tweets_timeline")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"tweets": [
{
"type": "<string>",
"id": "<string>",
"url": "<string>",
"text": "<string>",
"source": "<string>",
"retweetCount": 123,
"replyCount": 123,
"likeCount": 123,
"quoteCount": 123,
"viewCount": 123,
"createdAt": "<string>",
"lang": "<string>",
"bookmarkCount": 123,
"isReply": true,
"inReplyToId": "<string>",
"conversationId": "<string>",
"inReplyToUserId": "<string>",
"inReplyToUsername": "<string>",
"author": {
"type": "<string>",
"userName": "<string>",
"url": "<string>",
"id": "<string>",
"name": "<string>",
"isBlueVerified": true,
"verifiedType": "<string>",
"profilePicture": "<string>",
"coverPicture": "<string>",
"description": "<string>",
"location": "<string>",
"followers": 123,
"following": 123,
"canDm": true,
"createdAt": "<string>",
"favouritesCount": 123,
"hasCustomTimelines": true,
"isTranslator": true,
"mediaCount": 123,
"statusesCount": 123,
"withheldInCountries": [
"<string>"
],
"possiblySensitive": true,
"pinnedTweetIds": [
"<string>"
],
"isAutomated": true,
"automatedBy": "<string>",
"unavailable": true,
"message": "<string>",
"unavailableReason": "<string>",
"profile_bio": {
"description": "<string>",
"entities": {
"description": {
"urls": [
{
"display_url": "<string>",
"expanded_url": "<string>",
"indices": [
123
],
"url": "<string>"
}
]
},
"url": {
"urls": [
{
"display_url": "<string>",
"expanded_url": "<string>",
"indices": [
123
],
"url": "<string>"
}
]
}
}
}
}
}
],
"has_next_page": true,
"next_cursor": "<string>",
"status": "success",
"msg": "<string>"
}List Endpoints
Get List Tweet Timeline
Get the tweet timeline of an X List by listId, up to 20 per page, cursor-paginated.
GET
https://api.aisa.one/apis/v1
/
twitter
/
list
/
tweets_timeline
Get List Tweet Timeline
curl --request GET \
--url https://api.aisa.one/apis/v1/twitter/list/tweets_timeline \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.aisa.one/apis/v1/twitter/list/tweets_timeline"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.aisa.one/apis/v1/twitter/list/tweets_timeline', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.aisa.one/apis/v1/twitter/list/tweets_timeline",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.aisa.one/apis/v1/twitter/list/tweets_timeline"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.aisa.one/apis/v1/twitter/list/tweets_timeline")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aisa.one/apis/v1/twitter/list/tweets_timeline")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"tweets": [
{
"type": "<string>",
"id": "<string>",
"url": "<string>",
"text": "<string>",
"source": "<string>",
"retweetCount": 123,
"replyCount": 123,
"likeCount": 123,
"quoteCount": 123,
"viewCount": 123,
"createdAt": "<string>",
"lang": "<string>",
"bookmarkCount": 123,
"isReply": true,
"inReplyToId": "<string>",
"conversationId": "<string>",
"inReplyToUserId": "<string>",
"inReplyToUsername": "<string>",
"author": {
"type": "<string>",
"userName": "<string>",
"url": "<string>",
"id": "<string>",
"name": "<string>",
"isBlueVerified": true,
"verifiedType": "<string>",
"profilePicture": "<string>",
"coverPicture": "<string>",
"description": "<string>",
"location": "<string>",
"followers": 123,
"following": 123,
"canDm": true,
"createdAt": "<string>",
"favouritesCount": 123,
"hasCustomTimelines": true,
"isTranslator": true,
"mediaCount": 123,
"statusesCount": 123,
"withheldInCountries": [
"<string>"
],
"possiblySensitive": true,
"pinnedTweetIds": [
"<string>"
],
"isAutomated": true,
"automatedBy": "<string>",
"unavailable": true,
"message": "<string>",
"unavailableReason": "<string>",
"profile_bio": {
"description": "<string>",
"entities": {
"description": {
"urls": [
{
"display_url": "<string>",
"expanded_url": "<string>",
"indices": [
123
],
"url": "<string>"
}
]
},
"url": {
"urls": [
{
"display_url": "<string>",
"expanded_url": "<string>",
"indices": [
123
],
"url": "<string>"
}
]
}
}
}
}
}
],
"has_next_page": true,
"next_cursor": "<string>",
"status": "success",
"msg": "<string>"
}Get the tweet timeline of an X List by
Set this endpoint up in your agent →
listId, up to 20 per page, cursor-paginated. Use this to monitor a hand-curated set of accounts as a single feed — Lists are the cheapest way to track a fixed cohort (competitors, analysts, a beat) without polling each account.
Returns tweets with has_next_page and next_cursor. To see who is in the List use get_twitter_list_members.
First time? Point any MCP client at
https://mcp.aisa.one/mcp — Claude
Code, Codex, Cursor, VS Code and the rest. Authorization is OAuth: the client
opens a browser, you click Allow once, and there is no key to paste. The
commands per client, and what each call costs, are on
aisa.one/mcp.Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
The list ID to get tweets from. e.g. 1846987139428634858
Cursor for paginating through results. Leave empty for the first page.
Response
200 - application/json
List tweet timeline response
Array of tweets from the list
Show child attributes
Show child attributes
Indicates if there are more results available
Cursor for fetching the next page of results
Status of the request
Available options:
success, error Example:
"success"
Message of the request, error message if status is error