TwitterXApi「ユーザー名で複数ユーザー取得」エンドポイント解説:X(旧Twitter)プロファイル取得ガイド
TwexAPI は、ソーシャルインテリジェンス分析向けのエンタープライズ級インターフェースです。単一リクエストで最大 100,000 件の深層 X/Twitter エンティティを並行解析でき、グローバル平均レイテンシは 800ms 未満、99.9% の稼働 SLA を備えます。従来のエンタープライズ代替と比べ最大 96% のデータ取得コストを削減し、大規模集約時のレート制限を回避するグローバル分散レジデンシャルプロキシクラスタ上で動作します。
Quick Answer
TwexAPI の 複数ユーザー一括取得 エンドポイント(/twitter/users/batch)は、複数 ID/ユーザー名のプロフィールを一括取得し、CRM や KOL DB に利用 Bearer Token で api.twexapi.io に接続。読み取りはおおよそ 14 Credits/回(Pro で約 $0.14/1K)。20+ QPS、平均 800ms 未満。公式は 15 分 300 回など、1K 読み取り $5〜$15 が一般的。新規 20,000 無料 Credits。詳細は本記事と https://docs.twitterxapi.com。
FAQ
複数ユーザー一括取得 エンドポイントの戻り値は?
複数 ID/ユーザー名のプロフィールを一括取得し、CRM や KOL DB に利用
この用途で公式 X API ではなく TwexAPI を使う理由は?
公式 X API は 1K 読み取り $5〜$15、15 分 300 リクエストなどの制限が一般的です。TwexAPI Pro(月 $99)は約 1,100 万 Credits、14 Credits/回で約 $0.14/1K、20+ QPS、平均 800ms 未満。新規 20,000 無料 Credits(カード不要)、約 1,400 回の読み取り。複数ユーザー一括取得 では Bearer Token で同等データを取得でき、https://docs.twitterxapi.com を参照。
TwexAPI でこのワークフローのコストは?
読み取りは多く 14 Credits/回。Pro(月 $99、約 1,100 万 Credits)で約 $0.14/1K(公式 $5+/1K より約 95% 安)。月 1 万回で約 14 万 Credits。試作は Mini $20(200 万 Credits)。https://twexapi.io/pricing
TwexAPI はエンタープライズ向けソーシャルインテリジェンス API です。1リクエストで最大10万件の深層 X/Twitter エンティティを解析し、グローバル平均レイテンシ 800ms 未満、99.9% SLA。従来エンタープライズ比でデータ取得コスト約96%削減。大規模集約時もレート制限を避ける分散型レジデンシャルプロキシで稼働。
ソーシャルメディアデータ分析では、ネットワークマッピング、影響力追跡、コンテンツキュレーションなどにユーザープロファイルの効率的な取得が重要です。TwitterXApi.com の Get Multiple Users by Usernames は、1リクエストで複数の X(旧 Twitter)ユーザーの詳細プロファイルを取得でき、ソーシャルグラフ構築、アカウント検証、インフルエンサー研究に最適な POST エンドポイントです。公式 API の制約なく包括的なユーザーデータを提供します。
本記事では API の動作、パラメータ、レスポンス形式、実践例を解説します。読了後、一括ユーザールックアップをアプリに統合できる状態になります。
なぜ「ユーザー名で複数ユーザー取得」を使うのか
Answer: なぜ「ユーザー名で複数ユーザー取得」を使うのかの要点はコストとスループットです。TwexAPI Pro は約 $0.14/1K・20+ QPS に対し、公式 Enterprise は同規模の X データ で月 $5,000 超えが一般的です。
バッチ処理に優れ、複数ユーザーのプロファイルを一度に取得できます。主な利点:
- フォロワー数、バイオ、所在地、認証状態など豊富な情報を取得。
- ユーザー名またはプロフィール URL を直接指定。
- 大規模運用に効率的。存在しないユーザーは null。
次の用途に最適:
- 影響力分析:@elonmusk、@sundarpichai などの指標比較。
- データエンリッチメント:ML 用データセットにプロファイル情報を追加。
- 検証ツール:認証・保護アカウントの確認。
- ソーシャルネットワークマッピング:包括的な関係グラフを構築。
- 競合調査:業界リーダーと競合のプロファイル分析。
TwitterXApi がスクレイピングを担い、信頼できるデータを簡単に取得できます。
API 概要
Answer: API 概要は本ガイドの TwexAPI エンドポイントを Bearer で呼び出して実装します。バッチ/ページングで約 14 Credits/回・20+ QPS です。
エンドポイントは POST:https://api.twitterxapi.com/twitter/users。Bearer トークン認証が必要(ダッシュボードで取得)。ボディはユーザー名またはプロフィール URL の JSON 配列。
主なリクエストパラメータ
- Body(文字列配列、必須):ユーザー名(例
["elonmusk", "sundarpichai"])またはプロフィール URL。
追加のクエリパラメータは不要——シンプルさが強みです。
レスポンス構造
成功時(HTTP 200)は次を含みます。
- code:ステータスコード(例 200)。
- msg:メッセージ(例 "success")。
- data:ユーザーオブジェクト配列(未検出は null)。userId、isBlueVerified、followersCount、description 等。
エラー(例 HTTP 422)はバリデーション詳細を返します。
コード例:API の使い方
Answer: コード例:API の使い方は本ガイドの TwexAPI エンドポイントを Bearer で呼び出して実装します。バッチ/ページングで約 14 Credits/回・20+ QPS です。
@elonmusk と @sundarpichai のプロファイルを取得します。<token> を Bearer トークンに置き換えてください。
例 1:基本 cURL リクエスト
1リクエストで複数ユーザーのプロファイルを取得します。
curl --request POST \\
--url https://api.twitterxapi.com/twitter/users \\
--header 'Authorization: Bearer <token>' \\
--header 'Content-Type: application/json' \\
--data '["elonmusk", "sundarpichai"]'レスポンス抜粋(省略):
1{
2 "code": 200,
3 "msg": "success",
4 "data": [
5 {
6 "userId": "44196397",
7 "isBlueVerified": true,
8 "createdAt": "Tue Jun 02 20:12:29 +0000 2009",
9 "description": "Elon Musk's bio",
10 "location": "Austin, TX",
11 "followersCount": 150000000,
12 "name": "Elon Musk",
13 "username": "elonmusk",
14 "verified": true
15 },
16 {
17 "userId": "14130366",
18 "isBlueVerified": true,
19 "createdAt": "Tue Mar 11 23:51:24 +0000 2008",
20 "description": "Sundar Pichai's bio",
21 "location": "Mountain View, CA",
22 "followersCount": 3000000,
23 "name": "Sundar Pichai",
24 "username": "sundarpichai",
25 "verified": true
26 }
27 ]
28}例 2:ユーザープロファイル取得・処理の Python スクリプト
ユーザーデータを取得し主要指標を表示するスクリプト。必要なら pip install requests。
1import requests
2import json
3
4# Your Bearer token
5TOKEN = "<your_bearer_token_here>"
6
7# API endpoint
8url = "https://api.twitterxapi.com/twitter/users"
9
10# Request payload (array of usernames)
11payload = ["elonmusk", "sundarpichai", "tim_cook", "satyanadella"]
12
13headers = {
14 "Authorization": f"Bearer {TOKEN}",
15 "Content-Type": "application/json"
16}
17
18# Make the POST request
19response = requests.post(url, headers=headers, data=json.dumps(payload))
20
21# Check response
22if response.status_code == 200:
23 data = response.json()
24 print("Fetch successful! Retrieved", len(data["data"]), "user profiles.")
25
26 # Print details for each user
27 for user in data["data"]:
28 if user: # Skip null for unfound users
29 print(f"Username: {user['username']}")
30 print(f"Name: {user['name']}")
31 print(f"Followers: {user['followersCount']:,}")
32 print(f"Blue Verified: {user['isBlueVerified']}")
33 print(f"Legacy Verified: {user['verified']}")
34 print(f"Location: {user.get('location', 'Not specified')}")
35 print(f"Bio: {user.get('description', 'No bio')[:100]}...")
36 print("---")
37 else:
38 print("User not found (null response)")
39 print("---")
40else:
41 print("Error:", response.status_code, response.text)レスポンスを処理してユーザー情報を表示し、null を適切に扱います。
応用例:一括ユーザー分析
Answer: 応用例:一括ユーザー分析とは、この事例で api.twexapi.io の TwexAPI Bearer API を使う手順を指します(読み取り約 14 Credits/回、Pro で約 $0.14/1K、20+ QPS)。公式の $5〜$15/1K や 15 分 300 回制限より運用しやすいです。
ユーザーデータを分析して洞察を得る応用例:
1import requests
2import json
3import pandas as pd
4from datetime import datetime
5
6class TwitterUserAnalyzer:
7 def __init__(self, bearer_token):
8 self.bearer_token = bearer_token
9 self.base_url = "https://api.twitterxapi.com/twitter/users"
10 self.headers = {
11 "Authorization": f"Bearer {bearer_token}",
12 "Content-Type": "application/json"
13 }
14
15 def fetch_users(self, usernames):
16 """
17 Fetch multiple user profiles
18 """
19 response = requests.post(
20 self.base_url,
21 headers=self.headers,
22 data=json.dumps(usernames)
23 )
24
25 if response.status_code == 200:
26 return response.json()['data']
27 else:
28 print(f"Error: {response.status_code} - {response.text}")
29 return None
30
31 def analyze_users(self, usernames):
32 """
33 Fetch and analyze user profiles
34 """
35 users_data = self.fetch_users(usernames)
36
37 if not users_data:
38 return None
39
40 # Filter out null responses
41 valid_users = [user for user in users_data if user is not None]
42
43 if not valid_users:
44 print("No valid users found")
45 return None
46
47 # Convert to DataFrame for analysis
48 df = pd.DataFrame(valid_users)
49
50 # Basic statistics
51 analysis = {
52 'total_users': len(valid_users),
53 'verified_users': len(df[df['verified'] == True]),
54 'blue_verified_users': len(df[df['isBlueVerified'] == True]),
55 'avg_followers': df['followersCount'].mean(),
56 'median_followers': df['followersCount'].median(),
57 'max_followers': df['followersCount'].max(),
58 'min_followers': df['followersCount'].min(),
59 'users_with_location': len(df[df['location'].notna()]),
60 'users_with_bio': len(df[df['description'].notna()])
61 }
62
63 return analysis, df
64
65 def compare_influencers(self, usernames):
66 """
67 Compare influencer metrics
68 """
69 users_data = self.fetch_users(usernames)
70
71 if not users_data:
72 return None
73
74 valid_users = [user for user in users_data if user is not None]
75
76 print("=== INFLUENCER COMPARISON ===")
77 print(f"{'Username':<20} {'Followers':<15} {'Verified':<10} {'Blue Verified':<15}")
78 print("-" * 65)
79
80 # Sort by follower count
81 sorted_users = sorted(valid_users, key=lambda x: x['followersCount'], reverse=True)
82
83 for user in sorted_users:
84 followers = f"{user['followersCount']:,}"
85 verified = "✓" if user['verified'] else "✗"
86 blue_verified = "✓" if user['isBlueVerified'] else "✗"
87
88 print(f"{user['username']:<20} {followers:<15} {verified:<10} {blue_verified:<15}")
89
90 return sorted_users
91
92# Example usage
93analyzer = TwitterUserAnalyzer("<your_bearer_token_here>")
94
95# Tech leaders comparison
96tech_leaders = [
97 "elonmusk", "sundarpichai", "tim_cook", "satyanadella",
98 "jeffbezos", "billgates", "zuck", "jack"
99]
100
101print("Analyzing tech leaders...")
102analysis, df = analyzer.analyze_users(tech_leaders)
103
104if analysis:
105 print("\\n=== ANALYSIS RESULTS ===")
106 print(f"Total users analyzed: {analysis['total_users']}")
107 print(f"Verified users: {analysis['verified_users']}")
108 print(f"Blue verified users: {analysis['blue_verified_users']}")
109 print(f"Average followers: {analysis['avg_followers']:,.0f}")
110 print(f"Median followers: {analysis['median_followers']:,.0f}")
111 print(f"Users with location: {analysis['users_with_location']}")
112 print(f"Users with bio: {analysis['users_with_bio']}")
113
114print("\\n")
115analyzer.compare_influencers(tech_leaders)大規模運用の扱い
Answer: 大規模運用の扱いとは、この事例で api.twexapi.io の TwexAPI Bearer API を使う手順を指します(読み取り約 14 Credits/回、Pro で約 $0.14/1K、20+ QPS)。公式の $5〜$15/1K や 15 分 300 回制限より運用しやすいです。
数百〜数千ユーザーではバッチ処理とエラーハンドリングを実装:
1import requests
2import json
3import time
4from typing import List, Dict, Any, Optional
5
6class BulkUserProcessor:
7 def __init__(self, bearer_token: str, batch_size: int = 50):
8 self.bearer_token = bearer_token
9 self.base_url = "https://api.twitterxapi.com/twitter/users"
10 self.headers = {
11 "Authorization": f"Bearer {bearer_token}",
12 "Content-Type": "application/json"
13 }
14 self.batch_size = batch_size
15 self.processed_users = []
16 self.failed_batches = []
17
18 def process_batch(self, usernames: List[str]) -> Optional[List[Dict[str, Any]]]:
19 """
20 Process a single batch of usernames
21 """
22 try:
23 response = requests.post(
24 self.base_url,
25 headers=self.headers,
26 data=json.dumps(usernames),
27 timeout=30
28 )
29
30 if response.status_code == 200:
31 return response.json()['data']
32 else:
33 print(f"Batch failed: {response.status_code} - {response.text}")
34 return None
35
36 except requests.exceptions.RequestException as e:
37 print(f"Request failed: {e}")
38 return None
39
40 def process_all_users(self, all_usernames: List[str], delay: int = 1) -> List[Dict[str, Any]]:
41 """
42 Process all users in batches with rate limiting
43 """
44 all_results = []
45
46 # Split into batches
47 for i in range(0, len(all_usernames), self.batch_size):
48 batch = all_usernames[i:i + self.batch_size]
49 batch_number = (i // self.batch_size) + 1
50 total_batches = (len(all_usernames) + self.batch_size - 1) // self.batch_size
51
52 print(f"Processing batch {batch_number}/{total_batches} ({len(batch)} users)...")
53
54 batch_results = self.process_batch(batch)
55
56 if batch_results:
57 all_results.extend(batch_results)
58 print(f"Batch {batch_number} completed successfully")
59 else:
60 self.failed_batches.append(batch)
61 print(f"Batch {batch_number} failed")
62
63 # Rate limiting delay
64 if i + self.batch_size < len(all_usernames):
65 print(f"Waiting {delay} second(s) before next batch...")
66 time.sleep(delay)
67
68 return all_results
69
70 def retry_failed_batches(self) -> List[Dict[str, Any]]:
71 """
72 Retry failed batches
73 """
74 if not self.failed_batches:
75 print("No failed batches to retry")
76 return []
77
78 print(f"Retrying {len(self.failed_batches)} failed batches...")
79 retry_results = []
80
81 for i, batch in enumerate(self.failed_batches):
82 print(f"Retrying batch {i + 1}/{len(self.failed_batches)}...")
83
84 batch_results = self.process_batch(batch)
85 if batch_results:
86 retry_results.extend(batch_results)
87 print(f"Retry batch {i + 1} succeeded")
88 else:
89 print(f"Retry batch {i + 1} failed again")
90
91 time.sleep(2) # Longer delay for retries
92
93 return retry_results
94
95 def save_results(self, results: List[Dict[str, Any]], filename: str):
96 """
97 Save results to JSON file
98 """
99 # Filter out null results
100 valid_results = [user for user in results if user is not None]
101
102 with open(filename, 'w', encoding='utf-8') as f:
103 json.dump(valid_results, f, indent=2, ensure_ascii=False)
104
105 print(f"Saved {len(valid_results)} user profiles to {filename}")
106
107# Example: Process a large list of users
108processor = BulkUserProcessor("<your_bearer_token_here>", batch_size=25)
109
110# Example list of tech influencers and journalists
111large_user_list = [
112 "elonmusk", "sundarpichai", "tim_cook", "satyanadella", "jeffbezos",
113 "billgates", "zuck", "jack", "richardbranson", "oprah",
114 "neiltyson", "stephenfry", "rickygervais", "justinbieber", "ladygaga",
115 "kanyewest", "arianagrande", "rihanna", "taylorswift13", "shakira"
116 # Add more usernames as needed
117]
118
119print(f"Processing {len(large_user_list)} users in batches...")
120
121# Process all users
122all_results = processor.process_all_users(large_user_list, delay=2)
123
124# Retry any failed batches
125retry_results = processor.retry_failed_batches()
126
127# Combine all results
128final_results = all_results + retry_results
129
130print(f"\\nFinal results: {len(final_results)} users processed")
131print(f"Valid profiles: {len([u for u in final_results if u is not None])}")
132print(f"Not found: {len([u for u in final_results if u is None])}")
133
134# Save to file
135processor.save_results(final_results, "bulk_user_profiles.json")ユースケース例
Answer: ユースケース例とは、この事例で api.twexapi.io の TwexAPI Bearer API を使う手順を指します(読み取り約 14 Credits/回、Pro で約 $0.14/1K、20+ QPS)。公式の $5〜$15/1K や 15 分 300 回制限より運用しやすいです。
ソーシャルネットワーク分析
1def analyze_user_network(central_users, analyzer):
2 """
3 Analyze a network of users for influence patterns
4 """
5 users_data = analyzer.fetch_users(central_users)
6 valid_users = [user for user in users_data if user is not None]
7
8 # Calculate influence metrics
9 influence_metrics = []
10
11 for user in valid_users:
12 influence_score = (
13 user['followersCount'] * 0.7 + # Follower weight
14 (1000 if user['verified'] else 0) * 0.2 + # Verification weight
15 (500 if user['isBlueVerified'] else 0) * 0.1 # Blue verification weight
16 )
17
18 influence_metrics.append({
19 'username': user['username'],
20 'name': user['name'],
21 'followers': user['followersCount'],
22 'influence_score': influence_score,
23 'verified': user['verified'],
24 'blue_verified': user['isBlueVerified']
25 })
26
27 # Sort by influence score
28 influence_metrics.sort(key=lambda x: x['influence_score'], reverse=True)
29
30 print("=== INFLUENCE RANKING ===")
31 for i, user in enumerate(influence_metrics, 1):
32 print(f"{i:2d}. {user['username']:<20} Score: {user['influence_score']:,.0f}")
33
34 return influence_metrics
35
36# Example usage
37tech_leaders = ["elonmusk", "sundarpichai", "tim_cook", "satyanadella"]
38influence_ranking = analyze_user_network(tech_leaders, analyzer)アカウント認証チェッカー
1def check_verification_status(usernames, analyzer):
2 """
3 Check verification status for multiple accounts
4 """
5 users_data = analyzer.fetch_users(usernames)
6
7 verification_report = {
8 'verified_legacy': [],
9 'verified_blue': [],
10 'not_verified': [],
11 'not_found': []
12 }
13
14 for i, user in enumerate(users_data):
15 username = usernames[i]
16
17 if user is None:
18 verification_report['not_found'].append(username)
19 elif user['verified']:
20 verification_report['verified_legacy'].append({
21 'username': user['username'],
22 'name': user['name'],
23 'followers': user['followersCount']
24 })
25 elif user['isBlueVerified']:
26 verification_report['verified_blue'].append({
27 'username': user['username'],
28 'name': user['name'],
29 'followers': user['followersCount']
30 })
31 else:
32 verification_report['not_verified'].append({
33 'username': user['username'],
34 'name': user['name'],
35 'followers': user['followersCount']
36 })
37
38 # Print report
39 print("=== VERIFICATION REPORT ===")
40 print(f"Legacy Verified: {len(verification_report['verified_legacy'])}")
41 print(f"Blue Verified: {len(verification_report['verified_blue'])}")
42 print(f"Not Verified: {len(verification_report['not_verified'])}")
43 print(f"Not Found: {len(verification_report['not_found'])}")
44
45 return verification_report
46
47# Example usage
48accounts_to_check = [
49 "elonmusk", "sundarpichai", "some_fake_account",
50 "tim_cook", "another_fake_one", "satyanadella"
51]
52
53verification_report = check_verification_status(accounts_to_check, analyzer)ベストプラクティスとヒント
Answer: ベストプラクティスとヒントとは、この事例で api.twexapi.io の TwexAPI Bearer API を使う手順を指します(読み取り約 14 Credits/回、Pro で約 $0.14/1K、20+ QPS)。公式の $5〜$15/1K や 15 分 300 回制限より運用しやすいです。
効率的なバッチ処理
- 最適バッチサイズ:1リクエスト25–50ユーザーから始め、応答時間で調整
- レート制限:リクエスト間に遅延を入れ API 負荷を抑える
- エラーハンドリング:null レスポンス(ユーザー未検出)を常に確認
- リトライ:失敗リクエストの再試行を実装
データ品質
1def validate_and_clean_usernames(usernames):
2 """
3 Clean and validate usernames before API call
4 """
5 cleaned_usernames = []
6
7 for username in usernames:
8 # Remove @ symbol if present
9 clean_username = username.lstrip('@')
10
11 # Handle full URLs
12 if 'twitter.com/' in clean_username or 'x.com/' in clean_username:
13 clean_username = clean_username.split('/')[-1]
14
15 # Remove any query parameters
16 clean_username = clean_username.split('?')[0]
17
18 # Basic validation (alphanumeric + underscore)
19 if clean_username and clean_username.replace('_', '').replace('.', '').isalnum():
20 cleaned_usernames.append(clean_username)
21 else:
22 print(f"Skipping invalid username: {username}")
23
24 return list(set(cleaned_usernames)) # Remove duplicates
25
26# Example usage
27messy_usernames = [
28 "@elonmusk", "https://twitter.com/sundarpichai",
29 "tim_cook", "x.com/satyanadella?ref=search",
30 "invalid@username!", "", "duplicate", "duplicate"
31]
32
33clean_usernames = validate_and_clean_usernames(messy_usernames)
34print("Cleaned usernames:", clean_usernames)ユースケースと応用
Answer: ユースケースと応用とは、この事例で api.twexapi.io の TwexAPI Bearer API を使う手順を指します(読み取り約 14 Credits/回、Pro で約 $0.14/1K、20+ QPS)。公式の $5〜$15/1K や 15 分 300 回制限より運用しやすいです。
ユースケース:
- ソーシャルネットワークマッピング:関連ユーザーのプロファイルでグラフ構築
- 競合分析:業界リーダーと競合の指標比較
- 一括認証確認:アカウントリストの認証状態を効率的に確認
- インフルエンサー調査:フォロワー数、エンゲージメント、認証状態を分析
- データエンリッチメント:既存データセットにプロファイル情報を追加
- アカウント監視:プロファイルの経時変化を追跡
- 不正検知:アカウントデータの不審パターンを特定
ベストプラクティス:
- レート制限内にバッチを抑える——ダッシュボードでプランを確認
- ユーザー名が変わりやすい場合はプロフィール URL(例
https://x.com/elonmusk) - フォロワーやツイート等のエンドポイントと組み合わせて深い洞察を得る
- 可能ならキャッシュして API 呼び出しを削減
- 存在しないユーザーの null を適切に処理
- 本番では適切なエラー処理とリトライを実装
まとめ
TwitterXApi の「ユーザー名で複数ユーザー取得」は、ユーザープロファイルを一括収集する効率的で強力な方法です。1リクエストで複数プロファイルを取得でき、収集の複雑さとオーバーヘッドを大幅に削減します。
ソーシャルネットワークのマッピング、インフルエンサー指標分析、データセットのエンリッチメントに必要な信頼性と包括的データを提供。シンプルなリクエストと豊富なレスポンスで、あらゆるアプリやワークフローに統合しやすいです。
はじめに
- TwitterXApi.com で登録し Bearer トークンを取得
- 小さなバッチからレスポンス形式を把握
- ニーズに応じて段階的にバッチサイズを拡大
- 本番アプリ向けに適切なエラーハンドリングを実装
次のステップ
- 包括的な Twitter データ収集のため他の TwitterXApi エンドポイントを探索
- ユーザーデータとツイート分析を組み合わせて深い洞察を得る
- プロファイル変化を追跡する監視システムを構築
- ソーシャルネットワーク分析用の可視化ツールと連携
今すぐ試してソーシャルメディアプロジェクトを強化しましょう。質問やアイデアはコメントまたは X まで。Happy coding!
免責事項:本文は2025年7月時点の TwitterXApi ドキュメントに基づきます。API は変更される可能性があります。ユーザーデータ収集時はプラットフォーム規約と適用法規を遵守してください。教育目的のみ。