11# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
22
3- from typing import List , Optional
3+ from typing import Dict , List , Union , Optional
44
55from pydantic import Field as FieldInfo
66
77from .._models import BaseModel
88
9- __all__ = ["WebWebCrawlMdResponse" , "Metadata" , "Result" , "ResultMetadata" , "KeyMetadata" ]
9+ __all__ = ["WebWebCrawlMdResponse" , "Metadata" , "Result" , "ResultMetadata" , "ResultMetadataAlternate" , " KeyMetadata" ]
1010
1111
1212class Metadata (BaseModel ):
@@ -29,21 +29,92 @@ class Metadata(BaseModel):
2929 """Total number of URLs crawled"""
3030
3131
32+ class ResultMetadataAlternate (BaseModel ):
33+ href : str
34+ """Resolved alternate URL."""
35+
36+ hreflang : Optional [str ] = None
37+ """Language or locale for the alternate URL, when present."""
38+
39+ title : Optional [str ] = None
40+ """Alternate resource title, when present."""
41+
42+ type : Optional [str ] = None
43+ """Alternate resource MIME type, when present."""
44+
45+
3246class ResultMetadata (BaseModel ):
3347 crawl_depth : int = FieldInfo (alias = "crawlDepth" )
3448 """Depth relative to the start URL. 0 = start URL, 1 = one link away."""
3549
50+ final_url : str = FieldInfo (alias = "finalUrl" )
51+ """Final URL scraped after redirects or scraper fallback, when known.
52+
53+ Falls back to sourceUrl when unavailable.
54+ """
55+
56+ source_url : str = FieldInfo (alias = "sourceUrl" )
57+ """Original URL requested by the caller."""
58+
3659 status_code : int = FieldInfo (alias = "statusCode" )
3760 """HTTP status code of the response"""
3861
3962 success : bool
4063 """true if the page was fetched and parsed successfully"""
4164
4265 title : str
43- """The page's < title> content (empty string if unavailable)"""
66+ """Best page title extracted from the page (empty string if unavailable). """
4467
4568 url : str
46- """The URL that was fetched"""
69+ """The crawl URL fetched for this page."""
70+
71+ additional_meta : Optional [Dict [str , Union [str , List [str ]]]] = FieldInfo (alias = "additionalMeta" , default = None )
72+ """Additional non-social meta tags not promoted to top-level metadata fields."""
73+
74+ alternates : Optional [List [ResultMetadataAlternate ]] = None
75+ """Resolved alternate links from link rel=alternate tags."""
76+
77+ author : Optional [str ] = None
78+ """Author metadata, when present."""
79+
80+ canonical_url : Optional [str ] = FieldInfo (alias = "canonicalUrl" , default = None )
81+ """Resolved canonical URL, when present."""
82+
83+ description : Optional [str ] = None
84+ """Best description extracted from standard, Open Graph, or Twitter metadata."""
85+
86+ favicon : Optional [str ] = None
87+ """Resolved favicon URL, when present."""
88+
89+ image : Optional [str ] = None
90+ """Primary resolved preview image from Open Graph, Twitter, or image metadata."""
91+
92+ json_ld : Optional [List [Dict [str , object ]]] = FieldInfo (alias = "jsonLd" , default = None )
93+ """JSON-LD structured data blocks parsed from the page."""
94+
95+ keywords : Optional [List [str ]] = None
96+ """Keywords extracted from the page's keywords meta tag."""
97+
98+ language : Optional [str ] = None
99+ """Language extracted from html lang or language meta tags."""
100+
101+ modified_time : Optional [str ] = FieldInfo (alias = "modifiedTime" , default = None )
102+ """Modified timestamp/date from page metadata, when present."""
103+
104+ open_graph : Optional [Dict [str , Union [str , List [str ]]]] = FieldInfo (alias = "openGraph" , default = None )
105+ """Open Graph metadata with the og: prefix removed and keys camel-cased."""
106+
107+ published_time : Optional [str ] = FieldInfo (alias = "publishedTime" , default = None )
108+ """Published timestamp/date from page metadata, when present."""
109+
110+ robots : Optional [str ] = None
111+ """Robots meta directive, when present."""
112+
113+ site_name : Optional [str ] = FieldInfo (alias = "siteName" , default = None )
114+ """Site or application name from page metadata."""
115+
116+ twitter : Optional [Dict [str , Union [str , List [str ]]]] = None
117+ """Twitter card metadata with the twitter: prefix removed and keys camel-cased."""
47118
48119
49120class Result (BaseModel ):
0 commit comments