Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
279a416
feat(api): api update
stainless-app[bot] Apr 2, 2026
010f63f
codegen metadata
stainless-app[bot] Apr 2, 2026
0fe0601
codegen metadata
stainless-app[bot] Apr 4, 2026
dbe6467
feat(api): api update
stainless-app[bot] Apr 4, 2026
89e3ff5
feat(api): api update
stainless-app[bot] Apr 7, 2026
f9c02a4
feat(api): api update
stainless-app[bot] Apr 8, 2026
c053ff2
feat(api): api update
stainless-app[bot] Apr 22, 2026
21e1e0f
feat(api): api update
stainless-app[bot] Apr 8, 2026
57ca5de
feat(api): api update
stainless-app[bot] Apr 8, 2026
534d3a3
codegen metadata
stainless-app[bot] Apr 8, 2026
276c693
codegen metadata
stainless-app[bot] Apr 8, 2026
301d2a6
chore: update SDK settings
stainless-app[bot] Apr 22, 2026
e427450
codegen metadata
stainless-app[bot] Apr 8, 2026
912b51e
codegen metadata
stainless-app[bot] Apr 8, 2026
b2f18f8
codegen metadata
stainless-app[bot] Apr 8, 2026
f6662e5
codegen metadata
stainless-app[bot] Apr 8, 2026
7a888a5
codegen metadata
stainless-app[bot] Apr 8, 2026
499dcc1
codegen metadata
stainless-app[bot] Apr 8, 2026
035f8f7
codegen metadata
stainless-app[bot] Apr 8, 2026
a64a1ea
codegen metadata
stainless-app[bot] Apr 8, 2026
d39a793
codegen metadata
stainless-app[bot] Apr 8, 2026
8decd7d
codegen metadata
stainless-app[bot] Apr 8, 2026
1ab1ce5
codegen metadata
stainless-app[bot] Apr 8, 2026
8ead179
codegen metadata
stainless-app[bot] Apr 8, 2026
26c783d
codegen metadata
stainless-app[bot] Apr 8, 2026
4df68f8
codegen metadata
stainless-app[bot] Apr 8, 2026
da870d6
release: 0.4.0
stainless-app[bot] Apr 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
11 changes: 4 additions & 7 deletions .github/workflows/publish-gem.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,6 @@ jobs:
publish:
name: publish
runs-on: ubuntu-latest
environment: rubygems
permissions:
contents: read
id-token: write

steps:
- uses: actions/checkout@v6
Expand All @@ -26,9 +22,10 @@ jobs:
- run: |-
bundle install

- name: Configure trusted publishing credentials
uses: rubygems/configure-rubygems-credentials@v1.0.0

- name: Publish to RubyGems.org
run: |
bash ./bin/publish-gem
env:
# `RUBYGEMS_HOST` is only required for private gem repositories, not https://rubygems.org
RUBYGEMS_HOST: ${{ secrets.X_TWITTER_SCRAPER_RUBYGEMS_HOST || secrets.RUBYGEMS_HOST }}
GEM_HOST_API_KEY: ${{ secrets.X_TWITTER_SCRAPER_GEM_HOST_API_KEY || secrets.GEM_HOST_API_KEY }}
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "0.3.0"
".": "0.4.0"
}
8 changes: 4 additions & 4 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 115
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/xquik%2Fx-twitter-scraper-93bb7d4f1475c8043af464ec88244a034456c549136c8477f284f0a33192e1c9.yml
openapi_spec_hash: 74dca63c872249274ad99b111dea0833
config_hash: 8894c96caeb6df84c9394518810221bd
configured_endpoints: 117
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/xquik%2Fx-twitter-scraper-d40c57a05527faf060d21c0e013729f371d88017b10680cea7c8fd6780ffaef5.yml
openapi_spec_hash: 597ebc460cf86740b9f6f7c95478dece
config_hash: e48b11ffdd2d30680081d5436848066d
25 changes: 25 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,30 @@
# Changelog

## 0.4.0 (2026-04-22)

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

### Features

* **api:** api update ([57ca5de](https://github.com/Xquik-dev/x-twitter-scraper-ruby/commit/57ca5deef4ab9b670bc0e143c00639a8c3da1258))
* **api:** api update ([21e1e0f](https://github.com/Xquik-dev/x-twitter-scraper-ruby/commit/21e1e0f3791b791ab09f8982edaae123ba8d45a1))
* **api:** api update ([c053ff2](https://github.com/Xquik-dev/x-twitter-scraper-ruby/commit/c053ff2fdc9a671ff1a6d6596a97d1ebb8a33eb2))
* **api:** api update ([f9c02a4](https://github.com/Xquik-dev/x-twitter-scraper-ruby/commit/f9c02a49240130a307fcbd1cfbcfaf999966fb06))
* **api:** api update ([89e3ff5](https://github.com/Xquik-dev/x-twitter-scraper-ruby/commit/89e3ff5905185e6223233618819d6dc87a2e87d7))
* **api:** api update ([dbe6467](https://github.com/Xquik-dev/x-twitter-scraper-ruby/commit/dbe6467a33987dcd3a65b78bfefca13b5123ae63))
* **api:** api update ([279a416](https://github.com/Xquik-dev/x-twitter-scraper-ruby/commit/279a416215ad266661cac5edd02e821e2f701d60))


### Bug Fixes

* **ci:** pin rubygems/configure-rubygems-credentials to v1.0.0 ([7d2cde5](https://github.com/Xquik-dev/x-twitter-scraper-ruby/commit/7d2cde520114bba9680b2c98fbe699f75f9b5c04))
* set homepage to docs.xquik.com, add documentation_uri to gemdocs ([0f8e806](https://github.com/Xquik-dev/x-twitter-scraper-ruby/commit/0f8e806ff20df4700054a7df0e17aa89e2da4859))


### Chores

* update SDK settings ([301d2a6](https://github.com/Xquik-dev/x-twitter-scraper-ruby/commit/301d2a616dfaf7c4ac15798a7463ecd3ef2770eb))

## 0.3.0 (2026-04-01)

Full Changelog: [v0.2.0...v0.3.0](https://github.com/Xquik-dev/x-twitter-scraper-ruby/compare/v0.2.0...v0.3.0)
Expand Down
2 changes: 1 addition & 1 deletion Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ GIT
PATH
remote: .
specs:
x-twitter-scraper (0.3.0)
x-twitter-scraper (0.4.0)
cgi
connection_pool

Expand Down
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ To use this gem, install via Bundler by adding the following to your application
<!-- x-release-please-start-version -->

```ruby
gem "x-twitter-scraper", "~> 0.3.0"
gem "x-twitter-scraper", "~> 0.4.0"
```

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

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

puts(response.has_next_page)
puts(paginated_tweets.has_next_page)
```

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

```ruby
response =
paginated_tweets =
x_twitter_scraper.x.tweets.search(
q: "from:elonmusk",
limit: 10,
Expand All @@ -164,7 +164,7 @@ response =
}
)

puts(response[:my_undocumented_property])
puts(paginated_tweets[:my_undocumented_property])
```

#### Undocumented request params
Expand Down
32 changes: 4 additions & 28 deletions lib/x_twitter_scraper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -74,13 +74,11 @@
require_relative "x_twitter_scraper/models/delivery"
require_relative "x_twitter_scraper/models/draft"
require_relative "x_twitter_scraper/models/draft_create_params"
require_relative "x_twitter_scraper/models/draft_create_response"
require_relative "x_twitter_scraper/models/draft_delete_params"
require_relative "x_twitter_scraper/models/draft_detail"
require_relative "x_twitter_scraper/models/draft_list_params"
require_relative "x_twitter_scraper/models/draft_list_response"
require_relative "x_twitter_scraper/models/draft_retrieve_params"
require_relative "x_twitter_scraper/models/draft_retrieve_response"
require_relative "x_twitter_scraper/models/draw_detail"
require_relative "x_twitter_scraper/models/draw_export_params"
require_relative "x_twitter_scraper/models/draw_list_item"
Expand All @@ -96,7 +94,6 @@
require_relative "x_twitter_scraper/models/event_list_params"
require_relative "x_twitter_scraper/models/event_list_response"
require_relative "x_twitter_scraper/models/event_retrieve_params"
require_relative "x_twitter_scraper/models/event_retrieve_response"
require_relative "x_twitter_scraper/models/event_type"
require_relative "x_twitter_scraper/models/extraction_estimate_cost_params"
require_relative "x_twitter_scraper/models/extraction_estimate_cost_response"
Expand All @@ -110,7 +107,6 @@
require_relative "x_twitter_scraper/models/extraction_run_response"
require_relative "x_twitter_scraper/models/integration"
require_relative "x_twitter_scraper/models/integration_create_params"
require_relative "x_twitter_scraper/models/integration_create_response"
require_relative "x_twitter_scraper/models/integration_delete_params"
require_relative "x_twitter_scraper/models/integration_delete_response"
require_relative "x_twitter_scraper/models/integration_delivery"
Expand All @@ -119,11 +115,9 @@
require_relative "x_twitter_scraper/models/integration_list_params"
require_relative "x_twitter_scraper/models/integration_list_response"
require_relative "x_twitter_scraper/models/integration_retrieve_params"
require_relative "x_twitter_scraper/models/integration_retrieve_response"
require_relative "x_twitter_scraper/models/integration_send_test_params"
require_relative "x_twitter_scraper/models/integration_send_test_response"
require_relative "x_twitter_scraper/models/integration_update_params"
require_relative "x_twitter_scraper/models/integration_update_response"
require_relative "x_twitter_scraper/models/monitor"
require_relative "x_twitter_scraper/models/monitor_create_params"
require_relative "x_twitter_scraper/models/monitor_create_response"
Expand All @@ -132,16 +126,13 @@
require_relative "x_twitter_scraper/models/monitor_list_params"
require_relative "x_twitter_scraper/models/monitor_list_response"
require_relative "x_twitter_scraper/models/monitor_retrieve_params"
require_relative "x_twitter_scraper/models/monitor_retrieve_response"
require_relative "x_twitter_scraper/models/monitor_update_params"
require_relative "x_twitter_scraper/models/monitor_update_response"
require_relative "x_twitter_scraper/models/paginated_tweets"
require_relative "x_twitter_scraper/models/paginated_users"
require_relative "x_twitter_scraper/models/radar_item"
require_relative "x_twitter_scraper/models/radar_retrieve_trending_topics_params"
require_relative "x_twitter_scraper/models/radar_retrieve_trending_topics_response"
require_relative "x_twitter_scraper/models/style_analyze_params"
require_relative "x_twitter_scraper/models/style_analyze_response"
require_relative "x_twitter_scraper/models/style_compare_params"
require_relative "x_twitter_scraper/models/style_compare_response"
require_relative "x_twitter_scraper/models/style_delete_params"
Expand All @@ -152,9 +143,7 @@
require_relative "x_twitter_scraper/models/style_profile"
require_relative "x_twitter_scraper/models/style_profile_summary"
require_relative "x_twitter_scraper/models/style_retrieve_params"
require_relative "x_twitter_scraper/models/style_retrieve_response"
require_relative "x_twitter_scraper/models/style_update_params"
require_relative "x_twitter_scraper/models/style_update_response"
require_relative "x_twitter_scraper/models/subscribe_create_params"
require_relative "x_twitter_scraper/models/subscribe_create_response"
require_relative "x_twitter_scraper/models/support/ticket_create_params"
Expand All @@ -181,8 +170,9 @@
require_relative "x_twitter_scraper/models/webhook_test_params"
require_relative "x_twitter_scraper/models/webhook_test_response"
require_relative "x_twitter_scraper/models/webhook_update_params"
require_relative "x_twitter_scraper/models/webhook_update_response"
require_relative "x_twitter_scraper/models/winner"
require_relative "x_twitter_scraper/models/x/account_bulk_retry_params"
require_relative "x_twitter_scraper/models/x/account_bulk_retry_response"
require_relative "x_twitter_scraper/models/x/account_create_params"
require_relative "x_twitter_scraper/models/x/account_create_response"
require_relative "x_twitter_scraper/models/x/account_delete_params"
Expand All @@ -192,15 +182,12 @@
require_relative "x_twitter_scraper/models/x/account_reauth_params"
require_relative "x_twitter_scraper/models/x/account_reauth_response"
require_relative "x_twitter_scraper/models/x/account_retrieve_params"
require_relative "x_twitter_scraper/models/x/account_retrieve_response"
require_relative "x_twitter_scraper/models/x/bookmark_list_params"
require_relative "x_twitter_scraper/models/x/bookmark_list_response"
require_relative "x_twitter_scraper/models/x/bookmark_retrieve_folders_params"
require_relative "x_twitter_scraper/models/x/bookmark_retrieve_folders_response"
require_relative "x_twitter_scraper/models/x/communities/join_create_params"
require_relative "x_twitter_scraper/models/x/communities/join_create_response"
require_relative "x_twitter_scraper/models/x/communities/join_delete_all_params"
require_relative "x_twitter_scraper/models/x/communities/join_delete_all_response"
require_relative "x_twitter_scraper/models/x/communities/tweet_list_by_community_params"
require_relative "x_twitter_scraper/models/x/communities/tweet_list_params"
require_relative "x_twitter_scraper/models/x/community_action_result"
require_relative "x_twitter_scraper/models/x/community_create_params"
Expand Down Expand Up @@ -239,15 +226,10 @@
require_relative "x_twitter_scraper/models/x/tweet_delete_response"
require_relative "x_twitter_scraper/models/x/tweet_detail"
require_relative "x_twitter_scraper/models/x/tweet_get_favoriters_params"
require_relative "x_twitter_scraper/models/x/tweet_get_favoriters_response"
require_relative "x_twitter_scraper/models/x/tweet_get_quotes_params"
require_relative "x_twitter_scraper/models/x/tweet_get_quotes_response"
require_relative "x_twitter_scraper/models/x/tweet_get_replies_params"
require_relative "x_twitter_scraper/models/x/tweet_get_replies_response"
require_relative "x_twitter_scraper/models/x/tweet_get_retweeters_params"
require_relative "x_twitter_scraper/models/x/tweet_get_retweeters_response"
require_relative "x_twitter_scraper/models/x/tweet_get_thread_params"
require_relative "x_twitter_scraper/models/x/tweet_get_thread_response"
require_relative "x_twitter_scraper/models/x/tweet_list_params"
require_relative "x_twitter_scraper/models/x/tweet_retrieve_params"
require_relative "x_twitter_scraper/models/x/tweet_retrieve_response"
Expand All @@ -260,23 +242,17 @@
require_relative "x_twitter_scraper/models/x/tweets/retweet_delete_params"
require_relative "x_twitter_scraper/models/x/tweets/retweet_delete_response"
require_relative "x_twitter_scraper/models/x/tweet_search_params"
require_relative "x_twitter_scraper/models/x/tweet_search_response"
require_relative "x_twitter_scraper/models/x/user_profile"
require_relative "x_twitter_scraper/models/x/user_retrieve_batch_params"
require_relative "x_twitter_scraper/models/x/user_retrieve_followers_params"
require_relative "x_twitter_scraper/models/x/user_retrieve_followers_you_know_params"
require_relative "x_twitter_scraper/models/x/user_retrieve_followers_you_know_response"
require_relative "x_twitter_scraper/models/x/user_retrieve_following_params"
require_relative "x_twitter_scraper/models/x/user_retrieve_likes_params"
require_relative "x_twitter_scraper/models/x/user_retrieve_likes_response"
require_relative "x_twitter_scraper/models/x/user_retrieve_media_params"
require_relative "x_twitter_scraper/models/x/user_retrieve_media_response"
require_relative "x_twitter_scraper/models/x/user_retrieve_mentions_params"
require_relative "x_twitter_scraper/models/x/user_retrieve_params"
require_relative "x_twitter_scraper/models/x/user_retrieve_response"
require_relative "x_twitter_scraper/models/x/user_retrieve_search_params"
require_relative "x_twitter_scraper/models/x/user_retrieve_tweets_params"
require_relative "x_twitter_scraper/models/x/user_retrieve_tweets_response"
require_relative "x_twitter_scraper/models/x/user_retrieve_verified_followers_params"
require_relative "x_twitter_scraper/models/x/users/follow_create_params"
require_relative "x_twitter_scraper/models/x/users/follow_create_response"
Expand All @@ -287,10 +263,10 @@
require_relative "x_twitter_scraper/models/x_get_article_params"
require_relative "x_twitter_scraper/models/x_get_article_response"
require_relative "x_twitter_scraper/models/x_get_home_timeline_params"
require_relative "x_twitter_scraper/models/x_get_home_timeline_response"
require_relative "x_twitter_scraper/models/x_get_notifications_params"
require_relative "x_twitter_scraper/models/x_get_notifications_response"
require_relative "x_twitter_scraper/models/x_get_trends_params"
require_relative "x_twitter_scraper/models/x_get_trends_response"
require_relative "x_twitter_scraper/models"
require_relative "x_twitter_scraper/resources/account"
require_relative "x_twitter_scraper/resources/api_keys"
Expand Down
2 changes: 2 additions & 0 deletions lib/x_twitter_scraper/models/api_key.rb
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@ class APIKey < XTwitterScraper::Internal::Type::BaseModel
optional :last_used_at, Time, api_name: :lastUsedAt

# @!method initialize(id:, created_at:, is_active:, name:, prefix:, last_used_at: nil)
# API key metadata returned when listing keys.
#
# @param id [String]
# @param created_at [Time]
# @param is_active [Boolean]
Expand Down
47 changes: 3 additions & 44 deletions lib/x_twitter_scraper/models/api_key_list_response.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,52 +6,11 @@ module Models
class APIKeyListResponse < XTwitterScraper::Internal::Type::BaseModel
# @!attribute keys
#
# @return [Array<XTwitterScraper::Models::APIKeyListResponse::Key>]
required :keys,
-> { XTwitterScraper::Internal::Type::ArrayOf[XTwitterScraper::Models::APIKeyListResponse::Key] }
# @return [Array<XTwitterScraper::Models::APIKey>]
required :keys, -> { XTwitterScraper::Internal::Type::ArrayOf[XTwitterScraper::APIKey] }

# @!method initialize(keys:)
# @param keys [Array<XTwitterScraper::Models::APIKeyListResponse::Key>]

class Key < XTwitterScraper::Internal::Type::BaseModel
# @!attribute id
#
# @return [String]
required :id, String

# @!attribute created_at
#
# @return [Time]
required :created_at, Time, api_name: :createdAt

# @!attribute is_active
#
# @return [Boolean]
required :is_active, XTwitterScraper::Internal::Type::Boolean, api_name: :isActive

# @!attribute name
#
# @return [String]
required :name, String

# @!attribute prefix
#
# @return [String]
required :prefix, String

# @!attribute last_used_at
#
# @return [Time, nil]
optional :last_used_at, Time, api_name: :lastUsedAt

# @!method initialize(id:, created_at:, is_active:, name:, prefix:, last_used_at: nil)
# @param id [String]
# @param created_at [Time]
# @param is_active [Boolean]
# @param name [String]
# @param prefix [String]
# @param last_used_at [Time]
end
# @param keys [Array<XTwitterScraper::Models::APIKey>]
end
end
end
2 changes: 2 additions & 0 deletions lib/x_twitter_scraper/models/delivery.rb
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@ class Delivery < XTwitterScraper::Internal::Type::BaseModel
optional :last_status_code, Integer, api_name: :lastStatusCode

# @!method initialize(id:, attempts:, created_at:, status:, stream_event_id:, delivered_at: nil, last_error: nil, last_status_code: nil)
# Webhook delivery attempt record with status and retry count.
#
# @param id [String]
# @param attempts [Integer]
# @param created_at [Time]
Expand Down
2 changes: 2 additions & 0 deletions lib/x_twitter_scraper/models/draft.rb
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@ class Draft < XTwitterScraper::Internal::Type::BaseModel
optional :topic, String

# @!method initialize(id:, created_at:, text:, goal: nil, topic: nil)
# Saved tweet draft with optional topic and goal.
#
# @param id [String]
# @param created_at [Time]
# @param text [String]
Expand Down
46 changes: 0 additions & 46 deletions lib/x_twitter_scraper/models/draft_create_response.rb

This file was deleted.

Loading
Loading