context.dev 0.1.0 → 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 +10 -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 +3 -0
  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 +0 -397
  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 +15 -0
  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 +0 -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 +6 -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 +0 -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 +94 -79
  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
  #
@@ -394,42 +218,6 @@ module ContextDev
394
218
  )
395
219
  end
396
220
 
397
- # Some parameter documentations has been truncated, see
398
- # {ContextDev::Models::BrandRetrieveNaicsParams} for more details.
399
- #
400
- # Endpoint to classify any brand into a 2022 NAICS code.
401
- #
402
- # @overload retrieve_naics(input:, max_results: nil, min_results: nil, timeout_ms: nil, request_options: {})
403
- #
404
- # @param input [String] Brand domain or title to retrieve NAICS code for. If a valid domain is provided
405
- #
406
- # @param max_results [Integer] Maximum number of NAICS codes to return. Must be between 1 and 10. Defaults to 5
407
- #
408
- # @param min_results [Integer] Minimum number of NAICS codes to return. Must be at least 1. Defaults to 1.
409
- #
410
- # @param timeout_ms [Integer] Optional timeout in milliseconds for the request. If the request takes longer th
411
- #
412
- # @param request_options [ContextDev::RequestOptions, Hash{Symbol=>Object}, nil]
413
- #
414
- # @return [ContextDev::Models::BrandRetrieveNaicsResponse]
415
- #
416
- # @see ContextDev::Models::BrandRetrieveNaicsParams
417
- def retrieve_naics(params)
418
- parsed, options = ContextDev::BrandRetrieveNaicsParams.dump_request(params)
419
- query = ContextDev::Internal::Util.encode_query_params(parsed)
420
- @client.request(
421
- method: :get,
422
- path: "brand/naics",
423
- query: query.transform_keys(
424
- max_results: "maxResults",
425
- min_results: "minResults",
426
- timeout_ms: "timeoutMS"
427
- ),
428
- model: ContextDev::Models::BrandRetrieveNaicsResponse,
429
- options: options
430
- )
431
- end
432
-
433
221
  # Some parameter documentations has been truncated, see
434
222
  # {ContextDev::Models::BrandRetrieveSimplifiedParams} for more details.
435
223
  #
@@ -460,191 +248,6 @@ module ContextDev
460
248
  )
461
249
  end
462
250
 
463
- # Some parameter documentations has been truncated, see
464
- # {ContextDev::Models::BrandScreenshotParams} for more details.
465
- #
466
- # Capture a screenshot of a website. Supports both viewport (standard browser
467
- # view) and full-page screenshots. Can also screenshot specific page types (login,
468
- # pricing, etc.) by using heuristics to find the appropriate URL. Returns a URL to
469
- # the uploaded screenshot image hosted on our CDN.
470
- #
471
- # @overload screenshot(domain:, full_screenshot: nil, page: nil, prioritize: nil, request_options: {})
472
- #
473
- # @param domain [String] Domain name to take screenshot of (e.g., 'example.com', 'google.com'). The domai
474
- #
475
- # @param full_screenshot [Symbol, ContextDev::Models::BrandScreenshotParams::FullScreenshot] Optional parameter to determine screenshot type. If 'true', takes a full page sc
476
- #
477
- # @param page [Symbol, ContextDev::Models::BrandScreenshotParams::Page] Optional parameter to specify which page type to screenshot. If provided, the sy
478
- #
479
- # @param prioritize [Symbol, ContextDev::Models::BrandScreenshotParams::Prioritize] Optional parameter to prioritize screenshot capture. If 'speed', optimizes for f
480
- #
481
- # @param request_options [ContextDev::RequestOptions, Hash{Symbol=>Object}, nil]
482
- #
483
- # @return [ContextDev::Models::BrandScreenshotResponse]
484
- #
485
- # @see ContextDev::Models::BrandScreenshotParams
486
- def screenshot(params)
487
- parsed, options = ContextDev::BrandScreenshotParams.dump_request(params)
488
- query = ContextDev::Internal::Util.encode_query_params(parsed)
489
- @client.request(
490
- method: :get,
491
- path: "brand/screenshot",
492
- query: query.transform_keys(full_screenshot: "fullScreenshot"),
493
- model: ContextDev::Models::BrandScreenshotResponse,
494
- options: options
495
- )
496
- end
497
-
498
- # Some parameter documentations has been truncated, see
499
- # {ContextDev::Models::BrandStyleguideParams} for more details.
500
- #
501
- # Automatically extract comprehensive design system information from a brand's
502
- # website including colors, typography, spacing, shadows, and UI components.
503
- # Either 'domain' or 'directUrl' must be provided as a query parameter, but not
504
- # both.
505
- #
506
- # @overload styleguide(direct_url: nil, domain: nil, prioritize: nil, timeout_ms: nil, request_options: {})
507
- #
508
- # @param direct_url [String] A specific URL to fetch the styleguide from directly, bypassing domain resolutio
509
- #
510
- # @param domain [String] Domain name to extract styleguide from (e.g., 'example.com', 'google.com'). The
511
- #
512
- # @param prioritize [Symbol, ContextDev::Models::BrandStyleguideParams::Prioritize] Optional parameter to prioritize screenshot capture for styleguide extraction. I
513
- #
514
- # @param timeout_ms [Integer] Optional timeout in milliseconds for the request. If the request takes longer th
515
- #
516
- # @param request_options [ContextDev::RequestOptions, Hash{Symbol=>Object}, nil]
517
- #
518
- # @return [ContextDev::Models::BrandStyleguideResponse]
519
- #
520
- # @see ContextDev::Models::BrandStyleguideParams
521
- def styleguide(params = {})
522
- parsed, options = ContextDev::BrandStyleguideParams.dump_request(params)
523
- query = ContextDev::Internal::Util.encode_query_params(parsed)
524
- @client.request(
525
- method: :get,
526
- path: "brand/styleguide",
527
- query: query.transform_keys(direct_url: "directUrl", timeout_ms: "timeoutMS"),
528
- model: ContextDev::Models::BrandStyleguideResponse,
529
- options: options
530
- )
531
- end
532
-
533
- # Scrapes the given URL and returns the raw HTML content of the page. Uses
534
- # automatic proxy escalation to handle blocked sites.
535
- #
536
- # @overload web_scrape_html(url:, request_options: {})
537
- #
538
- # @param url [String] Full URL to scrape (must include http:// or https:// protocol)
539
- #
540
- # @param request_options [ContextDev::RequestOptions, Hash{Symbol=>Object}, nil]
541
- #
542
- # @return [ContextDev::Models::BrandWebScrapeHTMLResponse]
543
- #
544
- # @see ContextDev::Models::BrandWebScrapeHTMLParams
545
- def web_scrape_html(params)
546
- parsed, options = ContextDev::BrandWebScrapeHTMLParams.dump_request(params)
547
- query = ContextDev::Internal::Util.encode_query_params(parsed)
548
- @client.request(
549
- method: :get,
550
- path: "web/scrape/html",
551
- query: query,
552
- model: ContextDev::Models::BrandWebScrapeHTMLResponse,
553
- options: options
554
- )
555
- end
556
-
557
- # Scrapes all images from the given URL. Extracts images from img, svg,
558
- # picture/source, link, and video elements including inline SVGs, base64 data
559
- # URIs, and standard URLs.
560
- #
561
- # @overload web_scrape_images(url:, request_options: {})
562
- #
563
- # @param url [String] Full URL to scrape images from (must include http:// or https:// protocol)
564
- #
565
- # @param request_options [ContextDev::RequestOptions, Hash{Symbol=>Object}, nil]
566
- #
567
- # @return [ContextDev::Models::BrandWebScrapeImagesResponse]
568
- #
569
- # @see ContextDev::Models::BrandWebScrapeImagesParams
570
- def web_scrape_images(params)
571
- parsed, options = ContextDev::BrandWebScrapeImagesParams.dump_request(params)
572
- query = ContextDev::Internal::Util.encode_query_params(parsed)
573
- @client.request(
574
- method: :get,
575
- path: "web/scrape/images",
576
- query: query,
577
- model: ContextDev::Models::BrandWebScrapeImagesResponse,
578
- options: options
579
- )
580
- end
581
-
582
- # Some parameter documentations has been truncated, see
583
- # {ContextDev::Models::BrandWebScrapeMdParams} for more details.
584
- #
585
- # Scrapes the given URL, converts the HTML content to GitHub Flavored Markdown
586
- # (GFM), and returns the result. Uses automatic proxy escalation to handle blocked
587
- # sites.
588
- #
589
- # @overload web_scrape_md(url:, include_images: nil, include_links: nil, shorten_base64_images: nil, request_options: {})
590
- #
591
- # @param url [String] Full URL to scrape and convert to markdown (must include http:// or https:// pro
592
- #
593
- # @param include_images [Boolean] Include image references in Markdown output
594
- #
595
- # @param include_links [Boolean] Preserve hyperlinks in Markdown output
596
- #
597
- # @param shorten_base64_images [Boolean] Shorten base64-encoded image data in the Markdown output
598
- #
599
- # @param request_options [ContextDev::RequestOptions, Hash{Symbol=>Object}, nil]
600
- #
601
- # @return [ContextDev::Models::BrandWebScrapeMdResponse]
602
- #
603
- # @see ContextDev::Models::BrandWebScrapeMdParams
604
- def web_scrape_md(params)
605
- parsed, options = ContextDev::BrandWebScrapeMdParams.dump_request(params)
606
- query = ContextDev::Internal::Util.encode_query_params(parsed)
607
- @client.request(
608
- method: :get,
609
- path: "web/scrape/markdown",
610
- query: query.transform_keys(
611
- include_images: "includeImages",
612
- include_links: "includeLinks",
613
- shorten_base64_images: "shortenBase64Images"
614
- ),
615
- model: ContextDev::Models::BrandWebScrapeMdResponse,
616
- options: options
617
- )
618
- end
619
-
620
- # Some parameter documentations has been truncated, see
621
- # {ContextDev::Models::BrandWebScrapeSitemapParams} for more details.
622
- #
623
- # Crawls the sitemap of the given domain and returns all discovered page URLs.
624
- # Supports sitemap index files (recursive), parallel fetching with concurrency
625
- # control, deduplication, and filters out non-page resources (images, PDFs, etc.).
626
- #
627
- # @overload web_scrape_sitemap(domain:, request_options: {})
628
- #
629
- # @param domain [String] Domain name to crawl sitemaps for (e.g., 'example.com'). The domain will be auto
630
- #
631
- # @param request_options [ContextDev::RequestOptions, Hash{Symbol=>Object}, nil]
632
- #
633
- # @return [ContextDev::Models::BrandWebScrapeSitemapResponse]
634
- #
635
- # @see ContextDev::Models::BrandWebScrapeSitemapParams
636
- def web_scrape_sitemap(params)
637
- parsed, options = ContextDev::BrandWebScrapeSitemapParams.dump_request(params)
638
- query = ContextDev::Internal::Util.encode_query_params(parsed)
639
- @client.request(
640
- method: :get,
641
- path: "web/scrape/sitemap",
642
- query: query,
643
- model: ContextDev::Models::BrandWebScrapeSitemapResponse,
644
- options: options
645
- )
646
- end
647
-
648
251
  # @api private
649
252
  #
650
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