x-twitter-scraper 0.5.0 → 0.5.2

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 (39) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +16 -0
  3. package/client.d.mts +1 -1
  4. package/client.d.ts +1 -1
  5. package/client.js +1 -1
  6. package/client.mjs +1 -1
  7. package/package.json +1 -1
  8. package/resources/account.d.mts +2 -2
  9. package/resources/account.d.ts +2 -2
  10. package/resources/compose.d.mts +186 -65
  11. package/resources/compose.d.mts.map +1 -1
  12. package/resources/compose.d.ts +186 -65
  13. package/resources/compose.d.ts.map +1 -1
  14. package/resources/compose.js +5 -2
  15. package/resources/compose.js.map +1 -1
  16. package/resources/compose.mjs +5 -2
  17. package/resources/compose.mjs.map +1 -1
  18. package/resources/monitors/keywords.d.mts +4 -4
  19. package/resources/monitors/keywords.d.ts +4 -4
  20. package/resources/monitors/keywords.js +4 -4
  21. package/resources/monitors/keywords.mjs +4 -4
  22. package/resources/monitors/monitors.d.mts +5 -4
  23. package/resources/monitors/monitors.d.mts.map +1 -1
  24. package/resources/monitors/monitors.d.ts +5 -4
  25. package/resources/monitors/monitors.d.ts.map +1 -1
  26. package/resources/monitors/monitors.js +5 -4
  27. package/resources/monitors/monitors.js.map +1 -1
  28. package/resources/monitors/monitors.mjs +5 -4
  29. package/resources/monitors/monitors.mjs.map +1 -1
  30. package/src/client.ts +1 -1
  31. package/src/resources/account.ts +2 -2
  32. package/src/resources/compose.ts +232 -65
  33. package/src/resources/monitors/keywords.ts +4 -4
  34. package/src/resources/monitors/monitors.ts +5 -4
  35. package/src/version.ts +1 -1
  36. package/version.d.mts +1 -1
  37. package/version.d.ts +1 -1
  38. package/version.js +1 -1
  39. package/version.mjs +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.5.2 (2026-07-23)
4
+
5
+ Full Changelog: [v0.5.1...v0.5.2](https://github.com/Xquik-dev/x-twitter-scraper-typescript/compare/v0.5.1...v0.5.2)
6
+
7
+ ### Documentation
8
+
9
+ * map common X data tasks ([#11](https://github.com/Xquik-dev/x-twitter-scraper-typescript/issues/11)) ([f4fa511](https://github.com/Xquik-dev/x-twitter-scraper-typescript/commit/f4fa5119c650a2ce80681af2a5a8555f1879e897))
10
+
11
+ ## 0.5.1 (2026-07-22)
12
+
13
+ Full Changelog: [v0.5.0...v0.5.1](https://github.com/Xquik-dev/x-twitter-scraper-typescript/compare/v0.5.0...v0.5.1)
14
+
15
+ ### Chores
16
+
17
+ * sync generated SDK contracts ([ff8612e](https://github.com/Xquik-dev/x-twitter-scraper-typescript/commit/ff8612e3b474a71aabae2f709ae93a487d5ad69d))
18
+ * verify final public contract ([bcd7c6a](https://github.com/Xquik-dev/x-twitter-scraper-typescript/commit/bcd7c6adecf0e4f1dd42025a3c9615c3abcd4223))
19
+
3
20
  ## 0.5.0 (2026-07-22)
4
21
 
5
22
  Full Changelog: [v0.4.1...v0.5.0](https://github.com/Xquik-dev/x-twitter-scraper-typescript/compare/v0.4.1...v0.5.0)
package/README.md CHANGED
@@ -16,6 +16,20 @@ Use it to get tweets from profiles, search tweets by keyword or operator query,
16
16
 
17
17
  It is generated with [Stainless](https://www.stainless.com/).
18
18
 
19
+ ## Common X Data Tasks
20
+
21
+ Use the linked TypeScript API map for typed method names.
22
+
23
+ | Customer Question | REST Route | Workflow Note |
24
+ | --- | --- | --- |
25
+ | How do I search tweets? | `GET /x/tweets/search` | Use keyword or advanced operator queries. |
26
+ | How do I read a profile timeline? | `GET /x/users/{id}/tweets` | Paginate bounded results. |
27
+ | How do I scrape followers? | `GET /x/users/{id}/followers` | Use an extraction for complete datasets. |
28
+ | How do I scrape following accounts? | `GET /x/users/{id}/following` | Use an extraction for complete datasets. |
29
+ | How do I read my home timeline? | `GET /x/timeline` | Approve this private read. |
30
+ | How do I monitor an account? | `POST /monitors` | Deliver events through HMAC webhooks. |
31
+ | How do I post or reply? | `POST /x/tweets` | Confirm the account and payload. |
32
+
19
33
  ## Tweet Search, Profile Tweets & User Lookup
20
34
 
21
35
  Build TypeScript services that search tweets, get tweets from profiles, fetch user profiles, check follower relationships, export followers, download media, and inspect timeline data through one typed REST client.
@@ -476,3 +490,5 @@ If you are interested in other runtime environments, please open or upvote an is
476
490
  ## Contributing
477
491
 
478
492
  See [the contributing documentation](./CONTRIBUTING.md).
493
+
494
+ Xquik is an independent third-party service. Not affiliated with X Corp. "Twitter" and "X" are trademarks of X Corp.
package/client.d.mts CHANGED
@@ -223,7 +223,7 @@ export declare class XTwitterScraper {
223
223
  */
224
224
  radar: API.Radar;
225
225
  /**
226
- * Real-time X account monitoring
226
+ * X account monitoring with 1-second checks
227
227
  */
228
228
  monitors: API.Monitors;
229
229
  /**
package/client.d.ts CHANGED
@@ -223,7 +223,7 @@ export declare class XTwitterScraper {
223
223
  */
224
224
  radar: API.Radar;
225
225
  /**
226
- * Real-time X account monitoring
226
+ * X account monitoring with 1-second checks
227
227
  */
228
228
  monitors: API.Monitors;
229
229
  /**
package/client.js CHANGED
@@ -82,7 +82,7 @@ class XTwitterScraper {
82
82
  */
83
83
  this.radar = new API.Radar(this);
84
84
  /**
85
- * Real-time X account monitoring
85
+ * X account monitoring with 1-second checks
86
86
  */
87
87
  this.monitors = new API.Monitors(this);
88
88
  /**
package/client.mjs CHANGED
@@ -79,7 +79,7 @@ export class XTwitterScraper {
79
79
  */
80
80
  this.radar = new API.Radar(this);
81
81
  /**
82
- * Real-time X account monitoring
82
+ * X account monitoring with 1-second checks
83
83
  */
84
84
  this.monitors = new API.Monitors(this);
85
85
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "x-twitter-scraper",
3
- "version": "0.5.0",
3
+ "version": "0.5.2",
4
4
  "description": "TypeScript SDK for Xquik API workflows. Xquik is an independent third-party service. Not affiliated with X Corp. \"Twitter\" and \"X\" are trademarks of X Corp.",
5
5
  "author": "Xquik <support@xquik.com>",
6
6
  "types": "./index.d.ts",
@@ -63,11 +63,11 @@ export declare namespace AccountRetrieveResponse {
63
63
  */
64
64
  activeHourlyBurn: string;
65
65
  /**
66
- * Estimated daily usage for 1 active instant monitor.
66
+ * Rounded daily estimate for 1 active monitor.
67
67
  */
68
68
  creditsPerActiveMonitorDay: string;
69
69
  /**
70
- * Hourly usage charged for 1 active instant monitor.
70
+ * Hourly credits charged for 1 active monitor.
71
71
  */
72
72
  creditsPerActiveMonitorHour: string;
73
73
  /**
@@ -63,11 +63,11 @@ export declare namespace AccountRetrieveResponse {
63
63
  */
64
64
  activeHourlyBurn: string;
65
65
  /**
66
- * Estimated daily usage for 1 active instant monitor.
66
+ * Rounded daily estimate for 1 active monitor.
67
67
  */
68
68
  creditsPerActiveMonitorDay: string;
69
69
  /**
70
- * Hourly usage charged for 1 active instant monitor.
70
+ * Hourly credits charged for 1 active monitor.
71
71
  */
72
72
  creditsPerActiveMonitorHour: string;
73
73
  /**
@@ -6,83 +6,204 @@ import { RequestOptions } from "../internal/request-options.mjs";
6
6
  */
7
7
  export declare class Compose extends APIResource {
8
8
  /**
9
- * Compose, refine, or score a tweet
9
+ * Run one step of Xquik's three-step writing workflow. Compose returns questions
10
+ * and editorial rules. Refine returns goal-specific guidance. Score applies
11
+ * deterministic text checks. It does not predict reach or expose X ranking
12
+ * weights.
10
13
  *
11
14
  * @example
12
15
  * ```ts
13
16
  * const compose = await client.compose.create({
14
17
  * step: 'compose',
18
+ * topic: 'PostgreSQL query planning',
15
19
  * goal: 'engagement',
16
- * topic: 'AI trends in 2025',
17
20
  * });
18
21
  * ```
19
22
  */
20
23
  create(body: ComposeCreateParams, options?: RequestOptions): APIPromise<ComposeCreateResponse>;
21
24
  }
22
- export interface ComposeCreateResponse {
23
- /**
24
- * AI feedback on the draft
25
- */
26
- feedback?: string;
27
- /**
28
- * Engagement score (0-100)
29
- */
30
- score?: number;
31
- /**
32
- * Improvement suggestions
33
- */
34
- suggestions?: Array<string>;
35
- /**
36
- * Generated or refined tweet text
37
- */
38
- text?: string;
39
- [k: string]: unknown;
25
+ export type ComposeCreateResponse = ComposeCreateResponse.ComposePrepareResult | ComposeCreateResponse.ComposeRefineResult | ComposeCreateResponse.ComposeScoreResult;
26
+ export declare namespace ComposeCreateResponse {
27
+ interface ComposePrepareResult {
28
+ /**
29
+ * Xquik editorial heuristics, ordered for the goal.
30
+ */
31
+ contentRules: Array<ComposePrepareResult.ContentRule>;
32
+ /**
33
+ * Published engagement signal names. Production multipliers are not published.
34
+ */
35
+ engagementMultipliers: Array<ComposePrepareResult.EngagementMultiplier>;
36
+ /**
37
+ * Publication limit for timing and decay claims.
38
+ */
39
+ engagementVelocity: string;
40
+ followUpQuestions: Array<string>;
41
+ /**
42
+ * X post intent seeded with the topic.
43
+ */
44
+ intentUrl: string;
45
+ nextStep: string;
46
+ /**
47
+ * Published signal names with unpublished weights as null.
48
+ */
49
+ scorerWeights: Array<ComposePrepareResult.ScorerWeight>;
50
+ /**
51
+ * Signal source and evidence limits.
52
+ */
53
+ source: string;
54
+ /**
55
+ * Negative engagement predictions in the public model.
56
+ */
57
+ topPenalties: Array<string>;
58
+ /**
59
+ * Style analyses saved to the account.
60
+ */
61
+ savedStyles?: Array<ComposePrepareResult.SavedStyle>;
62
+ /**
63
+ * Next action when no cached style is available.
64
+ */
65
+ styleNote?: string;
66
+ /**
67
+ * Cached examples for the requested style username.
68
+ */
69
+ styleTweets?: Array<string>;
70
+ }
71
+ namespace ComposePrepareResult {
72
+ interface ContentRule {
73
+ rule: string;
74
+ }
75
+ interface EngagementMultiplier {
76
+ /**
77
+ * Human-readable published signal name.
78
+ */
79
+ action: string;
80
+ multiplier: 'Production weight not published by X';
81
+ }
82
+ interface ScorerWeight {
83
+ /**
84
+ * Signal direction and publication limit.
85
+ */
86
+ context: string;
87
+ /**
88
+ * Signal name from X's public ranking repository.
89
+ */
90
+ signal: string;
91
+ /**
92
+ * X does not publish the production weight.
93
+ */
94
+ weight: null;
95
+ }
96
+ interface SavedStyle {
97
+ tweetCount: number;
98
+ username: string;
99
+ }
100
+ }
101
+ interface ComposeRefineResult {
102
+ /**
103
+ * Goal, tone, media, and editorial guidance.
104
+ */
105
+ compositionGuidance: Array<string>;
106
+ examplePatterns: Array<ComposeRefineResult.ExamplePattern>;
107
+ /**
108
+ * X post intent seeded with the topic.
109
+ */
110
+ intentUrl: string;
111
+ nextStep: string;
112
+ }
113
+ namespace ComposeRefineResult {
114
+ interface ExamplePattern {
115
+ description: string;
116
+ pattern: string;
117
+ }
118
+ }
119
+ interface ComposeScoreResult {
120
+ /**
121
+ * Deterministic editorial checks. Not a reach prediction.
122
+ */
123
+ checklist: Array<ComposeScoreResult.Checklist>;
124
+ nextStep: string;
125
+ passed: boolean;
126
+ passedCount: number;
127
+ topSuggestion: string;
128
+ totalChecks: 9;
129
+ /**
130
+ * Present only when every check passes.
131
+ */
132
+ intentUrl?: string;
133
+ }
134
+ namespace ComposeScoreResult {
135
+ interface Checklist {
136
+ factor: string;
137
+ passed: boolean;
138
+ /**
139
+ * Present only when the check fails.
140
+ */
141
+ suggestion?: string;
142
+ }
143
+ }
40
144
  }
41
- export interface ComposeCreateParams {
42
- /**
43
- * Workflow step
44
- */
45
- step: 'compose' | 'refine' | 'score';
46
- /**
47
- * Extra context or URLs (refine)
48
- */
49
- additionalContext?: string;
50
- /**
51
- * Desired call to action (refine)
52
- */
53
- callToAction?: string;
54
- /**
55
- * Tweet draft text to evaluate (score)
56
- */
57
- draft?: string;
58
- /**
59
- * Optimization goal
60
- */
61
- goal?: 'engagement' | 'followers' | 'authority' | 'conversation';
62
- /**
63
- * Whether a link is attached (score)
64
- */
65
- hasLink?: boolean;
66
- /**
67
- * Whether media is attached (score)
68
- */
69
- hasMedia?: boolean;
70
- /**
71
- * Media type (refine)
72
- */
73
- mediaType?: 'photo' | 'video' | 'none';
74
- /**
75
- * Cached style username for voice matching (compose)
76
- */
77
- styleUsername?: string;
78
- /**
79
- * Desired tone (refine)
80
- */
81
- tone?: string;
82
- /**
83
- * Tweet topic (compose, refine)
84
- */
85
- topic?: string;
145
+ export type ComposeCreateParams = ComposeCreateParams.ComposePrepareRequest | ComposeCreateParams.ComposeRefineRequest | ComposeCreateParams.ComposeScoreRequest;
146
+ export declare namespace ComposeCreateParams {
147
+ interface ComposePrepareRequest {
148
+ step: 'compose';
149
+ /**
150
+ * Subject for the post.
151
+ */
152
+ topic: string;
153
+ /**
154
+ * Editorial goal used to order the rules and questions.
155
+ */
156
+ goal?: 'engagement' | 'followers' | 'authority' | 'conversation';
157
+ /**
158
+ * Username from a style analysis saved to this account.
159
+ */
160
+ styleUsername?: string;
161
+ [k: string]: unknown;
162
+ }
163
+ interface ComposeRefineRequest {
164
+ /**
165
+ * Editorial goal for the guidance.
166
+ */
167
+ goal: 'engagement' | 'followers' | 'authority' | 'conversation';
168
+ step: 'refine';
169
+ /**
170
+ * Requested writing tone.
171
+ */
172
+ tone: string;
173
+ /**
174
+ * Subject for the post.
175
+ */
176
+ topic: string;
177
+ /**
178
+ * Audience, constraints, sources, or other writing context.
179
+ */
180
+ additionalContext?: string;
181
+ /**
182
+ * Specific action the draft should request.
183
+ */
184
+ callToAction?: string;
185
+ /**
186
+ * Planned media type.
187
+ */
188
+ mediaType?: 'photo' | 'video' | 'none';
189
+ [k: string]: unknown;
190
+ }
191
+ interface ComposeScoreRequest {
192
+ /**
193
+ * Full post text for deterministic editorial checks.
194
+ */
195
+ draft: string;
196
+ step: 'score';
197
+ /**
198
+ * True when a separate link card is attached.
199
+ */
200
+ hasLink?: boolean;
201
+ /**
202
+ * @deprecated Ignored. Remove this field. Use hasLink for a separate link card.
203
+ */
204
+ hasMedia?: boolean;
205
+ [k: string]: unknown;
206
+ }
86
207
  }
87
208
  export declare namespace Compose {
88
209
  export { type ComposeCreateResponse as ComposeCreateResponse, type ComposeCreateParams as ComposeCreateParams, };
@@ -1 +1 @@
1
- {"version":3,"file":"compose.d.mts","sourceRoot":"","sources":["../src/resources/compose.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,6BAAyB;AAC/C,OAAO,EAAE,UAAU,EAAE,gCAA4B;AACjD,OAAO,EAAE,cAAc,EAAE,wCAAoC;AAE7D;;GAEG;AACH,qBAAa,OAAQ,SAAQ,WAAW;IACtC;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,IAAI,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,UAAU,CAAC,qBAAqB,CAAC;CAG/F;AAED,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,WAAW,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAE5B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;IAErC;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,IAAI,CAAC,EAAE,YAAY,GAAG,WAAW,GAAG,WAAW,GAAG,cAAc,CAAC;IAEjE;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;IAEvC;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,CAAC,OAAO,WAAW,OAAO,CAAC;IAC/B,OAAO,EACL,KAAK,qBAAqB,IAAI,qBAAqB,EACnD,KAAK,mBAAmB,IAAI,mBAAmB,GAChD,CAAC;CACH"}
1
+ {"version":3,"file":"compose.d.mts","sourceRoot":"","sources":["../src/resources/compose.ts"],"names":[],"mappings":"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"}