context.dev 0.0.2 → 0.2.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.
Files changed (131) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +23 -0
  3. data/README.md +9 -9
  4. data/lib/context_dev/client.rb +20 -0
  5. data/lib/context_dev/internal/type/base_model.rb +4 -4
  6. data/lib/context_dev/models/{brand_ai_query_params.rb → ai_ai_query_params.rb} +21 -22
  7. data/lib/context_dev/models/{brand_ai_query_response.rb → ai_ai_query_response.rb} +11 -11
  8. data/lib/context_dev/models/{brand_ai_product_params.rb → ai_extract_product_params.rb} +3 -3
  9. data/lib/context_dev/models/{brand_ai_product_response.rb → ai_extract_product_response.rb} +18 -18
  10. data/lib/context_dev/models/{brand_ai_products_params.rb → ai_extract_products_params.rb} +11 -10
  11. data/lib/context_dev/models/{brand_ai_products_response.rb → ai_extract_products_response.rb} +13 -13
  12. data/lib/context_dev/models/brand_identify_from_transaction_params.rb +3 -0
  13. data/lib/context_dev/models/brand_retrieve_by_email_params.rb +3 -0
  14. data/lib/context_dev/models/brand_retrieve_by_isin_params.rb +3 -0
  15. data/lib/context_dev/models/brand_retrieve_by_name_params.rb +262 -1
  16. data/lib/context_dev/models/brand_retrieve_by_ticker_params.rb +3 -0
  17. data/lib/context_dev/models/brand_retrieve_params.rb +3 -0
  18. data/lib/context_dev/models/{brand_retrieve_naics_params.rb → industry_retrieve_naics_params.rb} +3 -3
  19. data/lib/context_dev/models/{brand_retrieve_naics_response.rb → industry_retrieve_naics_response.rb} +9 -9
  20. data/lib/context_dev/models/{brand_fonts_params.rb → style_extract_fonts_params.rb} +3 -3
  21. data/lib/context_dev/models/{brand_fonts_response.rb → style_extract_fonts_response.rb} +6 -5
  22. data/lib/context_dev/models/{brand_styleguide_params.rb → style_extract_styleguide_params.rb} +6 -6
  23. data/lib/context_dev/models/{brand_styleguide_response.rb → style_extract_styleguide_response.rb} +83 -74
  24. data/lib/context_dev/models/{brand_prefetch_by_email_params.rb → utility_prefetch_by_email_params.rb} +3 -3
  25. data/lib/context_dev/models/{brand_prefetch_by_email_response.rb → utility_prefetch_by_email_response.rb} +2 -2
  26. data/lib/context_dev/models/{brand_prefetch_params.rb → utility_prefetch_params.rb} +3 -3
  27. data/lib/context_dev/models/{brand_prefetch_response.rb → utility_prefetch_response.rb} +2 -2
  28. data/lib/context_dev/models/{brand_screenshot_params.rb → web_screenshot_params.rb} +12 -12
  29. data/lib/context_dev/models/{brand_screenshot_response.rb → web_screenshot_response.rb} +6 -6
  30. data/lib/context_dev/models/{brand_web_scrape_html_params.rb → web_web_scrape_html_params.rb} +2 -2
  31. data/lib/context_dev/models/{brand_web_scrape_html_response.rb → web_web_scrape_html_response.rb} +6 -6
  32. data/lib/context_dev/models/{brand_web_scrape_images_params.rb → web_web_scrape_images_params.rb} +2 -2
  33. data/lib/context_dev/models/{brand_web_scrape_images_response.rb → web_web_scrape_images_response.rb} +17 -17
  34. data/lib/context_dev/models/{brand_web_scrape_md_params.rb → web_web_scrape_md_params.rb} +3 -3
  35. data/lib/context_dev/models/{brand_web_scrape_md_response.rb → web_web_scrape_md_response.rb} +6 -6
  36. data/lib/context_dev/models/{brand_web_scrape_sitemap_params.rb → web_web_scrape_sitemap_params.rb} +3 -3
  37. data/lib/context_dev/models/{brand_web_scrape_sitemap_response.rb → web_web_scrape_sitemap_response.rb} +10 -10
  38. data/lib/context_dev/models.rb +17 -17
  39. data/lib/context_dev/resources/ai.rb +99 -0
  40. data/lib/context_dev/resources/brand.rb +3 -398
  41. data/lib/context_dev/resources/industry.rb +50 -0
  42. data/lib/context_dev/resources/style.rb +78 -0
  43. data/lib/context_dev/resources/utility.rb +76 -0
  44. data/lib/context_dev/resources/web.rb +164 -0
  45. data/lib/context_dev/version.rb +1 -1
  46. data/lib/context_dev.rb +31 -26
  47. data/rbi/context_dev/client.rbi +15 -0
  48. data/rbi/context_dev/models/{brand_ai_query_params.rbi → ai_ai_query_params.rbi} +46 -46
  49. data/rbi/context_dev/models/{brand_ai_query_response.rbi → ai_ai_query_response.rbi} +12 -12
  50. data/rbi/context_dev/models/{brand_ai_product_params.rbi → ai_extract_product_params.rbi} +5 -2
  51. data/rbi/context_dev/models/{brand_ai_product_response.rbi → ai_extract_product_response.rbi} +40 -35
  52. data/rbi/context_dev/models/{brand_ai_products_params.rbi → ai_extract_products_params.rbi} +13 -13
  53. data/rbi/context_dev/models/{brand_ai_products_response.rbi → ai_extract_products_response.rbi} +26 -26
  54. data/rbi/context_dev/models/brand_identify_from_transaction_params.rbi +15 -0
  55. data/rbi/context_dev/models/brand_retrieve_by_email_params.rbi +15 -0
  56. data/rbi/context_dev/models/brand_retrieve_by_isin_params.rbi +15 -0
  57. data/rbi/context_dev/models/brand_retrieve_by_name_params.rbi +1326 -70
  58. data/rbi/context_dev/models/brand_retrieve_by_ticker_params.rbi +15 -0
  59. data/rbi/context_dev/models/brand_retrieve_params.rbi +15 -0
  60. data/rbi/context_dev/models/{brand_retrieve_naics_params.rbi → industry_retrieve_naics_params.rbi} +2 -2
  61. data/rbi/context_dev/models/{brand_retrieve_naics_response.rbi → industry_retrieve_naics_response.rbi} +15 -15
  62. data/rbi/context_dev/models/{brand_fonts_params.rbi → style_extract_fonts_params.rbi} +5 -2
  63. data/rbi/context_dev/models/{brand_fonts_response.rbi → style_extract_fonts_response.rbi} +12 -6
  64. data/rbi/context_dev/models/{brand_styleguide_params.rbi → style_extract_styleguide_params.rbi} +15 -10
  65. data/rbi/context_dev/models/{brand_styleguide_response.rbi → style_extract_styleguide_response.rbi} +98 -95
  66. data/rbi/context_dev/models/{brand_prefetch_by_email_params.rbi → utility_prefetch_by_email_params.rbi} +2 -2
  67. data/rbi/context_dev/models/{brand_prefetch_by_email_response.rbi → utility_prefetch_by_email_response.rbi} +2 -2
  68. data/rbi/context_dev/models/{brand_prefetch_params.rbi → utility_prefetch_params.rbi} +5 -2
  69. data/rbi/context_dev/models/{brand_prefetch_response.rbi → utility_prefetch_response.rbi} +2 -2
  70. data/rbi/context_dev/models/{brand_screenshot_params.rbi → web_screenshot_params.rbi} +32 -42
  71. data/rbi/context_dev/models/{brand_screenshot_response.rbi → web_screenshot_response.rbi} +10 -10
  72. data/rbi/context_dev/models/{brand_web_scrape_html_params.rbi → web_web_scrape_html_params.rbi} +2 -2
  73. data/rbi/context_dev/models/{brand_web_scrape_html_response.rbi → web_web_scrape_html_response.rbi} +8 -8
  74. data/rbi/context_dev/models/{brand_web_scrape_images_params.rbi → web_web_scrape_images_params.rbi} +2 -2
  75. data/rbi/context_dev/models/{brand_web_scrape_images_response.rbi → web_web_scrape_images_response.rbi} +30 -32
  76. data/rbi/context_dev/models/{brand_web_scrape_md_params.rbi → web_web_scrape_md_params.rbi} +2 -5
  77. data/rbi/context_dev/models/{brand_web_scrape_md_response.rbi → web_web_scrape_md_response.rbi} +8 -8
  78. data/rbi/context_dev/models/{brand_web_scrape_sitemap_params.rbi → web_web_scrape_sitemap_params.rbi} +2 -2
  79. data/rbi/context_dev/models/{brand_web_scrape_sitemap_response.rbi → web_web_scrape_sitemap_response.rbi} +13 -13
  80. data/rbi/context_dev/models.rbi +19 -17
  81. data/rbi/context_dev/resources/ai.rbi +76 -0
  82. data/rbi/context_dev/resources/brand.rbi +5 -303
  83. data/rbi/context_dev/resources/industry.rbi +40 -0
  84. data/rbi/context_dev/resources/style.rbi +67 -0
  85. data/rbi/context_dev/resources/utility.rbi +60 -0
  86. data/rbi/context_dev/resources/web.rbi +121 -0
  87. data/sig/context_dev/client.rbs +10 -0
  88. data/sig/context_dev/models/{brand_ai_query_params.rbs → ai_ai_query_params.rbs} +31 -31
  89. data/sig/context_dev/models/{brand_ai_query_response.rbs → ai_ai_query_response.rbs} +15 -15
  90. data/sig/context_dev/models/{brand_ai_product_params.rbs → ai_extract_product_params.rbs} +2 -2
  91. data/sig/context_dev/models/{brand_ai_product_response.rbs → ai_extract_product_response.rbs} +21 -21
  92. data/sig/context_dev/models/{brand_ai_products_params.rbs → ai_extract_products_params.rbs} +9 -9
  93. data/sig/context_dev/models/{brand_ai_products_response.rbs → ai_extract_products_response.rbs} +18 -18
  94. data/sig/context_dev/models/brand_identify_from_transaction_params.rbs +6 -0
  95. data/sig/context_dev/models/brand_retrieve_by_email_params.rbs +6 -0
  96. data/sig/context_dev/models/brand_retrieve_by_isin_params.rbs +6 -0
  97. data/sig/context_dev/models/brand_retrieve_by_name_params.rbs +502 -0
  98. data/sig/context_dev/models/brand_retrieve_by_ticker_params.rbs +6 -0
  99. data/sig/context_dev/models/brand_retrieve_params.rbs +6 -0
  100. data/sig/context_dev/models/{brand_retrieve_naics_params.rbs → industry_retrieve_naics_params.rbs} +2 -2
  101. data/sig/context_dev/models/{brand_retrieve_naics_response.rbs → industry_retrieve_naics_response.rbs} +13 -13
  102. data/sig/context_dev/models/{brand_fonts_params.rbs → style_extract_fonts_params.rbs} +2 -2
  103. data/sig/context_dev/models/{brand_fonts_response.rbs → style_extract_fonts_response.rbs} +6 -6
  104. data/sig/context_dev/models/{brand_styleguide_params.rbs → style_extract_styleguide_params.rbs} +9 -9
  105. data/sig/context_dev/models/{brand_styleguide_response.rbs → style_extract_styleguide_response.rbs} +111 -111
  106. data/sig/context_dev/models/{brand_prefetch_by_email_params.rbs → utility_prefetch_by_email_params.rbs} +2 -2
  107. data/sig/context_dev/models/{brand_prefetch_by_email_response.rbs → utility_prefetch_by_email_response.rbs} +2 -2
  108. data/sig/context_dev/models/{brand_prefetch_params.rbs → utility_prefetch_params.rbs} +2 -2
  109. data/sig/context_dev/models/{brand_prefetch_response.rbs → utility_prefetch_response.rbs} +2 -2
  110. data/sig/context_dev/models/web_screenshot_params.rbs +100 -0
  111. data/sig/context_dev/models/{brand_screenshot_response.rbs → web_screenshot_response.rbs} +9 -9
  112. data/sig/context_dev/models/{brand_web_scrape_images_params.rbs → web_web_scrape_html_params.rbs} +2 -2
  113. data/sig/context_dev/models/web_web_scrape_html_response.rbs +40 -0
  114. data/sig/context_dev/models/{brand_web_scrape_html_params.rbs → web_web_scrape_images_params.rbs} +2 -2
  115. data/sig/context_dev/models/web_web_scrape_images_response.rbs +98 -0
  116. data/sig/context_dev/models/{brand_web_scrape_md_params.rbs → web_web_scrape_md_params.rbs} +2 -2
  117. data/sig/context_dev/models/web_web_scrape_md_response.rbs +40 -0
  118. data/sig/context_dev/models/{brand_web_scrape_sitemap_params.rbs → web_web_scrape_sitemap_params.rbs} +2 -2
  119. data/sig/context_dev/models/{brand_web_scrape_sitemap_response.rbs → web_web_scrape_sitemap_response.rbs} +11 -11
  120. data/sig/context_dev/models.rbs +17 -17
  121. data/sig/context_dev/resources/ai.rbs +26 -0
  122. data/sig/context_dev/resources/brand.rbs +1 -84
  123. data/sig/context_dev/resources/industry.rbs +15 -0
  124. data/sig/context_dev/resources/style.rbs +21 -0
  125. data/sig/context_dev/resources/utility.rbs +19 -0
  126. data/sig/context_dev/resources/web.rbs +38 -0
  127. metadata +95 -80
  128. data/sig/context_dev/models/brand_screenshot_params.rbs +0 -100
  129. data/sig/context_dev/models/brand_web_scrape_html_response.rbs +0 -40
  130. data/sig/context_dev/models/brand_web_scrape_images_response.rbs +0 -98
  131. data/sig/context_dev/models/brand_web_scrape_md_response.rbs +0 -40
@@ -36,120 +36,6 @@ module ContextDev
36
36
  )
37
37
  end
38
38
 
39
- # Some parameter documentations has been truncated, see
40
- # {ContextDev::Models::BrandAIProductParams} for more details.
41
- #
42
- # Beta feature: Given a single URL, determines if it is a product detail page,
43
- # classifies the platform/product type, and extracts the product information.
44
- # Supports Amazon, TikTok Shop, Etsy, and generic ecommerce sites.
45
- #
46
- # @overload ai_product(url:, timeout_ms: nil, request_options: {})
47
- #
48
- # @param url [String] The product page URL to extract product data from.
49
- #
50
- # @param timeout_ms [Integer] Optional timeout in milliseconds for the request. Maximum allowed value is 30000
51
- #
52
- # @param request_options [ContextDev::RequestOptions, Hash{Symbol=>Object}, nil]
53
- #
54
- # @return [ContextDev::Models::BrandAIProductResponse]
55
- #
56
- # @see ContextDev::Models::BrandAIProductParams
57
- def ai_product(params)
58
- parsed, options = ContextDev::BrandAIProductParams.dump_request(params)
59
- @client.request(
60
- method: :post,
61
- path: "brand/ai/product",
62
- body: parsed,
63
- model: ContextDev::Models::BrandAIProductResponse,
64
- options: options
65
- )
66
- end
67
-
68
- # Beta feature: Extract product information from a brand's website. Brand.dev will
69
- # analyze the website and return a list of products with details such as name,
70
- # description, image, pricing, features, and more.
71
- #
72
- # @overload ai_products(body:, request_options: {})
73
- #
74
- # @param body [ContextDev::Models::BrandAIProductsParams::Body::ByDomain, ContextDev::Models::BrandAIProductsParams::Body::ByDirectURL]
75
- # @param request_options [ContextDev::RequestOptions, Hash{Symbol=>Object}, nil]
76
- #
77
- # @return [ContextDev::Models::BrandAIProductsResponse]
78
- #
79
- # @see ContextDev::Models::BrandAIProductsParams
80
- def ai_products(params)
81
- parsed, options = ContextDev::BrandAIProductsParams.dump_request(params)
82
- @client.request(
83
- method: :post,
84
- path: "brand/ai/products",
85
- body: parsed[:body],
86
- model: ContextDev::Models::BrandAIProductsResponse,
87
- options: options
88
- )
89
- end
90
-
91
- # Some parameter documentations has been truncated, see
92
- # {ContextDev::Models::BrandAIQueryParams} for more details.
93
- #
94
- # Use AI to extract specific data points from a brand's website. The AI will crawl
95
- # the website and extract the requested information based on the provided data
96
- # points.
97
- #
98
- # @overload ai_query(data_to_extract:, domain:, specific_pages: nil, timeout_ms: nil, request_options: {})
99
- #
100
- # @param data_to_extract [Array<ContextDev::Models::BrandAIQueryParams::DataToExtract>] Array of data points to extract from the website
101
- #
102
- # @param domain [String] The domain name to analyze
103
- #
104
- # @param specific_pages [ContextDev::Models::BrandAIQueryParams::SpecificPages] Optional object specifying which pages to analyze
105
- #
106
- # @param timeout_ms [Integer] Optional timeout in milliseconds for the request. If the request takes longer th
107
- #
108
- # @param request_options [ContextDev::RequestOptions, Hash{Symbol=>Object}, nil]
109
- #
110
- # @return [ContextDev::Models::BrandAIQueryResponse]
111
- #
112
- # @see ContextDev::Models::BrandAIQueryParams
113
- def ai_query(params)
114
- parsed, options = ContextDev::BrandAIQueryParams.dump_request(params)
115
- @client.request(
116
- method: :post,
117
- path: "brand/ai/query",
118
- body: parsed,
119
- model: ContextDev::Models::BrandAIQueryResponse,
120
- options: options
121
- )
122
- end
123
-
124
- # Some parameter documentations has been truncated, see
125
- # {ContextDev::Models::BrandFontsParams} for more details.
126
- #
127
- # Extract font information from a brand's website including font families, usage
128
- # statistics, fallbacks, and element/word counts.
129
- #
130
- # @overload fonts(domain:, timeout_ms: nil, request_options: {})
131
- #
132
- # @param domain [String] Domain name to extract fonts from (e.g., 'example.com', 'google.com'). The domai
133
- #
134
- # @param timeout_ms [Integer] Optional timeout in milliseconds for the request. If the request takes longer th
135
- #
136
- # @param request_options [ContextDev::RequestOptions, Hash{Symbol=>Object}, nil]
137
- #
138
- # @return [ContextDev::Models::BrandFontsResponse]
139
- #
140
- # @see ContextDev::Models::BrandFontsParams
141
- def fonts(params)
142
- parsed, options = ContextDev::BrandFontsParams.dump_request(params)
143
- query = ContextDev::Internal::Util.encode_query_params(parsed)
144
- @client.request(
145
- method: :get,
146
- path: "brand/fonts",
147
- query: query.transform_keys(timeout_ms: "timeoutMS"),
148
- model: ContextDev::Models::BrandFontsResponse,
149
- options: options
150
- )
151
- end
152
-
153
39
  # Some parameter documentations has been truncated, see
154
40
  # {ContextDev::Models::BrandIdentifyFromTransactionParams} for more details.
155
41
  #
@@ -193,68 +79,6 @@ module ContextDev
193
79
  )
194
80
  end
195
81
 
196
- # Some parameter documentations has been truncated, see
197
- # {ContextDev::Models::BrandPrefetchParams} for more details.
198
- #
199
- # Signal that you may fetch brand data for a particular domain soon to improve
200
- # latency. This endpoint does not charge credits and is available for paid
201
- # customers to optimize future requests. [You must be on a paid plan to use this
202
- # endpoint]
203
- #
204
- # @overload prefetch(domain:, timeout_ms: nil, request_options: {})
205
- #
206
- # @param domain [String] Domain name to prefetch brand data for
207
- #
208
- # @param timeout_ms [Integer] Optional timeout in milliseconds for the request. If the request takes longer th
209
- #
210
- # @param request_options [ContextDev::RequestOptions, Hash{Symbol=>Object}, nil]
211
- #
212
- # @return [ContextDev::Models::BrandPrefetchResponse]
213
- #
214
- # @see ContextDev::Models::BrandPrefetchParams
215
- def prefetch(params)
216
- parsed, options = ContextDev::BrandPrefetchParams.dump_request(params)
217
- @client.request(
218
- method: :post,
219
- path: "brand/prefetch",
220
- body: parsed,
221
- model: ContextDev::Models::BrandPrefetchResponse,
222
- options: options
223
- )
224
- end
225
-
226
- # Some parameter documentations has been truncated, see
227
- # {ContextDev::Models::BrandPrefetchByEmailParams} for more details.
228
- #
229
- # Signal that you may fetch brand data for a particular domain soon to improve
230
- # latency. This endpoint accepts an email address, extracts the domain from it,
231
- # validates that it's not a disposable or free email provider, and queues the
232
- # domain for prefetching. This endpoint does not charge credits and is available
233
- # for paid customers to optimize future requests. [You must be on a paid plan to
234
- # use this endpoint]
235
- #
236
- # @overload prefetch_by_email(email:, timeout_ms: nil, request_options: {})
237
- #
238
- # @param email [String] Email address to prefetch brand data for. The domain will be extracted from the
239
- #
240
- # @param timeout_ms [Integer] Optional timeout in milliseconds for the request. If the request takes longer th
241
- #
242
- # @param request_options [ContextDev::RequestOptions, Hash{Symbol=>Object}, nil]
243
- #
244
- # @return [ContextDev::Models::BrandPrefetchByEmailResponse]
245
- #
246
- # @see ContextDev::Models::BrandPrefetchByEmailParams
247
- def prefetch_by_email(params)
248
- parsed, options = ContextDev::BrandPrefetchByEmailParams.dump_request(params)
249
- @client.request(
250
- method: :post,
251
- path: "brand/prefetch-by-email",
252
- body: parsed,
253
- model: ContextDev::Models::BrandPrefetchByEmailResponse,
254
- options: options
255
- )
256
- end
257
-
258
82
  # Some parameter documentations has been truncated, see
259
83
  # {ContextDev::Models::BrandRetrieveByEmailParams} for more details.
260
84
  #
@@ -330,10 +154,12 @@ module ContextDev
330
154
  # Retrieve brand information using a company name. This endpoint searches for the
331
155
  # company by name and returns its brand data.
332
156
  #
333
- # @overload retrieve_by_name(name:, force_language: nil, max_speed: nil, timeout_ms: nil, request_options: {})
157
+ # @overload retrieve_by_name(name:, country_gl: nil, force_language: nil, max_speed: nil, timeout_ms: nil, request_options: {})
334
158
  #
335
159
  # @param name [String] Company name to retrieve brand data for (e.g., 'Apple Inc', 'Microsoft Corporati
336
160
  #
161
+ # @param country_gl [Symbol, ContextDev::Models::BrandRetrieveByNameParams::CountryGl] Optional country code (GL parameter) to specify the country. This affects the ge
162
+ #
337
163
  # @param force_language [Symbol, ContextDev::Models::BrandRetrieveByNameParams::ForceLanguage] Optional parameter to force the language of the retrieved brand data.
338
164
  #
339
165
  # @param max_speed [Boolean] Optional parameter to optimize the API call for maximum speed. When set to true,
@@ -392,42 +218,6 @@ module ContextDev
392
218
  )
393
219
  end
394
220
 
395
- # Some parameter documentations has been truncated, see
396
- # {ContextDev::Models::BrandRetrieveNaicsParams} for more details.
397
- #
398
- # Endpoint to classify any brand into a 2022 NAICS code.
399
- #
400
- # @overload retrieve_naics(input:, max_results: nil, min_results: nil, timeout_ms: nil, request_options: {})
401
- #
402
- # @param input [String] Brand domain or title to retrieve NAICS code for. If a valid domain is provided
403
- #
404
- # @param max_results [Integer] Maximum number of NAICS codes to return. Must be between 1 and 10. Defaults to 5
405
- #
406
- # @param min_results [Integer] Minimum number of NAICS codes to return. Must be at least 1. Defaults to 1.
407
- #
408
- # @param timeout_ms [Integer] Optional timeout in milliseconds for the request. If the request takes longer th
409
- #
410
- # @param request_options [ContextDev::RequestOptions, Hash{Symbol=>Object}, nil]
411
- #
412
- # @return [ContextDev::Models::BrandRetrieveNaicsResponse]
413
- #
414
- # @see ContextDev::Models::BrandRetrieveNaicsParams
415
- def retrieve_naics(params)
416
- parsed, options = ContextDev::BrandRetrieveNaicsParams.dump_request(params)
417
- query = ContextDev::Internal::Util.encode_query_params(parsed)
418
- @client.request(
419
- method: :get,
420
- path: "brand/naics",
421
- query: query.transform_keys(
422
- max_results: "maxResults",
423
- min_results: "minResults",
424
- timeout_ms: "timeoutMS"
425
- ),
426
- model: ContextDev::Models::BrandRetrieveNaicsResponse,
427
- options: options
428
- )
429
- end
430
-
431
221
  # Some parameter documentations has been truncated, see
432
222
  # {ContextDev::Models::BrandRetrieveSimplifiedParams} for more details.
433
223
  #
@@ -458,191 +248,6 @@ module ContextDev
458
248
  )
459
249
  end
460
250
 
461
- # Some parameter documentations has been truncated, see
462
- # {ContextDev::Models::BrandScreenshotParams} for more details.
463
- #
464
- # Capture a screenshot of a website. Supports both viewport (standard browser
465
- # view) and full-page screenshots. Can also screenshot specific page types (login,
466
- # pricing, etc.) by using heuristics to find the appropriate URL. Returns a URL to
467
- # the uploaded screenshot image hosted on our CDN.
468
- #
469
- # @overload screenshot(domain:, full_screenshot: nil, page: nil, prioritize: nil, request_options: {})
470
- #
471
- # @param domain [String] Domain name to take screenshot of (e.g., 'example.com', 'google.com'). The domai
472
- #
473
- # @param full_screenshot [Symbol, ContextDev::Models::BrandScreenshotParams::FullScreenshot] Optional parameter to determine screenshot type. If 'true', takes a full page sc
474
- #
475
- # @param page [Symbol, ContextDev::Models::BrandScreenshotParams::Page] Optional parameter to specify which page type to screenshot. If provided, the sy
476
- #
477
- # @param prioritize [Symbol, ContextDev::Models::BrandScreenshotParams::Prioritize] Optional parameter to prioritize screenshot capture. If 'speed', optimizes for f
478
- #
479
- # @param request_options [ContextDev::RequestOptions, Hash{Symbol=>Object}, nil]
480
- #
481
- # @return [ContextDev::Models::BrandScreenshotResponse]
482
- #
483
- # @see ContextDev::Models::BrandScreenshotParams
484
- def screenshot(params)
485
- parsed, options = ContextDev::BrandScreenshotParams.dump_request(params)
486
- query = ContextDev::Internal::Util.encode_query_params(parsed)
487
- @client.request(
488
- method: :get,
489
- path: "brand/screenshot",
490
- query: query.transform_keys(full_screenshot: "fullScreenshot"),
491
- model: ContextDev::Models::BrandScreenshotResponse,
492
- options: options
493
- )
494
- end
495
-
496
- # Some parameter documentations has been truncated, see
497
- # {ContextDev::Models::BrandStyleguideParams} for more details.
498
- #
499
- # Automatically extract comprehensive design system information from a brand's
500
- # website including colors, typography, spacing, shadows, and UI components.
501
- # Either 'domain' or 'directUrl' must be provided as a query parameter, but not
502
- # both.
503
- #
504
- # @overload styleguide(direct_url: nil, domain: nil, prioritize: nil, timeout_ms: nil, request_options: {})
505
- #
506
- # @param direct_url [String] A specific URL to fetch the styleguide from directly, bypassing domain resolutio
507
- #
508
- # @param domain [String] Domain name to extract styleguide from (e.g., 'example.com', 'google.com'). The
509
- #
510
- # @param prioritize [Symbol, ContextDev::Models::BrandStyleguideParams::Prioritize] Optional parameter to prioritize screenshot capture for styleguide extraction. I
511
- #
512
- # @param timeout_ms [Integer] Optional timeout in milliseconds for the request. If the request takes longer th
513
- #
514
- # @param request_options [ContextDev::RequestOptions, Hash{Symbol=>Object}, nil]
515
- #
516
- # @return [ContextDev::Models::BrandStyleguideResponse]
517
- #
518
- # @see ContextDev::Models::BrandStyleguideParams
519
- def styleguide(params = {})
520
- parsed, options = ContextDev::BrandStyleguideParams.dump_request(params)
521
- query = ContextDev::Internal::Util.encode_query_params(parsed)
522
- @client.request(
523
- method: :get,
524
- path: "brand/styleguide",
525
- query: query.transform_keys(direct_url: "directUrl", timeout_ms: "timeoutMS"),
526
- model: ContextDev::Models::BrandStyleguideResponse,
527
- options: options
528
- )
529
- end
530
-
531
- # Scrapes the given URL and returns the raw HTML content of the page. Uses
532
- # automatic proxy escalation to handle blocked sites.
533
- #
534
- # @overload web_scrape_html(url:, request_options: {})
535
- #
536
- # @param url [String] Full URL to scrape (must include http:// or https:// protocol)
537
- #
538
- # @param request_options [ContextDev::RequestOptions, Hash{Symbol=>Object}, nil]
539
- #
540
- # @return [ContextDev::Models::BrandWebScrapeHTMLResponse]
541
- #
542
- # @see ContextDev::Models::BrandWebScrapeHTMLParams
543
- def web_scrape_html(params)
544
- parsed, options = ContextDev::BrandWebScrapeHTMLParams.dump_request(params)
545
- query = ContextDev::Internal::Util.encode_query_params(parsed)
546
- @client.request(
547
- method: :get,
548
- path: "web/scrape/html",
549
- query: query,
550
- model: ContextDev::Models::BrandWebScrapeHTMLResponse,
551
- options: options
552
- )
553
- end
554
-
555
- # Scrapes all images from the given URL. Extracts images from img, svg,
556
- # picture/source, link, and video elements including inline SVGs, base64 data
557
- # URIs, and standard URLs.
558
- #
559
- # @overload web_scrape_images(url:, request_options: {})
560
- #
561
- # @param url [String] Full URL to scrape images from (must include http:// or https:// protocol)
562
- #
563
- # @param request_options [ContextDev::RequestOptions, Hash{Symbol=>Object}, nil]
564
- #
565
- # @return [ContextDev::Models::BrandWebScrapeImagesResponse]
566
- #
567
- # @see ContextDev::Models::BrandWebScrapeImagesParams
568
- def web_scrape_images(params)
569
- parsed, options = ContextDev::BrandWebScrapeImagesParams.dump_request(params)
570
- query = ContextDev::Internal::Util.encode_query_params(parsed)
571
- @client.request(
572
- method: :get,
573
- path: "web/scrape/images",
574
- query: query,
575
- model: ContextDev::Models::BrandWebScrapeImagesResponse,
576
- options: options
577
- )
578
- end
579
-
580
- # Some parameter documentations has been truncated, see
581
- # {ContextDev::Models::BrandWebScrapeMdParams} for more details.
582
- #
583
- # Scrapes the given URL, converts the HTML content to GitHub Flavored Markdown
584
- # (GFM), and returns the result. Uses automatic proxy escalation to handle blocked
585
- # sites.
586
- #
587
- # @overload web_scrape_md(url:, include_images: nil, include_links: nil, shorten_base64_images: nil, request_options: {})
588
- #
589
- # @param url [String] Full URL to scrape and convert to markdown (must include http:// or https:// pro
590
- #
591
- # @param include_images [Boolean] Include image references in Markdown output
592
- #
593
- # @param include_links [Boolean] Preserve hyperlinks in Markdown output
594
- #
595
- # @param shorten_base64_images [Boolean] Shorten base64-encoded image data in the Markdown output
596
- #
597
- # @param request_options [ContextDev::RequestOptions, Hash{Symbol=>Object}, nil]
598
- #
599
- # @return [ContextDev::Models::BrandWebScrapeMdResponse]
600
- #
601
- # @see ContextDev::Models::BrandWebScrapeMdParams
602
- def web_scrape_md(params)
603
- parsed, options = ContextDev::BrandWebScrapeMdParams.dump_request(params)
604
- query = ContextDev::Internal::Util.encode_query_params(parsed)
605
- @client.request(
606
- method: :get,
607
- path: "web/scrape/markdown",
608
- query: query.transform_keys(
609
- include_images: "includeImages",
610
- include_links: "includeLinks",
611
- shorten_base64_images: "shortenBase64Images"
612
- ),
613
- model: ContextDev::Models::BrandWebScrapeMdResponse,
614
- options: options
615
- )
616
- end
617
-
618
- # Some parameter documentations has been truncated, see
619
- # {ContextDev::Models::BrandWebScrapeSitemapParams} for more details.
620
- #
621
- # Crawls the sitemap of the given domain and returns all discovered page URLs.
622
- # Supports sitemap index files (recursive), parallel fetching with concurrency
623
- # control, deduplication, and filters out non-page resources (images, PDFs, etc.).
624
- #
625
- # @overload web_scrape_sitemap(domain:, request_options: {})
626
- #
627
- # @param domain [String] Domain name to crawl sitemaps for (e.g., 'example.com'). The domain will be auto
628
- #
629
- # @param request_options [ContextDev::RequestOptions, Hash{Symbol=>Object}, nil]
630
- #
631
- # @return [ContextDev::Models::BrandWebScrapeSitemapResponse]
632
- #
633
- # @see ContextDev::Models::BrandWebScrapeSitemapParams
634
- def web_scrape_sitemap(params)
635
- parsed, options = ContextDev::BrandWebScrapeSitemapParams.dump_request(params)
636
- query = ContextDev::Internal::Util.encode_query_params(parsed)
637
- @client.request(
638
- method: :get,
639
- path: "web/scrape/sitemap",
640
- query: query,
641
- model: ContextDev::Models::BrandWebScrapeSitemapResponse,
642
- options: options
643
- )
644
- end
645
-
646
251
  # @api private
647
252
  #
648
253
  # @param client [ContextDev::Client]
@@ -0,0 +1,50 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ContextDev
4
+ module Resources
5
+ class Industry
6
+ # Some parameter documentations has been truncated, see
7
+ # {ContextDev::Models::IndustryRetrieveNaicsParams} for more details.
8
+ #
9
+ # Endpoint to classify any brand into a 2022 NAICS code.
10
+ #
11
+ # @overload retrieve_naics(input:, max_results: nil, min_results: nil, timeout_ms: nil, request_options: {})
12
+ #
13
+ # @param input [String] Brand domain or title to retrieve NAICS code for. If a valid domain is provided
14
+ #
15
+ # @param max_results [Integer] Maximum number of NAICS codes to return. Must be between 1 and 10. Defaults to 5
16
+ #
17
+ # @param min_results [Integer] Minimum number of NAICS codes to return. Must be at least 1. Defaults to 1.
18
+ #
19
+ # @param timeout_ms [Integer] Optional timeout in milliseconds for the request. If the request takes longer th
20
+ #
21
+ # @param request_options [ContextDev::RequestOptions, Hash{Symbol=>Object}, nil]
22
+ #
23
+ # @return [ContextDev::Models::IndustryRetrieveNaicsResponse]
24
+ #
25
+ # @see ContextDev::Models::IndustryRetrieveNaicsParams
26
+ def retrieve_naics(params)
27
+ parsed, options = ContextDev::IndustryRetrieveNaicsParams.dump_request(params)
28
+ query = ContextDev::Internal::Util.encode_query_params(parsed)
29
+ @client.request(
30
+ method: :get,
31
+ path: "brand/naics",
32
+ query: query.transform_keys(
33
+ max_results: "maxResults",
34
+ min_results: "minResults",
35
+ timeout_ms: "timeoutMS"
36
+ ),
37
+ model: ContextDev::Models::IndustryRetrieveNaicsResponse,
38
+ options: options
39
+ )
40
+ end
41
+
42
+ # @api private
43
+ #
44
+ # @param client [ContextDev::Client]
45
+ def initialize(client:)
46
+ @client = client
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,78 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ContextDev
4
+ module Resources
5
+ class Style
6
+ # Some parameter documentations has been truncated, see
7
+ # {ContextDev::Models::StyleExtractFontsParams} for more details.
8
+ #
9
+ # Extract font information from a brand's website including font families, usage
10
+ # statistics, fallbacks, and element/word counts.
11
+ #
12
+ # @overload extract_fonts(domain:, timeout_ms: nil, request_options: {})
13
+ #
14
+ # @param domain [String] Domain name to extract fonts from (e.g., 'example.com', 'google.com'). The domai
15
+ #
16
+ # @param timeout_ms [Integer] Optional timeout in milliseconds for the request. If the request takes longer th
17
+ #
18
+ # @param request_options [ContextDev::RequestOptions, Hash{Symbol=>Object}, nil]
19
+ #
20
+ # @return [ContextDev::Models::StyleExtractFontsResponse]
21
+ #
22
+ # @see ContextDev::Models::StyleExtractFontsParams
23
+ def extract_fonts(params)
24
+ parsed, options = ContextDev::StyleExtractFontsParams.dump_request(params)
25
+ query = ContextDev::Internal::Util.encode_query_params(parsed)
26
+ @client.request(
27
+ method: :get,
28
+ path: "brand/fonts",
29
+ query: query.transform_keys(timeout_ms: "timeoutMS"),
30
+ model: ContextDev::Models::StyleExtractFontsResponse,
31
+ options: options
32
+ )
33
+ end
34
+
35
+ # Some parameter documentations has been truncated, see
36
+ # {ContextDev::Models::StyleExtractStyleguideParams} for more details.
37
+ #
38
+ # Automatically extract comprehensive design system information from a brand's
39
+ # website including colors, typography, spacing, shadows, and UI components.
40
+ # Either 'domain' or 'directUrl' must be provided as a query parameter, but not
41
+ # both.
42
+ #
43
+ # @overload extract_styleguide(direct_url: nil, domain: nil, prioritize: nil, timeout_ms: nil, request_options: {})
44
+ #
45
+ # @param direct_url [String] A specific URL to fetch the styleguide from directly, bypassing domain resolutio
46
+ #
47
+ # @param domain [String] Domain name to extract styleguide from (e.g., 'example.com', 'google.com'). The
48
+ #
49
+ # @param prioritize [Symbol, ContextDev::Models::StyleExtractStyleguideParams::Prioritize] Optional parameter to prioritize screenshot capture for styleguide extraction. I
50
+ #
51
+ # @param timeout_ms [Integer] Optional timeout in milliseconds for the request. If the request takes longer th
52
+ #
53
+ # @param request_options [ContextDev::RequestOptions, Hash{Symbol=>Object}, nil]
54
+ #
55
+ # @return [ContextDev::Models::StyleExtractStyleguideResponse]
56
+ #
57
+ # @see ContextDev::Models::StyleExtractStyleguideParams
58
+ def extract_styleguide(params = {})
59
+ parsed, options = ContextDev::StyleExtractStyleguideParams.dump_request(params)
60
+ query = ContextDev::Internal::Util.encode_query_params(parsed)
61
+ @client.request(
62
+ method: :get,
63
+ path: "brand/styleguide",
64
+ query: query.transform_keys(direct_url: "directUrl", timeout_ms: "timeoutMS"),
65
+ model: ContextDev::Models::StyleExtractStyleguideResponse,
66
+ options: options
67
+ )
68
+ end
69
+
70
+ # @api private
71
+ #
72
+ # @param client [ContextDev::Client]
73
+ def initialize(client:)
74
+ @client = client
75
+ end
76
+ end
77
+ end
78
+ end
@@ -0,0 +1,76 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ContextDev
4
+ module Resources
5
+ class Utility
6
+ # Some parameter documentations has been truncated, see
7
+ # {ContextDev::Models::UtilityPrefetchParams} for more details.
8
+ #
9
+ # Signal that you may fetch brand data for a particular domain soon to improve
10
+ # latency. This endpoint does not charge credits and is available for paid
11
+ # customers to optimize future requests. [You must be on a paid plan to use this
12
+ # endpoint]
13
+ #
14
+ # @overload prefetch(domain:, timeout_ms: nil, request_options: {})
15
+ #
16
+ # @param domain [String] Domain name to prefetch brand data for
17
+ #
18
+ # @param timeout_ms [Integer] Optional timeout in milliseconds for the request. If the request takes longer th
19
+ #
20
+ # @param request_options [ContextDev::RequestOptions, Hash{Symbol=>Object}, nil]
21
+ #
22
+ # @return [ContextDev::Models::UtilityPrefetchResponse]
23
+ #
24
+ # @see ContextDev::Models::UtilityPrefetchParams
25
+ def prefetch(params)
26
+ parsed, options = ContextDev::UtilityPrefetchParams.dump_request(params)
27
+ @client.request(
28
+ method: :post,
29
+ path: "brand/prefetch",
30
+ body: parsed,
31
+ model: ContextDev::Models::UtilityPrefetchResponse,
32
+ options: options
33
+ )
34
+ end
35
+
36
+ # Some parameter documentations has been truncated, see
37
+ # {ContextDev::Models::UtilityPrefetchByEmailParams} for more details.
38
+ #
39
+ # Signal that you may fetch brand data for a particular domain soon to improve
40
+ # latency. This endpoint accepts an email address, extracts the domain from it,
41
+ # validates that it's not a disposable or free email provider, and queues the
42
+ # domain for prefetching. This endpoint does not charge credits and is available
43
+ # for paid customers to optimize future requests. [You must be on a paid plan to
44
+ # use this endpoint]
45
+ #
46
+ # @overload prefetch_by_email(email:, timeout_ms: nil, request_options: {})
47
+ #
48
+ # @param email [String] Email address to prefetch brand data for. The domain will be extracted from the
49
+ #
50
+ # @param timeout_ms [Integer] Optional timeout in milliseconds for the request. If the request takes longer th
51
+ #
52
+ # @param request_options [ContextDev::RequestOptions, Hash{Symbol=>Object}, nil]
53
+ #
54
+ # @return [ContextDev::Models::UtilityPrefetchByEmailResponse]
55
+ #
56
+ # @see ContextDev::Models::UtilityPrefetchByEmailParams
57
+ def prefetch_by_email(params)
58
+ parsed, options = ContextDev::UtilityPrefetchByEmailParams.dump_request(params)
59
+ @client.request(
60
+ method: :post,
61
+ path: "brand/prefetch-by-email",
62
+ body: parsed,
63
+ model: ContextDev::Models::UtilityPrefetchByEmailResponse,
64
+ options: options
65
+ )
66
+ end
67
+
68
+ # @api private
69
+ #
70
+ # @param client [ContextDev::Client]
71
+ def initialize(client:)
72
+ @client = client
73
+ end
74
+ end
75
+ end
76
+ end