logo-darkPipe0

X profile followers

List the followers of any public X (Twitter) account by handle: one row per follower with name, handle, stable user ID, and the full X profile (bio, counts, location, website).

ProviderBilling ModeCredentials
Cost per result
Docs
P
X (Twitter)
Per Result
User
0.5credits

Output Fields

Enabled by defaultThese fields are returned without extra config.4
name
string
x_username
string
x_user_id
string
x_profile_match
json

Code Example

const options = {
  method: 'POST',
  headers: {'content-type': 'application/json', authorization: 'Bearer <TOKEN>'},
  body: JSON.stringify({
    search: {
      search_id: 'people:followers:x@1',
      connector: {
        strategy: 'first',
        connections: [{connection: 'x_<CONNECTION_ID>', type: 'vault'}]
      },
      config: {profile_username: '<X_USERNAME>', limit: 1000}
    }
  })
};

fetch('https://api.pipe0.com/v1/search/run', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
import requests

url = "https://api.pipe0.com/v1/search/run"

payload = { "search": {
        "search_id": "people:followers:x@1",
        "connector": {
            "strategy": "first",
            "connections": [
                {
                    "connection": "x_<CONNECTION_ID>",
                    "type": "vault"
                }
            ]
        },
        "config": {
            "profile_username": "<X_USERNAME>",
            "limit": 1000
        }
    } }
headers = {
    "content-type": "application/json",
    "authorization": "Bearer <TOKEN>"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
curl --request POST \
     --url https://api.pipe0.com/v1/search/run \
     --header 'authorization: Bearer <TOKEN>' \
     --header 'content-type: application/json' \
     --data '
{
  "search": {
    "search_id": "people:followers:x@1",
    "connector": {
      "strategy": "first",
      "connections": [
        {
          "connection": "x_<CONNECTION_ID>",
          "type": "vault"
        }
      ]
    },
    "config": {
      "profile_username": "<X_USERNAME>",
      "limit": 1000
    }
  }
}
'
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://api.pipe0.com/v1/search/run"

	payload := strings.NewReader("{\"search\":{\"search_id\":\"people:followers:x@1\",\"connector\":{\"strategy\":\"first\",\"connections\":[{\"connection\":\"x_<CONNECTION_ID>\",\"type\":\"vault\"}]},\"config\":{\"profile_username\":\"<X_USERNAME>\",\"limit\":1000}}}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("content-type", "application/json")
	req.Header.Add("authorization", "Bearer <TOKEN>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(string(body))

}
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.pipe0.com/v1/search/run', [
  'body' => '{"search":{"search_id":"people:followers:x@1","connector":{"strategy":"first","connections":[{"connection":"x_<CONNECTION_ID>","type":"vault"}]},"config":{"profile_username":"<X_USERNAME>","limit":1000}}}',
  'headers' => [
    'authorization' => 'Bearer <TOKEN>',
    'content-type' => 'application/json',
  ],
]);

echo $response->getBody();
POST /v1/search/run HTTP/1.1

Content-Type: application/json

Authorization: Bearer <TOKEN>

Host: api.pipe0.com

Content-Length: 204



{"search":{"search_id":"people:followers:x@1","connector":{"strategy":"first","connections":[{"connection":"x_<CONNECTION_ID>","type":"vault"}]},"config":{"profile_username":"<X_USERNAME>","limit":1000}}}