/install datahub
\r \r
DataHub Skill\r
\r Call any data interface through natural language. Submit queries, add API supplies, or create data bounties — all through the same simple interface with automatic polling for results.\r \r
Supported Data Domains\r
\r DataHub provides access to data across the following domains:\r \r | Domain | Examples of Available Data |\r |--------|---------------------------|\r | E-commerce | Product listings, pricing, reviews, sales trends, category rankings |\r | Local Services | Business listings, service providers, ratings, operating hours, location data |\r | Recruitment | Job listings, candidate profiles, salary data, hiring trends, company information |\r | Social Media | User profiles, posts, engagement metrics, trending topics, influencer data |\r | Short Video | Video metadata, trending content, creator analytics, engagement statistics |\r | Finance | Stock data, company financials, market indicators, economic reports, crypto prices |\r | News | Headlines, articles, sentiment analysis, topic clustering, source aggregation |\r | Web3 | On-chain data, token metrics, NFT collections, DeFi protocols, wallet activity |\r | Gaming | Game statistics, player data, esports results, in-game economies, release schedules |\r | Sports | Match results, player statistics, league standings, betting odds, schedules |\r | Marketing | Campaign analytics, ad performance, market research, competitor intelligence |\r | Education | Course listings, institution data, academic research, learning resources, certifications |\r \r
💡 More domains available upon request. If you need data from a domain not listed above, ask or create a data bounty.\r \r
Data Output Formats\r
\r
Format 1: Structured & Curated Data\r
Pre-processed, cleaned, and organized data ready for analysis:\r
{\r
"summary": "Key insights extracted from raw data",\r
"structured_data": {\r
"field1": "value1",\r
"field2": "value2"\r
},\r
"trends": [...],\r
"recommendations": [...]\r
}\r
\r
```\r
\r
Format 2: Raw API JSON\r
Original, unmodified JSON response from the underlying API:\r
```json\r
{\r
"source": "original-api-name",\r
"timestamp": "2024-01-15T10:30:00Z",\r
"raw_response": { ... }\r
}\r
```\r
\r
Format 3: Markdown Report\r
Human-readable report format for consumption and sharing:\r
\r
# Data Report: Topic X\r
\r
## Summary\r
Key findings and insights...\r
\r
## Detailed Data\r
Structured presentation of results...\r
\r
## Sources\r
List of data sources used...\r
\r
## Data Processing Capabilities\r
All queries benefit from the following built-in capabilities:\r
\r
## Capability Description\r
Filtering Filter data by date range, category, location, value thresholds, and custom criteria\r
Validation Automatic data quality checks, duplicate removal, format verification\r
Deduplication Remove duplicate entries across multiple data sources\r
Transformation Convert between formats, normalize values, currency/unit conversion\r
Enrichment Cross-reference with other datasets to add context\r
Aggregation Summarize, group, and calculate statistics across datasets\r
Natural Language Filtering Examples\r
Users can specify filters directly in their query:\r
\r
*"Show me e-commerce products with rating above 4.5 and price under $50"*\r
\r
"Get job listings in San Francisco posted in the last 7 days"\r
\r
"Find trending social media posts with over 10k likes from this week"\r
\r
"Show Web3 projects with at least $1M TVL and active in the last 30 days"\r
\r
"Get sports results for Premier League matches from January 2024 onwards"\r
\r
*"Filter for only verified local service providers with 4+ star ratings"*\r
\r
## Core Capabilities\r
| Capability | Description |\r
|------------|-------------|\r
| Natural Language Queries | Convert user's natural language into API calls with automatic parameter extraction |\r
| Async Result Polling | Automatically poll until data is ready |\r
| API Supply Addition | Add new API supplies using natural language + documentation link |\r
| Data Bounties | Initiate data bounties when requested data is unavailable |\r
| Multi-Format Output | Return structured data, raw JSON, or Markdown reports |\r
| Data Processing | Built-in filtering, validation, deduplication, and transformation |\r
\r
## When to Use\r
User needs data from any supported domain (e-commerce, finance, recruitment, etc.)\r
\r
User wants structured/pre-processed data, not just raw API responses\r
\r
User needs data filtering, validation, or cross-source enrichment\r
\r
User wants to add a new API supply to the system\r
\r
User cannot find desired data and wants to offer a bounty\r
\r
## When NOT to Use\r
Local file read/write operations\r
\r
Pure computation tasks (no external data needed)\r
\r
Scenarios requiring sub-second real-time responses\r
\r
General knowledge questions not related to the supported data domains\r
\r
Prerequisites: Getting an API Key\r
Before using this Skill, you need a DataHub API Key. Two ways to get one:\r
\r
Option 1: Apply via Website\r
Visit DataHub official website: https://seekin.chat\r
\r
Register or log in to your account\r
\r
Navigate to "API Management" or "Developer" page\r
\r
Create a new API Key and copy it\r
\r
Option 2: Get it Directly in Chat\r
Visit https://seekin.chat\r
\r
Simply type in the website's chat dialog:\r
\r
text\r
Please give me an API Key\r
or\r
\r
text\r
I want to apply for an API key\r
The system will automatically generate and return an API Key\r
\r
💡 Tip: New users typically receive free credits sufficient for daily use.\r
\r
Configuring the API Key\r
After obtaining your API Key, configure it using one of these methods:\r
\r
Method A: Environment Variable (Recommended)\r
\r
bash\r
export DATAHUB_API_KEY="your-api-key-here"\r
Method B: User Config File\r
Create ~/.datahub/config.json:\r
\r
json\r
{\r
"apiKey": "your-api-key-here"\r
}\r
Method C: Project Config File\r
Create datahub.config.json in your project root:\r
\r
json\r
{\r
"apiKey": "your-api-key-here"\r
}\r
Configuration priority: Environment Variable > User Config > Project Config\r
\r
## Workflows\r
### Workflow 1: Standard Data Query\r
Use this when the user wants to fetch data from any supported domain.\r
\r
Step 1: Submit Query\r
Execute scripts/query.js to submit the user's natural language query:\r
\r
bash\r
node scripts/query.js "\x3Cuser's natural language query>" [sessionId]\r
Parameters:\r
\r
First argument: User's natural language query (required)\r
\r
Second argument: Session ID for context retention (optional)\r
\r
Response Format:\r
\r
json\r
{\r
"success": true,\r
"processId": "xxx-xxx-xxx",\r
"message": "Query submitted"\r
}\r
Step 2: Poll for Results\r
Execute scripts/poll.js to poll for the processed result:\r
\r
bash\r
node scripts/poll.js \x3CprocessId> [--max-attempts 60] [--interval 1000]\r
Parameters:\r
\r
processId: Process ID returned from Step 1 (required)\r
\r
--max-attempts: Maximum polling attempts, default 60\r
\r
--interval: Polling interval in milliseconds, default 1000\r
\r
Response Format:\r
\r
json\r
{\r
"success": true,\r
"data": { ... },\r
"attempts": 5,\r
"elapsed": 5234\r
}\r
Step 3: Parse and Present Results\r
If structured JSON returned: Present key insights clearly with appropriate formatting\r
\r
If raw JSON returned: Present the data with source attribution; offer to further process if needed\r
\r
If Markdown returned: Maintain the formatted report as-is for readability\r
\r
If query fails: Explain possible reasons and suggest alternatives (including data bounties)\r
\r
### Workflow 2: Adding an API Supply\r
Use this when the user wants to add a new API supply to the system. The user provides a natural language description and a documentation link.\r
\r
Step 1: Submit API Supply Addition\r
Execute scripts/query.js with a specially formatted query that includes the API documentation link:\r
\r
bash\r
node scripts/query.js "Add API supply: \x3Cdescription>. Documentation: \x3CDocLink>" [sessionId]\r
Examples:\r
\r
bash\r
# E-commerce API\r
node scripts/query.js "Add API supply: Amazon product search and reviews API. Documentation: https://api.example.com/docs"\r
\r
# Social Media API\r
node scripts/query.js "Add API supply: LinkedIn company page data API. Docs: https://linkedin-api.example.com"\r
\r
# Web3 API\r
node scripts/query.js "Supply a DEX trading volume API for Uniswap and PancakeSwap: https://defi-api.example.com/docs"\r
Alternative Natural Language Formats:\r
\r
"I want to add a new API for job board data. Docs: https://jobs-api.example.com"\r
\r
"Register new data source for esports match results: https://esports-api.example.com"\r
\r
"Add supply: Short video trending data from TikTok. DocLink: https://tiktok-api.example.com"\r
\r
Step 2: Poll for Confirmation\r
Execute scripts/poll.js with the returned processId:\r
\r
bash\r
node scripts/poll.js \x3CprocessId>\r
Expected Response:\r
\r
json\r
{\r
"success": true,\r
"data": {\r
"apiId": "new-api-xxx",\r
"domain": "e-commerce",\r
"status": "registered",\r
"message": "API supply successfully added and pending approval"\r
}\r
}\r
\r
Step 3: Confirm to User\r
Inform the user that:\r
\r
The API supply has been submitted and categorized under the appropriate domain\r
\r
It will be reviewed and activated shortly\r
\r
They can start using it once approved\r
\r
### Workflow 3: Creating a Data Bounty\r
Use this when the user requests data that is not currently available, and they want to offer a reward/bounty for it.\r
\r
Step 1: Submit Data Bounty\r
Execute scripts/query.js with a query describing the desired data and bounty details:\r
\r
bash\r
node scripts/query.js "Create data bounty: \x3Cdata description>. Reward: \x3Cbounty details>" [sessionId]\r
Examples:\r
\r
bash\r
# E-commerce data bounty\r
node scripts/query.js "Create data bounty: I need Amazon Best Seller rankings updated daily for the electronics category. Reward: $100"\r
\r
# Recruitment data bounty\r
node scripts/query.js "Bounty: Looking for LinkedIn job posting data with salary info across tech companies. Will pay $200"\r
\r
# Gaming data bounty\r
node scripts/query.js "I need real-time player statistics for Valorant competitive matches. Offering $150 bounty"\r
Alternative Natural Language Formats:\r
\r
"I need data on short video trends by region but can't find it. Can I create a bounty?"\r
\r
"Offer reward for marketing campaign performance data across platforms"\r
\r
"Start a bounty for Web3 developer activity metrics. Reward: $500"\r
\r
"The education dataset I want isn't available. How can I request it with a bounty?"\r
\r
Step 2: Poll for Bounty Creation Confirmation\r
Execute scripts/poll.js with the returned processId:\r
\r
bash\r
node scripts/poll.js \x3CprocessId>\r
Expected Response:\r
\r
json\r
{\r
"success": true,\r
"data": {\r
"bountyId": "bounty-xxx-xxx",\r
"status": "active",\r
"domain": "gaming",\r
"description": "Real-time player statistics for Valorant competitive matches",\r
"reward": "$150",\r
"createdAt": "2024-01-15T10:30:00Z",\r
"message": "Bounty created successfully"\r
}\r
}\r
Step 3: Inform User\r
Provide the user with:\r
\r
Bounty ID for tracking\r
\r
Confirmation that the bounty is now active\r
\r
The domain it was categorized under\r
\r
Estimated timeframe (if available)\r
\r
How they can check bounty status later\r
\r
## Usage Examples\r
Example 1: E-commerce Data with Filtering\r
User Input: "Show me the top 10 best-selling electronics on Amazon with rating above 4 stars and price under $100"\r
\r
Execution:\r
\r
bash\r
RESULT=$(node scripts/query.js "Show me the top 10 best-selling electronics on Amazon with rating above 4 stars and price under $100")\r
PROCESS_ID=$(echo $RESULT | jq -r '.processId')\r
node scripts/poll.js $PROCESS_ID\r
Example 2: Recruitment Data\r
User Input: "Get software engineer job listings in New York posted this week with salary range above $120k"\r
\r
Execution:\r
\r
bash\r
RESULT=$(node scripts/query.js "Get software engineer job listings in New York posted this week with salary range above \$120k")\r
PROCESS_ID=$(echo $RESULT | jq -r '.processId')\r
node scripts/poll.js $PROCESS_ID\r
Example 3: Social Media Analytics\r
User Input: "Fetch trending Twitter posts about AI from the past 24 hours with at least 1000 likes, filter out retweets"\r
\r
Execution:\r
\r
bash\r
RESULT=$(node scripts/query.js "Fetch trending Twitter posts about AI from the past 24 hours with at least 1000 likes, filter out retweets")\r
PROCESS_ID=$(echo $RESULT | jq -r '.processId')\r
node scripts/poll.js $PROCESS_ID\r
Example 4: Web3/DeFi Data\r
User Input: "Get the top 10 DeFi protocols by TVL on Ethereum, with 7-day change percentage"\r
\r
Execution:\r
\r
bash\r
RESULT=$(node scripts/query.js "Get the top 10 DeFi protocols by TVL on Ethereum, with 7-day change percentage")\r
PROCESS_ID=$(echo $RESULT | jq -r '.processId')\r
node scripts/poll.js $PROCESS_ID\r
Example 5: Adding an API Supply for Short Video Data\r
User Input: "I want to add TikTok trending hashtags API. Docs: https://tiktok-api.example.com/docs"\r
\r
Execution:\r
\r
bash\r
RESULT=$(node scripts/query.js "Add API supply: TikTok trending hashtags and video metadata API. Documentation: https://tiktok-api.example.com/docs")\r
PROCESS_ID=$(echo $RESULT | jq -r '.processId')\r
node scripts/poll.js $PROCESS_ID\r
Example 6: Creating a Data Bounty for Sports Data\r
User Input: "I need NBA player performance data with advanced metrics but can't find it. I'll offer $200 for anyone who can supply this."\r
\r
Execution:\r
\r
bash\r
RESULT=$(node scripts/query.js "Create data bounty: NBA player advanced performance metrics API with historical data. Reward: $200")\r
PROCESS_ID=$(echo $RESULT | jq -r '.processId')\r
node scripts/poll.js $PROCESS_ID\r
Error Handling\r
Error Type Handling Approach\r
API Key not configured Guide user to visit https://seekin.chat to obtain an API Key\r
Invalid/Expired API Key Prompt user to refresh their API Key or verify it's correct\r
Query timeout Retry up to 3 times with incremental backoff\r
Polling timeout Inform user the task is taking longer; suggest checking back later\r
Invalid response format Attempt to extract useful information; otherwise report format issue\r
Network error Prompt user to check network connection\r
Insufficient credits Direct user to website to check balance and upgrade options\r
API supply already exists Inform user the API is already available and can be used immediately\r
Bounty creation failed Explain reason and suggest adjusting reward or description\r
Data not found (bounty eligible) Proactively suggest creating a data bounty\r
Domain not supported Suggest creating a bounty or API supply to add the domain\r
Filter too restrictive Suggest broadening filter criteria and retry\r
Proactive Suggestions\r
The Skill should proactively suggest:\r
\r
Data processing options: "Would you like this data filtered, validated, or returned as raw JSON?"\r
\r
When data is unavailable: "This data isn't currently available. Would you like to create a bounty for it?"\r
\r
When user mentions an API: "Would you like to add this as an API supply? Just provide the documentation link."\r
\r
Domain expansion: "I notice you're requesting data from [domain]. If we don't have it yet, I can help you create a bounty or API supply."\r
\r
Format preference: "I can return this as structured data, raw JSON, or a Markdown report. Which do you prefer?"\r
\r
After successful API supply addition: "Your API supply has been submitted and categorized. You can check its status later with the API ID."\r
\r
When bounty is created: "Your bounty is now active. You'll be notified when someone fulfills it."\r
\r
## Configuration Reference\r
Variable Description Default\r
DATAHUB_API_KEY Required, obtain from https://seekin.chat None\r
DATAHUB_BASE_URL DataHub API base URL https://seekin.chat\r
DATAHUB_TIMEOUT Request timeout in milliseconds 60000\r
\r
### Important Notes\r
Each query generates a unique processId for result retrieval\r
Results typically take 3-30 seconds; complex queries may take longer\r
Use sessionId to maintain context across multi-turn conversations\r
Scripts use only Node.js built-in modules — no additional dependencies required\r
First-time users must obtain an API Key from https://seekin.chat\r
API supply additions require a valid documentation link (DocLink)\r
Data bounties remain active until fulfilled or cancelled\r
All three operations (query, supply, bounty) use the same API endpoint structure\r
Data can be returned as structured/curated data OR raw API JSON — specify your preference\r
All data queries support filtering, validation, and deduplication\r
\r
\r
## Getting Help\r
🌐 Website: https://seekin.chat\r
💬 Live Support: Ask questions directly in the website's chat dialog\r
📧 Contact: Get technical support through the official website\r
📖 API Documentation: Available after login at https://seekin.chat/docs\r
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install datahub - After installation, invoke the skill by name or use
/datahub - Provide required inputs per the skill's parameter spec and get structured output
What is DataHub for Any Data?
Call any data interface through natural language with DataHub API. Covers e-commerce, local services, recruitment, social media, short video, finance, news,... It is an AI Agent Skill for Claude Code / OpenClaw, with 105 downloads so far.
How do I install DataHub for Any Data?
Run "/install datahub" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is DataHub for Any Data free?
Yes, DataHub for Any Data is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does DataHub for Any Data support?
DataHub for Any Data is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created DataHub for Any Data?
It is built and maintained by Xplore3 (@xplore3); the current version is v0.2.0.