ASIMOV module for importing data from X (Twitter) lists and converting it to JSON-LD format.
- π¦ Import List Members: Fetch and convert X list members to JSON-LD
- π User Profiles: Complete user data including metrics and profile information
- π JSON-LD Output: Structured data compatible with KNOW ontology
- β‘ Fast & Reliable: Built with Rust for performance and safety
- π Rate Limit Aware: Respects X API limits and provides clear error handling
- π Flexible Output: Support for both JSON and JSONL formats
- π’ Pagination Control: Limit results with
--limitoption
- Rust 1.85+ (2024 edition) if building from source code
- X (Twitter) developer account with API access
X_TOKENenvironment variable
# From Cargo (Rust)
cargo install asimov-x-module# Import all list members (default JSONL output)
asimov-x-cataloger "https://x.com/i/lists/1234567890"
# Import first 100 members only
asimov-x-cataloger "https://x.com/i/lists/1234567890" --limit 100
# Output in JSON format instead of JSONL
asimov-x-cataloger "https://x.com/i/lists/1234567890" --limit 100 --output json# Show version information
asimov-x-cataloger --version
# Show license information
asimov-x-cataloger --license
# Show help
asimov-x-cataloger --helpSet your X API token as an environment variable:
export X_TOKEN="your-x-api-token-here"Or use a .env file:
X_TOKEN=your-x-api-token-hereGet your API token from: X Developer Portal
- Maximum users per request: 100 users only
- Request frequency: 1 request every 15 minutes
- Error: Returns HTTP 429 if you try within 15-minute window
- Pagination: Limited to single page (100 users max)
- Maximum users per request: 100 users
- Request frequency: 5 requests per 15 minutes (per user)
- App-wide limits: 25 requests per 15 minutes (per app)
- Pagination: Can handle multiple pages with delays
- Maximum users per request: 100 users
- Request frequency: 900 requests per 15 minutes (per user)
- App-wide limits: 900 requests per 15 minutes (per app)
- Pagination: Can handle large lists efficiently
Free plan users: Use --limit=100 and wait 15 minutes between requests.
git clone https://github.com/asimov-modules/asimov-x-module.git
cd asimov-x-module
cargo test
cargo build --bin asimov-x-cataloger{"@type":"know:XUser","id":"123","name":"John Doe","username":"johndoe",...}
{"@type":"know:XUser","id":"456","name":"Jane Smith","username":"janesmith",...}{
"@context": {...},
"@id": "https://x.com/i/lists",
"members": {
"count": 2,
"items": [...]
}
}This project is licensed under the Unlicense - see the UNLICENSE file for details.