# Twitter/X Communities Posts Search (`igview-owner/twitter-x-communities-posts-search`) Actor

Search and extract posts from public Twitter/X Communities by keyword. Get tweets with full engagement metrics (likes, views, retweets), media, and author details. No login needed!

- **URL**: https://apify.com/igview-owner/twitter-x-communities-posts-search.md
- **Developed by:** [Sachin Kumar Yadav](https://apify.com/igview-owner) (community)
- **Categories:** Social media, Developer tools, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## 👥 Twitter/X Communities Posts Search Scraper – Find & Extract Community Tweets

**Search, discover, and extract posts from any public Twitter/X Communities using keywords. Retrieve community tweets with full engagement metrics (likes, retweets, replies, views, bookmarks), comprehensive author metadata, media content (photos and videos), and community identifiers. Supports sorting by Top and Latest posts, with automated pagination. Perfect for social listening, market research, brand sentiment analysis, competitive intelligence, and content aggregation!**

### 📋 Table of Contents

- [Features](#features)
- [Use Cases](#use-cases)
- [Quick Start](#quick-start)
- [Input Parameters](#input-parameters)
- [Output Format](#output-format)
- [Data Fields Explained](#data-fields-explained)
- [FAQ](#faq)

### 🚀 Features

#### **Comprehensive Community Search Scraper**
- **Keyword Search** – Find posts across various Twitter/X Communities by typing any keyword (e.g., 'anime', 'crypto', 'AI').
- **Top & Latest Sorting** – Retrieve either the most popular (Top) community posts or the newest (Latest) ones first.
- **Detailed Author Metadata** – Extract author display names, user IDs, screen names, avatar URLs, verified status, follower/friend count, biography, location, and account creation dates.
- **Engagement Statistics** – Monitor views/impressions, likes, retweets, replies, quote counts, and bookmarks.
- **Rich Media Support** – Retrieve detailed media assets (photos and videos) with helper counts (`has_photo`, `has_video`, `photo_count`, `video_count`).
- **Contextual Details** – Includes conversation ID, reply-to user IDs, possibly sensitive flags, and community IDs.

#### **Reliable Scraping Architecture**
- **Pagination Support** – Automatically navigates cursor-based page feeds using `maxPages` configuration (up to 20 pages).
- **No Account Required** – Run the scraper without logging into your personal X account or managing complex cookie sessions.

### 🎯 Use Cases

| Use Case | Description | Benefits |
|----------|-------------|----------|
| **Niche Trend Monitoring** | Search keywords like `AI`, `web3`, `crypto`, or `anime` across communities | Identify emerging trends, hot topics, and popular opinions within dedicated interest groups |
| **Brand & Sentiment Tracking** | Search brand names or competitor keywords | Track brand mentions, user complaints, or positive feedback directly within specific communities |
| **Influencer/Creator Discovery** | Identify active users posting high-engagement content in specific community niches | Discover top creators and partners for targeted marketing campaigns |
| **Content Curation & Aggregation** | Extract posts matching specific interests to build custom feeds, databases, or newsletters | Automate content sourcing from highly focused groups |

### ⚡ Quick Start

#### 1️⃣ Basic Search (Top Posts)
```json
{
  "query": "anime",
  "searchType": "top",
  "maxPages": 2
}
````

#### 2️⃣ Latest Posts Search

```json
{
  "query": "machine learning",
  "searchType": "latest",
  "maxPages": 5
}
```

### 📊 Input Parameters

#### Configuration Options

| Parameter | Type | Required | Description | Default |
|-----------|------|----------|-------------|---------|
| `query` | String | Yes | Enter a search keyword to find community posts. Examples: 'anime', 'crypto trading', 'machine learning'. | |
| `searchType` | String | No | Choose search sorting: `top` (returns most popular/relevant community posts) or `latest` (returns newest community posts first). | `top` |
| `maxPages` | Integer | No | Max pages of community posts results to retrieve (1 page = 1 API call). Range: 1 to 20. | `1` |

### 📤 Output Format

#### **Community Post Tweet Result Example**

```json
{
  "tweet_id": "1800000000000000000",
  "text": "Check out this amazing new library for building decentralized apps!",
  "screen_name": "web3_dev",
  "created_at": "Wed Jul 08 14:22:15 +0000 2026",
  "favorites": 142,
  "retweets": 35,
  "replies": 8,
  "quotes": 3,
  "bookmarks": 21,
  "views": "2850",
  "lang": "en",
  "source": "Twitter Web App",
  "community_id": "1234567890123456789",
  "conversation_id": "1800000000000000000",
  "in_reply_to": null,
  "in_reply_to_user_id": null,
  "quoted_from": null,
  "possibly_sensitive": false,
  "author_id": "987654321",
  "author_name": "Web3 Developer",
  "author_username": "web3_dev",
  "author_avatar": "https://pbs.twimg.com/profile_images/987654321/photo_400x400.jpg",
  "author_verified": false,
  "author_protected": false,
  "author_followers": 1520,
  "author_friends": 480,
  "author_favourites": 3210,
  "author_description": "Building the future of web3. Building tech & tools. Opinions are mine.",
  "author_location": "San Francisco, CA",
  "author_created_at": "Tue Jan 15 10:00:00 +0000 2019",
  "media": {
    "photo": [
      {
        "media_url_https": "https://pbs.twimg.com/media/xyz123abc_photo.jpg",
        "type": "photo"
      }
    ]
  },
  "has_photo": true,
  "has_video": false,
  "photo_count": 1,
  "video_count": 0,
  "query": "web3",
  "search_type": "top",
  "scraped_at": "2026-07-10T12:00:00.000Z"
}
```

### 📈 Data Fields Explained

#### **Complete Field Reference**

| Field | Type | Description |
|-------|------|-------------|
| `tweet_id` | String | Unique status ID of the community tweet. |
| `text` | String | Plain-text content of the tweet. |
| `screen_name` | String | Username of the tweet author. |
| `created_at` | String | Original post timestamp. |
| `favorites` | Integer | Favorite/like count. |
| `retweets` | Integer | Retweet count. |
| `replies` | Integer | Direct reply count. |
| `quotes` | Integer | Quote tweet count. |
| `bookmarks` | Integer | Bookmark count. |
| `views` | String/Number | Impression/views count. |
| `lang` | String | Language code of the tweet. |
| `source` | String | Application source used to post the tweet. |
| `community_id` | String | The unique ID of the community the tweet belongs to. |
| `conversation_id` | String | The thread/conversation ID the tweet is part of. |
| `in_reply_to` | String | Tweet ID of the parent tweet, if this is a reply. |
| `in_reply_to_user_id` | String | User ID of the author of the parent tweet, if this is a reply. |
| `quoted_from` | String | Tweet ID of the quoted tweet, if this is a quote tweet. |
| `possibly_sensitive` | Boolean | True if the tweet content is flagged as sensitive. |
| `author_id` | String | Unique user ID of the tweet author. |
| `author_name` | String | Display name of the author. |
| `author_username` | String | Screen name/username of the author. |
| `author_avatar` | String | URL of the author's profile image. |
| `author_verified` | Boolean | Verification status of the author. |
| `author_protected` | Boolean | True if the author's account is private/protected. |
| `author_followers` | Integer | Follower count of the author. |
| `author_friends` | Integer | Friend/following count of the author. |
| `author_favourites` | Integer | Number of posts the author has favorited/liked. |
| `author_description` | String | Biography/description of the author. |
| `author_location` | String | Location specified in the author's profile. |
| `author_created_at` | String | Account creation date of the author. |
| `media` | Object | Detailed nested object containing media photos, videos, etc. |
| `has_photo` | Boolean | True if the tweet has one or more photo attachments. |
| `has_video` | Boolean | True if the tweet has one or more video attachments. |
| `photo_count` | Integer | The number of photos attached. |
| `video_count` | Integer | The number of videos attached. |
| `query` | String | The search keyword used. |
| `search_type` | String | The search type selected (`top` or `latest`). |
| `scraped_at` | String | Extraction timestamp. |

### ❓ FAQ

#### **Q: Do I need a Twitter/X API Key or Account to use this?**

**A:** No! You do not need to log into any Twitter/X account.

#### **Q: Can I search for multiple keywords at the same time?**

**A:** Yes, you can run multiple actor instances, or search using boolean operators if supported by Twitter/X communities search. However, the `query` input field accepts a single text query per run.

#### **Q: What is the difference between Top and Latest search types?**

**A:** `Top` returns the most popular, high-engagement posts in communities matching your keyword, while `Latest` retrieves the newest, most recently posted tweets in real-time.

#### **Q: Is there a page limit for extraction?**

**A:** Yes, you can specify `maxPages` up to 20. Each page retrieves a list of community posts via cursor pagination.

***

### Related Actors 🤝

- **[Twitter X Thread Reader Scraper](https://apify.com/igview-owner/twitter-x-thread-reader)**
- **[Twitter X Recent Replies Scraper](https://apify.com/igview-owner/twitter-x-recent-replies)**
- **[Twitter X Profile Scraper](https://apify.com/igview-owner/twitter-x-profile-scraper)**
- **[Twitter X Video Downloader](https://apify.com/igview-owner/twitter-x-video-downloader)**
- **[X Profile Viewer](https://apify.com/igview-owner/x-twitter-profile-viewer)**
- **[X Follower Scraper](https://apify.com/igview-owner/twitter-x-follower-scraper)**
- **[X Following Scraper](https://apify.com/igview-owner/twitter-x-following-scraper)**
- **[Twitter Affiliates X Scraper](https://apify.com/igview-owner/twitter-advanced-x-scraper)**

***

### 🏷️ **Keywords & Tags**

`twitter communities search`, `x communities scraper`, `search twitter communities`, `extract x communities posts`, `twitter community posts exporter`, `scraping twitter communities`, `x.com community tweets`, `twitter marketing tool`, `apify twitter scraper`, `social listening twitter`

***

### 🚀 **Get Started Now**

1. Click ["Try for free"](https://apify.com?fpr=ykgg9c) to run this actor in the Apify Console.
2. Provide a search keyword in the `query` field.
3. Choose the search type: `Top` or `Latest`.
4. Configure `maxPages` for pagination control.
5. Export your results in JSON, CSV, XML, or Excel!

**⭐ If this actor is useful to your workflow, please leave a star!**

***

*Built by Sachin Kumar Yadav using Apify Platform*

# Actor input Schema

## `query` (type: `string`):

Enter a search keyword to find community posts. Examples: 'anime', 'crypto trading', 'machine learning'

## `searchType` (type: `string`):

Choose search sorting: 'top' returns most popular/relevant community posts, 'latest' returns newest community posts first.

## `maxPages` (type: `integer`):

📊 Number of result pages to scrape (1-20). Each page contains community posts. More pages = more results but longer runtime and higher API usage.

## Actor input object example

```json
{
  "query": "software engineer",
  "searchType": "top",
  "maxPages": 1
}
```

# Actor output Schema

## `community_posts_overview` (type: `string`):

Open the dataset view with an overview of all community posts including author, tweet text, community ID, likes, retweets, views, and more.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "query": "software engineer",
    "searchType": "top",
    "maxPages": 1
};

// Run the Actor and wait for it to finish
const run = await client.actor("igview-owner/twitter-x-communities-posts-search").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "query": "software engineer",
    "searchType": "top",
    "maxPages": 1,
}

# Run the Actor and wait for it to finish
run = client.actor("igview-owner/twitter-x-communities-posts-search").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "query": "software engineer",
  "searchType": "top",
  "maxPages": 1
}' |
apify call igview-owner/twitter-x-communities-posts-search --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=igview-owner/twitter-x-communities-posts-search",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Twitter/X Communities Posts Search",
        "description": "Search and extract posts from public Twitter/X Communities by keyword. Get tweets with full engagement metrics (likes, views, retweets), media, and author details. No login needed!",
        "version": "1.0",
        "x-build-id": "8F7c1RdvIrQXsKini"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/igview-owner~twitter-x-communities-posts-search/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-igview-owner-twitter-x-communities-posts-search",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/igview-owner~twitter-x-communities-posts-search/runs": {
            "post": {
                "operationId": "runs-sync-igview-owner-twitter-x-communities-posts-search",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/igview-owner~twitter-x-communities-posts-search/run-sync": {
            "post": {
                "operationId": "run-sync-igview-owner-twitter-x-communities-posts-search",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "query"
                ],
                "properties": {
                    "query": {
                        "title": "Search Query",
                        "type": "string",
                        "description": "Enter a search keyword to find community posts. Examples: 'anime', 'crypto trading', 'machine learning'",
                        "default": "software engineer"
                    },
                    "searchType": {
                        "title": "🔄 Search Type",
                        "enum": [
                            "top",
                            "latest"
                        ],
                        "type": "string",
                        "description": "Choose search sorting: 'top' returns most popular/relevant community posts, 'latest' returns newest community posts first.",
                        "default": "top"
                    },
                    "maxPages": {
                        "title": "📄 Maximum Pages",
                        "minimum": 1,
                        "maximum": 20,
                        "type": "integer",
                        "description": "📊 Number of result pages to scrape (1-20). Each page contains community posts. More pages = more results but longer runtime and higher API usage.",
                        "default": 1
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
