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.
Files changed (68) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/.codex-plugin/plugin.json +1 -1
  4. package/README.de.md +13 -13
  5. package/README.es.md +13 -13
  6. package/README.fr.md +13 -13
  7. package/README.it.md +13 -13
  8. package/README.ja.md +2 -2
  9. package/README.ko.md +2 -2
  10. package/README.md +15 -15
  11. package/README.tr.md +15 -15
  12. package/README.zh-CN.md +13 -13
  13. package/commands/post.md +2 -2
  14. package/context7.json +1 -1
  15. package/openclaw.plugin.json +1 -1
  16. package/package.json +1 -1
  17. package/plugin.json +1 -1
  18. package/skills/x-twitter-scraper/SKILL.md +3 -3
  19. package/skills/x-twitter-scraper/metadata.json +1 -1
  20. package/skills/x-twitter-scraper/references/compare-faq.md +6 -6
  21. package/skills/x-twitter-scraper/references/extractions.md +4 -4
  22. package/skills/x-twitter-scraper/references/mcp.md +3 -3
  23. package/skills/x-twitter-scraper/references/monitors-webhooks.md +10 -10
  24. package/skills/x-twitter-scraper/references/reads.md +61 -60
  25. package/skills/x-twitter-scraper/references/writes.md +13 -11
  26. package/skills/xquik-mcp/SKILL.md +2 -2
  27. package/skills/xquik-mcp/references/mcp-setup.md +15 -15
  28. package/stub-server.mjs +1 -1
  29. package/task-guides/check-mutuals.md +3 -3
  30. package/task-guides/clean-followers.md +3 -3
  31. package/task-guides/export-tweets-csv.md +7 -7
  32. package/task-guides/extract-followers.md +5 -5
  33. package/task-guides/find-bangers.md +2 -2
  34. package/task-guides/find-influencers.md +2 -2
  35. package/task-guides/find-viral-tweets.md +8 -8
  36. package/task-guides/follow-unfollow.md +3 -3
  37. package/task-guides/for-you-feed.md +3 -3
  38. package/task-guides/going-viral.md +2 -2
  39. package/task-guides/grow-followers.md +4 -4
  40. package/task-guides/monitor-accounts.md +2 -2
  41. package/task-guides/optimize-tweets.md +3 -3
  42. package/task-guides/post-tweets.md +9 -9
  43. package/task-guides/run-giveaway.md +3 -3
  44. package/task-guides/search-tweets.md +7 -7
  45. package/task-guides/send-dms.md +4 -4
  46. package/task-guides/top-replies.md +5 -5
  47. package/task-guides/track-competitors.md +5 -5
  48. package/task-guides/track-hashtags.md +7 -7
  49. package/task-guides/track-mentions.md +6 -6
  50. package/task-guides/trending-news.md +2 -2
  51. package/task-guides/tweet-analytics.md +12 -12
  52. package/task-guides/tweet-ideas.md +2 -2
  53. package/task-guides/tweet-replies.md +5 -5
  54. package/task-guides/tweet-style.md +3 -3
  55. package/task-guides/tweet-webhooks.md +5 -5
  56. package/task-guides/update-x-profile.md +2 -2
  57. package/task-guides/user-tweets.md +9 -9
  58. package/task-guides/who-liked.md +3 -3
  59. package/task-guides/who-quoted.md +3 -3
  60. package/task-guides/who-retweeted.md +3 -3
  61. package/task-guides/write-threads.md +3 -3
  62. package/task-guides/write-tweets.md +5 -5
  63. package/task-guides/x-articles.md +3 -3
  64. package/task-guides/x-bookmarks.md +2 -2
  65. package/task-guides/x-communities.md +3 -3
  66. package/task-guides/x-lists.md +3 -3
  67. package/task-guides/x-spaces.md +3 -3
  68. package/task-guides/x-trends.md +6 -6
package/README.tr.md CHANGED
@@ -1,4 +1,4 @@
1
- <!-- Translation source SHA-256: 88cb2765f07671180d595ca58c3784378d3f218f86ca8ba51a04a92367c6c3d0. -->
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.0, 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
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 fiyatı; gereksiz
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: 88cb2765f07671180d595ca58c3784378d3f218f86ca8ba51a04a92367c6c3d0. -->
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.0 包含 Skills 和插件元数据。托管 MCP 提供 `docs`、
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 this text to X: "$ARGUMENTS"
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 this body:
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, 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.",
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."
@@ -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.0",
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.0",
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.0",
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: 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."
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`; full URLs include it |
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: method, full URL, headers & body.
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
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "2.7.0",
2
+ "version": "2.7.1",
3
3
  "organization": "Xquik",
4
4
  "homepage": "https://docs.xquik.com",
5
5
  "repository": "https://github.com/Xquik-dev/x-twitter-scraper",
@@ -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: 1,000 tweets cost 1,000 credits, or $0.15. A
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
- - Rate limits: each user gets 500 reads per second, 120 writes per minute,
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
- - SDKs: typed TypeScript and Python SDKs are listed in the repository README.
101
- - Docs for the user: `https://docs.xquik.com`.
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: `toolType`, its target, the requested filters & `resultsLimit`. Without a cap the API uses 10,000. Returns `allowed`, `estimatedResults`, `creditsRequired`, `creditsAvailable` & `source` |
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` | Formats: `csv`, `json`, `md`, `md-document`, `pdf`, `txt`, `xlsx`. 1 export holds up to 100,000 rows, and PDF up to 10,000 |
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` and these optional
60
- top-level filters: `fromUser`, `toUser`, `mentioning`, `language`,
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: `docs` for
5
- guidance, `search` for route contracts, and `execute` for calls. Hosted MCP
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: the username lookup is free. Before the first create call,
12
- show the whole setup: target, event types, webhook URL if any, cost, and the
13
- stop calls. Get one yes for that setup, then create the monitor and the
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
- Event types: `tweet.new`, `tweet.reply`, `tweet.retweet`, `tweet.quote`,
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`; pass `nextCursor` back as `cursor`. Each event has `id`, `type`,
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`: Unix time in milliseconds
85
- - `X-Xquik-Nonce`: 16 random bytes in hex
86
- - `X-Xquik-Signature`: `sha256=` plus the hex HMAC-SHA256 of
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),