Skip to main content
GET
/
x
/
communities
/
{id}
/
moderators
Get community moderators
curl --request GET \
  --url https://xquik.com/api/v1/x/communities/{id}/moderators \
  --header 'x-api-key: <api-key>'
import requests

url = "https://xquik.com/api/v1/x/communities/{id}/moderators"

headers = {"x-api-key": "<api-key>"}

response = requests.get(url, headers=headers)

print(response.text)
const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};

fetch('https://xquik.com/api/v1/x/communities/{id}/moderators', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
package main

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

func main() {

url := "https://xquik.com/api/v1/x/communities/{id}/moderators"

req, _ := http.NewRequest("GET", url, nil)

req.Header.Add("x-api-key", "<api-key>")

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

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

fmt.Println(string(body))

}
Requested result counts are upper bounds for paid authenticated calls. When remaining credits cannot cover the full page or ID list, Xquik returns fewer results. If zero paid results are affordable, it returns 402 insufficient_credits.
1 credit per result returned · All plans from $0.00012/credit
curl https://xquik.com/api/v1/x/communities/1234567890/moderators \
  -H "x-api-key: xq_YOUR_KEY_HERE" | jq
const communityId = "1234567890";
const response = await fetch(`https://xquik.com/api/v1/x/communities/${communityId}/moderators`, {
  headers: { "x-api-key": "xq_YOUR_KEY_HERE" },
});
const data = await response.json();
const nextCursor = data.has_next_page ? data.next_cursor : null;
const moderatorRows = data.users.map((user) => ({
  community_id: communityId,
  moderator_id: user.id,
  username: user.username,
  display_name: user.name,
  bio: user.description ?? null,
  follower_count: user.followers ?? null,
  verified: user.verified ?? false,
  profile_image_url: user.profilePicture ?? null,
  page_size: data.users.length,
  has_next_page: data.has_next_page,
  next_cursor: nextCursor,
}));

process.stdout.write(JSON.stringify(moderatorRows, null, 2));
import json
import requests

community_id = "1234567890"
response = requests.get(
    f"https://xquik.com/api/v1/x/communities/{community_id}/moderators",
    headers={"x-api-key": "xq_YOUR_KEY_HERE"},
)
data = response.json()
next_cursor = data["next_cursor"] if data["has_next_page"] else None
moderator_rows = [
    {
        "community_id": community_id,
        "moderator_id": user["id"],
        "username": user["username"],
        "display_name": user["name"],
        "bio": user.get("description"),
        "follower_count": user.get("followers"),
        "verified": user.get("verified", False),
        "profile_image_url": user.get("profilePicture"),
        "page_size": len(data["users"]),
        "has_next_page": data["has_next_page"],
        "next_cursor": next_cursor,
    }
    for user in data["users"]
]

print(json.dumps(moderator_rows, indent=2))
Use GET /x/communities/{id}/moderators for moderator audits, governance review, trust and safety queues, or CRM enrichment. It creates one row per community moderator. Store community_id, moderator_id, username, display_name, bio, follower_count, verified, profile_image_url, and next_cursor. Store page_size and has_next_page with the checkpoint when you paginate moderator audits or saved review queues.

Direct moderator handoff

Use the first page with no cursor, then pass next_cursor back as cursor while has_next_page is true. Requested result counts are upper bounds, so use page_size to record how many moderators were returned on the current page.

Moderator rows

Store one row per moderator with community ID, user ID, username, profile fields, verification, and follower count.

Next page

Store has_next_page and next_cursor before requesting the following page.

Default page

Expect up to the default page size per call, reduced when the caller cannot cover every paid result.

Saved export

Use community_moderator_explorer when the workflow needs an extraction job or CSV, JSON, or XLSX output.

Path parameters

id
string
required
Community ID (numeric string).

Query parameters

cursor
string
Pagination cursor from a previous response. Omit for the first page.

Which community endpoint?

Community moderators

Use GET /x/communities/{id}/moderators for governance audits, moderator review queues, and profile enrichment.

Community members

Use GET /x/communities/{id}/members for the broader member list.

Community info

Use GET /x/communities/{id}/info for member count, moderator count, rules, and join policy.

Community tweets

Use GET /x/communities/{id}/tweets for posts inside one community.

Community search

Use GET /x/communities/tweets for keyword search across community tweets.

Saved exports

Use Create extraction with community_moderator_explorer, community_extractor, or community_post_extractor for queued file exports.

Headers

x-api-key
string
required
Your API key. Session cookie authentication is also supported.

Response

users
object[]
Array of community moderators.
has_next_page
boolean
Whether more results are available.
next_cursor
string
Cursor for the next page. Pass as the cursor query parameter.
{
  "users": [
    {
      "id": "987654321",
      "username": "moduser",
      "name": "Moderator",
      "followers": 5000,
      "verified": true
    }
  ],
  "has_next_page": false,
  "next_cursor": ""
}
Next steps: Community Members for the full member list, or Community Info for community details.
Last modified on June 2, 2026