> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xquik.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Suggested X communities to join: Twitter API

> List the X (Twitter) Communities X suggests to join, with rules, topic, creator, admin, and member count. X picks them for each request. 1 credit each.

<Panel>
  <Tabs defaultTabIndex={0} sync={false}>
    <Tab title="200" id="response-x-community-suggested-200">
      ```json theme={null}
      {
        "communities": [
          {
            "id": "1472105760389668865",
            "name": "Tech Twitter",
            "member_count": 121468,
            "is_nsfw": false,
            "primary_topic": {
              "name": "Technology"
            }
          }
        ],
        "count": 1
      }
      ```
    </Tab>

    <Tab title="400" id="response-x-community-suggested-400">
      ```json theme={null}
      {
        "error": "invalid_input",
        "message": "Invalid input. Check the request body."
      }
      ```
    </Tab>

    <Tab title="401" id="response-x-community-suggested-401">
      ```json theme={null}
      {
        "error": "unauthenticated",
        "message": "Authentication required."
      }
      ```
    </Tab>

    <Tab title="402" id="response-x-community-suggested-402">
      ```json theme={null}
      {
        "error": "insufficient_credits",
        "message": "Insufficient credits. Top up or subscribe to continue."
      }
      ```
    </Tab>

    <Tab title="424" id="response-x-community-suggested-424">
      ```json theme={null}
      {
        "error": "x_api_unavailable",
        "message": "X data source temporarily unavailable. Try again later."
      }
      ```
    </Tab>

    <Tab title="429" id="response-x-community-suggested-429">
      ```json theme={null}
      {
        "error": "rate_limit_exceeded",
        "message": "Too many requests. Try again later.",
        "retryAfter": 60
      }
      ```
    </Tab>

    <Tab title="502" id="response-x-community-suggested-502">
      ```json theme={null}
      {
        "error": "x_api_unavailable",
        "message": "X data source temporarily unavailable. Try again later."
      }
      ```
    </Tab>

    <Tab title="503" id="response-x-community-suggested-503">
      ```json theme={null}
      {
        "error": "x_api_unavailable",
        "message": "Xquik is busy right now. Retry shortly."
      }
      ```
    </Tab>
  </Tabs>
</Panel>

<blockquote className="agent-llms-directive">
  For the complete documentation index, see <a href="/llms.txt">llms.txt</a>.
</blockquote>

<Callout icon="coins" color="#5c3327">
  **1 credit per Community returned** · [All plans](https://xquik.com/#pricing) from \$0.00012/credit
</Callout>

<CodeGroup>
  ```bash cURL theme={null}
  curl -G https://xquik.com/api/v1/x/communities/suggested \
    --data-urlencode "limit=10" \
    -H "x-api-key: xq_your_api_key_here" | jq
  ```

  ```javascript Node.js theme={null}
  const params = new URLSearchParams({ limit: "10" });
  const response = await fetch(`https://xquik.com/api/v1/x/communities/suggested?${params}`, {
    headers: { "x-api-key": "xq_your_api_key_here" },
  });
  const data = await response.json();
  for (const community of data.communities) {
    process.stdout.write(`${community.id} ${community.name} ${community.member_count}\n`);
  }
  ```

  ```python Python theme={null}
  import requests

  response = requests.get(
      "https://xquik.com/api/v1/x/communities/suggested",
      params={"limit": 10},
      headers={"x-api-key": "xq_your_api_key_here"},
  )
  for community in response.json()["communities"]:
      print(community["id"], community["name"], community["member_count"])
  ```
</CodeGroup>

Use `GET /x/communities/suggested` to list the Communities X suggests to join.
Each suggestion carries the full Community record: rules, topic, creator, admin, and previewed members.
Each Community costs 1 credit. An empty list costs nothing.

## How X picks suggestions

X picks the suggestions for each request, so 2 calls can return different Communities.
If X suggests none, Xquik asks up to 2 more times.
For a list that depends only on your input, use
[Find communities](/api-reference/x/community-find) or
[Popular communities](/api-reference/x/community-popular).

## Query parameters

<ParamField query="limit" type="integer">
  Most Communities to return, starting at `1`. Omit it for every suggestion. Your credit balance can return fewer. Aliases: `pageSize`, `count`, and `max_results`.
</ParamField>

## Headers

<ParamField header="x-api-key" type="string">
  Send a full Xquik account API key.
</ParamField>

<ParamField header="Authorization" type="string">
  `Bearer xq_your_guest_key_here` for `paid_reads`.
</ParamField>

## Response

### 200 OK

<ResponseField name="communities" type="object[]">
  Suggested Communities, in X's order. Each has the fields of [Community details](/api-reference/x/community-info).
  **Community object fields.**

  <ResponseField name="id" type="string">
    Community ID.
  </ResponseField>

  <ResponseField name="name" type="string">
    Community name.
  </ResponseField>

  <ResponseField name="description" type="string">
    Community description. Omitted if empty.
  </ResponseField>

  <ResponseField name="member_count" type="number">
    Total member count.
  </ResponseField>

  <ResponseField name="moderator_count" type="number">
    Total moderators. Omitted if unavailable.
  </ResponseField>

  <ResponseField name="rules" type="object[]">
    Community rules, each with `id`, `name`, and `description`. Omitted if unavailable.
  </ResponseField>

  <ResponseField name="creator" type="object">
    The creator's public profile. Omitted if unavailable.
  </ResponseField>

  <ResponseField name="admin" type="object">
    The admin's public profile. Omitted if unavailable.
  </ResponseField>

  <ResponseField name="membersFacepile" type="object[]">
    Public profiles of the members X previews beside the member count.
  </ResponseField>
</ResponseField>

<ResponseField name="count" type="number">Communities returned and charged.</ResponseField>

<ResponseField name="message" type="string">
  What to do next. Present only when X suggests none.
</ResponseField>

```json theme={null}
{
  "communities": [
    {
      "id": "1453877367030484992",
      "name": "The Design Sphere",
      "member_count": 668032,
      "moderator_count": 13,
      "is_nsfw": false,
      "join_policy": "Open",
      "primary_topic": { "id": "202", "name": "Design" },
      "rules": [
        {
          "id": "1706049474777268401",
          "name": "Be Respectful",
          "description": "Give kind and useful feedback."
        }
      ]
    }
  ],
  "count": 1
}
```

### 401 Unauthenticated

Anonymous requests get `WWW-Authenticate: Bearer` and a guest wallet checkout action. This is not a Payment challenge.

### 402 Payment required

Account keys get account options. Guest keys get guest top-up only.
No checkout starts automatically. Confirm any payment action.

### 502 X API unavailable

```json theme={null}
{ "error": "x_api_unavailable" }
```

The read failed. Retry after a short delay.

### 503 Service busy

Xquik is busy. Wait for `Retry-After`, then retry.

### 429 Rate limit exceeded

```json theme={null}
{ "error": "rate_limit_exceeded", "retryAfter": 60 }
```

Use `Retry-After` when present. Otherwise, use the JSON `retryAfter` field.

### 424 Dependency failed

The opt-in normalized contract returns 424 when the read fails.
Send `xquik-api-contract: 2026-04-29` to opt in. Default v1 returns 502.

## Suggested X Communities questions

### Why do 2 calls return different Communities?

X picks the suggestions for each request.

### Does the response include my membership?

No. It holds only public Community fields.

### Does this replace X's official API?

No. This page documents Xquik, an independent third-party service.
It does not document X's official API.

<Note>
  **Next steps.** [Community tweets](/api-reference/x/community-tweets) reads a suggested Community's posts by its `id`.
</Note>

<div className="related-api-links">
  <Accordion title="Related follower, list & community APIs" icon="link">
    * Profiles: [Search users](/api-reference/x/search-users) · [Search autocomplete](/api-reference/x/search-autocomplete) · [Get user](/api-reference/x/twitter-profile-lookup) · [Batch users](/api-reference/x/batch-users)
    * Followers: [Followers](/api-reference/x/followers) · [Following](/api-reference/x/following) · [Follower IDs](/api-reference/x/follower-ids) · [Following IDs](/api-reference/x/following-ids) · [Creator subscriptions](/api-reference/x/user-subscriptions) · [Affiliates](/api-reference/x/user-affiliates) · [Similar accounts](/api-reference/x/user-similar) · [Verified followers](/api-reference/x/verified-followers) · [Followers you know](/api-reference/x/followers-you-know) · [Check follower](/api-reference/x/check-follower)
    * Lists: [Search lists](/api-reference/x/search-lists) · [User lists](/api-reference/x/user-lists) · [List memberships](/api-reference/x/user-list-memberships) · [List members](/api-reference/x/list-members) · [List followers](/api-reference/x/list-followers)
    * Communities: [Find](/api-reference/x/community-find) · [Popular](/api-reference/x/community-popular) · [Topics](/api-reference/x/community-topics) · [Suggested](/api-reference/x/community-suggested) · [Details](/api-reference/x/community-info) · [Members](/api-reference/x/community-members) · [Moderators](/api-reference/x/community-moderators) · [Timeline](/api-reference/x/community-tweets) · [Media](/api-reference/x/community-media) · [Keyword search](/api-reference/x/community-search)
  </Accordion>
</div>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.