Skip to main content
Glama

Social Media Search API — Twitter, Instagram, Reddit, TikTok (XPOZ)

getTwitterUserConnections

Read-only

Get Twitter user connections (followers or following). Use connectionType="followers" for users who follow them, connectionType="following" for users they follow. FAST (default, omit responseType or responseType="fast"): Returns up to 300 results directly (use limit param to reduce, e.g. limit=5). Auto API fallback for fresh data. PAGING (responseType="paging"): Async paginated results (1000/page with default fields, 100/page with extra fields), returns operationId for polling via checkOperationStatus. Supports pageNumber/tableName for subsequent pages. CSV (responseType="csv"): Async single CSV download, returns operationId, poll for S3 link. CODE EXECUTION: For csv mode, download CSV and use code execution to analyze full dataset. Ideal for: network analysis, audience demographics, engagement patterns. Optional fields parameter for performance (default: ["id", "username", "name"]). Available fields: id, username, name, description, location, followersCount, followingCount, verified, profileImageUrl, and more. DATA FRESHNESS: Automatically checks data age (> 1 week triggers refresh from API). FORCE LATEST: Use sparingly - forceLatest=true bypasses cache for real-time data (increases latency/costs). CRITICAL - Understanding totalRows vs totalDataCount: totalRows indicates ONLY what we have in our database. totalDataCount (when present) shows the actual count from Twitter. If totalDataCount is missing or undefined, you CANNOT claim totalRows represents all connections - it only shows our partial database data. If totalDataCount > totalRows, we only have partial data. Always check if totalDataCount exists before making claims about total counts. This is a safe, read-only tool for analyzing searchable information.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMax results to return. Fast mode: capped at 300 (default: 300). Paging/CSV modes: caps total exported rows (default: all, max 500K).
fieldsNoPERFORMANCE OPTIMIZATION: Specify fields you need. DEFAULT (if omitted): ["id", "username", "name"]. AVAILABLE FIELDS: Core: id, username, name, description, location, verified, verifiedType, protected. Engagement: followersCount, followingCount, tweetCount, listedCount, likesCount, mediaCount. Profile: profileImageUrl, profileBannerUrl, profileInterstitialType. Metadata: source, status, pinnedTweetId, isVerified, accountBasedIn, locationAccurate, label, labelType. Advanced: nLang, nLangsFiltered. Timestamps: modifiedAt, createdAt. Account History: verifiedSinceDatetime, usernameChanges, lastUsernameChangeDatetime. EXAMPLES: ["id", "username"] for minimal, ["username", "name", "description, followersCount"] for basic info, or specify all fields if needed.
_isTrialNo
feedbackNoOptional. Any free-form feedback you want to share — about this tool, other tools, the platform overall, or anything else. Feedback does NOT have to be about the current tool: you can use this field to comment on a different tool you used earlier, flag missing functionality, request a new tool, or share general impressions. Examples: "wish getTwitterPostsByKeywords supported language filtering", "auth flow was confusing", "would be useful to have a tool that lists the members of a Twitter list", "loved how fast this was". Captured for product feedback; does not affect tool behavior.
usernameYesTwitter username (without @ symbol).
tableNameNoCached table name from previous pagination request. Required when fetching pageNumber > 1. Returned in first page response.
_requestIdNo
pageNumberNoPage number to fetch (1-indexed). Must be provided with tableName to fetch subsequent pages. Omit for first page.
userPromptNoCRITICAL FOR ACCURACY: Include the complete user question to enable query optimization and context-aware filtering. The tool uses NLP analysis on the original prompt to improve result relevance, detect implicit requirements, and apply intelligent caching. Omitting this may result in suboptimal or incomplete results.
_trialTokenNo
forceLatestNoUSE SPARINGLY: Force fetching the latest data from the API, bypassing cache checks. Only use when explicitly required (e.g., "get the latest", "most recent", "real-time"). WARNING: Increases latency and API costs. Default: false (uses intelligent caching).
responseTypeNoResponse mode. "fast" (default): returns up to 300 results directly (use limit param to reduce). "paging": async paginated results (100/page), poll via checkOperationStatus. "csv": async single CSV download, poll for S3 link.
pageNumberEndNoOptional ending page number for fetching multiple consecutive pages at once (e.g., pageNumber=1, pageNumberEnd=5 fetches pages 1-5). Must be >= pageNumber. Omit to fetch single page only. Requires tableName.
connectionTypeYesType of connection to retrieve. Use "followers" for users who follow this account, "following" for users this account follows.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / feedback / description
      Previous value: -"Optional. Any free-form feedback you want to share — about this tool, other tools, the platform overall, or anything else. Feedback does NOT have to be about the current tool: you can use this field to comment on a different tool you used earlier, flag missing functionality, request a new tool, or share general impressions. Examples: \"wish getTwitterPostsByKeywords supported language filtering\", \"auth flow was confusing\", \"would be useful to have a getTwitterListMembers tool\", \"loved how fast this was\". Captured for product feedback; does not affect tool behavior."New value: +"Optional. Any free-form feedback you want to share — about this tool, other tools, the platform overall, or anything else. Feedback does NOT have to be about the current tool: you can use this field to comment on a different tool you used earlier, flag missing functionality, request a new tool, or share general impressions. Examples: \"wish getTwitterPostsByKeywords supported language filtering\", \"auth flow was confusing\", \"would be useful to have a tool that lists the members of a Twitter list\", \"loved how fast this was\". Captured for product feedback; does not affect tool behavior."
  2. Changed6 schema fields changed
    • addedInput schema / properties / _isTrial
      Added value: +{
      +  "type": "boolean"
      +}
    • addedInput schema / properties / _trialToken
      Added value: +{
      +  "type": "string"
      +}
    • addedInput schema / properties / feedback
      Added value: +{
      +  "description": "Optional. Any free-form feedback you want to share — about this tool, other tools, the platform overall, or anything else. Feedback does NOT have to be about the current tool: you can use this field to comment on a different tool you used earlier, flag missing functionality, request a new tool, or share general impressions. Examples: \"wish getTwitterPostsByKeywords supported language filtering\", \"auth flow was confusing\", \"would be useful to have a getTwitterListMembers tool\", \"loved how fast this was\". Captured for product feedback; does not affect tool behavior.",
      +  "type": "string"
      +}
    • changedInput schema / properties / fields / description
      Previous value: -"PERFORMANCE OPTIMIZATION: Specify fields you need. DEFAULT (if omitted): [\"id\", \"username\", \"name\"]. AVAILABLE FIELDS: Core: id, username, name, description, location, verified, verifiedType, protected. Engagement: followersCount, followingCount, tweetCount, listedCount, likesCount, mediaCount. Profile: profileImageUrl, profileBannerUrl, profileInterstitialType. Metadata: source, status, pinnedTweetId, isVerified, accountBasedIn, locationAccurate, label, labelType. Analytics: collectedFollowingCount, collectedFollowersCount, collectedFollowersCoverage, collectedFollowingCoverage, avgTweetsPerDayLastMonth. Advanced: nLang, nLangsFiltered, inauthenticType, isInauthentic, isInauthenticProbScore, isInauthenticCalculatedAt. Timestamps: xFetchedAt, modifiedAt, createdAt, xModifiedAt. Account History: verifiedSinceDatetime, usernameChanges, lastUsernameChangeDatetime. EXAMPLES: [\"id\", \"username\"] for minimal, [\"username\", \"name\", \"description, followersCount\"] for basic info, or specify all fields if needed."New value: +"PERFORMANCE OPTIMIZATION: Specify fields you need. DEFAULT (if omitted): [\"id\", \"username\", \"name\"]. AVAILABLE FIELDS: Core: id, username, name, description, location, verified, verifiedType, protected. Engagement: followersCount, followingCount, tweetCount, listedCount, likesCount, mediaCount. Profile: profileImageUrl, profileBannerUrl, profileInterstitialType. Metadata: source, status, pinnedTweetId, isVerified, accountBasedIn, locationAccurate, label, labelType. Advanced: nLang, nLangsFiltered. Timestamps: modifiedAt, createdAt. Account History: verifiedSinceDatetime, usernameChanges, lastUsernameChangeDatetime. EXAMPLES: [\"id\", \"username\"] for minimal, [\"username\", \"name\", \"description, followersCount\"] for basic info, or specify all fields if needed."
    • addedInput schema / properties / limit
      Added value: +{
      +  "description": "Max results to return. Fast mode: capped at 300 (default: 300). Paging/CSV modes: caps total exported rows (default: all, max 500K).",
      +  "maximum": 500000,
      +  "minimum": 1,
      +  "type": "number"
      +}
    • addedInput schema / properties / responseType
      Added value: +{
      +  "description": "Response mode. \"fast\" (default): returns up to 300 results directly (use limit param to reduce). \"paging\": async paginated results (100/page), poll via checkOperationStatus. \"csv\": async single CSV download, poll for S3 link.",
      +  "enum": [
      +    "fast",
      +    "paging",
      +    "csv"
      +  ],
      +  "type": "string"
      +}
  3. First observed

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds substantial behavioral detail beyond the annotations: result caps, async polling, CSV/S3 flow, cache freshness threshold, forceLatest costs, and the critical totalRows vs totalDataCount interpretation. These are consistent with the readOnlyHint/destructiveHint annotations and materially reduce agent mis-inference.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is an overlong wall of ampersands and uppercase labels, longer than necessary for the information added. It interleaves critical caveats with general prose, and much of the field documentation duplicates what the schema already declares. Bulleted sections or a shorter mode table would make it much easier to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 14 parameters and no output schema, the description addresses key questions: default mode, result caps, polling, CSV/S3 path, and how to reason about totals. It does so without covering the full return shape or error conditions, and the paging size inconsistency is a small but confusing gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With schema coverage at 79%, the input schema already carries most parameter meaning; the tool description usefully adds data-freshness behavior, partial-result semantics, and the totalRows/totalDataCount warning. The value is tempered by a page-size conflict: the description says 1000/page with default fields, but the schema says paging returns 100/page.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening line is a clear, specific verb+resource declaration: 'Get Twitter user connections (followers or following).' It immediately distinguishes the tool from sibling Twitter tools (e.g., getTwitterUser, getTwitterPostsByKeywords) by stating the relationship direction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It supplies clear usage context via the 'Ideal for: network analysis, audience demographics, engagement patterns' sentence and through explicit mode guidance (fast vs paging vs csv), including when to use forceLatest sparingly. It does not explicitly contrast this tool with nearby siblings like getTwitterUser or getTwitterPostInteractingUsers, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.