x-developer 2.6.7 → 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 (161) hide show
  1. package/.claude-plugin/marketplace.json +4 -4
  2. package/.claude-plugin/plugin.json +2 -27
  3. package/.codex-plugin/plugin.json +4 -28
  4. package/README.de.md +505 -0
  5. package/README.es.md +504 -0
  6. package/README.fr.md +507 -0
  7. package/README.it.md +499 -0
  8. package/README.ja.md +493 -0
  9. package/README.ko.md +494 -0
  10. package/README.md +486 -123
  11. package/README.tr.md +502 -0
  12. package/README.zh-CN.md +484 -0
  13. package/assets/logo-400.png +0 -0
  14. package/commands/post.md +3 -3
  15. package/commands/search.md +1 -1
  16. package/commands/trending.md +1 -1
  17. package/commands/user.md +1 -1
  18. package/context7.json +6 -12
  19. package/docker-mcp-registry/xquik/readme.md +1 -0
  20. package/docker-mcp-registry/xquik/server.yaml +23 -0
  21. package/docker-mcp-registry/xquik/tools.json +1 -0
  22. package/glama.json +4 -0
  23. package/mcp.json +9 -0
  24. package/openclaw.plugin.json +2 -2
  25. package/package.json +24 -20
  26. package/plugin.json +22 -0
  27. package/registry.json +60 -0
  28. package/server.json +2 -2
  29. package/skills/x-twitter-scraper/LICENSE +21 -0
  30. package/skills/x-twitter-scraper/SKILL.md +175 -457
  31. package/skills/x-twitter-scraper/metadata.json +19 -9
  32. package/skills/x-twitter-scraper/references/compare-faq.md +101 -0
  33. package/skills/x-twitter-scraper/references/extractions.md +65 -290
  34. package/skills/x-twitter-scraper/references/mcp.md +24 -0
  35. package/skills/x-twitter-scraper/references/monitors-webhooks.md +167 -0
  36. package/skills/x-twitter-scraper/references/reads.md +416 -0
  37. package/skills/x-twitter-scraper/references/writes.md +111 -0
  38. package/skills/xquik-mcp/SKILL.md +75 -0
  39. package/skills/xquik-mcp/references/mcp-setup.md +255 -0
  40. package/skills/xquik-social-research/SKILL.md +61 -74
  41. package/skills.sh.json +6 -68
  42. package/start.sh +2 -2
  43. package/stub-server.mjs +37 -86
  44. package/task-guides/check-mutuals.md +3 -3
  45. package/task-guides/clean-followers.md +4 -4
  46. package/task-guides/export-tweets-csv.md +7 -7
  47. package/task-guides/extract-followers.md +10 -10
  48. package/task-guides/find-bangers.md +2 -2
  49. package/task-guides/find-influencers.md +4 -4
  50. package/task-guides/find-viral-tweets.md +9 -9
  51. package/task-guides/follow-unfollow.md +5 -5
  52. package/task-guides/for-you-feed.md +4 -4
  53. package/task-guides/going-viral.md +6 -6
  54. package/task-guides/grow-followers.md +4 -4
  55. package/task-guides/monitor-accounts.md +5 -5
  56. package/task-guides/optimize-tweets.md +3 -3
  57. package/task-guides/post-tweets.md +13 -13
  58. package/task-guides/run-giveaway.md +5 -5
  59. package/task-guides/search-tweets.md +7 -7
  60. package/task-guides/send-dms.md +11 -11
  61. package/task-guides/top-replies.md +7 -7
  62. package/task-guides/track-competitors.md +10 -10
  63. package/task-guides/track-hashtags.md +11 -11
  64. package/task-guides/track-mentions.md +7 -7
  65. package/task-guides/trending-news.md +4 -4
  66. package/task-guides/tweet-analytics.md +12 -12
  67. package/task-guides/tweet-ideas.md +2 -2
  68. package/task-guides/tweet-replies.md +8 -8
  69. package/task-guides/tweet-style.md +4 -4
  70. package/task-guides/tweet-webhooks.md +7 -7
  71. package/task-guides/update-x-profile.md +5 -5
  72. package/task-guides/user-tweets.md +10 -10
  73. package/task-guides/who-liked.md +4 -4
  74. package/task-guides/who-quoted.md +4 -4
  75. package/task-guides/who-retweeted.md +4 -4
  76. package/task-guides/write-threads.md +6 -6
  77. package/task-guides/write-tweets.md +8 -8
  78. package/task-guides/x-articles.md +3 -3
  79. package/task-guides/x-bookmarks.md +4 -4
  80. package/task-guides/x-communities.md +4 -4
  81. package/task-guides/x-lists.md +4 -4
  82. package/task-guides/x-spaces.md +4 -4
  83. package/task-guides/x-trends.md +6 -6
  84. package/x-twitter-scraper.json +10 -0
  85. package/CHANGELOG.md +0 -94
  86. package/scripts/check-reproducible.mjs +0 -48
  87. package/scripts/check-versions.mjs +0 -24
  88. package/scripts/release-guard/content-policy.mjs +0 -410
  89. package/scripts/release-guard/context.mjs +0 -61
  90. package/scripts/release-guard/frontmatter.mjs +0 -151
  91. package/scripts/release-guard/policy-checks.mjs +0 -134
  92. package/scripts/release-guard/policy.mjs +0 -226
  93. package/scripts/release-guard/repository-checks.mjs +0 -256
  94. package/skills/x-twitter-scraper/references/api-endpoints-api-keys.md +0 -14
  95. package/skills/x-twitter-scraper/references/api-endpoints-compose.md +0 -33
  96. package/skills/x-twitter-scraper/references/api-endpoints-credits.md +0 -11
  97. package/skills/x-twitter-scraper/references/api-endpoints-drafts.md +0 -105
  98. package/skills/x-twitter-scraper/references/api-endpoints-draws.md +0 -101
  99. package/skills/x-twitter-scraper/references/api-endpoints-error-codes.md +0 -67
  100. package/skills/x-twitter-scraper/references/api-endpoints-events.md +0 -50
  101. package/skills/x-twitter-scraper/references/api-endpoints-extractions.md +0 -113
  102. package/skills/x-twitter-scraper/references/api-endpoints-monitors.md +0 -111
  103. package/skills/x-twitter-scraper/references/api-endpoints-radar.md +0 -50
  104. package/skills/x-twitter-scraper/references/api-endpoints-support.md +0 -53
  105. package/skills/x-twitter-scraper/references/api-endpoints-trends.md +0 -48
  106. package/skills/x-twitter-scraper/references/api-endpoints-tweet-style-cache.md +0 -186
  107. package/skills/x-twitter-scraper/references/api-endpoints-webhooks.md +0 -120
  108. package/skills/x-twitter-scraper/references/api-endpoints-x-accounts.md +0 -54
  109. package/skills/x-twitter-scraper/references/api-endpoints-x-api.md +0 -267
  110. package/skills/x-twitter-scraper/references/api-endpoints-x-media.md +0 -50
  111. package/skills/x-twitter-scraper/references/api-endpoints-x-write.md +0 -270
  112. package/skills/x-twitter-scraper/references/api-endpoints.md +0 -30
  113. package/skills/x-twitter-scraper/references/automate-twitter-giveaways.md +0 -130
  114. package/skills/x-twitter-scraper/references/best-x-api-alternative.md +0 -198
  115. package/skills/x-twitter-scraper/references/compare-twitter-apis.md +0 -151
  116. package/skills/x-twitter-scraper/references/draws.md +0 -57
  117. package/skills/x-twitter-scraper/references/export-twitter-followers.md +0 -127
  118. package/skills/x-twitter-scraper/references/extract-x-community-data.md +0 -121
  119. package/skills/x-twitter-scraper/references/mcp-setup.md +0 -331
  120. package/skills/x-twitter-scraper/references/mcp-tools.md +0 -183
  121. package/skills/x-twitter-scraper/references/monitor-twitter-webhooks.md +0 -121
  122. package/skills/x-twitter-scraper/references/python-examples.md +0 -201
  123. package/skills/x-twitter-scraper/references/reliable-twitter-data-api-2026.md +0 -239
  124. package/skills/x-twitter-scraper/references/scrape-export-twitter-data.md +0 -173
  125. package/skills/x-twitter-scraper/references/security.md +0 -111
  126. package/skills/x-twitter-scraper/references/track-twitter-keywords-mentions.md +0 -148
  127. package/skills/x-twitter-scraper/references/twitter-api-alternative-faq.md +0 -128
  128. package/skills/x-twitter-scraper/references/twitter-api-without-x-account.md +0 -110
  129. package/skills/x-twitter-scraper/references/twitter-data-pipeline.md +0 -136
  130. package/skills/x-twitter-scraper/references/twitter-scraper-api-guide.md +0 -229
  131. package/skills/x-twitter-scraper/references/types-account-identity.md +0 -9
  132. package/skills/x-twitter-scraper/references/types-account.md +0 -26
  133. package/skills/x-twitter-scraper/references/types-api-keys.md +0 -22
  134. package/skills/x-twitter-scraper/references/types-bookmarks-and-timeline.md +0 -46
  135. package/skills/x-twitter-scraper/references/types-credits.md +0 -11
  136. package/skills/x-twitter-scraper/references/types-download-media.md +0 -22
  137. package/skills/x-twitter-scraper/references/types-draws.md +0 -60
  138. package/skills/x-twitter-scraper/references/types-error.md +0 -29
  139. package/skills/x-twitter-scraper/references/types-events.md +0 -23
  140. package/skills/x-twitter-scraper/references/types-extractions.md +0 -136
  141. package/skills/x-twitter-scraper/references/types-mcp-output-schemas.md +0 -13
  142. package/skills/x-twitter-scraper/references/types-monitors.md +0 -49
  143. package/skills/x-twitter-scraper/references/types-radar.md +0 -47
  144. package/skills/x-twitter-scraper/references/types-request-bodies.md +0 -30
  145. package/skills/x-twitter-scraper/references/types-rest-api-vs-mcp-field-naming.md +0 -11
  146. package/skills/x-twitter-scraper/references/types-support.md +0 -46
  147. package/skills/x-twitter-scraper/references/types-trends.md +0 -21
  148. package/skills/x-twitter-scraper/references/types-tweet-drafts.md +0 -20
  149. package/skills/x-twitter-scraper/references/types-tweet-style-cache.md +0 -50
  150. package/skills/x-twitter-scraper/references/types-user-activity.md +0 -35
  151. package/skills/x-twitter-scraper/references/types-webhooks.md +0 -46
  152. package/skills/x-twitter-scraper/references/types-x-accounts.md +0 -16
  153. package/skills/x-twitter-scraper/references/types-x-api.md +0 -144
  154. package/skills/x-twitter-scraper/references/types-x-articles.md +0 -36
  155. package/skills/x-twitter-scraper/references/types-x-write.md +0 -78
  156. package/skills/x-twitter-scraper/references/types.md +0 -31
  157. package/skills/x-twitter-scraper/references/usage.md +0 -50
  158. package/skills/x-twitter-scraper/references/webhooks.md +0 -321
  159. package/skills/x-twitter-scraper/references/workflows.md +0 -215
  160. package/skills/x-twitter-scraper/skill-card.md +0 -84
  161. package/skills/x-twitter-scraper/skillspector-report.md +0 -20
@@ -1,105 +0,0 @@
1
- # Xquik REST API endpoints: drafts
2
-
3
- ## Require approval for drafts
4
-
5
- `GET` operations expose private saved content. State the exact draft scope and
6
- obtain explicit approval immediately before each read. `POST` and `DELETE`
7
- operations are non-default writes. Show the exact draft text or draft ID and
8
- obtain explicit approval immediately before each write. Never infer approval
9
- from an earlier request or retry a failed write automatically.
10
-
11
- ### Create draft
12
-
13
- `POST /drafts`
14
-
15
- Save a tweet draft for later.
16
-
17
- Get approval first. Preview the complete text and metadata. Create the draft
18
- only after the user explicitly approves that exact payload.
19
-
20
- Send this request body:
21
-
22
- | Field | Type | Required | Description |
23
- |-------|------|----------|-------------|
24
- | `text` | string | Yes | The draft tweet text |
25
- | `topic` | string | No | Topic the tweet is about |
26
- | `goal` | string | No | `engagement`, `followers`, `authority`, or `conversation` |
27
-
28
- For a 201 response, the API returns:
29
-
30
- ```json
31
- {
32
- "id": "123",
33
- "text": "draft text",
34
- "topic": "product launch",
35
- "goal": "engagement",
36
- "createdAt": "2026-02-24T10:30:00.000Z",
37
- "updatedAt": "2026-02-24T10:30:00.000Z"
38
- }
39
- ```
40
-
41
- ---
42
-
43
- ### List drafts
44
-
45
- `GET /drafts`
46
-
47
- List saved tweet drafts with cursor pagination.
48
-
49
- This is a private read. Show the requested page size and account scope. List drafts
50
- only after explicit approval for that exact read.
51
-
52
- Use these query parameters:
53
-
54
- | Parameter | Type | Required | Default | Description |
55
- |-----------|------|----------|---------|-------------|
56
- | `limit` | number | No | 50 | Results per page; maximum 50 |
57
- | `afterCursor` | string | No | - | Pagination cursor from previous response |
58
-
59
- For a 200 response, the API returns:
60
-
61
- ```json
62
- {
63
- "drafts": [
64
- {
65
- "id": "123",
66
- "text": "draft text",
67
- "topic": "product launch",
68
- "goal": "engagement",
69
- "createdAt": "2026-02-24T10:30:00.000Z",
70
- "updatedAt": "2026-02-24T10:30:00.000Z"
71
- }
72
- ],
73
- "afterCursor": "cursor_string",
74
- "hasMore": true
75
- }
76
- ```
77
-
78
- ---
79
-
80
- ### Get draft
81
-
82
- `GET /drafts/{id}`
83
-
84
- Get a specific draft by ID.
85
-
86
- This is a private read. Show the draft ID. Fetch it only after explicit approval for
87
- that exact read, including any preview before deletion.
88
-
89
- For a 200 response, the API returns 1 draft object.
90
-
91
- Possible errors include `400 invalid_id` and `404 draft_not_found`.
92
-
93
- ---
94
-
95
- ### Delete draft
96
-
97
- Send a delete request to `/drafts/{id}`.
98
-
99
- This action is destructive. Deletion is permanent and cannot be recovered through
100
- this API. Show the draft ID and text, then obtain explicit approval immediately
101
- before deleting it. Returns `204 No Content`.
102
-
103
- Possible errors include `400 invalid_id` and `404 draft_not_found`.
104
-
105
- ---
@@ -1,101 +0,0 @@
1
- # Xquik REST API endpoints: draws
2
-
3
- ## Protect giveaway participant data
4
-
5
- Draw creation and participant exports are metered or privacy-sensitive actions.
6
- Confirm the source tweet, eligibility rules, requested data type, export
7
- audience, and retention plan. Use the smallest necessary dataset. Do not
8
- export entries for surveillance, discrimination, harassment, or unrelated
9
- secondary use.
10
- Draw history and results are account-scoped private reads. Require exact-scope
11
- approval before listing draws or retrieving winners.
12
-
13
- ### Create draw
14
-
15
- ```
16
- POST /draws
17
- ```
18
-
19
- Run a giveaway draw from a tweet. The draw selects random winners from replies.
20
-
21
- Get approval first. Show the source tweet, winner count, backup count,
22
- filters, and estimated usage. Also show the lawful purpose, participant-data
23
- handling, export audience, and retention plan. Record every field before
24
- persisting participant data.
25
-
26
- Send this body:
27
- ```json
28
- {
29
- "tweetUrl": "https://x.com/user/status/1893456789012345678",
30
- "winnerCount": 3,
31
- "backupCount": 2,
32
- "uniqueAuthorsOnly": true,
33
- "mustRetweet": true,
34
- "mustFollowUsername": "burakbayir",
35
- "filterMinFollowers": 100,
36
- "filterAccountAgeDays": 30,
37
- "filterLanguage": "en",
38
- "requiredKeywords": ["giveaway"],
39
- "requiredHashtags": ["#contest"],
40
- "requiredMentions": ["@xquik"]
41
- }
42
- ```
43
-
44
- All filter fields are optional. Only `tweetUrl` is required.
45
-
46
- The API returns:
47
- ```json
48
- {
49
- "id": "42",
50
- "tweetId": "1893456789012345678",
51
- "tweetUrl": "https://x.com/user/status/1893456789012345678",
52
- "tweetText": "Like and repost to enter. We will select 3 winners tomorrow.",
53
- "tweetAuthorUsername": "xquik",
54
- "tweetLikeCount": 4200,
55
- "tweetRetweetCount": 1800,
56
- "tweetReplyCount": 1500,
57
- "tweetQuoteCount": 120,
58
- "status": "completed",
59
- "totalEntries": 1500,
60
- "validEntries": 890,
61
- "createdAt": "2026-02-24T10:00:00.000Z",
62
- "drawnAt": "2026-02-24T10:01:00.000Z"
63
- }
64
- ```
65
-
66
- ### List draws
67
-
68
- ```
69
- GET /draws
70
- ```
71
-
72
- Cursor-paginated. Returns compact draw objects.
73
-
74
- This is a private read. Show the exact account, requested page scope, and returned
75
- field scope. List draws only after explicit approval for that exact read.
76
-
77
- ### Get draw
78
-
79
- ```
80
- GET /draws/{id}
81
- ```
82
-
83
- Returns full draw details including winners.
84
-
85
- This is a private read. Show the exact account, draw ID, and returned-data scope.
86
- Retrieve details only after explicit approval for that exact read.
87
-
88
- ### Export draw
89
-
90
- ```
91
- GET /draws/{id}/export?format=csv&type=winners
92
- ```
93
-
94
- Choose `csv`, `json`, `md`, `md-document`, `pdf`, `txt`, or `xlsx`. Choose `winners` or `entries`; the default is `winners`. Entry exports support 100,000 rows, except PDF supports 10,000.
95
-
96
- Get approval first. Full entry exports can contain participant identity and
97
- activity data. Show the lawful purpose, exact draw, type, format, audience, and
98
- retention period. Export only after explicit approval for that exact request.
99
- Prefer winners-only output. Do not retain data beyond the approved purpose.
100
-
101
- ---
@@ -1,67 +0,0 @@
1
- # Xquik REST API endpoints: error codes
2
-
3
- Default v1 responses put a legacy string code in `error`. Send
4
- `xquik-api-contract: 2026-04-29` to receive an object with `message`, `type`,
5
- and `code`. OpenAPI enumerates 112 codes, including `closed`, `expired`,
6
- `missing_url`, and `user_not_found`. This table highlights common codes.
7
- `closed` and `expired` map to 410. `missing_url` maps to 502.
8
-
9
- | Status | Code | Meaning |
10
- |--------|------|---------|
11
- | 400 | `invalid_input` | Request body failed validation |
12
- | 400 | `invalid_id` | Path parameter is not a valid ID |
13
- | 400 | `invalid_json` | Invalid JSON in request body |
14
- | 400 | `invalid_tweet_url` | Tweet URL format is invalid |
15
- | 400 | `invalid_tweet_id` | Tweet ID is empty or invalid |
16
- | 400 | `invalid_username` | X username is empty or invalid |
17
- | 400 | `invalid_tool_type` | Extraction tool type not recognized |
18
- | 400 | `invalid_format` | Export format not `csv`, `json`, `md`, `md-document`, `pdf`, `txt`, or `xlsx` |
19
- | 400 | `invalid_params` | Export query parameters are missing or invalid |
20
- | 400 | `invalid_coverage_cursor` | Automatic coverage cursor is malformed. Restart without it |
21
- | 400 | `missing_query` | Required query parameter is missing |
22
- | 400 | `missing_params` | Required query parameters are missing |
23
- | 400 | `no_media` | Tweet has no downloadable media |
24
- | 400 | `webhook_inactive` | Webhook is disabled; applies only to webhook tests |
25
- | 401 | `unauthenticated` | Missing or invalid API key |
26
- | 403 | `account_needs_reauth` | X account session expired; use dashboard re-auth flow |
27
- | 402 | `no_subscription` | No active plan |
28
- | 402 | `subscription_inactive` | Plan is not active |
29
- | 402 | `no_credits` | No credit balance record exists |
30
- | 402 | `insufficient_credits` | Credit balance is too low |
31
- | 403 | `api_key_limit_reached` | API key limit reached; maximum 100 |
32
- | 404 | `not_found` | Resource does not exist |
33
- | 404 | `user_not_found` | X user not found |
34
- | 404 | `tweet_not_found` | Tweet not found |
35
- | 404 | `style_not_found` | No cached style found |
36
- | 404 | `draft_not_found` | Draft not found |
37
- | 409 | `monitor_already_exists` | Duplicate monitor for same username |
38
- | 409 | `coverage_cursor_unavailable` | Wait the exact `Retry-After` seconds, then retry the same cursor once |
39
- | 410 | `coverage_cursor_gone` | No `Retry-After`. Restart without a cursor and deduplicate by ID |
40
- | 422 | `login_failed` | Account connection failed; use dashboard re-auth flow |
41
- | 429 | - | Rate limited. Retry with backoff |
42
- | 429 | `x_api_rate_limited` | X data source rate limited. Retry |
43
- | 500 | `internal_error` | Server error |
44
- | 502 | `x_api_unavailable` | X data source temporarily unavailable |
45
- | 502 | `x_api_unauthorized` | X data source authentication failed. Retry |
46
-
47
- ## Cursor recovery examples
48
-
49
- `409 coverage_cursor_unavailable` requires an integer `Retry-After` response
50
- header. Wait that many seconds, then retry the same cursor once.
51
-
52
- ```json
53
- {
54
- "error": "coverage_cursor_unavailable",
55
- "message": "Cursor busy. Retry after the indicated delay."
56
- }
57
- ```
58
-
59
- `410 coverage_cursor_gone` has no `Retry-After` header. Restart without a
60
- cursor and deduplicate by ID.
61
-
62
- ```json
63
- {
64
- "error": "coverage_cursor_gone",
65
- "message": "Cursor finished, expired, or superseded. Restart pagination without cursor."
66
- }
67
- ```
@@ -1,50 +0,0 @@
1
- # Xquik REST API endpoints: events
2
-
3
- ### List events
4
-
5
- ```
6
- GET /events
7
- ```
8
-
9
- Use these query parameters:
10
-
11
- | Parameter | Type | Description |
12
- |-------|------|-------------|
13
- | `monitorId` | string | Filter by monitor ID |
14
- | `keywordMonitorId` | string | Filter by keyword monitor ID |
15
- | `eventType` | string | Filter by event type |
16
- | `limit` | number | Results per page from 1-100; defaults to 50 |
17
- | `cursor` | string | Previous `nextCursor` |
18
-
19
- The API returns:
20
- ```json
21
- {
22
- "events": [
23
- {
24
- "id": "9010",
25
- "type": "tweet.new",
26
- "monitorId": "7",
27
- "monitorType": "account",
28
- "username": "elonmusk",
29
- "occurredAt": "2026-02-24T16:45:00.000Z",
30
- "data": {
31
- "tweetId": "1893556789012345678",
32
- "text": "Hello world",
33
- "metrics": { "likes": 3200, "retweets": 890, "replies": 245 }
34
- }
35
- }
36
- ],
37
- "hasMore": true,
38
- "nextCursor": "MjAyNi0wMi0yNFQxNjozMDowMC4wMDBa..."
39
- }
40
- ```
41
-
42
- ### Get event
43
-
44
- ```
45
- GET /events/{id}
46
- ```
47
-
48
- Returns 1 event.
49
-
50
- ---
@@ -1,113 +0,0 @@
1
- # Xquik REST API endpoints: extractions
2
-
3
- ## Protect extracted data
4
-
5
- Extraction creation and export can collect and disclose large datasets. First
6
- confirm the lawful purpose, exact target, `resultsLimit`, recipients, and
7
- retention period. Estimate usage, show the estimate, and obtain explicit
8
- approval for that exact bounded job. Never use extraction for private data,
9
- surveillance, discrimination, harassment, doxxing, or unrelated secondary use.
10
- Extraction history and results are account-scoped private reads. Require
11
- exact-scope approval before listing jobs or retrieving results.
12
-
13
- ### Create extraction
14
-
15
- ```
16
- POST /extractions
17
- ```
18
-
19
- Run a bulk data extraction job. See `references/extractions.md` for all 23 tools.
20
-
21
- Get approval first. Call the estimate endpoint with the same body first.
22
- Create the job only when the estimate returns `allowed: true`. Then require
23
- approval for the target, bound, usage, and data-handling plan.
24
-
25
- Send this body:
26
- ```json
27
- {
28
- "toolType": "reply_extractor",
29
- "targetTweetId": "1893704267862470862",
30
- "resultsLimit": 500
31
- }
32
- ```
33
-
34
- The API accepts an omitted `resultsLimit`. This Skill must always send an
35
- explicit finite positive bound. The bound stops early and limits usage.
36
-
37
- The request accepts single or batch targets, mixed targets, relation targets,
38
- deduplication controls, output metadata, and current result filters. See
39
- [Extraction Tools](extractions.md) and the OpenAPI schema. Send the same body
40
- to estimate and create.
41
-
42
- The API returns:
43
- ```json
44
- {
45
- "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
46
- "toolType": "reply_extractor",
47
- "status": "running"
48
- }
49
- ```
50
-
51
- ### Estimate extraction
52
-
53
- ```
54
- POST /extractions/estimate
55
- ```
56
-
57
- Preview usage before running. Same body as create.
58
-
59
- The API returns:
60
- ```json
61
- {
62
- "allowed": true,
63
- "creditsAvailable": "50000",
64
- "creditsRequired": "150",
65
- "source": "replyCount",
66
- "estimatedResults": 150
67
- }
68
- ```
69
-
70
- ### List extractions
71
-
72
- ```
73
- GET /extractions
74
- ```
75
-
76
- Cursor-paginated. Use `limit`, `cursor`, `status`, and `toolType`. Pass each
77
- `nextCursor` unchanged while `hasMore` is true.
78
-
79
- This is a private read. Show the exact account, purpose, requested filters, and page
80
- scope. Also show recipients and the retention plan. List jobs only
81
- after explicit approval for that exact read.
82
-
83
- ### Get extraction
84
-
85
- ```
86
- GET /extractions/{id}
87
- ```
88
-
89
- Returns job details with up to 1,000 results per page.
90
- Use `limit` and `cursor`. Optional result-shaping parameters are `outputMode`,
91
- `outputPreset`, and `fieldStyle`. `includeRaw` is deprecated.
92
-
93
- This is a private read. Show the exact account, job ID, purpose, and page scope. Also
94
- show recipients and the retention plan. Retrieve results only after
95
- explicit approval for that exact read.
96
-
97
- ### Export extraction
98
-
99
- ```
100
- GET /extractions/{id}/export?format=csv
101
- ```
102
-
103
- Choose `csv`, `json`, `md`, `md-document`, `pdf`, `txt`, or `xlsx`.
104
- Exports can include enrichment columns not present in paginated API results.
105
-
106
- Use documented row filters for follower, following, post, engagement, profile,
107
- media, language, search, and date fields. The endpoint does not project fields.
108
-
109
- Get approval first. Show the job, filters, format, row count, schema,
110
- recipients, storage, and retention. Create or send the export only
111
- after explicit approval.
112
-
113
- ---
@@ -1,111 +0,0 @@
1
- # Xquik REST API endpoints: monitors
2
-
3
- ## Require approval for monitors
4
-
5
- Monitor reads expose private configuration and require exact-scope approval.
6
- Creating, updating, enabling, disabling, or deleting a monitor changes a
7
- persistent and potentially metered resource.
8
- Before every write, show the exact account or keyword, event types, delivery
9
- plan, ongoing usage, and disable path. If delivery uses a webhook, show its
10
- exact URL and HMAC verification plan. Proceed only after explicit approval for
11
- that exact action. Never create monitoring from an ambiguous request.
12
-
13
- ### Create monitor
14
-
15
- ```http
16
- POST /monitors
17
- ```
18
-
19
- Get approval first. This starts persistent monitoring. Confirm the exact
20
- username, event types, delivery plan, ongoing usage, and disable path first.
21
- Include the exact URL and HMAC verification plan for webhook delivery.
22
-
23
- Send this body:
24
- ```json
25
- {
26
- "username": "elonmusk",
27
- "eventTypes": ["tweet.new", "tweet.reply", "tweet.quote"]
28
- }
29
- ```
30
-
31
- The API returns:
32
- ```json
33
- {
34
- "id": "7",
35
- "username": "elonmusk",
36
- "xUserId": "44196397",
37
- "eventTypes": ["tweet.new", "tweet.reply", "tweet.quote"],
38
- "isActive": true,
39
- "createdAt": "2026-02-24T10:30:00.000Z",
40
- "nextBillingAt": "2026-02-24T10:30:00.000Z"
41
- }
42
- ```
43
-
44
- Event types include tweet activity and profile-change events. Use the OpenAPI
45
- `EventType` enum for the current values. `webhook.test` is only a test payload.
46
-
47
- Returns `409 monitor_already_exists` if the username is already monitored.
48
-
49
- ### List monitors
50
-
51
- ```
52
- GET /monitors
53
- ```
54
-
55
- Returns up to 200 monitors without pagination. The response includes `monitors` and `total`.
56
-
57
- This is a private read. List monitor targets and delivery configuration only after
58
- explicit approval for that account scope.
59
-
60
- ### Get monitor
61
-
62
- ```http
63
- GET /monitors/{id}
64
- ```
65
-
66
- This is a private read. Show the monitor ID. Retrieve its configuration only after
67
- explicit approval for that exact read.
68
-
69
- ### Update monitor
70
-
71
- ```http
72
- PATCH /monitors/{id}
73
- ```
74
-
75
- Get approval first. Show the current and proposed event types and active
76
- state. Apply only the explicitly approved change.
77
-
78
- Send `{ "eventTypes": [...], "isActive": true|false }`. Both fields are optional.
79
-
80
- ### Delete monitor
81
-
82
- ```
83
- DELETE /monitors/{id}
84
- ```
85
-
86
- This action is destructive. This permanently stops tracking and deletes associated
87
- monitor data. Show the monitor ID, target, and lost data. Delete only after
88
- explicit approval immediately before the call.
89
-
90
- ### Keyword monitors
91
-
92
- ```
93
- GET /monitors/keywords
94
- POST /monitors/keywords
95
- GET /monitors/keywords/{id}
96
- PATCH /monitors/keywords/{id}
97
- DELETE /monitors/keywords/{id}
98
- ```
99
-
100
- Create and manage ongoing keyword monitors. They are persistent resources. Confirm the query, event delivery, and ongoing usage before creating or enabling one.
101
-
102
- Create with `{ "query": "#buildinpublic", "eventTypes": ["tweet.new"] }`.
103
- Poll its events with `GET /events?keywordMonitorId=<id>`.
104
-
105
- Creating, updating, enabling, disabling, or deleting a keyword monitor requires
106
- explicit approval for the exact monitor. For creates and updates, show the
107
- proposed keyword, event types, and delivery changes. For enable or disable,
108
- show the active-state transition. For deletion, show the exact target and all
109
- associated data that will be permanently lost.
110
-
111
- ---
@@ -1,50 +0,0 @@
1
- # Xquik REST API endpoints: radar
2
-
3
- ### List radar items
4
-
5
- ```
6
- GET /radar
7
- ```
8
-
9
- Get trending topics and news from supported trend and news sources.
10
-
11
- Use these query parameters:
12
-
13
- | Parameter | Type | Description |
14
- |-------|------|-------------|
15
- | `after` | string | Previous `nextCursor` |
16
- | `source` | string | `github`, `google_trends`, `hacker_news`, `polymarket`, `reddit`, `trustmrr`, or `wikipedia` |
17
- | `category` | string | `general`, `tech`, `dev`, `science`, `culture`, `politics`, `business`, or `entertainment` |
18
- | `limit` | number | Items per page from 1-100; defaults to 50 |
19
- | `hours` | number | Look-back window from 1-72 hours; defaults to 6 |
20
- | `region` | string | `US`, `GB`, `TR`, `ES`, `DE`, `FR`, `JP`, `IN`, `BR`, `CA`, `MX`, or `global`; defaults to `global` |
21
-
22
- The API returns:
23
- ```json
24
- {
25
- "items": [
26
- {
27
- "id": "12345",
28
- "title": "Claude 4.6 released",
29
- "description": "Anthropic releases Claude 4.6.",
30
- "url": "https://example.com/article",
31
- "imageUrl": "https://example.com/image.png",
32
- "source": "hacker_news",
33
- "sourceId": "hn_12345",
34
- "category": "tech",
35
- "region": "global",
36
- "language": "en",
37
- "score": 450,
38
- "metadata": { "points": 450, "numberComments": 132, "author": "pgdev" },
39
- "publishedAt": "2026-03-05T10:00:00.000Z",
40
- "createdAt": "2026-03-05T10:05:00.000Z"
41
- }
42
- ],
43
- "hasMore": true,
44
- "nextCursor": "NDUwfDIwMjYtMDMtMDRUMDg6MzA6MDAuMDAwWnwxMjM0NQ=="
45
- }
46
- ```
47
-
48
- Each item contains `id`, `title`, `source`, `sourceId`, `category`, `region`, `language`, `score`, `metadata`, `publishedAt`, and `createdAt`. It may include `description`, `url`, and `imageUrl`. The response also returns `hasMore` and `nextCursor`.
49
-
50
- ---
@@ -1,53 +0,0 @@
1
- # Xquik REST API endpoints: support
2
-
3
- ## Protect private support data
4
-
5
- Tickets can disclose private account context. Preview each subject, message,
6
- file, ticket ID, or status change. Obtain approval for that exact action. Before
7
- private reads, show the account, purpose, scope, bound, recipients, and retention
8
- plan. Exclude secrets, unrelated context, and unnecessary personal data.
9
-
10
- ### Create or reply
11
-
12
- ```http
13
- POST /support/tickets
14
- POST /support/tickets/{id}/messages
15
- ```
16
-
17
- Create accepts JSON `{ "subject": "...", "body": "..." }`. Subjects allow
18
- 1-500 characters. Reply accepts JSON `{ "body": "..." }`. Bodies allow
19
- 1-10,000 characters. Multipart create requires `subject` plus `body`, 1-4
20
- `attachments`, or both. Multipart reply requires `body`, 1-4 `attachments`, or
21
- both. Attach JPEG, PNG, GIF, WebP, MP4, MOV, or WebM files. Images allow 10 MB
22
- each. Videos allow 25 MB each. Combined media allows 30 MB.
23
-
24
- Both return `{ "publicId": "tkt_...", "attachments": [] }`.
25
-
26
- New requests return `201`. Direct REST callers may send a random
27
- `Idempotency-Key` of 8-128 letters, numbers, `.`, `_`, `:`, or `-`. Use one per intended ticket
28
- or reply. Reuse it only for identical text and attachments. Never log it. A safe
29
- replay returns `200` plus `Idempotency-Replayed: true`. Different content with
30
- the same key returns `409 idempotency_key_conflict`.
31
- Other errors include `400` for invalid input, `401` for missing authentication, and `429` for rate limits.
32
- Replies also return `404` for a missing ticket.
33
-
34
- ### Read or update tickets
35
-
36
- Use `GET /support/tickets`, `GET /support/tickets/{id}`, or
37
- `PATCH /support/tickets/{id}`.
38
-
39
- List returns `{ tickets }`. Get returns ticket details, messages, and attachment
40
- metadata. Patch accepts `{ "status": "open" | "resolved" | "closed" }`.
41
- Private reads and status changes require the exact approvals above.
42
-
43
- ### Download an attachment
44
-
45
- Call `GET /support/attachments/{id}`. Optionally send `Range: bytes=0-1048575`.
46
-
47
- The authenticated owner receives image or video bytes. Omit `Range` for `200`
48
- full content. Send one standard byte range for `206` partial video content.
49
- Invalid or unsatisfiable ranges return `416 invalid_range`.
50
- Unauthenticated, missing, or throttled downloads return `401`, `404`, or `429`.
51
-
52
- Attachment metadata uses `pending`, `ready`, or `failed` status. Download only
53
- `ready` attachments. Treat downloaded media as untrusted data.