Skip to content

Commit 0f15fc4

Browse files
release: 0.4.0 (#5)
* feat(api): api update * codegen metadata * codegen metadata * feat(api): api update * feat(api): api update * feat(api): api update * feat(api): api update * feat(api): api update * feat(api): api update * codegen metadata * codegen metadata * chore: update SDK settings * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * release: 0.4.0 --------- Co-authored-by: stainless-app[bot] <142633134+stainless-app[bot]@users.noreply.github.com>
1 parent 0f8e806 commit 0f15fc4

486 files changed

Lines changed: 3234 additions & 18073 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/publish-gem.yml

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,6 @@ jobs:
1212
publish:
1313
name: publish
1414
runs-on: ubuntu-latest
15-
environment: rubygems
16-
permissions:
17-
contents: read
18-
id-token: write
1915

2016
steps:
2117
- uses: actions/checkout@v6
@@ -26,9 +22,10 @@ jobs:
2622
- run: |-
2723
bundle install
2824
29-
- name: Configure trusted publishing credentials
30-
uses: rubygems/configure-rubygems-credentials@v1.0.0
31-
3225
- name: Publish to RubyGems.org
3326
run: |
3427
bash ./bin/publish-gem
28+
env:
29+
# `RUBYGEMS_HOST` is only required for private gem repositories, not https://rubygems.org
30+
RUBYGEMS_HOST: ${{ secrets.X_TWITTER_SCRAPER_RUBYGEMS_HOST || secrets.RUBYGEMS_HOST }}
31+
GEM_HOST_API_KEY: ${{ secrets.X_TWITTER_SCRAPER_GEM_HOST_API_KEY || secrets.GEM_HOST_API_KEY }}

.release-please-manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
".": "0.3.0"
2+
".": "0.4.0"
33
}

.stats.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
configured_endpoints: 115
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/xquik%2Fx-twitter-scraper-93bb7d4f1475c8043af464ec88244a034456c549136c8477f284f0a33192e1c9.yml
3-
openapi_spec_hash: 74dca63c872249274ad99b111dea0833
4-
config_hash: 8894c96caeb6df84c9394518810221bd
1+
configured_endpoints: 117
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/xquik%2Fx-twitter-scraper-d40c57a05527faf060d21c0e013729f371d88017b10680cea7c8fd6780ffaef5.yml
3+
openapi_spec_hash: 597ebc460cf86740b9f6f7c95478dece
4+
config_hash: e48b11ffdd2d30680081d5436848066d

CHANGELOG.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,30 @@
11
# Changelog
22

3+
## 0.4.0 (2026-04-22)
4+
5+
Full Changelog: [v0.3.0...v0.4.0](https://github.com/Xquik-dev/x-twitter-scraper-ruby/compare/v0.3.0...v0.4.0)
6+
7+
### Features
8+
9+
* **api:** api update ([57ca5de](https://github.com/Xquik-dev/x-twitter-scraper-ruby/commit/57ca5deef4ab9b670bc0e143c00639a8c3da1258))
10+
* **api:** api update ([21e1e0f](https://github.com/Xquik-dev/x-twitter-scraper-ruby/commit/21e1e0f3791b791ab09f8982edaae123ba8d45a1))
11+
* **api:** api update ([c053ff2](https://github.com/Xquik-dev/x-twitter-scraper-ruby/commit/c053ff2fdc9a671ff1a6d6596a97d1ebb8a33eb2))
12+
* **api:** api update ([f9c02a4](https://github.com/Xquik-dev/x-twitter-scraper-ruby/commit/f9c02a49240130a307fcbd1cfbcfaf999966fb06))
13+
* **api:** api update ([89e3ff5](https://github.com/Xquik-dev/x-twitter-scraper-ruby/commit/89e3ff5905185e6223233618819d6dc87a2e87d7))
14+
* **api:** api update ([dbe6467](https://github.com/Xquik-dev/x-twitter-scraper-ruby/commit/dbe6467a33987dcd3a65b78bfefca13b5123ae63))
15+
* **api:** api update ([279a416](https://github.com/Xquik-dev/x-twitter-scraper-ruby/commit/279a416215ad266661cac5edd02e821e2f701d60))
16+
17+
18+
### Bug Fixes
19+
20+
* **ci:** pin rubygems/configure-rubygems-credentials to v1.0.0 ([7d2cde5](https://github.com/Xquik-dev/x-twitter-scraper-ruby/commit/7d2cde520114bba9680b2c98fbe699f75f9b5c04))
21+
* set homepage to docs.xquik.com, add documentation_uri to gemdocs ([0f8e806](https://github.com/Xquik-dev/x-twitter-scraper-ruby/commit/0f8e806ff20df4700054a7df0e17aa89e2da4859))
22+
23+
24+
### Chores
25+
26+
* update SDK settings ([301d2a6](https://github.com/Xquik-dev/x-twitter-scraper-ruby/commit/301d2a616dfaf7c4ac15798a7463ecd3ef2770eb))
27+
328
## 0.3.0 (2026-04-01)
429

530
Full Changelog: [v0.2.0...v0.3.0](https://github.com/Xquik-dev/x-twitter-scraper-ruby/compare/v0.2.0...v0.3.0)

Gemfile.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ GIT
1111
PATH
1212
remote: .
1313
specs:
14-
x-twitter-scraper (0.3.0)
14+
x-twitter-scraper (0.4.0)
1515
cgi
1616
connection_pool
1717

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ To use this gem, install via Bundler by adding the following to your application
1717
<!-- x-release-please-start-version -->
1818

1919
```ruby
20-
gem "x-twitter-scraper", "~> 0.3.0"
20+
gem "x-twitter-scraper", "~> 0.4.0"
2121
```
2222

2323
<!-- x-release-please-end -->
@@ -32,9 +32,9 @@ x_twitter_scraper = XTwitterScraper::Client.new(
3232
api_key: ENV["X_TWITTER_SCRAPER_API_KEY"] # This is the default and can be omitted
3333
)
3434

35-
response = x_twitter_scraper.x.tweets.search(q: "from:elonmusk", limit: 10)
35+
paginated_tweets = x_twitter_scraper.x.tweets.search(q: "from:elonmusk", limit: 10)
3636

37-
puts(response.has_next_page)
37+
puts(paginated_tweets.has_next_page)
3838
```
3939

4040
### File uploads
@@ -153,7 +153,7 @@ You can send undocumented parameters to any endpoint, and read undocumented resp
153153
Note: the `extra_` parameters of the same name overrides the documented parameters.
154154

155155
```ruby
156-
response =
156+
paginated_tweets =
157157
x_twitter_scraper.x.tweets.search(
158158
q: "from:elonmusk",
159159
limit: 10,
@@ -164,7 +164,7 @@ response =
164164
}
165165
)
166166

167-
puts(response[:my_undocumented_property])
167+
puts(paginated_tweets[:my_undocumented_property])
168168
```
169169

170170
#### Undocumented request params

lib/x_twitter_scraper.rb

Lines changed: 4 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -74,13 +74,11 @@
7474
require_relative "x_twitter_scraper/models/delivery"
7575
require_relative "x_twitter_scraper/models/draft"
7676
require_relative "x_twitter_scraper/models/draft_create_params"
77-
require_relative "x_twitter_scraper/models/draft_create_response"
7877
require_relative "x_twitter_scraper/models/draft_delete_params"
7978
require_relative "x_twitter_scraper/models/draft_detail"
8079
require_relative "x_twitter_scraper/models/draft_list_params"
8180
require_relative "x_twitter_scraper/models/draft_list_response"
8281
require_relative "x_twitter_scraper/models/draft_retrieve_params"
83-
require_relative "x_twitter_scraper/models/draft_retrieve_response"
8482
require_relative "x_twitter_scraper/models/draw_detail"
8583
require_relative "x_twitter_scraper/models/draw_export_params"
8684
require_relative "x_twitter_scraper/models/draw_list_item"
@@ -96,7 +94,6 @@
9694
require_relative "x_twitter_scraper/models/event_list_params"
9795
require_relative "x_twitter_scraper/models/event_list_response"
9896
require_relative "x_twitter_scraper/models/event_retrieve_params"
99-
require_relative "x_twitter_scraper/models/event_retrieve_response"
10097
require_relative "x_twitter_scraper/models/event_type"
10198
require_relative "x_twitter_scraper/models/extraction_estimate_cost_params"
10299
require_relative "x_twitter_scraper/models/extraction_estimate_cost_response"
@@ -110,7 +107,6 @@
110107
require_relative "x_twitter_scraper/models/extraction_run_response"
111108
require_relative "x_twitter_scraper/models/integration"
112109
require_relative "x_twitter_scraper/models/integration_create_params"
113-
require_relative "x_twitter_scraper/models/integration_create_response"
114110
require_relative "x_twitter_scraper/models/integration_delete_params"
115111
require_relative "x_twitter_scraper/models/integration_delete_response"
116112
require_relative "x_twitter_scraper/models/integration_delivery"
@@ -119,11 +115,9 @@
119115
require_relative "x_twitter_scraper/models/integration_list_params"
120116
require_relative "x_twitter_scraper/models/integration_list_response"
121117
require_relative "x_twitter_scraper/models/integration_retrieve_params"
122-
require_relative "x_twitter_scraper/models/integration_retrieve_response"
123118
require_relative "x_twitter_scraper/models/integration_send_test_params"
124119
require_relative "x_twitter_scraper/models/integration_send_test_response"
125120
require_relative "x_twitter_scraper/models/integration_update_params"
126-
require_relative "x_twitter_scraper/models/integration_update_response"
127121
require_relative "x_twitter_scraper/models/monitor"
128122
require_relative "x_twitter_scraper/models/monitor_create_params"
129123
require_relative "x_twitter_scraper/models/monitor_create_response"
@@ -132,16 +126,13 @@
132126
require_relative "x_twitter_scraper/models/monitor_list_params"
133127
require_relative "x_twitter_scraper/models/monitor_list_response"
134128
require_relative "x_twitter_scraper/models/monitor_retrieve_params"
135-
require_relative "x_twitter_scraper/models/monitor_retrieve_response"
136129
require_relative "x_twitter_scraper/models/monitor_update_params"
137-
require_relative "x_twitter_scraper/models/monitor_update_response"
138130
require_relative "x_twitter_scraper/models/paginated_tweets"
139131
require_relative "x_twitter_scraper/models/paginated_users"
140132
require_relative "x_twitter_scraper/models/radar_item"
141133
require_relative "x_twitter_scraper/models/radar_retrieve_trending_topics_params"
142134
require_relative "x_twitter_scraper/models/radar_retrieve_trending_topics_response"
143135
require_relative "x_twitter_scraper/models/style_analyze_params"
144-
require_relative "x_twitter_scraper/models/style_analyze_response"
145136
require_relative "x_twitter_scraper/models/style_compare_params"
146137
require_relative "x_twitter_scraper/models/style_compare_response"
147138
require_relative "x_twitter_scraper/models/style_delete_params"
@@ -152,9 +143,7 @@
152143
require_relative "x_twitter_scraper/models/style_profile"
153144
require_relative "x_twitter_scraper/models/style_profile_summary"
154145
require_relative "x_twitter_scraper/models/style_retrieve_params"
155-
require_relative "x_twitter_scraper/models/style_retrieve_response"
156146
require_relative "x_twitter_scraper/models/style_update_params"
157-
require_relative "x_twitter_scraper/models/style_update_response"
158147
require_relative "x_twitter_scraper/models/subscribe_create_params"
159148
require_relative "x_twitter_scraper/models/subscribe_create_response"
160149
require_relative "x_twitter_scraper/models/support/ticket_create_params"
@@ -181,8 +170,9 @@
181170
require_relative "x_twitter_scraper/models/webhook_test_params"
182171
require_relative "x_twitter_scraper/models/webhook_test_response"
183172
require_relative "x_twitter_scraper/models/webhook_update_params"
184-
require_relative "x_twitter_scraper/models/webhook_update_response"
185173
require_relative "x_twitter_scraper/models/winner"
174+
require_relative "x_twitter_scraper/models/x/account_bulk_retry_params"
175+
require_relative "x_twitter_scraper/models/x/account_bulk_retry_response"
186176
require_relative "x_twitter_scraper/models/x/account_create_params"
187177
require_relative "x_twitter_scraper/models/x/account_create_response"
188178
require_relative "x_twitter_scraper/models/x/account_delete_params"
@@ -192,15 +182,12 @@
192182
require_relative "x_twitter_scraper/models/x/account_reauth_params"
193183
require_relative "x_twitter_scraper/models/x/account_reauth_response"
194184
require_relative "x_twitter_scraper/models/x/account_retrieve_params"
195-
require_relative "x_twitter_scraper/models/x/account_retrieve_response"
196185
require_relative "x_twitter_scraper/models/x/bookmark_list_params"
197-
require_relative "x_twitter_scraper/models/x/bookmark_list_response"
198186
require_relative "x_twitter_scraper/models/x/bookmark_retrieve_folders_params"
199187
require_relative "x_twitter_scraper/models/x/bookmark_retrieve_folders_response"
200188
require_relative "x_twitter_scraper/models/x/communities/join_create_params"
201-
require_relative "x_twitter_scraper/models/x/communities/join_create_response"
202189
require_relative "x_twitter_scraper/models/x/communities/join_delete_all_params"
203-
require_relative "x_twitter_scraper/models/x/communities/join_delete_all_response"
190+
require_relative "x_twitter_scraper/models/x/communities/tweet_list_by_community_params"
204191
require_relative "x_twitter_scraper/models/x/communities/tweet_list_params"
205192
require_relative "x_twitter_scraper/models/x/community_action_result"
206193
require_relative "x_twitter_scraper/models/x/community_create_params"
@@ -239,15 +226,10 @@
239226
require_relative "x_twitter_scraper/models/x/tweet_delete_response"
240227
require_relative "x_twitter_scraper/models/x/tweet_detail"
241228
require_relative "x_twitter_scraper/models/x/tweet_get_favoriters_params"
242-
require_relative "x_twitter_scraper/models/x/tweet_get_favoriters_response"
243229
require_relative "x_twitter_scraper/models/x/tweet_get_quotes_params"
244-
require_relative "x_twitter_scraper/models/x/tweet_get_quotes_response"
245230
require_relative "x_twitter_scraper/models/x/tweet_get_replies_params"
246-
require_relative "x_twitter_scraper/models/x/tweet_get_replies_response"
247231
require_relative "x_twitter_scraper/models/x/tweet_get_retweeters_params"
248-
require_relative "x_twitter_scraper/models/x/tweet_get_retweeters_response"
249232
require_relative "x_twitter_scraper/models/x/tweet_get_thread_params"
250-
require_relative "x_twitter_scraper/models/x/tweet_get_thread_response"
251233
require_relative "x_twitter_scraper/models/x/tweet_list_params"
252234
require_relative "x_twitter_scraper/models/x/tweet_retrieve_params"
253235
require_relative "x_twitter_scraper/models/x/tweet_retrieve_response"
@@ -260,23 +242,17 @@
260242
require_relative "x_twitter_scraper/models/x/tweets/retweet_delete_params"
261243
require_relative "x_twitter_scraper/models/x/tweets/retweet_delete_response"
262244
require_relative "x_twitter_scraper/models/x/tweet_search_params"
263-
require_relative "x_twitter_scraper/models/x/tweet_search_response"
264245
require_relative "x_twitter_scraper/models/x/user_profile"
265246
require_relative "x_twitter_scraper/models/x/user_retrieve_batch_params"
266247
require_relative "x_twitter_scraper/models/x/user_retrieve_followers_params"
267248
require_relative "x_twitter_scraper/models/x/user_retrieve_followers_you_know_params"
268-
require_relative "x_twitter_scraper/models/x/user_retrieve_followers_you_know_response"
269249
require_relative "x_twitter_scraper/models/x/user_retrieve_following_params"
270250
require_relative "x_twitter_scraper/models/x/user_retrieve_likes_params"
271-
require_relative "x_twitter_scraper/models/x/user_retrieve_likes_response"
272251
require_relative "x_twitter_scraper/models/x/user_retrieve_media_params"
273-
require_relative "x_twitter_scraper/models/x/user_retrieve_media_response"
274252
require_relative "x_twitter_scraper/models/x/user_retrieve_mentions_params"
275253
require_relative "x_twitter_scraper/models/x/user_retrieve_params"
276-
require_relative "x_twitter_scraper/models/x/user_retrieve_response"
277254
require_relative "x_twitter_scraper/models/x/user_retrieve_search_params"
278255
require_relative "x_twitter_scraper/models/x/user_retrieve_tweets_params"
279-
require_relative "x_twitter_scraper/models/x/user_retrieve_tweets_response"
280256
require_relative "x_twitter_scraper/models/x/user_retrieve_verified_followers_params"
281257
require_relative "x_twitter_scraper/models/x/users/follow_create_params"
282258
require_relative "x_twitter_scraper/models/x/users/follow_create_response"
@@ -287,10 +263,10 @@
287263
require_relative "x_twitter_scraper/models/x_get_article_params"
288264
require_relative "x_twitter_scraper/models/x_get_article_response"
289265
require_relative "x_twitter_scraper/models/x_get_home_timeline_params"
290-
require_relative "x_twitter_scraper/models/x_get_home_timeline_response"
291266
require_relative "x_twitter_scraper/models/x_get_notifications_params"
292267
require_relative "x_twitter_scraper/models/x_get_notifications_response"
293268
require_relative "x_twitter_scraper/models/x_get_trends_params"
269+
require_relative "x_twitter_scraper/models/x_get_trends_response"
294270
require_relative "x_twitter_scraper/models"
295271
require_relative "x_twitter_scraper/resources/account"
296272
require_relative "x_twitter_scraper/resources/api_keys"

lib/x_twitter_scraper/models/api_key.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ class APIKey < XTwitterScraper::Internal::Type::BaseModel
3434
optional :last_used_at, Time, api_name: :lastUsedAt
3535

3636
# @!method initialize(id:, created_at:, is_active:, name:, prefix:, last_used_at: nil)
37+
# API key metadata returned when listing keys.
38+
#
3739
# @param id [String]
3840
# @param created_at [Time]
3941
# @param is_active [Boolean]

lib/x_twitter_scraper/models/api_key_list_response.rb

Lines changed: 3 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -6,52 +6,11 @@ module Models
66
class APIKeyListResponse < XTwitterScraper::Internal::Type::BaseModel
77
# @!attribute keys
88
#
9-
# @return [Array<XTwitterScraper::Models::APIKeyListResponse::Key>]
10-
required :keys,
11-
-> { XTwitterScraper::Internal::Type::ArrayOf[XTwitterScraper::Models::APIKeyListResponse::Key] }
9+
# @return [Array<XTwitterScraper::Models::APIKey>]
10+
required :keys, -> { XTwitterScraper::Internal::Type::ArrayOf[XTwitterScraper::APIKey] }
1211

1312
# @!method initialize(keys:)
14-
# @param keys [Array<XTwitterScraper::Models::APIKeyListResponse::Key>]
15-
16-
class Key < XTwitterScraper::Internal::Type::BaseModel
17-
# @!attribute id
18-
#
19-
# @return [String]
20-
required :id, String
21-
22-
# @!attribute created_at
23-
#
24-
# @return [Time]
25-
required :created_at, Time, api_name: :createdAt
26-
27-
# @!attribute is_active
28-
#
29-
# @return [Boolean]
30-
required :is_active, XTwitterScraper::Internal::Type::Boolean, api_name: :isActive
31-
32-
# @!attribute name
33-
#
34-
# @return [String]
35-
required :name, String
36-
37-
# @!attribute prefix
38-
#
39-
# @return [String]
40-
required :prefix, String
41-
42-
# @!attribute last_used_at
43-
#
44-
# @return [Time, nil]
45-
optional :last_used_at, Time, api_name: :lastUsedAt
46-
47-
# @!method initialize(id:, created_at:, is_active:, name:, prefix:, last_used_at: nil)
48-
# @param id [String]
49-
# @param created_at [Time]
50-
# @param is_active [Boolean]
51-
# @param name [String]
52-
# @param prefix [String]
53-
# @param last_used_at [Time]
54-
end
13+
# @param keys [Array<XTwitterScraper::Models::APIKey>]
5514
end
5615
end
5716
end

lib/x_twitter_scraper/models/delivery.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ class Delivery < XTwitterScraper::Internal::Type::BaseModel
4444
optional :last_status_code, Integer, api_name: :lastStatusCode
4545

4646
# @!method initialize(id:, attempts:, created_at:, status:, stream_event_id:, delivered_at: nil, last_error: nil, last_status_code: nil)
47+
# Webhook delivery attempt record with status and retry count.
48+
#
4749
# @param id [String]
4850
# @param attempts [Integer]
4951
# @param created_at [Time]

0 commit comments

Comments
 (0)