context.dev 0.0.2

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 (194) hide show
  1. checksums.yaml +7 -0
  2. data/.ignore +2 -0
  3. data/CHANGELOG.md +10 -0
  4. data/README.md +244 -0
  5. data/SECURITY.md +27 -0
  6. data/lib/context_dev/client.rb +74 -0
  7. data/lib/context_dev/errors.rb +228 -0
  8. data/lib/context_dev/file_part.rb +58 -0
  9. data/lib/context_dev/internal/transport/base_client.rb +573 -0
  10. data/lib/context_dev/internal/transport/pooled_net_requester.rb +210 -0
  11. data/lib/context_dev/internal/type/array_of.rb +168 -0
  12. data/lib/context_dev/internal/type/base_model.rb +531 -0
  13. data/lib/context_dev/internal/type/base_page.rb +55 -0
  14. data/lib/context_dev/internal/type/boolean.rb +77 -0
  15. data/lib/context_dev/internal/type/converter.rb +327 -0
  16. data/lib/context_dev/internal/type/enum.rb +131 -0
  17. data/lib/context_dev/internal/type/file_input.rb +111 -0
  18. data/lib/context_dev/internal/type/hash_of.rb +188 -0
  19. data/lib/context_dev/internal/type/request_parameters.rb +42 -0
  20. data/lib/context_dev/internal/type/union.rb +237 -0
  21. data/lib/context_dev/internal/type/unknown.rb +81 -0
  22. data/lib/context_dev/internal/util.rb +951 -0
  23. data/lib/context_dev/internal.rb +20 -0
  24. data/lib/context_dev/models/brand_ai_product_params.rb +34 -0
  25. data/lib/context_dev/models/brand_ai_product_response.rb +193 -0
  26. data/lib/context_dev/models/brand_ai_products_params.rb +94 -0
  27. data/lib/context_dev/models/brand_ai_products_response.rb +160 -0
  28. data/lib/context_dev/models/brand_ai_query_params.rb +236 -0
  29. data/lib/context_dev/models/brand_ai_query_response.rb +98 -0
  30. data/lib/context_dev/models/brand_fonts_params.rb +36 -0
  31. data/lib/context_dev/models/brand_fonts_response.rb +100 -0
  32. data/lib/context_dev/models/brand_identify_from_transaction_params.rb +407 -0
  33. data/lib/context_dev/models/brand_identify_from_transaction_response.rb +854 -0
  34. data/lib/context_dev/models/brand_prefetch_by_email_params.rb +37 -0
  35. data/lib/context_dev/models/brand_prefetch_by_email_response.rb +33 -0
  36. data/lib/context_dev/models/brand_prefetch_params.rb +35 -0
  37. data/lib/context_dev/models/brand_prefetch_response.rb +33 -0
  38. data/lib/context_dev/models/brand_retrieve_by_email_params.rb +116 -0
  39. data/lib/context_dev/models/brand_retrieve_by_email_response.rb +851 -0
  40. data/lib/context_dev/models/brand_retrieve_by_isin_params.rb +116 -0
  41. data/lib/context_dev/models/brand_retrieve_by_isin_response.rb +850 -0
  42. data/lib/context_dev/models/brand_retrieve_by_name_params.rb +115 -0
  43. data/lib/context_dev/models/brand_retrieve_by_name_response.rb +850 -0
  44. data/lib/context_dev/models/brand_retrieve_by_ticker_params.rb +204 -0
  45. data/lib/context_dev/models/brand_retrieve_by_ticker_response.rb +852 -0
  46. data/lib/context_dev/models/brand_retrieve_naics_params.rb +54 -0
  47. data/lib/context_dev/models/brand_retrieve_naics_response.rb +83 -0
  48. data/lib/context_dev/models/brand_retrieve_params.rb +117 -0
  49. data/lib/context_dev/models/brand_retrieve_response.rb +850 -0
  50. data/lib/context_dev/models/brand_retrieve_simplified_params.rb +35 -0
  51. data/lib/context_dev/models/brand_retrieve_simplified_response.rb +307 -0
  52. data/lib/context_dev/models/brand_screenshot_params.rb +103 -0
  53. data/lib/context_dev/models/brand_screenshot_response.rb +64 -0
  54. data/lib/context_dev/models/brand_styleguide_params.rb +70 -0
  55. data/lib/context_dev/models/brand_styleguide_response.rb +790 -0
  56. data/lib/context_dev/models/brand_web_scrape_html_params.rb +22 -0
  57. data/lib/context_dev/models/brand_web_scrape_html_response.rb +45 -0
  58. data/lib/context_dev/models/brand_web_scrape_images_params.rb +22 -0
  59. data/lib/context_dev/models/brand_web_scrape_images_response.rb +111 -0
  60. data/lib/context_dev/models/brand_web_scrape_md_params.rb +50 -0
  61. data/lib/context_dev/models/brand_web_scrape_md_response.rb +45 -0
  62. data/lib/context_dev/models/brand_web_scrape_sitemap_params.rb +26 -0
  63. data/lib/context_dev/models/brand_web_scrape_sitemap_response.rb +91 -0
  64. data/lib/context_dev/models.rb +81 -0
  65. data/lib/context_dev/request_options.rb +77 -0
  66. data/lib/context_dev/resources/brand.rb +654 -0
  67. data/lib/context_dev/version.rb +5 -0
  68. data/lib/context_dev.rb +96 -0
  69. data/manifest.yaml +17 -0
  70. data/rbi/context_dev/client.rbi +49 -0
  71. data/rbi/context_dev/errors.rbi +205 -0
  72. data/rbi/context_dev/file_part.rbi +37 -0
  73. data/rbi/context_dev/internal/transport/base_client.rbi +300 -0
  74. data/rbi/context_dev/internal/transport/pooled_net_requester.rbi +84 -0
  75. data/rbi/context_dev/internal/type/array_of.rbi +104 -0
  76. data/rbi/context_dev/internal/type/base_model.rbi +308 -0
  77. data/rbi/context_dev/internal/type/base_page.rbi +42 -0
  78. data/rbi/context_dev/internal/type/boolean.rbi +58 -0
  79. data/rbi/context_dev/internal/type/converter.rbi +216 -0
  80. data/rbi/context_dev/internal/type/enum.rbi +82 -0
  81. data/rbi/context_dev/internal/type/file_input.rbi +59 -0
  82. data/rbi/context_dev/internal/type/hash_of.rbi +104 -0
  83. data/rbi/context_dev/internal/type/request_parameters.rbi +29 -0
  84. data/rbi/context_dev/internal/type/union.rbi +128 -0
  85. data/rbi/context_dev/internal/type/unknown.rbi +58 -0
  86. data/rbi/context_dev/internal/util.rbi +507 -0
  87. data/rbi/context_dev/internal.rbi +18 -0
  88. data/rbi/context_dev/models/brand_ai_product_params.rbi +56 -0
  89. data/rbi/context_dev/models/brand_ai_product_response.rbi +380 -0
  90. data/rbi/context_dev/models/brand_ai_products_params.rbi +188 -0
  91. data/rbi/context_dev/models/brand_ai_products_response.rbi +310 -0
  92. data/rbi/context_dev/models/brand_ai_query_params.rbi +504 -0
  93. data/rbi/context_dev/models/brand_ai_query_response.rbi +205 -0
  94. data/rbi/context_dev/models/brand_fonts_params.rbi +60 -0
  95. data/rbi/context_dev/models/brand_fonts_response.rbi +147 -0
  96. data/rbi/context_dev/models/brand_identify_from_transaction_params.rbi +1682 -0
  97. data/rbi/context_dev/models/brand_identify_from_transaction_response.rbi +2595 -0
  98. data/rbi/context_dev/models/brand_prefetch_by_email_params.rbi +65 -0
  99. data/rbi/context_dev/models/brand_prefetch_by_email_response.rbi +57 -0
  100. data/rbi/context_dev/models/brand_prefetch_params.rbi +58 -0
  101. data/rbi/context_dev/models/brand_prefetch_response.rbi +57 -0
  102. data/rbi/context_dev/models/brand_retrieve_by_email_params.rbi +386 -0
  103. data/rbi/context_dev/models/brand_retrieve_by_email_response.rbi +2591 -0
  104. data/rbi/context_dev/models/brand_retrieve_by_isin_params.rbi +386 -0
  105. data/rbi/context_dev/models/brand_retrieve_by_isin_response.rbi +2590 -0
  106. data/rbi/context_dev/models/brand_retrieve_by_name_params.rbi +384 -0
  107. data/rbi/context_dev/models/brand_retrieve_by_name_response.rbi +2590 -0
  108. data/rbi/context_dev/models/brand_retrieve_by_ticker_params.rbi +796 -0
  109. data/rbi/context_dev/models/brand_retrieve_by_ticker_response.rbi +2592 -0
  110. data/rbi/context_dev/models/brand_retrieve_naics_params.rbi +89 -0
  111. data/rbi/context_dev/models/brand_retrieve_naics_response.rbi +190 -0
  112. data/rbi/context_dev/models/brand_retrieve_params.rbi +382 -0
  113. data/rbi/context_dev/models/brand_retrieve_response.rbi +2574 -0
  114. data/rbi/context_dev/models/brand_retrieve_simplified_params.rbi +61 -0
  115. data/rbi/context_dev/models/brand_retrieve_simplified_response.rbi +763 -0
  116. data/rbi/context_dev/models/brand_screenshot_params.rbi +225 -0
  117. data/rbi/context_dev/models/brand_screenshot_response.rbi +135 -0
  118. data/rbi/context_dev/models/brand_styleguide_params.rbi +139 -0
  119. data/rbi/context_dev/models/brand_styleguide_response.rbi +1707 -0
  120. data/rbi/context_dev/models/brand_web_scrape_html_params.rbi +43 -0
  121. data/rbi/context_dev/models/brand_web_scrape_html_response.rbi +92 -0
  122. data/rbi/context_dev/models/brand_web_scrape_images_params.rbi +43 -0
  123. data/rbi/context_dev/models/brand_web_scrape_images_response.rbi +261 -0
  124. data/rbi/context_dev/models/brand_web_scrape_md_params.rbi +81 -0
  125. data/rbi/context_dev/models/brand_web_scrape_md_response.rbi +92 -0
  126. data/rbi/context_dev/models/brand_web_scrape_sitemap_params.rbi +45 -0
  127. data/rbi/context_dev/models/brand_web_scrape_sitemap_response.rbi +167 -0
  128. data/rbi/context_dev/models.rbi +45 -0
  129. data/rbi/context_dev/request_options.rbi +59 -0
  130. data/rbi/context_dev/resources/brand.rbi +545 -0
  131. data/rbi/context_dev/version.rbi +5 -0
  132. data/sig/context_dev/client.rbs +26 -0
  133. data/sig/context_dev/errors.rbs +117 -0
  134. data/sig/context_dev/file_part.rbs +21 -0
  135. data/sig/context_dev/internal/transport/base_client.rbs +133 -0
  136. data/sig/context_dev/internal/transport/pooled_net_requester.rbs +48 -0
  137. data/sig/context_dev/internal/type/array_of.rbs +48 -0
  138. data/sig/context_dev/internal/type/base_model.rbs +102 -0
  139. data/sig/context_dev/internal/type/base_page.rbs +24 -0
  140. data/sig/context_dev/internal/type/boolean.rbs +26 -0
  141. data/sig/context_dev/internal/type/converter.rbs +79 -0
  142. data/sig/context_dev/internal/type/enum.rbs +32 -0
  143. data/sig/context_dev/internal/type/file_input.rbs +25 -0
  144. data/sig/context_dev/internal/type/hash_of.rbs +48 -0
  145. data/sig/context_dev/internal/type/request_parameters.rbs +19 -0
  146. data/sig/context_dev/internal/type/union.rbs +52 -0
  147. data/sig/context_dev/internal/type/unknown.rbs +26 -0
  148. data/sig/context_dev/internal/util.rbs +195 -0
  149. data/sig/context_dev/internal.rbs +9 -0
  150. data/sig/context_dev/models/brand_ai_product_params.rbs +30 -0
  151. data/sig/context_dev/models/brand_ai_product_response.rbs +149 -0
  152. data/sig/context_dev/models/brand_ai_products_params.rbs +88 -0
  153. data/sig/context_dev/models/brand_ai_products_response.rbs +128 -0
  154. data/sig/context_dev/models/brand_ai_query_params.rbs +218 -0
  155. data/sig/context_dev/models/brand_ai_query_response.rbs +93 -0
  156. data/sig/context_dev/models/brand_fonts_params.rbs +30 -0
  157. data/sig/context_dev/models/brand_fonts_response.rbs +82 -0
  158. data/sig/context_dev/models/brand_identify_from_transaction_params.rbs +686 -0
  159. data/sig/context_dev/models/brand_identify_from_transaction_response.rbs +1076 -0
  160. data/sig/context_dev/models/brand_prefetch_by_email_params.rbs +30 -0
  161. data/sig/context_dev/models/brand_prefetch_by_email_response.rbs +28 -0
  162. data/sig/context_dev/models/brand_prefetch_params.rbs +30 -0
  163. data/sig/context_dev/models/brand_prefetch_response.rbs +28 -0
  164. data/sig/context_dev/models/brand_retrieve_by_email_params.rbs +162 -0
  165. data/sig/context_dev/models/brand_retrieve_by_email_response.rbs +1076 -0
  166. data/sig/context_dev/models/brand_retrieve_by_isin_params.rbs +162 -0
  167. data/sig/context_dev/models/brand_retrieve_by_isin_response.rbs +1076 -0
  168. data/sig/context_dev/models/brand_retrieve_by_name_params.rbs +162 -0
  169. data/sig/context_dev/models/brand_retrieve_by_name_response.rbs +1076 -0
  170. data/sig/context_dev/models/brand_retrieve_by_ticker_params.rbs +324 -0
  171. data/sig/context_dev/models/brand_retrieve_by_ticker_response.rbs +1076 -0
  172. data/sig/context_dev/models/brand_retrieve_naics_params.rbs +47 -0
  173. data/sig/context_dev/models/brand_retrieve_naics_response.rbs +84 -0
  174. data/sig/context_dev/models/brand_retrieve_params.rbs +162 -0
  175. data/sig/context_dev/models/brand_retrieve_response.rbs +1076 -0
  176. data/sig/context_dev/models/brand_retrieve_simplified_params.rbs +30 -0
  177. data/sig/context_dev/models/brand_retrieve_simplified_response.rbs +312 -0
  178. data/sig/context_dev/models/brand_screenshot_params.rbs +100 -0
  179. data/sig/context_dev/models/brand_screenshot_response.rbs +63 -0
  180. data/sig/context_dev/models/brand_styleguide_params.rbs +62 -0
  181. data/sig/context_dev/models/brand_styleguide_response.rbs +945 -0
  182. data/sig/context_dev/models/brand_web_scrape_html_params.rbs +23 -0
  183. data/sig/context_dev/models/brand_web_scrape_html_response.rbs +40 -0
  184. data/sig/context_dev/models/brand_web_scrape_images_params.rbs +23 -0
  185. data/sig/context_dev/models/brand_web_scrape_images_response.rbs +98 -0
  186. data/sig/context_dev/models/brand_web_scrape_md_params.rbs +47 -0
  187. data/sig/context_dev/models/brand_web_scrape_md_response.rbs +40 -0
  188. data/sig/context_dev/models/brand_web_scrape_sitemap_params.rbs +23 -0
  189. data/sig/context_dev/models/brand_web_scrape_sitemap_response.rbs +77 -0
  190. data/sig/context_dev/models.rbs +41 -0
  191. data/sig/context_dev/request_options.rbs +36 -0
  192. data/sig/context_dev/resources/brand.rbs +151 -0
  193. data/sig/context_dev/version.rbs +3 -0
  194. metadata +265 -0
@@ -0,0 +1,654 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ContextDev
4
+ module Resources
5
+ class Brand
6
+ # Some parameter documentations has been truncated, see
7
+ # {ContextDev::Models::BrandRetrieveParams} for more details.
8
+ #
9
+ # Retrieve logos, backdrops, colors, industry, description, and more from any
10
+ # domain
11
+ #
12
+ # @overload retrieve(domain:, force_language: nil, max_speed: nil, timeout_ms: nil, request_options: {})
13
+ #
14
+ # @param domain [String] Domain name to retrieve brand data for (e.g., 'example.com', 'google.com'). Cann
15
+ #
16
+ # @param force_language [Symbol, ContextDev::Models::BrandRetrieveParams::ForceLanguage] Optional parameter to force the language of the retrieved brand data. Works with
17
+ #
18
+ # @param max_speed [Boolean] Optional parameter to optimize the API call for maximum speed. When set to true,
19
+ #
20
+ # @param timeout_ms [Integer] Optional timeout in milliseconds for the request. If the request takes longer th
21
+ #
22
+ # @param request_options [ContextDev::RequestOptions, Hash{Symbol=>Object}, nil]
23
+ #
24
+ # @return [ContextDev::Models::BrandRetrieveResponse]
25
+ #
26
+ # @see ContextDev::Models::BrandRetrieveParams
27
+ def retrieve(params)
28
+ parsed, options = ContextDev::BrandRetrieveParams.dump_request(params)
29
+ query = ContextDev::Internal::Util.encode_query_params(parsed)
30
+ @client.request(
31
+ method: :get,
32
+ path: "brand/retrieve",
33
+ query: query.transform_keys(max_speed: "maxSpeed", timeout_ms: "timeoutMS"),
34
+ model: ContextDev::Models::BrandRetrieveResponse,
35
+ options: options
36
+ )
37
+ end
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
+ # Some parameter documentations has been truncated, see
154
+ # {ContextDev::Models::BrandIdentifyFromTransactionParams} for more details.
155
+ #
156
+ # Endpoint specially designed for platforms that want to identify transaction data
157
+ # by the transaction title.
158
+ #
159
+ # @overload identify_from_transaction(transaction_info:, city: nil, country_gl: nil, force_language: nil, high_confidence_only: nil, max_speed: nil, mcc: nil, phone: nil, timeout_ms: nil, request_options: {})
160
+ #
161
+ # @param transaction_info [String] Transaction information to identify the brand
162
+ #
163
+ # @param city [String] Optional city name to prioritize when searching for the brand.
164
+ #
165
+ # @param country_gl [Symbol, ContextDev::Models::BrandIdentifyFromTransactionParams::CountryGl] Optional country code (GL parameter) to specify the country. This affects the ge
166
+ #
167
+ # @param force_language [Symbol, ContextDev::Models::BrandIdentifyFromTransactionParams::ForceLanguage] Optional parameter to force the language of the retrieved brand data.
168
+ #
169
+ # @param high_confidence_only [Boolean] When set to true, the API will perform an additional verification steps to ensur
170
+ #
171
+ # @param max_speed [Boolean] Optional parameter to optimize the API call for maximum speed. When set to true,
172
+ #
173
+ # @param mcc [String] Optional Merchant Category Code (MCC) to help identify the business category/ind
174
+ #
175
+ # @param phone [Float] Optional phone number from the transaction to help verify brand match.
176
+ #
177
+ # @param timeout_ms [Integer] Optional timeout in milliseconds for the request. If the request takes longer th
178
+ #
179
+ # @param request_options [ContextDev::RequestOptions, Hash{Symbol=>Object}, nil]
180
+ #
181
+ # @return [ContextDev::Models::BrandIdentifyFromTransactionResponse]
182
+ #
183
+ # @see ContextDev::Models::BrandIdentifyFromTransactionParams
184
+ def identify_from_transaction(params)
185
+ parsed, options = ContextDev::BrandIdentifyFromTransactionParams.dump_request(params)
186
+ query = ContextDev::Internal::Util.encode_query_params(parsed)
187
+ @client.request(
188
+ method: :get,
189
+ path: "brand/transaction_identifier",
190
+ query: query.transform_keys(max_speed: "maxSpeed", timeout_ms: "timeoutMS"),
191
+ model: ContextDev::Models::BrandIdentifyFromTransactionResponse,
192
+ options: options
193
+ )
194
+ end
195
+
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
+ # Some parameter documentations has been truncated, see
259
+ # {ContextDev::Models::BrandRetrieveByEmailParams} for more details.
260
+ #
261
+ # Retrieve brand information using an email address while detecting disposable and
262
+ # free email addresses. This endpoint extracts the domain from the email address
263
+ # and returns brand data for that domain. Disposable and free email addresses
264
+ # (like gmail.com, yahoo.com) will throw a 422 error.
265
+ #
266
+ # @overload retrieve_by_email(email:, force_language: nil, max_speed: nil, timeout_ms: nil, request_options: {})
267
+ #
268
+ # @param email [String] Email address to retrieve brand data for (e.g., 'contact@example.com'). The doma
269
+ #
270
+ # @param force_language [Symbol, ContextDev::Models::BrandRetrieveByEmailParams::ForceLanguage] Optional parameter to force the language of the retrieved brand data.
271
+ #
272
+ # @param max_speed [Boolean] Optional parameter to optimize the API call for maximum speed. When set to true,
273
+ #
274
+ # @param timeout_ms [Integer] Optional timeout in milliseconds for the request. If the request takes longer th
275
+ #
276
+ # @param request_options [ContextDev::RequestOptions, Hash{Symbol=>Object}, nil]
277
+ #
278
+ # @return [ContextDev::Models::BrandRetrieveByEmailResponse]
279
+ #
280
+ # @see ContextDev::Models::BrandRetrieveByEmailParams
281
+ def retrieve_by_email(params)
282
+ parsed, options = ContextDev::BrandRetrieveByEmailParams.dump_request(params)
283
+ query = ContextDev::Internal::Util.encode_query_params(parsed)
284
+ @client.request(
285
+ method: :get,
286
+ path: "brand/retrieve-by-email",
287
+ query: query.transform_keys(max_speed: "maxSpeed", timeout_ms: "timeoutMS"),
288
+ model: ContextDev::Models::BrandRetrieveByEmailResponse,
289
+ options: options
290
+ )
291
+ end
292
+
293
+ # Some parameter documentations has been truncated, see
294
+ # {ContextDev::Models::BrandRetrieveByIsinParams} for more details.
295
+ #
296
+ # Retrieve brand information using an ISIN (International Securities
297
+ # Identification Number). This endpoint looks up the company associated with the
298
+ # ISIN and returns its brand data.
299
+ #
300
+ # @overload retrieve_by_isin(isin:, force_language: nil, max_speed: nil, timeout_ms: nil, request_options: {})
301
+ #
302
+ # @param isin [String] ISIN (International Securities Identification Number) to retrieve brand data for
303
+ #
304
+ # @param force_language [Symbol, ContextDev::Models::BrandRetrieveByIsinParams::ForceLanguage] Optional parameter to force the language of the retrieved brand data.
305
+ #
306
+ # @param max_speed [Boolean] Optional parameter to optimize the API call for maximum speed. When set to true,
307
+ #
308
+ # @param timeout_ms [Integer] Optional timeout in milliseconds for the request. If the request takes longer th
309
+ #
310
+ # @param request_options [ContextDev::RequestOptions, Hash{Symbol=>Object}, nil]
311
+ #
312
+ # @return [ContextDev::Models::BrandRetrieveByIsinResponse]
313
+ #
314
+ # @see ContextDev::Models::BrandRetrieveByIsinParams
315
+ def retrieve_by_isin(params)
316
+ parsed, options = ContextDev::BrandRetrieveByIsinParams.dump_request(params)
317
+ query = ContextDev::Internal::Util.encode_query_params(parsed)
318
+ @client.request(
319
+ method: :get,
320
+ path: "brand/retrieve-by-isin",
321
+ query: query.transform_keys(max_speed: "maxSpeed", timeout_ms: "timeoutMS"),
322
+ model: ContextDev::Models::BrandRetrieveByIsinResponse,
323
+ options: options
324
+ )
325
+ end
326
+
327
+ # Some parameter documentations has been truncated, see
328
+ # {ContextDev::Models::BrandRetrieveByNameParams} for more details.
329
+ #
330
+ # Retrieve brand information using a company name. This endpoint searches for the
331
+ # company by name and returns its brand data.
332
+ #
333
+ # @overload retrieve_by_name(name:, force_language: nil, max_speed: nil, timeout_ms: nil, request_options: {})
334
+ #
335
+ # @param name [String] Company name to retrieve brand data for (e.g., 'Apple Inc', 'Microsoft Corporati
336
+ #
337
+ # @param force_language [Symbol, ContextDev::Models::BrandRetrieveByNameParams::ForceLanguage] Optional parameter to force the language of the retrieved brand data.
338
+ #
339
+ # @param max_speed [Boolean] Optional parameter to optimize the API call for maximum speed. When set to true,
340
+ #
341
+ # @param timeout_ms [Integer] Optional timeout in milliseconds for the request. If the request takes longer th
342
+ #
343
+ # @param request_options [ContextDev::RequestOptions, Hash{Symbol=>Object}, nil]
344
+ #
345
+ # @return [ContextDev::Models::BrandRetrieveByNameResponse]
346
+ #
347
+ # @see ContextDev::Models::BrandRetrieveByNameParams
348
+ def retrieve_by_name(params)
349
+ parsed, options = ContextDev::BrandRetrieveByNameParams.dump_request(params)
350
+ query = ContextDev::Internal::Util.encode_query_params(parsed)
351
+ @client.request(
352
+ method: :get,
353
+ path: "brand/retrieve-by-name",
354
+ query: query.transform_keys(max_speed: "maxSpeed", timeout_ms: "timeoutMS"),
355
+ model: ContextDev::Models::BrandRetrieveByNameResponse,
356
+ options: options
357
+ )
358
+ end
359
+
360
+ # Some parameter documentations has been truncated, see
361
+ # {ContextDev::Models::BrandRetrieveByTickerParams} for more details.
362
+ #
363
+ # Retrieve brand information using a stock ticker symbol. This endpoint looks up
364
+ # the company associated with the ticker and returns its brand data.
365
+ #
366
+ # @overload retrieve_by_ticker(ticker:, force_language: nil, max_speed: nil, ticker_exchange: nil, timeout_ms: nil, request_options: {})
367
+ #
368
+ # @param ticker [String] Stock ticker symbol to retrieve brand data for (e.g., 'AAPL', 'GOOGL', 'BRK.A').
369
+ #
370
+ # @param force_language [Symbol, ContextDev::Models::BrandRetrieveByTickerParams::ForceLanguage] Optional parameter to force the language of the retrieved brand data.
371
+ #
372
+ # @param max_speed [Boolean] Optional parameter to optimize the API call for maximum speed. When set to true,
373
+ #
374
+ # @param ticker_exchange [Symbol, ContextDev::Models::BrandRetrieveByTickerParams::TickerExchange] Optional stock exchange for the ticker. Defaults to NASDAQ if not specified.
375
+ #
376
+ # @param timeout_ms [Integer] Optional timeout in milliseconds for the request. If the request takes longer th
377
+ #
378
+ # @param request_options [ContextDev::RequestOptions, Hash{Symbol=>Object}, nil]
379
+ #
380
+ # @return [ContextDev::Models::BrandRetrieveByTickerResponse]
381
+ #
382
+ # @see ContextDev::Models::BrandRetrieveByTickerParams
383
+ def retrieve_by_ticker(params)
384
+ parsed, options = ContextDev::BrandRetrieveByTickerParams.dump_request(params)
385
+ query = ContextDev::Internal::Util.encode_query_params(parsed)
386
+ @client.request(
387
+ method: :get,
388
+ path: "brand/retrieve-by-ticker",
389
+ query: query.transform_keys(max_speed: "maxSpeed", timeout_ms: "timeoutMS"),
390
+ model: ContextDev::Models::BrandRetrieveByTickerResponse,
391
+ options: options
392
+ )
393
+ end
394
+
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
+ # Some parameter documentations has been truncated, see
432
+ # {ContextDev::Models::BrandRetrieveSimplifiedParams} for more details.
433
+ #
434
+ # Returns a simplified version of brand data containing only essential
435
+ # information: domain, title, colors, logos, and backdrops. This endpoint is
436
+ # optimized for faster responses and reduced data transfer.
437
+ #
438
+ # @overload retrieve_simplified(domain:, timeout_ms: nil, request_options: {})
439
+ #
440
+ # @param domain [String] Domain name to retrieve simplified brand data for
441
+ #
442
+ # @param timeout_ms [Integer] Optional timeout in milliseconds for the request. If the request takes longer th
443
+ #
444
+ # @param request_options [ContextDev::RequestOptions, Hash{Symbol=>Object}, nil]
445
+ #
446
+ # @return [ContextDev::Models::BrandRetrieveSimplifiedResponse]
447
+ #
448
+ # @see ContextDev::Models::BrandRetrieveSimplifiedParams
449
+ def retrieve_simplified(params)
450
+ parsed, options = ContextDev::BrandRetrieveSimplifiedParams.dump_request(params)
451
+ query = ContextDev::Internal::Util.encode_query_params(parsed)
452
+ @client.request(
453
+ method: :get,
454
+ path: "brand/retrieve-simplified",
455
+ query: query.transform_keys(timeout_ms: "timeoutMS"),
456
+ model: ContextDev::Models::BrandRetrieveSimplifiedResponse,
457
+ options: options
458
+ )
459
+ end
460
+
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
+ # @api private
647
+ #
648
+ # @param client [ContextDev::Client]
649
+ def initialize(client:)
650
+ @client = client
651
+ end
652
+ end
653
+ end
654
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ContextDev
4
+ VERSION = "0.0.2"
5
+ end