99from ..types import (
1010 web_screenshot_params ,
1111 web_web_crawl_md_params ,
12+ web_extract_fonts_params ,
1213 web_web_scrape_md_params ,
1314 web_web_scrape_html_params ,
1415 web_web_scrape_images_params ,
2728from .._base_client import make_request_options
2829from ..types .web_screenshot_response import WebScreenshotResponse
2930from ..types .web_web_crawl_md_response import WebWebCrawlMdResponse
31+ from ..types .web_extract_fonts_response import WebExtractFontsResponse
3032from ..types .web_web_scrape_md_response import WebWebScrapeMdResponse
3133from ..types .web_web_scrape_html_response import WebWebScrapeHTMLResponse
3234from ..types .web_web_scrape_images_response import WebWebScrapeImagesResponse
@@ -55,6 +57,62 @@ def with_streaming_response(self) -> WebResourceWithStreamingResponse:
5557 """
5658 return WebResourceWithStreamingResponse (self )
5759
60+ def extract_fonts (
61+ self ,
62+ * ,
63+ direct_url : str | Omit = omit ,
64+ domain : str | Omit = omit ,
65+ timeout_ms : int | Omit = omit ,
66+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
67+ # The extra values given here take precedence over values defined on the client or passed to this method.
68+ extra_headers : Headers | None = None ,
69+ extra_query : Query | None = None ,
70+ extra_body : Body | None = None ,
71+ timeout : float | httpx .Timeout | None | NotGiven = not_given ,
72+ ) -> WebExtractFontsResponse :
73+ """
74+ Scrape font information from a website including font families, usage
75+ statistics, fallbacks, and element/word counts. Either 'domain' or 'directUrl'
76+ must be provided as a query parameter, but not both.
77+
78+ Args:
79+ direct_url: A specific URL to fetch fonts from directly, bypassing domain resolution (e.g.,
80+ 'https://example.com/design-system').
81+
82+ domain: Domain name to extract fonts from (e.g., 'example.com', 'google.com'). The
83+ domain will be automatically normalized and validated.
84+
85+ timeout_ms: Optional timeout in milliseconds for the request. If the request takes longer
86+ than this value, it will be aborted with a 408 status code. Maximum allowed
87+ value is 300000ms (5 minutes).
88+
89+ extra_headers: Send extra headers
90+
91+ extra_query: Add additional query parameters to the request
92+
93+ extra_body: Add additional JSON properties to the request
94+
95+ timeout: Override the client-level default timeout for this request, in seconds
96+ """
97+ return self ._get (
98+ "/web/fonts" ,
99+ options = make_request_options (
100+ extra_headers = extra_headers ,
101+ extra_query = extra_query ,
102+ extra_body = extra_body ,
103+ timeout = timeout ,
104+ query = maybe_transform (
105+ {
106+ "direct_url" : direct_url ,
107+ "domain" : domain ,
108+ "timeout_ms" : timeout_ms ,
109+ },
110+ web_extract_fonts_params .WebExtractFontsParams ,
111+ ),
112+ ),
113+ cast_to = WebExtractFontsResponse ,
114+ )
115+
58116 def screenshot (
59117 self ,
60118 * ,
@@ -426,6 +484,62 @@ def with_streaming_response(self) -> AsyncWebResourceWithStreamingResponse:
426484 """
427485 return AsyncWebResourceWithStreamingResponse (self )
428486
487+ async def extract_fonts (
488+ self ,
489+ * ,
490+ direct_url : str | Omit = omit ,
491+ domain : str | Omit = omit ,
492+ timeout_ms : int | Omit = omit ,
493+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
494+ # The extra values given here take precedence over values defined on the client or passed to this method.
495+ extra_headers : Headers | None = None ,
496+ extra_query : Query | None = None ,
497+ extra_body : Body | None = None ,
498+ timeout : float | httpx .Timeout | None | NotGiven = not_given ,
499+ ) -> WebExtractFontsResponse :
500+ """
501+ Scrape font information from a website including font families, usage
502+ statistics, fallbacks, and element/word counts. Either 'domain' or 'directUrl'
503+ must be provided as a query parameter, but not both.
504+
505+ Args:
506+ direct_url: A specific URL to fetch fonts from directly, bypassing domain resolution (e.g.,
507+ 'https://example.com/design-system').
508+
509+ domain: Domain name to extract fonts from (e.g., 'example.com', 'google.com'). The
510+ domain will be automatically normalized and validated.
511+
512+ timeout_ms: Optional timeout in milliseconds for the request. If the request takes longer
513+ than this value, it will be aborted with a 408 status code. Maximum allowed
514+ value is 300000ms (5 minutes).
515+
516+ extra_headers: Send extra headers
517+
518+ extra_query: Add additional query parameters to the request
519+
520+ extra_body: Add additional JSON properties to the request
521+
522+ timeout: Override the client-level default timeout for this request, in seconds
523+ """
524+ return await self ._get (
525+ "/web/fonts" ,
526+ options = make_request_options (
527+ extra_headers = extra_headers ,
528+ extra_query = extra_query ,
529+ extra_body = extra_body ,
530+ timeout = timeout ,
531+ query = await async_maybe_transform (
532+ {
533+ "direct_url" : direct_url ,
534+ "domain" : domain ,
535+ "timeout_ms" : timeout_ms ,
536+ },
537+ web_extract_fonts_params .WebExtractFontsParams ,
538+ ),
539+ ),
540+ cast_to = WebExtractFontsResponse ,
541+ )
542+
429543 async def screenshot (
430544 self ,
431545 * ,
@@ -781,6 +895,9 @@ class WebResourceWithRawResponse:
781895 def __init__ (self , web : WebResource ) -> None :
782896 self ._web = web
783897
898+ self .extract_fonts = to_raw_response_wrapper (
899+ web .extract_fonts ,
900+ )
784901 self .screenshot = to_raw_response_wrapper (
785902 web .screenshot ,
786903 )
@@ -805,6 +922,9 @@ class AsyncWebResourceWithRawResponse:
805922 def __init__ (self , web : AsyncWebResource ) -> None :
806923 self ._web = web
807924
925+ self .extract_fonts = async_to_raw_response_wrapper (
926+ web .extract_fonts ,
927+ )
808928 self .screenshot = async_to_raw_response_wrapper (
809929 web .screenshot ,
810930 )
@@ -829,6 +949,9 @@ class WebResourceWithStreamingResponse:
829949 def __init__ (self , web : WebResource ) -> None :
830950 self ._web = web
831951
952+ self .extract_fonts = to_streamed_response_wrapper (
953+ web .extract_fonts ,
954+ )
832955 self .screenshot = to_streamed_response_wrapper (
833956 web .screenshot ,
834957 )
@@ -853,6 +976,9 @@ class AsyncWebResourceWithStreamingResponse:
853976 def __init__ (self , web : AsyncWebResource ) -> None :
854977 self ._web = web
855978
979+ self .extract_fonts = async_to_streamed_response_wrapper (
980+ web .extract_fonts ,
981+ )
856982 self .screenshot = async_to_streamed_response_wrapper (
857983 web .screenshot ,
858984 )
0 commit comments