searchapi-ruby 0.1.0 → 1.1.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fd0c3821dfacb78faa8f2768744e84d3943312e1af2dbd5708b034c0bb1de8d3
4
- data.tar.gz: fdb6dce18bced03bd1474f3b67744037488cf4d441fb69f3a1053b3c997bb200
3
+ metadata.gz: 336197178a7c4938ddb311974643989fc3a2a3b1a888bdd17f7a20feb11051ce
4
+ data.tar.gz: 478f58a8faac2b00d5257af308c62eb22141f3a3196e0b0396869386698f50c5
5
5
  SHA512:
6
- metadata.gz: 780aa7eb133990441127158e0d28dfd52d1b8563e139774fe1fc46921ae5baeb26a0f586ef3e72449fbf402d5b83ed31e8232d1d8aa8486db7f7eef0818579d4
7
- data.tar.gz: c400ee40edef5d2ce6bdeefdb0f1cf1e983b545c54adec071494108d82abfd8b285b0d98bcb5b9ecb05a3d432b95bcec23b39ad7342a30d5bc5b8520c7f94627
6
+ metadata.gz: 16e36b813639dabe78b0ad10fccc808c11cd3860467ca7f17cff0aacb1ef175f40c5e26a8f313abd3fae3af3eb7cd5612c7b7db93fc68d4519946b933f05f800
7
+ data.tar.gz: 852ddcb4ce850abe507857c826b2d610b7678bbe7a66f7a9ff3e449c93a6a4e8675036a800460d89530fd3d795477274909084cf39a90649fde34702270da1b4
data/CHANGELOG.md CHANGED
@@ -4,6 +4,18 @@ All notable changes to this project will be documented in this file.
4
4
 
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/), and this project adheres to [Semantic Versioning](https://semver.org/).
6
6
 
7
+ ## [1.1.0] - 2026-03-15
8
+
9
+ ### Added
10
+
11
+ - **14 new search engine resources** (63 total):
12
+ - Google Maps: Reviews, Photos
13
+ - Airbnb: Property, Property Reviews
14
+ - Meta Ad Library: Page Search, Ad Details, Page Info
15
+ - YouTube: Transcripts, Video, Comments, Channel, Channel Videos
16
+ - Google Locations (geo-targeting lookup)
17
+ - TikTok Ads Library Advertiser Search
18
+
7
19
  ## [1.0.0] - 2026-02-21
8
20
 
9
21
  ### Added
data/README.md CHANGED
@@ -9,7 +9,7 @@
9
9
 
10
10
  <p align="center">
11
11
  <strong>Full-featured Ruby client for <a href="https://www.searchapi.io/">SearchAPI.io</a></strong><br/>
12
- Access <b>49 search engines</b> from a single, consistent interface.
12
+ Access <b>63 search engines</b> from a single, consistent interface.
13
13
  </p>
14
14
 
15
15
  <p align="center">
@@ -27,11 +27,13 @@
27
27
  - [Supported Engines](#supported-engines)
28
28
  - [Usage](#usage)
29
29
  <details>
30
- <summary>All 49 engines...</summary>
30
+ <summary>All 63 engines...</summary>
31
31
 
32
32
  - [Google Search](#google-search)
33
33
  - [Google Rank Tracking](#google-rank-tracking)
34
34
  - [Google Maps](#google-maps)
35
+ - [Google Maps Place](#google-maps-place)
36
+ - [Google Maps Reviews](#google-maps-reviews)
35
37
  - [Google News](#google-news)
36
38
  - [Google Scholar](#google-scholar)
37
39
  - [Google Shopping](#google-shopping)
@@ -54,7 +56,13 @@
54
56
  - [Google About This Domain](#google-about-this-domain)
55
57
  - [Google Ads Transparency Center](#google-ads-transparency-center)
56
58
  - [Google Play Store](#google-play-store)
59
+ - [Google Locations](#google-locations)
57
60
  - [YouTube](#youtube)
61
+ - [YouTube Transcripts](#youtube-transcripts)
62
+ - [YouTube Video](#youtube-video)
63
+ - [YouTube Comments](#youtube-comments)
64
+ - [YouTube Channel](#youtube-channel)
65
+ - [YouTube Channel Videos](#youtube-channel-videos)
58
66
  - [Bing](#bing)
59
67
  - [Bing Images](#bing-images)
60
68
  - [Bing Videos](#bing-videos)
@@ -69,6 +77,8 @@
69
77
  - [eBay](#ebay)
70
78
  - [Shein](#shein)
71
79
  - [Airbnb](#airbnb)
80
+ - [Airbnb Property](#airbnb-property)
81
+ - [Airbnb Property Reviews](#airbnb-property-reviews)
72
82
  - [TripAdvisor](#tripadvisor)
73
83
  - [Apple App Store](#apple-app-store)
74
84
  - [Instagram Profile](#instagram-profile)
@@ -77,9 +87,13 @@
77
87
  - [LinkedIn Ad Library](#linkedin-ad-library)
78
88
  - [Reddit Ad Library](#reddit-ad-library)
79
89
  - [Meta Ad Library](#meta-ad-library)
90
+ - [Meta Ad Library Page Search](#meta-ad-library-page-search)
91
+ - [Meta Ad Library Ad Details](#meta-ad-library-ad-details)
92
+ - [Meta Ad Library Page Info](#meta-ad-library-page-info)
80
93
  - [TikTok Ads Library](#tiktok-ads-library)
94
+ - [TikTok Ads Library Advertiser Search](#tiktok-ads-library-advertiser-search)
81
95
 
82
- </details>
96
+ </details>
83
97
  - [Response Object](#response-object)
84
98
  - [Error Handling](#error-handling)
85
99
  - [Advanced Usage](#advanced-usage)
@@ -147,13 +161,15 @@ end
147
161
  ## Supported Engines
148
162
 
149
163
  <details>
150
- <summary><b>View all 49 supported engines</b></summary>
164
+ <summary><b>View all 63 supported engines</b></summary>
151
165
 
152
166
  | Category | Engine | Accessor |
153
167
  |----------|--------|----------|
154
168
  | **Google** | Google Search | `SearchApi.google` |
155
169
  | | Google Rank Tracking | `SearchApi.google_rank_tracking` |
156
170
  | | Google Maps | `SearchApi.google_maps` |
171
+ | | Google Maps Place | `SearchApi.google_maps_place` |
172
+ | | Google Maps Reviews | `SearchApi.google_maps_reviews` |
157
173
  | | Google Local | `SearchApi.google_local` |
158
174
  | | Google News | `SearchApi.google_news` |
159
175
  | | Google Scholar | `SearchApi.google_scholar` |
@@ -176,6 +192,7 @@ end
176
192
  | | Google About This Domain | `SearchApi.google_about_this_domain` |
177
193
  | | Google Ads Transparency | `SearchApi.google_ads_transparency_center` |
178
194
  | | Google Play Store | `SearchApi.google_play_store` |
195
+ | | Google Locations | `SearchApi.google_locations` |
179
196
  | **Other Search Engines** | Bing | `SearchApi.bing` |
180
197
  | | Bing Images | `SearchApi.bing_images` |
181
198
  | | Bing Videos | `SearchApi.bing_videos` |
@@ -186,11 +203,18 @@ end
186
203
  | | Yahoo | `SearchApi.yahoo` |
187
204
  | | Naver | `SearchApi.naver` |
188
205
  | | YouTube | `SearchApi.youtube` |
206
+ | | YouTube Transcripts | `SearchApi.youtube_transcripts` |
207
+ | | YouTube Video | `SearchApi.youtube_video` |
208
+ | | YouTube Comments | `SearchApi.youtube_comments` |
209
+ | | YouTube Channel | `SearchApi.youtube_channel` |
210
+ | | YouTube Channel Videos | `SearchApi.youtube_channel_videos` |
189
211
  | **E-commerce** | Amazon | `SearchApi.amazon_search` |
190
212
  | | Walmart | `SearchApi.walmart_search` |
191
213
  | | eBay | `SearchApi.ebay_search` |
192
214
  | | Shein | `SearchApi.shein_search` |
193
215
  | **Travel** | Airbnb | `SearchApi.airbnb` |
216
+ | | Airbnb Property | `SearchApi.airbnb_property` |
217
+ | | Airbnb Property Reviews | `SearchApi.airbnb_property_reviews` |
194
218
  | | TripAdvisor | `SearchApi.tripadvisor` |
195
219
  | **App Stores** | Apple App Store | `SearchApi.apple_app_store` |
196
220
  | **Social Media** | Instagram Profile | `SearchApi.instagram_profile` |
@@ -199,7 +223,11 @@ end
199
223
  | **Ad Libraries** | LinkedIn Ad Library | `SearchApi.linkedin_ad_library` |
200
224
  | | Reddit Ad Library | `SearchApi.reddit_ad_library` |
201
225
  | | Meta Ad Library | `SearchApi.meta_ad_library` |
226
+ | | Meta Ad Library Page Search | `SearchApi.meta_ad_library_page_search` |
227
+ | | Meta Ad Library Ad Details | `SearchApi.meta_ad_library_ad_details` |
228
+ | | Meta Ad Library Page Info | `SearchApi.meta_ad_library_page_info` |
202
229
  | | TikTok Ads Library | `SearchApi.tiktok_ads_library` |
230
+ | | TikTok Ads Library Advertiser Search | `SearchApi.tiktok_ads_library_advertiser_search` |
203
231
 
204
232
  </details>
205
233
 
@@ -266,6 +294,49 @@ response = SearchApi.google_maps.directions(
266
294
  ```
267
295
 
268
296
 
297
+ </details>
298
+
299
+ <details>
300
+ <summary><b>Google Maps Place</b></summary>
301
+
302
+
303
+ ```ruby
304
+ # By data_id
305
+ response = SearchApi.google_maps_place.search(data_id: "0x60188b857...")
306
+
307
+ # By place_id
308
+ response = SearchApi.google_maps_place.search(place_id: "ChIJN1t_tDeuEmsRUsoyG83frY4")
309
+
310
+ # With localization
311
+ response = SearchApi.google_maps_place.search(data_id: "0x60188b857...", hl: "es", gl: "mx")
312
+ ```
313
+
314
+
315
+ </details>
316
+
317
+ <details>
318
+ <summary><b>Google Maps Reviews</b></summary>
319
+
320
+
321
+ ```ruby
322
+ # Basic reviews
323
+ response = SearchApi.google_maps_reviews.search(data_id: "0x60188b857...")
324
+
325
+ # With sorting and pagination
326
+ response = SearchApi.google_maps_reviews.search(
327
+ data_id: "0x60188b857...",
328
+ sort_by: "newest",
329
+ num: 20
330
+ )
331
+
332
+ # Paginate through results
333
+ response = SearchApi.google_maps_reviews.search(
334
+ data_id: "0x60188b857...",
335
+ next_page_token: response.data["serpapi_pagination"]["next_page_token"]
336
+ )
337
+ ```
338
+
339
+
269
340
  </details>
270
341
 
271
342
  <details>
@@ -639,6 +710,21 @@ response = SearchApi.google_play_store.search(store: "apps", q: "fitness", gl: "
639
710
  ```
640
711
 
641
712
 
713
+ </details>
714
+
715
+ <details>
716
+ <summary><b>Google Locations</b></summary>
717
+
718
+
719
+ ```ruby
720
+ # Find geo-targeting locations for use with other Google engines
721
+ response = SearchApi.google_locations.search(q: "new york")
722
+
723
+ # Limit results
724
+ response = SearchApi.google_locations.search(q: "london", limit: 5)
725
+ ```
726
+
727
+
642
728
  </details>
643
729
 
644
730
  <details>
@@ -653,6 +739,82 @@ response = SearchApi.youtube.search("cooking", gl: "us", hl: "en")
653
739
  ```
654
740
 
655
741
 
742
+ </details>
743
+
744
+ <details>
745
+ <summary><b>YouTube Transcripts</b></summary>
746
+
747
+
748
+ ```ruby
749
+ response = SearchApi.youtube_transcripts.search(video_id: "dQw4w9WgXcQ")
750
+
751
+ # In a specific language
752
+ response = SearchApi.youtube_transcripts.search(video_id: "dQw4w9WgXcQ", lang: "es")
753
+ ```
754
+
755
+
756
+ </details>
757
+
758
+ <details>
759
+ <summary><b>YouTube Video</b></summary>
760
+
761
+
762
+ ```ruby
763
+ response = SearchApi.youtube_video.search(video_id: "dQw4w9WgXcQ")
764
+
765
+ # With localization
766
+ response = SearchApi.youtube_video.search(video_id: "dQw4w9WgXcQ", gl: "us", hl: "en")
767
+ ```
768
+
769
+
770
+ </details>
771
+
772
+ <details>
773
+ <summary><b>YouTube Comments</b></summary>
774
+
775
+
776
+ ```ruby
777
+ response = SearchApi.youtube_comments.search(video_id: "dQw4w9WgXcQ")
778
+
779
+ # Paginate through comments
780
+ response = SearchApi.youtube_comments.search(
781
+ video_id: "dQw4w9WgXcQ",
782
+ next_page_token: response.data["pagination"]["next_page_token"]
783
+ )
784
+ ```
785
+
786
+
787
+ </details>
788
+
789
+ <details>
790
+ <summary><b>YouTube Channel</b></summary>
791
+
792
+
793
+ ```ruby
794
+ response = SearchApi.youtube_channel.search(channel_id: "UCxxxxxx")
795
+
796
+ # With localization
797
+ response = SearchApi.youtube_channel.search(channel_id: "UCxxxxxx", gl: "us", hl: "en")
798
+ ```
799
+
800
+
801
+ </details>
802
+
803
+ <details>
804
+ <summary><b>YouTube Channel Videos</b></summary>
805
+
806
+
807
+ ```ruby
808
+ response = SearchApi.youtube_channel_videos.search(channel_id: "UCxxxxxx")
809
+
810
+ # Paginate through videos
811
+ response = SearchApi.youtube_channel_videos.search(
812
+ channel_id: "UCxxxxxx",
813
+ next_page_token: response.data["pagination"]["next_page_token"]
814
+ )
815
+ ```
816
+
817
+
656
818
  </details>
657
819
 
658
820
  <details>
@@ -843,6 +1005,47 @@ response = SearchApi.airbnb.search("Tulum",
843
1005
  ```
844
1006
 
845
1007
 
1008
+ </details>
1009
+
1010
+ <details>
1011
+ <summary><b>Airbnb Property</b></summary>
1012
+
1013
+
1014
+ ```ruby
1015
+ # By property ID
1016
+ response = SearchApi.airbnb_property.search(property_id: "12345678")
1017
+
1018
+ # With dates and guests
1019
+ response = SearchApi.airbnb_property.search(
1020
+ property_id: "12345678",
1021
+ check_in_date: "2026-06-15",
1022
+ check_out_date: "2026-06-22",
1023
+ adults: 2
1024
+ )
1025
+
1026
+ # By booking token
1027
+ response = SearchApi.airbnb_property.search(booking_token: "token_from_search_result")
1028
+ ```
1029
+
1030
+
1031
+ </details>
1032
+
1033
+ <details>
1034
+ <summary><b>Airbnb Property Reviews</b></summary>
1035
+
1036
+
1037
+ ```ruby
1038
+ response = SearchApi.airbnb_property_reviews.search(property_id: "12345678")
1039
+
1040
+ # With sorting and pagination
1041
+ response = SearchApi.airbnb_property_reviews.search(
1042
+ property_id: "12345678",
1043
+ sort_by: "most_recent",
1044
+ page: 2
1045
+ )
1046
+ ```
1047
+
1048
+
846
1049
  </details>
847
1050
 
848
1051
  <details>
@@ -959,6 +1162,55 @@ response = SearchApi.meta_ad_library.search(
959
1162
  ```
960
1163
 
961
1164
 
1165
+ </details>
1166
+
1167
+ <details>
1168
+ <summary><b>Meta Ad Library Page Search</b></summary>
1169
+
1170
+
1171
+ ```ruby
1172
+ # Search for advertiser pages
1173
+ response = SearchApi.meta_ad_library_page_search.search(q: "Nike")
1174
+
1175
+ # With filters
1176
+ response = SearchApi.meta_ad_library_page_search.search(
1177
+ q: "Nike",
1178
+ country: "US",
1179
+ ad_type: "political"
1180
+ )
1181
+ ```
1182
+
1183
+
1184
+ </details>
1185
+
1186
+ <details>
1187
+ <summary><b>Meta Ad Library Ad Details</b></summary>
1188
+
1189
+
1190
+ ```ruby
1191
+ response = SearchApi.meta_ad_library_ad_details.search(ad_archive_id: "123456789")
1192
+
1193
+ # Political ad with regional transparency data
1194
+ response = SearchApi.meta_ad_library_ad_details.search(
1195
+ ad_archive_id: "123456789",
1196
+ is_political: true,
1197
+ country: "US",
1198
+ page_id: "987654321"
1199
+ )
1200
+ ```
1201
+
1202
+
1203
+ </details>
1204
+
1205
+ <details>
1206
+ <summary><b>Meta Ad Library Page Info</b></summary>
1207
+
1208
+
1209
+ ```ruby
1210
+ response = SearchApi.meta_ad_library_page_info.search(page_id: "123456789")
1211
+ ```
1212
+
1213
+
962
1214
  </details>
963
1215
 
964
1216
  <details>
@@ -975,6 +1227,17 @@ response = SearchApi.tiktok_ads_library.search(
975
1227
 
976
1228
 
977
1229
  </details>
1230
+ <details>
1231
+ <summary><b>TikTok Ads Library Advertiser Search</b></summary>
1232
+
1233
+
1234
+ ```ruby
1235
+ response = SearchApi.tiktok_ads_library_advertiser_search.search(q: "Nike")
1236
+ ```
1237
+
1238
+
1239
+ </details>
1240
+
978
1241
  ## Response Object
979
1242
 
980
1243
  Every API call returns a `SearchApi::Response`:
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SearchApi
4
+ module Resources
5
+ class AirbnbProperty < Resource
6
+ def search(property_id: nil, booking_token: nil, **params)
7
+ params[:property_id] = property_id if property_id
8
+ params[:booking_token] = booking_token if booking_token
9
+ get(**params)
10
+ end
11
+
12
+ private
13
+
14
+ def engine_name
15
+ "airbnb_property"
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SearchApi
4
+ module Resources
5
+ class AirbnbPropertyReviews < Resource
6
+ def search(property_id:, **params)
7
+ get(property_id: property_id, **params)
8
+ end
9
+
10
+ private
11
+
12
+ def engine_name
13
+ "airbnb_property_reviews"
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SearchApi
4
+ module Resources
5
+ class GoogleLocations < Resource
6
+ def search(q:, **params)
7
+ get(q: q, **params)
8
+ end
9
+
10
+ private
11
+
12
+ def engine_name
13
+ "google_locations"
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SearchApi
4
+ module Resources
5
+ class GoogleMapsPlace < Resource
6
+ def search(data_id: nil, place_id: nil, **params)
7
+ params[:data_id] = data_id if data_id
8
+ params[:place_id] = place_id if place_id
9
+ get(**params)
10
+ end
11
+
12
+ private
13
+
14
+ def engine_name
15
+ "google_maps_place"
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SearchApi
4
+ module Resources
5
+ class GoogleMapsReviews < Resource
6
+ def search(data_id: nil, place_id: nil, **params)
7
+ params[:data_id] = data_id if data_id
8
+ params[:place_id] = place_id if place_id
9
+ get(**params)
10
+ end
11
+
12
+ private
13
+
14
+ def engine_name
15
+ "google_maps_reviews"
16
+ end
17
+ end
18
+ end
19
+ end
@@ -14,4 +14,4 @@ module SearchApi
14
14
  end
15
15
  end
16
16
  end
17
- end
17
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SearchApi
4
+ module Resources
5
+ class MetaAdLibraryAdDetails < Resource
6
+ def search(ad_archive_id:, **params)
7
+ get(ad_archive_id: ad_archive_id, **params)
8
+ end
9
+
10
+ private
11
+
12
+ def engine_name
13
+ "meta_ad_library_ad_details"
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SearchApi
4
+ module Resources
5
+ class MetaAdLibraryPageInfo < Resource
6
+ def search(page_id:, **params)
7
+ get(page_id: page_id, **params)
8
+ end
9
+
10
+ private
11
+
12
+ def engine_name
13
+ "meta_ad_library_page_info"
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SearchApi
4
+ module Resources
5
+ class MetaAdLibraryPageSearch < Resource
6
+ def search(q:, **params)
7
+ get(q: q, **params)
8
+ end
9
+
10
+ private
11
+
12
+ def engine_name
13
+ "meta_ad_library_page_search"
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SearchApi
4
+ module Resources
5
+ class TiktokAdsLibraryAdvertiserSearch < Resource
6
+ def search(q:, **params)
7
+ get(q: q, **params)
8
+ end
9
+
10
+ private
11
+
12
+ def engine_name
13
+ "tiktok_ads_library_advertiser_search"
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SearchApi
4
+ module Resources
5
+ class YouTubeChannel < Resource
6
+ def search(channel_id:, **params)
7
+ get(channel_id: channel_id, **params)
8
+ end
9
+
10
+ private
11
+
12
+ def engine_name
13
+ "youtube_channel"
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SearchApi
4
+ module Resources
5
+ class YouTubeChannelVideos < Resource
6
+ def search(channel_id:, **params)
7
+ get(channel_id: channel_id, **params)
8
+ end
9
+
10
+ private
11
+
12
+ def engine_name
13
+ "youtube_channel_videos"
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SearchApi
4
+ module Resources
5
+ class YouTubeComments < Resource
6
+ def search(video_id:, **params)
7
+ get(video_id: video_id, **params)
8
+ end
9
+
10
+ private
11
+
12
+ def engine_name
13
+ "youtube_comments"
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SearchApi
4
+ module Resources
5
+ class YouTubeTranscripts < Resource
6
+ def search(video_id:, **params)
7
+ get(video_id: video_id, **params)
8
+ end
9
+
10
+ private
11
+
12
+ def engine_name
13
+ "youtube_transcripts"
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SearchApi
4
+ module Resources
5
+ class YouTubeVideo < Resource
6
+ def search(video_id:, **params)
7
+ get(video_id: video_id, **params)
8
+ end
9
+
10
+ private
11
+
12
+ def engine_name
13
+ "youtube_video"
14
+ end
15
+ end
16
+ end
17
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SearchApi
4
- VERSION = "0.1.0"
4
+ VERSION = "1.1.0"
5
5
  end
data/lib/searchapi.rb CHANGED
@@ -12,6 +12,8 @@ require_relative "searchapi/resources/google"
12
12
  require_relative "searchapi/resources/google_rank_tracking"
13
13
  require_relative "searchapi/resources/google_events"
14
14
  require_relative "searchapi/resources/google_maps"
15
+ require_relative "searchapi/resources/google_maps_place"
16
+ require_relative "searchapi/resources/google_maps_reviews"
15
17
  require_relative "searchapi/resources/google_scholar"
16
18
  require_relative "searchapi/resources/google_news"
17
19
  require_relative "searchapi/resources/google_jobs"
@@ -33,6 +35,7 @@ require_relative "searchapi/resources/google_forums"
33
35
  require_relative "searchapi/resources/google_patents"
34
36
  require_relative "searchapi/resources/google_ai_overview"
35
37
  require_relative "searchapi/resources/google_play_store"
38
+ require_relative "searchapi/resources/google_locations"
36
39
 
37
40
  # Other search engines
38
41
  require_relative "searchapi/resources/amazon_search"
@@ -46,6 +49,11 @@ require_relative "searchapi/resources/duckduckgo"
46
49
  require_relative "searchapi/resources/yahoo"
47
50
  require_relative "searchapi/resources/naver"
48
51
  require_relative "searchapi/resources/youtube"
52
+ require_relative "searchapi/resources/youtube_transcripts"
53
+ require_relative "searchapi/resources/youtube_video"
54
+ require_relative "searchapi/resources/youtube_comments"
55
+ require_relative "searchapi/resources/youtube_channel"
56
+ require_relative "searchapi/resources/youtube_channel_videos"
49
57
 
50
58
  # App stores
51
59
  require_relative "searchapi/resources/apple_app_store"
@@ -57,6 +65,8 @@ require_relative "searchapi/resources/ebay_search"
57
65
 
58
66
  # Travel & hospitality
59
67
  require_relative "searchapi/resources/airbnb"
68
+ require_relative "searchapi/resources/airbnb_property"
69
+ require_relative "searchapi/resources/airbnb_property_reviews"
60
70
  require_relative "searchapi/resources/tripadvisor"
61
71
 
62
72
  # Social media profiles
@@ -68,7 +78,11 @@ require_relative "searchapi/resources/facebook_business_page"
68
78
  require_relative "searchapi/resources/linkedin_ad_library"
69
79
  require_relative "searchapi/resources/reddit_ad_library"
70
80
  require_relative "searchapi/resources/meta_ad_library"
81
+ require_relative "searchapi/resources/meta_ad_library_page_search"
82
+ require_relative "searchapi/resources/meta_ad_library_ad_details"
83
+ require_relative "searchapi/resources/meta_ad_library_page_info"
71
84
  require_relative "searchapi/resources/tiktok_ads_library"
85
+ require_relative "searchapi/resources/tiktok_ads_library_advertiser_search"
72
86
 
73
87
  module SearchApi
74
88
  # Registry mapping accessor names to resource classes.
@@ -78,6 +92,8 @@ module SearchApi
78
92
  google_rank_tracking: Resources::GoogleRankTracking,
79
93
  google_events: Resources::GoogleEvents,
80
94
  google_maps: Resources::GoogleMaps,
95
+ google_maps_place: Resources::GoogleMapsPlace,
96
+ google_maps_reviews: Resources::GoogleMapsReviews,
81
97
  google_scholar: Resources::GoogleScholar,
82
98
  google_news: Resources::GoogleNews,
83
99
  google_jobs: Resources::GoogleJobs,
@@ -99,6 +115,7 @@ module SearchApi
99
115
  google_patents: Resources::GooglePatents,
100
116
  google_ai_overview: Resources::GoogleAiOverview,
101
117
  google_play_store: Resources::GooglePlayStore,
118
+ google_locations: Resources::GoogleLocations,
102
119
 
103
120
  # Other search engines
104
121
  amazon_search: Resources::AmazonSearch,
@@ -112,6 +129,11 @@ module SearchApi
112
129
  yahoo: Resources::Yahoo,
113
130
  naver: Resources::Naver,
114
131
  youtube: Resources::YouTube,
132
+ youtube_transcripts: Resources::YouTubeTranscripts,
133
+ youtube_video: Resources::YouTubeVideo,
134
+ youtube_comments: Resources::YouTubeComments,
135
+ youtube_channel: Resources::YouTubeChannel,
136
+ youtube_channel_videos: Resources::YouTubeChannelVideos,
115
137
 
116
138
  # App stores
117
139
  apple_app_store: Resources::AppleAppStore,
@@ -123,6 +145,8 @@ module SearchApi
123
145
 
124
146
  # Travel & hospitality
125
147
  airbnb: Resources::Airbnb,
148
+ airbnb_property: Resources::AirbnbProperty,
149
+ airbnb_property_reviews: Resources::AirbnbPropertyReviews,
126
150
  tripadvisor: Resources::TripAdvisor,
127
151
 
128
152
  # Social media profiles
@@ -134,7 +158,11 @@ module SearchApi
134
158
  linkedin_ad_library: Resources::LinkedinAdLibrary,
135
159
  reddit_ad_library: Resources::RedditAdLibrary,
136
160
  meta_ad_library: Resources::MetaAdLibrary,
137
- tiktok_ads_library: Resources::TiktokAdsLibrary
161
+ meta_ad_library_page_search: Resources::MetaAdLibraryPageSearch,
162
+ meta_ad_library_ad_details: Resources::MetaAdLibraryAdDetails,
163
+ meta_ad_library_page_info: Resources::MetaAdLibraryPageInfo,
164
+ tiktok_ads_library: Resources::TiktokAdsLibrary,
165
+ tiktok_ads_library_advertiser_search: Resources::TiktokAdsLibraryAdvertiserSearch
138
166
  }.freeze
139
167
 
140
168
  class << self
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: searchapi-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - aalvaaro
@@ -43,11 +43,11 @@ dependencies:
43
43
  - - "~>"
44
44
  - !ruby/object:Gem::Version
45
45
  version: '2.0'
46
- description: Full-featured Ruby client for SearchAPI.io. Access 49 search engines
46
+ description: Full-featured Ruby client for SearchAPI.io. Access 63 search engines
47
47
  including Google, Bing, Baidu, Yandex, DuckDuckGo, YouTube, Amazon, Walmart, Airbnb,
48
48
  TripAdvisor, social media profiles, ad libraries, and more.
49
49
  email:
50
- - ''
50
+ - hola@alvarodelgado.dev
51
51
  executables: []
52
52
  extensions: []
53
53
  extra_rdoc_files: []
@@ -61,6 +61,8 @@ files:
61
61
  - lib/searchapi/error.rb
62
62
  - lib/searchapi/resource.rb
63
63
  - lib/searchapi/resources/airbnb.rb
64
+ - lib/searchapi/resources/airbnb_property.rb
65
+ - lib/searchapi/resources/airbnb_property_reviews.rb
64
66
  - lib/searchapi/resources/amazon_search.rb
65
67
  - lib/searchapi/resources/apple_app_store.rb
66
68
  - lib/searchapi/resources/baidu.rb
@@ -85,7 +87,10 @@ files:
85
87
  - lib/searchapi/resources/google_jobs.rb
86
88
  - lib/searchapi/resources/google_lens.rb
87
89
  - lib/searchapi/resources/google_local.rb
90
+ - lib/searchapi/resources/google_locations.rb
88
91
  - lib/searchapi/resources/google_maps.rb
92
+ - lib/searchapi/resources/google_maps_place.rb
93
+ - lib/searchapi/resources/google_maps_reviews.rb
89
94
  - lib/searchapi/resources/google_news.rb
90
95
  - lib/searchapi/resources/google_patents.rb
91
96
  - lib/searchapi/resources/google_play_store.rb
@@ -98,10 +103,14 @@ files:
98
103
  - lib/searchapi/resources/instagram_profile.rb
99
104
  - lib/searchapi/resources/linkedin_ad_library.rb
100
105
  - lib/searchapi/resources/meta_ad_library.rb
106
+ - lib/searchapi/resources/meta_ad_library_ad_details.rb
107
+ - lib/searchapi/resources/meta_ad_library_page_info.rb
108
+ - lib/searchapi/resources/meta_ad_library_page_search.rb
101
109
  - lib/searchapi/resources/naver.rb
102
110
  - lib/searchapi/resources/reddit_ad_library.rb
103
111
  - lib/searchapi/resources/shein_search.rb
104
112
  - lib/searchapi/resources/tiktok_ads_library.rb
113
+ - lib/searchapi/resources/tiktok_ads_library_advertiser_search.rb
105
114
  - lib/searchapi/resources/tiktok_profile.rb
106
115
  - lib/searchapi/resources/tripadvisor.rb
107
116
  - lib/searchapi/resources/walmart_search.rb
@@ -109,6 +118,11 @@ files:
109
118
  - lib/searchapi/resources/yandex.rb
110
119
  - lib/searchapi/resources/yandex_reverse_image.rb
111
120
  - lib/searchapi/resources/youtube.rb
121
+ - lib/searchapi/resources/youtube_channel.rb
122
+ - lib/searchapi/resources/youtube_channel_videos.rb
123
+ - lib/searchapi/resources/youtube_comments.rb
124
+ - lib/searchapi/resources/youtube_transcripts.rb
125
+ - lib/searchapi/resources/youtube_video.rb
112
126
  - lib/searchapi/response.rb
113
127
  - lib/searchapi/version.rb
114
128
  homepage: https://github.com/aalvaaro/searchapi-ruby
@@ -134,5 +148,5 @@ required_rubygems_version: !ruby/object:Gem::Requirement
134
148
  requirements: []
135
149
  rubygems_version: 3.6.9
136
150
  specification_version: 4
137
- summary: Ruby client for SearchAPI.io - 49 search engines in one gem
151
+ summary: Ruby client for SearchAPI.io - 63 search engines in one gem
138
152
  test_files: []