x-developer 2.7.0 → 2.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/README.de.md +13 -13
- package/README.es.md +13 -13
- package/README.fr.md +13 -13
- package/README.it.md +13 -13
- package/README.ja.md +2 -2
- package/README.ko.md +2 -2
- package/README.md +15 -15
- package/README.tr.md +15 -15
- package/README.zh-CN.md +13 -13
- package/commands/post.md +2 -2
- package/context7.json +1 -1
- package/openclaw.plugin.json +1 -1
- package/package.json +1 -1
- package/plugin.json +1 -1
- package/skills/x-twitter-scraper/SKILL.md +3 -3
- package/skills/x-twitter-scraper/metadata.json +1 -1
- package/skills/x-twitter-scraper/references/compare-faq.md +6 -6
- package/skills/x-twitter-scraper/references/extractions.md +4 -4
- package/skills/x-twitter-scraper/references/mcp.md +3 -3
- package/skills/x-twitter-scraper/references/monitors-webhooks.md +10 -10
- package/skills/x-twitter-scraper/references/reads.md +61 -60
- package/skills/x-twitter-scraper/references/writes.md +13 -11
- package/skills/xquik-mcp/SKILL.md +2 -2
- package/skills/xquik-mcp/references/mcp-setup.md +15 -15
- package/stub-server.mjs +1 -1
- package/task-guides/check-mutuals.md +3 -3
- package/task-guides/clean-followers.md +3 -3
- package/task-guides/export-tweets-csv.md +7 -7
- package/task-guides/extract-followers.md +5 -5
- package/task-guides/find-bangers.md +2 -2
- package/task-guides/find-influencers.md +2 -2
- package/task-guides/find-viral-tweets.md +8 -8
- package/task-guides/follow-unfollow.md +3 -3
- package/task-guides/for-you-feed.md +3 -3
- package/task-guides/going-viral.md +2 -2
- package/task-guides/grow-followers.md +4 -4
- package/task-guides/monitor-accounts.md +2 -2
- package/task-guides/optimize-tweets.md +3 -3
- package/task-guides/post-tweets.md +9 -9
- package/task-guides/run-giveaway.md +3 -3
- package/task-guides/search-tweets.md +7 -7
- package/task-guides/send-dms.md +4 -4
- package/task-guides/top-replies.md +5 -5
- package/task-guides/track-competitors.md +5 -5
- package/task-guides/track-hashtags.md +7 -7
- package/task-guides/track-mentions.md +6 -6
- package/task-guides/trending-news.md +2 -2
- package/task-guides/tweet-analytics.md +12 -12
- package/task-guides/tweet-ideas.md +2 -2
- package/task-guides/tweet-replies.md +5 -5
- package/task-guides/tweet-style.md +3 -3
- package/task-guides/tweet-webhooks.md +5 -5
- package/task-guides/update-x-profile.md +2 -2
- package/task-guides/user-tweets.md +9 -9
- package/task-guides/who-liked.md +3 -3
- package/task-guides/who-quoted.md +3 -3
- package/task-guides/who-retweeted.md +3 -3
- package/task-guides/write-threads.md +3 -3
- package/task-guides/write-tweets.md +5 -5
- package/task-guides/x-articles.md +3 -3
- package/task-guides/x-bookmarks.md +2 -2
- package/task-guides/x-communities.md +3 -3
- package/task-guides/x-lists.md +3 -3
- package/task-guides/x-spaces.md +3 -3
- package/task-guides/x-trends.md +6 -6
package/README.tr.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!-- Translation source SHA-256:
|
|
1
|
+
<!-- Translation source SHA-256: 92a537c40afafe2cad1cb1e1e3bf7ffb25a866544248fe13e91d4a2cff0fbe00. -->
|
|
2
2
|
|
|
3
3
|
# X (Twitter) scraper API ve Twitter MCP sunucusu
|
|
4
4
|
|
|
@@ -57,7 +57,7 @@ için X hesabı bağlaman veya kullanman da gerekmez. Xquik API anahtarı yeterl
|
|
|
57
57
|
|
|
58
58
|
[Xquik panelinden](https://dashboard.xquik.com/en/account?tab=api-keys) bir API
|
|
59
59
|
anahtarı oluştur. Anahtarı `XQUIK_API_KEY` olarak sakla. Ardından sınırlı bir
|
|
60
|
-
arama çalıştır
|
|
60
|
+
arama çalıştır.
|
|
61
61
|
|
|
62
62
|
```bash
|
|
63
63
|
export XQUIK_API_KEY='xq_replace_me'
|
|
@@ -73,7 +73,7 @@ curl --get 'https://xquik.com/api/v1/x/tweets/search' \
|
|
|
73
73
|
--data-urlencode 'limit=25'
|
|
74
74
|
```
|
|
75
75
|
|
|
76
|
-
Canlı sözleşme şu yanıt biçimini tanımlar
|
|
76
|
+
Canlı sözleşme şu yanıt biçimini tanımlar.
|
|
77
77
|
|
|
78
78
|
```ts
|
|
79
79
|
type SearchResponse = {
|
|
@@ -137,8 +137,8 @@ seç. X'in kendi sözleşmesi gerekiyorsa resmî X API'sini seç.
|
|
|
137
137
|
|
|
138
138
|
## Paket ve MCP sözleşmesi
|
|
139
139
|
|
|
140
|
-
`x-developer` v2.7.
|
|
141
|
-
MCP
|
|
140
|
+
`x-developer` v2.7.1, Skill'leri ve eklenti meta verilerini içerir. Barındırılan
|
|
141
|
+
MCP `docs`, `search` ve `execute` araçlarını sunar. Canlı OpenAPI sözleşmesi
|
|
142
142
|
herkese açık tüm REST işlemlerini belgeler.
|
|
143
143
|
|
|
144
144
|
`x-developer`, Skill ve eklenti paketidir. Ayrı `x-twitter-scraper` paketi
|
|
@@ -220,7 +220,7 @@ const page = await client.x.tweets.search({
|
|
|
220
220
|
|
|
221
221
|
### MCP
|
|
222
222
|
|
|
223
|
-
`execute` aracını şu kodla çağır
|
|
223
|
+
`execute` aracını şu kodla çağır.
|
|
224
224
|
|
|
225
225
|
```js
|
|
226
226
|
async () => xquik.request("/api/v1/x/tweets/search", {
|
|
@@ -314,7 +314,7 @@ veya MCP seç.
|
|
|
314
314
|
|
|
315
315
|
## Toplam maliyeti karşılaştır
|
|
316
316
|
|
|
317
|
-
Aynı sorguyu, filtreleri ve satır sayısını karşılaştır. İstek
|
|
317
|
+
Aynı sorguyu, filtreleri ve satır sayısını karşılaştır. İstek fiyatı gereksiz
|
|
318
318
|
satırları, yeniden denemeleri ve temizleme işini göstermez.
|
|
319
319
|
|
|
320
320
|
Xquik, desteklenen filtreleri teslimattan önce uygular. Hariç tutulan satırlar
|
|
@@ -331,7 +331,7 @@ Arama, dönen Tweet başına 1 kredi kullanır. Çoğu toplu sonuç 1 kredi, mak
|
|
|
331
331
|
sonucu 5 kredi kullanır. Canlı belgeler her tekilleştirilmiş satırın son ücretini
|
|
332
332
|
henüz kanıtlamıyor. Tahmini son fatura sayma.
|
|
333
333
|
|
|
334
|
-
İşi oluşturmadan önce tahmin et. Bu çağrı kredi harcamaz
|
|
334
|
+
İşi oluşturmadan önce tahmin et. Bu çağrı kredi harcamaz.
|
|
335
335
|
|
|
336
336
|
```bash
|
|
337
337
|
curl --request POST 'https://xquik.com/api/v1/extractions/estimate' \
|
|
@@ -357,7 +357,7 @@ izleyici saatte 30 kredi kullanır. Saklanan olaylar ve webhook teslimatları
|
|
|
357
357
|
dahildir. Olayı işlemeden önce `X-Xquik-Timestamp`, `X-Xquik-Nonce` ve
|
|
358
358
|
`X-Xquik-Signature` başlıklarını doğrula.
|
|
359
359
|
|
|
360
|
-
Sınırlı bir sorguyla anahtar kelime izleyicisi oluştur
|
|
360
|
+
Sınırlı bir sorguyla anahtar kelime izleyicisi oluştur.
|
|
361
361
|
|
|
362
362
|
```bash
|
|
363
363
|
curl --request POST 'https://xquik.com/api/v1/monitors/keywords' \
|
|
@@ -410,20 +410,20 @@ Düzenlenen, hassas veya belirsiz işler için bir hukuk uzmanına danış.
|
|
|
410
410
|
|
|
411
411
|
## Skill'i kur
|
|
412
412
|
|
|
413
|
-
Ana Skill'i kur
|
|
413
|
+
Ana Skill'i kur.
|
|
414
414
|
|
|
415
415
|
```bash
|
|
416
416
|
bunx skills@1.5.3 add Xquik-dev/x-twitter-scraper
|
|
417
417
|
```
|
|
418
418
|
|
|
419
|
-
Eklemeden önce shadcn kaydını incele
|
|
419
|
+
Eklemeden önce shadcn kaydını incele.
|
|
420
420
|
|
|
421
421
|
```bash
|
|
422
422
|
bunx shadcn@4.18.0 view Xquik-dev/x-twitter-scraper/x-twitter-scraper
|
|
423
423
|
bunx shadcn@4.18.0 add Xquik-dev/x-twitter-scraper/x-twitter-scraper
|
|
424
424
|
```
|
|
425
425
|
|
|
426
|
-
Uygulama kodunu resmi X API'den taşımak için [X API alternatifi Skill'ini](https://github.com/Xquik-dev/x-api) ekle
|
|
426
|
+
Uygulama kodunu resmi X API'den taşımak için [X API alternatifi Skill'ini](https://github.com/Xquik-dev/x-api) ekle.
|
|
427
427
|
|
|
428
428
|
```bash
|
|
429
429
|
bunx skills@1.5.3 add Xquik-dev/x-api
|
|
@@ -431,7 +431,7 @@ bunx skills@1.5.3 add Xquik-dev/x-api
|
|
|
431
431
|
|
|
432
432
|
### LobeHub
|
|
433
433
|
|
|
434
|
-
LobeHub'a giriş yap, Skill'leri kur ve doğrula
|
|
434
|
+
LobeHub'a giriş yap, Skill'leri kur ve doğrula.
|
|
435
435
|
|
|
436
436
|
```bash
|
|
437
437
|
lh login
|
|
@@ -443,7 +443,7 @@ lh skill list --source market
|
|
|
443
443
|
|
|
444
444
|
### Codex
|
|
445
445
|
|
|
446
|
-
Pazarı ekle, eklentiyi kur ve doğrula
|
|
446
|
+
Pazarı ekle, eklentiyi kur ve doğrula.
|
|
447
447
|
|
|
448
448
|
```bash
|
|
449
449
|
codex plugin marketplace add Xquik-dev/x-twitter-scraper
|
|
@@ -453,7 +453,7 @@ codex plugin list
|
|
|
453
453
|
|
|
454
454
|
### Gemini CLI
|
|
455
455
|
|
|
456
|
-
Depoyu incele. Ardından Skill'leri kur ve doğrula
|
|
456
|
+
Depoyu incele. Ardından Skill'leri kur ve doğrula.
|
|
457
457
|
|
|
458
458
|
```bash
|
|
459
459
|
gemini skills install https://github.com/Xquik-dev/x-twitter-scraper.git \
|
package/README.zh-CN.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!-- Translation source SHA-256:
|
|
1
|
+
<!-- Translation source SHA-256: 92a537c40afafe2cad1cb1e1e3bf7ffb25a866544248fe13e91d4a2cff0fbe00. -->
|
|
2
2
|
|
|
3
3
|
# X(Twitter)抓取 API 与 Twitter MCP 服务器
|
|
4
4
|
|
|
@@ -53,7 +53,7 @@ MCP 和 Apify 搜索帖子、导出数据并监控账号。Xquik 只对已交付
|
|
|
53
53
|
## 发送第一个请求
|
|
54
54
|
|
|
55
55
|
在 [Xquik 控制台](https://dashboard.xquik.com/en/account?tab=api-keys)创建 API
|
|
56
|
-
密钥。将密钥保存为 `XQUIK_API_KEY
|
|
56
|
+
密钥。将密钥保存为 `XQUIK_API_KEY`,然后运行一个有结果上限的搜索。
|
|
57
57
|
|
|
58
58
|
```bash
|
|
59
59
|
export XQUIK_API_KEY='xq_replace_me'
|
|
@@ -69,7 +69,7 @@ curl --get 'https://xquik.com/api/v1/x/tweets/search' \
|
|
|
69
69
|
--data-urlencode 'limit=25'
|
|
70
70
|
```
|
|
71
71
|
|
|
72
|
-
|
|
72
|
+
当前合同定义了以下响应结构。
|
|
73
73
|
|
|
74
74
|
```ts
|
|
75
75
|
type SearchResponse = {
|
|
@@ -131,7 +131,7 @@ Xquik 适合筛选条件较多的任务。它按交付结果计费。服务端
|
|
|
131
131
|
|
|
132
132
|
## 软件包与 MCP 合同
|
|
133
133
|
|
|
134
|
-
`x-developer` v2.7.
|
|
134
|
+
`x-developer` v2.7.1 包含 Skills 和插件元数据。托管 MCP 提供 `docs`、
|
|
135
135
|
`search` 和 `execute`。实时 OpenAPI 合同记录了每个公开的 REST 操作。
|
|
136
136
|
|
|
137
137
|
`x-developer` 包含 Skill 和插件。独立的 `x-twitter-scraper` 软件包是
|
|
@@ -213,7 +213,7 @@ const page = await client.x.tweets.search({
|
|
|
213
213
|
|
|
214
214
|
### MCP
|
|
215
215
|
|
|
216
|
-
使用以下代码调用 `execute
|
|
216
|
+
使用以下代码调用 `execute`。
|
|
217
217
|
|
|
218
218
|
```js
|
|
219
219
|
async () => xquik.request("/api/v1/x/tweets/search", {
|
|
@@ -319,7 +319,7 @@ Xquik 在交付前应用受支持的筛选条件。被排除的行不会产生
|
|
|
319
319
|
搜索按每个返回 Tweet 收取 1 个信用点。大多数提取结果为 1 个,文章为 5 个。
|
|
320
320
|
实时文档尚未证明每个去重结果的最终扣费。不要把估算当作最终账单。
|
|
321
321
|
|
|
322
|
-
|
|
322
|
+
创建任务前先估算。此调用不消耗点数。
|
|
323
323
|
|
|
324
324
|
```bash
|
|
325
325
|
curl --request POST 'https://xquik.com/api/v1/extractions/estimate' \
|
|
@@ -344,7 +344,7 @@ curl --request POST 'https://xquik.com/api/v1/extractions/estimate' \
|
|
|
344
344
|
信用点。已保存事件和 webhook 交付已包含。处理事件前,请验证
|
|
345
345
|
`X-Xquik-Timestamp`、`X-Xquik-Nonce` 和 `X-Xquik-Signature`。
|
|
346
346
|
|
|
347
|
-
|
|
347
|
+
使用有限查询创建关键词监控。
|
|
348
348
|
|
|
349
349
|
```bash
|
|
350
350
|
curl --request POST 'https://xquik.com/api/v1/monitors/keywords' \
|
|
@@ -392,20 +392,20 @@ Xquik 返回当前可用的数据。它不会编造缺失字段,也不会恢
|
|
|
392
392
|
|
|
393
393
|
## 安装 Skill
|
|
394
394
|
|
|
395
|
-
安装主要 Skill
|
|
395
|
+
安装主要 Skill。
|
|
396
396
|
|
|
397
397
|
```bash
|
|
398
398
|
bunx skills@1.5.3 add Xquik-dev/x-twitter-scraper
|
|
399
399
|
```
|
|
400
400
|
|
|
401
|
-
添加前先检查 shadcn
|
|
401
|
+
添加前先检查 shadcn 注册项。
|
|
402
402
|
|
|
403
403
|
```bash
|
|
404
404
|
bunx shadcn@4.18.0 view Xquik-dev/x-twitter-scraper/x-twitter-scraper
|
|
405
405
|
bunx shadcn@4.18.0 add Xquik-dev/x-twitter-scraper/x-twitter-scraper
|
|
406
406
|
```
|
|
407
407
|
|
|
408
|
-
要把应用代码从官方 X API 迁移到 Xquik,请添加 [X API 替代 Skill](https://github.com/Xquik-dev/x-api)
|
|
408
|
+
要把应用代码从官方 X API 迁移到 Xquik,请添加 [X API 替代 Skill](https://github.com/Xquik-dev/x-api)。
|
|
409
409
|
|
|
410
410
|
```bash
|
|
411
411
|
bunx skills@1.5.3 add Xquik-dev/x-api
|
|
@@ -413,7 +413,7 @@ bunx skills@1.5.3 add Xquik-dev/x-api
|
|
|
413
413
|
|
|
414
414
|
### LobeHub
|
|
415
415
|
|
|
416
|
-
登录 LobeHub,安装两个 Skill
|
|
416
|
+
登录 LobeHub,安装两个 Skill,并确认结果。
|
|
417
417
|
|
|
418
418
|
```bash
|
|
419
419
|
lh login
|
|
@@ -425,7 +425,7 @@ lh skill list --source market
|
|
|
425
425
|
|
|
426
426
|
### Codex
|
|
427
427
|
|
|
428
|
-
|
|
428
|
+
添加市场,安装插件,并确认结果。
|
|
429
429
|
|
|
430
430
|
```bash
|
|
431
431
|
codex plugin marketplace add Xquik-dev/x-twitter-scraper
|
|
@@ -435,7 +435,7 @@ codex plugin list
|
|
|
435
435
|
|
|
436
436
|
### Gemini CLI
|
|
437
437
|
|
|
438
|
-
先检查仓库,再安装并确认 Skill
|
|
438
|
+
先检查仓库,再安装并确认 Skill。
|
|
439
439
|
|
|
440
440
|
```bash
|
|
441
441
|
gemini skills install https://github.com/Xquik-dev/x-twitter-scraper.git \
|
package/commands/post.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
description: Post a tweet to X
|
|
3
3
|
---
|
|
4
4
|
|
|
5
|
-
Post
|
|
5
|
+
Post the text "$ARGUMENTS" to X.
|
|
6
6
|
|
|
7
7
|
## Workflow
|
|
8
8
|
|
|
@@ -10,7 +10,7 @@ Post this text to X: "$ARGUMENTS"
|
|
|
10
10
|
2. Resolve the connected X username. Ask the user if it is unknown.
|
|
11
11
|
3. Show the exact text, account, endpoint, and usage estimate.
|
|
12
12
|
4. Wait for explicit user confirmation.
|
|
13
|
-
5. After confirmation, call `POST /api/v1/x/tweets` with the `execute` MCP tool and
|
|
13
|
+
5. After confirmation, call `POST /api/v1/x/tweets` with the `execute` MCP tool and the body
|
|
14
14
|
`{ "account": "<confirmed account>", "text": "<the tweet text>" }`.
|
|
15
15
|
Hosted MCP injects a unique `Idempotency-Key`.
|
|
16
16
|
6. Accept HTTP 200 or 202. Wait for `pollAfterMs`, then poll `statusUrl`.
|
package/context7.json
CHANGED
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"Use skills/x-twitter-scraper/SKILL.md as the primary operating guide.",
|
|
23
23
|
"Use skills/x-twitter-scraper/references/reads.md, extractions.md, monitors-webhooks.md, and writes.md for request details, mcp.md for MCP client setup, and compare-faq.md for pricing, provider comparisons, legality, and account requirements.",
|
|
24
24
|
"Use https://docs.xquik.com/mcp/overview#client-compatibility for current MCP client support. OAuth support differs by client. Codex CLI 0.147.0 or later, Cline, and Qwen Code support OAuth. Affected Goose releases need environment-backed API keys. Roo Code's archived final release accepts only API keys. Pi has no native MCP client.",
|
|
25
|
-
"If an older Codex release reports Authorization server response missing required issuer: expected https://xquik.com
|
|
25
|
+
"If an older Codex release reports `Authorization server response missing required issuer: expected https://xquik.com`, do not repeat OAuth. Upgrade to Codex CLI 0.147.0 or later. If an upgrade is unavailable, set XQUIK_API_KEY and bearer_token_env_var = \"XQUIK_API_KEY\" in Codex TOML, then follow https://docs.xquik.com/guides/troubleshooting#codex-oauth-issuer-validation-error.",
|
|
26
26
|
"Use task-guides/*.md for search, extraction, monitoring, webhook, posting, and DM workflows.",
|
|
27
27
|
"Use commands/*.md for command examples.",
|
|
28
28
|
"Keep private implementation details out of external text. Use Xquik API, read service, write service, or browser service."
|
package/openclaw.plugin.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"id": "x-developer",
|
|
3
3
|
"name": "X Developer API",
|
|
4
4
|
"description": "Xquik is the world's fastest and cheapest X Twitter scraper service with the most complete X data. Use REST, MCP, SDKs, webhooks & exports. Not affiliated with X Corp.",
|
|
5
|
-
"version": "2.7.
|
|
5
|
+
"version": "2.7.1",
|
|
6
6
|
"skills": ["./skills"],
|
|
7
7
|
"providerAuthEnvVars": {
|
|
8
8
|
"xquik": ["XQUIK_API_KEY"]
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "x-developer",
|
|
3
|
-
"version": "2.7.
|
|
3
|
+
"version": "2.7.1",
|
|
4
4
|
"description": "Twitter scraper Skills & Twitter MCP server setup for Claude Code, Codex & Cursor. Search tweets, export followers & monitor accounts with Xquik. Not affiliated with X Corp.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Xquik",
|
package/plugin.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
|
|
3
3
|
"name": "x-twitter-scraper",
|
|
4
|
-
"version": "2.7.
|
|
4
|
+
"version": "2.7.1",
|
|
5
5
|
"description": "Skill for Xquik, the world's fastest and cheapest X Twitter scraper service with the most complete X data. Covers REST, MCP, webhooks, exports, and connected X account actions. Not affiliated with X Corp.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Xquik",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: x-twitter-scraper
|
|
3
|
-
description: "Use Xquik to fetch X (Twitter) data or act through a connected account
|
|
3
|
+
description: "Use Xquik to fetch X (Twitter) data or act through a connected account. It covers search, profiles, followers, replies, threads, timelines, media downloads, bulk exports, trends, monitors, signed webhooks, draws, posts, likes, follows, DMs, and AI analysis of posts (sentiment, brand mentions, news, market signals, viral score, custom labels). Also use for hashtag or @handle tracking when no other network is named, Xquik MCP setup, pricing, and X API comparisons. Skip data from other social networks, code that stays on the official X API (such as tweepy with an X developer bearer token), official X widget implementation, and content drafting or analysis without an API task. Not affiliated with X Corp."
|
|
4
4
|
license: MIT
|
|
5
5
|
metadata:
|
|
6
6
|
author: Xquik
|
|
@@ -65,7 +65,7 @@ account connected in the Xquik dashboard.
|
|
|
65
65
|
|
|
66
66
|
| Item | Value |
|
|
67
67
|
| --- | --- |
|
|
68
|
-
| Base URL | `https://xquik.com/api/v1`. Route tables omit `/api/v1
|
|
68
|
+
| Base URL | `https://xquik.com/api/v1`. Route tables omit `/api/v1`, and full URLs include it |
|
|
69
69
|
| Auth | Lowercase `x-api-key` header, read from `XQUIK_API_KEY` or the client's secret store |
|
|
70
70
|
| MCP server | `https://xquik.com/mcp`, Streamable HTTP, OAuth first, API key fallback |
|
|
71
71
|
| MCP tools | `docs` for guidance, `search` for a route contract, `execute` for a call |
|
|
@@ -77,7 +77,7 @@ account connected in the Xquik dashboard.
|
|
|
77
77
|
Refuse redirects. Never reuse authenticated headers for returned links.
|
|
78
78
|
- Client permissions enforce access limits. Skill metadata does not.
|
|
79
79
|
- With the Xquik MCP server connected, make live calls through its tools.
|
|
80
|
-
Otherwise give the exact request
|
|
80
|
+
Otherwise give the exact request with its method, full URL, headers & body.
|
|
81
81
|
- Run no shell command and install no package. The user runs code in their
|
|
82
82
|
own environment.
|
|
83
83
|
- A recurring job is a script plus a scheduler entry, such as cron. The user
|
|
@@ -28,7 +28,7 @@ that rate. Current plan prices are in the dashboard.
|
|
|
28
28
|
| Giveaway draw | 2, plus 1 per inspected reply, 1 per reposter read, and 1 per follow check |
|
|
29
29
|
|
|
30
30
|
For result-billed reads, credits equal returned results. Dollars are credits times
|
|
31
|
-
$0.00015 at pay-as-you-go rates
|
|
31
|
+
$0.00015 at pay-as-you-go rates, so 1,000 tweets cost 1,000 credits, or $0.15. A
|
|
32
32
|
top-up of $500 buys 3,333,333 credits, with any partial credit dropped.
|
|
33
33
|
Supported filters apply before billing, so excluded rows cost nothing.
|
|
34
34
|
Estimates, stored event reads, webhook operations, and extraction exports are
|
|
@@ -45,7 +45,7 @@ their current pricing pages.
|
|
|
45
45
|
|
|
46
46
|
## Xquik or the official X API
|
|
47
47
|
|
|
48
|
-
Choose Xquik when several of these matter
|
|
48
|
+
Choose Xquik when several of these matter.
|
|
49
49
|
|
|
50
50
|
- Per-result billing with server-side filters and pre-run estimates
|
|
51
51
|
- Reads without an X developer account or a connected X account
|
|
@@ -65,7 +65,7 @@ test the same known posts and fields on both before committing.
|
|
|
65
65
|
|
|
66
66
|
Give a direct, qualified answer first. Collecting visible X data for research
|
|
67
67
|
is often lawful, but no one can promise it for every case. The answer depends
|
|
68
|
-
on
|
|
68
|
+
on these factors.
|
|
69
69
|
|
|
70
70
|
- Jurisdiction and its data protection law, such as GDPR for EU residents
|
|
71
71
|
- X terms of service and developer rules
|
|
@@ -95,7 +95,7 @@ passwords, 2FA codes, cookies, or session tokens.
|
|
|
95
95
|
|
|
96
96
|
- Deleted, protected, or unavailable content can stay inaccessible. Xquik
|
|
97
97
|
omits missing optional fields and never invents data.
|
|
98
|
-
-
|
|
98
|
+
- The rate limits give each user 500 reads per second, 120 writes per minute,
|
|
99
99
|
and 60 deletes per minute. A `429` includes `Retry-After`.
|
|
100
|
-
-
|
|
101
|
-
- Docs for the user
|
|
100
|
+
- The repository README lists typed TypeScript and Python SDKs.
|
|
101
|
+
- Docs for the user are at `https://docs.xquik.com`.
|
|
@@ -9,10 +9,10 @@ $1.50.
|
|
|
9
9
|
|
|
10
10
|
| Call | Contract |
|
|
11
11
|
| --- | --- |
|
|
12
|
-
| `POST /extractions/estimate` | Free. Creates nothing. Takes the job body
|
|
12
|
+
| `POST /extractions/estimate` | Free. Creates nothing. Takes the job body, which holds `toolType`, its target, the requested filters & `resultsLimit`. Without a cap the API uses 10,000. Returns `allowed`, `estimatedResults`, `creditsRequired`, `creditsAvailable` & `source` |
|
|
13
13
|
| `POST /extractions` | Same body plus a new `Idempotency-Key`. A retry with that key returns the original job. `202` returns the job `id`, `status` & `statusUrl` |
|
|
14
14
|
| `GET /extractions/{id}` | Returns `job`, `results`, `hasMore`, `nextCursor` & `pollAfterMs`. `job.status` ends as `completed`, `failed`, or `canceled`. Rows come 100 per page, up to 1,000 with `limit=1000`. Send `nextCursor` back as `cursor` |
|
|
15
|
-
| `GET /extractions/{id}/export?format=csv` |
|
|
15
|
+
| `GET /extractions/{id}/export?format=csv` | The formats are `csv`, `json`, `md`, `md-document`, `pdf`, `txt` & `xlsx`. 1 export holds up to 100,000 rows, and PDF up to 10,000 |
|
|
16
16
|
|
|
17
17
|
- `creditsRequired` & `creditsAvailable` are numeric strings. Convert them
|
|
18
18
|
before any math.
|
|
@@ -56,8 +56,8 @@ Multi-target jobs use `targetUsernames`, `targetTweetIds`, `searchQueries`,
|
|
|
56
56
|
|
|
57
57
|
## Search filters
|
|
58
58
|
|
|
59
|
-
`tweet_search_extractor` takes the query in `searchQuery
|
|
60
|
-
top-level filters
|
|
59
|
+
`tweet_search_extractor` takes the query in `searchQuery`. Its optional
|
|
60
|
+
top-level filters are `fromUser`, `toUser`, `mentioning`, `language`,
|
|
61
61
|
`sinceDate`, `untilDate`, `mediaType`, `minFaves`, `minRetweets`,
|
|
62
62
|
`minReplies`, `minQuotes`, `verifiedOnly`, `replies`, `retweets`, `quotes`,
|
|
63
63
|
`exactPhrase`, `excludeWords`, `anyWords`, `hashtags`, `cashtags`, `url`, and
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# Xquik MCP server
|
|
2
2
|
|
|
3
3
|
The remote server lives at `https://xquik.com/mcp` and speaks Streamable HTTP.
|
|
4
|
-
Sign in with OAuth from the client. The server exposes 3 tools
|
|
5
|
-
guidance, `search` for route contracts, and `execute` for calls.
|
|
6
|
-
adds the `Idempotency-Key` header to writes.
|
|
4
|
+
Sign in with OAuth from the client. The server exposes 3 tools. They are
|
|
5
|
+
`docs` for guidance, `search` for route contracts, and `execute` for calls.
|
|
6
|
+
Hosted MCP adds the `Idempotency-Key` header to writes.
|
|
7
7
|
|
|
8
8
|
| Client | Setup |
|
|
9
9
|
| --- | --- |
|
|
@@ -8,10 +8,10 @@ Read events by polling, or receive them at an HTTPS webhook.
|
|
|
8
8
|
Each active monitor costs 30 credits per hour, events and webhook deliveries
|
|
9
9
|
included. That is a monitor's only charge. Reading stored events with
|
|
10
10
|
`GET /events` costs nothing. Creation needs 30 available credits and bills
|
|
11
|
-
nothing itself
|
|
12
|
-
show the whole setup
|
|
13
|
-
stop calls. Get one yes for that setup, then create the monitor
|
|
14
|
-
webhook.
|
|
11
|
+
nothing itself. The username lookup is free. Before the first create call,
|
|
12
|
+
show the whole setup. It lists the target, event types, webhook URL if any,
|
|
13
|
+
cost, and the stop calls. Get one yes for that setup, then create the monitor
|
|
14
|
+
and the webhook.
|
|
15
15
|
|
|
16
16
|
## Monitors
|
|
17
17
|
|
|
@@ -31,7 +31,7 @@ Content-Type: application/json
|
|
|
31
31
|
{"query": "#rustlang", "eventTypes": ["tweet.new"]}
|
|
32
32
|
```
|
|
33
33
|
|
|
34
|
-
|
|
34
|
+
The event types are `tweet.new`, `tweet.reply`, `tweet.retweet`, `tweet.quote`,
|
|
35
35
|
`tweet.media`, `tweet.link`, `tweet.poll`, `tweet.mention`, `tweet.hashtag`,
|
|
36
36
|
`tweet.longform`, and profile changes such as `profile.bio.changed`,
|
|
37
37
|
`profile.name.changed`, and `profile.avatar.changed`.
|
|
@@ -52,7 +52,7 @@ monitor with a query such as `@my_brand`.
|
|
|
52
52
|
|
|
53
53
|
`GET /events?monitorId=<id>&limit=50` or `GET /events?keywordMonitorId=<id>`.
|
|
54
54
|
Filter with `eventType`. The response holds `events`, `hasMore`, and
|
|
55
|
-
`nextCursor
|
|
55
|
+
`nextCursor`. Pass `nextCursor` back as `cursor`. Each event has `id`, `type`,
|
|
56
56
|
`monitorId`, `monitorType`, `occurredAt`, and `data`, plus `keywordMonitorId`
|
|
57
57
|
and `query` for keyword monitors. Events come newest first, and `nextCursor`
|
|
58
58
|
pages toward older events. For a scheduled poll, request the first page
|
|
@@ -79,11 +79,11 @@ event types.
|
|
|
79
79
|
## Verify every delivery
|
|
80
80
|
|
|
81
81
|
Each delivery carries three headers. Show them and explain verification in
|
|
82
|
-
webhook previews
|
|
82
|
+
webhook previews.
|
|
83
83
|
|
|
84
|
-
- `X-Xquik-Timestamp
|
|
85
|
-
- `X-Xquik-Nonce
|
|
86
|
-
- `X-Xquik-Signature
|
|
84
|
+
- `X-Xquik-Timestamp` holds Unix time in milliseconds
|
|
85
|
+
- `X-Xquik-Nonce` holds 16 random bytes in hex
|
|
86
|
+
- `X-Xquik-Signature` holds `sha256=` plus the hex HMAC-SHA256 of
|
|
87
87
|
`<timestamp>.<nonce>.<raw body>`, keyed with the webhook secret
|
|
88
88
|
|
|
89
89
|
The JSON body holds `eventType`, `streamEventId` (the event ID),
|