wordlift-client 1.133.0__py3-none-any.whl → 1.135.0__py3-none-any.whl
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.
- wordlift_client/__init__.py +11 -3
- wordlift_client/api/audit_api.py +15 -3
- wordlift_client/api/query_fan_out_api.py +16 -16
- wordlift_client/api_client.py +1 -1
- wordlift_client/configuration.py +1 -1
- wordlift_client/models/__init__.py +10 -2
- wordlift_client/models/ai_visibility_analysis_result.py +1 -3
- wordlift_client/models/analyze_content_request.py +105 -0
- wordlift_client/models/audit_data.py +27 -11
- wordlift_client/models/automation_issue.py +110 -0
- wordlift_client/models/automation_readiness.py +16 -5
- wordlift_client/models/bot_status.py +102 -0
- wordlift_client/models/content_freshness.py +106 -0
- wordlift_client/models/content_structure.py +10 -6
- wordlift_client/models/detected_schema.py +100 -0
- wordlift_client/models/error_response.py +5 -3
- wordlift_client/models/html_semantics.py +100 -0
- wordlift_client/models/image_accessibility.py +9 -7
- wordlift_client/models/internal_linking.py +100 -0
- wordlift_client/models/js_rendering.py +8 -17
- wordlift_client/models/quick_wins_result.py +110 -0
- wordlift_client/models/schema_recommendation.py +90 -0
- wordlift_client/models/seo_fundamentals.py +6 -3
- wordlift_client/models/site_files.py +25 -10
- wordlift_client/models/structured_data.py +28 -5
- wordlift_client/models/well_known_files.py +98 -0
- {wordlift_client-1.133.0.dist-info → wordlift_client-1.135.0.dist-info}/METADATA +1 -1
- {wordlift_client-1.133.0.dist-info → wordlift_client-1.135.0.dist-info}/RECORD +31 -21
- {wordlift_client-1.133.0.dist-info → wordlift_client-1.135.0.dist-info}/WHEEL +1 -1
- {wordlift_client-1.133.0.dist-info → wordlift_client-1.135.0.dist-info}/LICENSE +0 -0
- {wordlift_client-1.133.0.dist-info → wordlift_client-1.135.0.dist-info}/top_level.txt +0 -0
wordlift_client/__init__.py
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
""" # noqa: E501
|
|
16
16
|
|
|
17
17
|
|
|
18
|
-
__version__ = "1.
|
|
18
|
+
__version__ = "1.135.0"
|
|
19
19
|
|
|
20
20
|
# import apis into sdk package
|
|
21
21
|
from wordlift_client.api.account_api import AccountApi
|
|
@@ -114,7 +114,7 @@ from wordlift_client.models.analyses_response_item import AnalysesResponseItem
|
|
|
114
114
|
from wordlift_client.models.analytics_import_request import AnalyticsImportRequest
|
|
115
115
|
from wordlift_client.models.analytics_sync import AnalyticsSync
|
|
116
116
|
from wordlift_client.models.analytics_sync_request import AnalyticsSyncRequest
|
|
117
|
-
from wordlift_client.models.
|
|
117
|
+
from wordlift_client.models.analyze_content_request import AnalyzeContentRequest
|
|
118
118
|
from wordlift_client.models.anchor_text import AnchorText
|
|
119
119
|
from wordlift_client.models.annotation import Annotation
|
|
120
120
|
from wordlift_client.models.ask_request import AskRequest
|
|
@@ -126,8 +126,10 @@ from wordlift_client.models.author_request import AuthorRequest
|
|
|
126
126
|
from wordlift_client.models.authorization import Authorization
|
|
127
127
|
from wordlift_client.models.authorization_status import AuthorizationStatus
|
|
128
128
|
from wordlift_client.models.autocomplete_result import AutocompleteResult
|
|
129
|
+
from wordlift_client.models.automation_issue import AutomationIssue
|
|
129
130
|
from wordlift_client.models.automation_readiness import AutomationReadiness
|
|
130
131
|
from wordlift_client.models.batch_request import BatchRequest
|
|
132
|
+
from wordlift_client.models.bot_status import BotStatus
|
|
131
133
|
from wordlift_client.models.botify_crawl_import_request import BotifyCrawlImportRequest
|
|
132
134
|
from wordlift_client.models.build_authorize_uri_request import BuildAuthorizeUriRequest
|
|
133
135
|
from wordlift_client.models.build_authorize_uri_response import BuildAuthorizeUriResponse
|
|
@@ -148,12 +150,14 @@ from wordlift_client.models.content_evaluation_response_quality_score_breakdown_
|
|
|
148
150
|
from wordlift_client.models.content_evaluation_response_quality_score_breakdown_seo_top_entities_value_inner import ContentEvaluationResponseQualityScoreBreakdownSeoTopEntitiesValueInner
|
|
149
151
|
from wordlift_client.models.content_expansion_request import ContentExpansionRequest
|
|
150
152
|
from wordlift_client.models.content_expansion_response import ContentExpansionResponse
|
|
153
|
+
from wordlift_client.models.content_freshness import ContentFreshness
|
|
151
154
|
from wordlift_client.models.content_generation import ContentGeneration
|
|
152
155
|
from wordlift_client.models.content_generation_request import ContentGenerationRequest
|
|
153
156
|
from wordlift_client.models.content_generation_stats import ContentGenerationStats
|
|
154
157
|
from wordlift_client.models.content_structure import ContentStructure
|
|
155
158
|
from wordlift_client.models.create_embeddings_input import CreateEmbeddingsInput
|
|
156
159
|
from wordlift_client.models.create_url_inspection_request import CreateUrlInspectionRequest
|
|
160
|
+
from wordlift_client.models.detected_schema import DetectedSchema
|
|
157
161
|
from wordlift_client.models.diagnostic_plugin import DiagnosticPlugin
|
|
158
162
|
from wordlift_client.models.diagnostic_plugin_request import DiagnosticPluginRequest
|
|
159
163
|
from wordlift_client.models.domain_validation_request import DomainValidationRequest
|
|
@@ -175,6 +179,7 @@ from wordlift_client.models.generate_sitemap_request import GenerateSitemapReque
|
|
|
175
179
|
from wordlift_client.models.graphql_request import GraphqlRequest
|
|
176
180
|
from wordlift_client.models.http_validation_error import HTTPValidationError
|
|
177
181
|
from wordlift_client.models.html import Html
|
|
182
|
+
from wordlift_client.models.html_semantics import HtmlSemantics
|
|
178
183
|
from wordlift_client.models.image import Image
|
|
179
184
|
from wordlift_client.models.image_accessibility import ImageAccessibility
|
|
180
185
|
from wordlift_client.models.include_exclude import IncludeExclude
|
|
@@ -184,6 +189,7 @@ from wordlift_client.models.internal_link import InternalLink
|
|
|
184
189
|
from wordlift_client.models.internal_link_destination import InternalLinkDestination
|
|
185
190
|
from wordlift_client.models.internal_link_request import InternalLinkRequest
|
|
186
191
|
from wordlift_client.models.internal_link_source import InternalLinkSource
|
|
192
|
+
from wordlift_client.models.internal_linking import InternalLinking
|
|
187
193
|
from wordlift_client.models.item import Item
|
|
188
194
|
from wordlift_client.models.js_rendering import JsRendering
|
|
189
195
|
from wordlift_client.models.kg_embedding_request import KgEmbeddingRequest
|
|
@@ -235,6 +241,7 @@ from wordlift_client.models.query_coverage_output import QueryCoverageOutput
|
|
|
235
241
|
from wordlift_client.models.question_and_answer import QuestionAndAnswer
|
|
236
242
|
from wordlift_client.models.question_and_answer_request import QuestionAndAnswerRequest
|
|
237
243
|
from wordlift_client.models.quick_win import QuickWin
|
|
244
|
+
from wordlift_client.models.quick_wins_result import QuickWinsResult
|
|
238
245
|
from wordlift_client.models.rank_entities import RankEntities
|
|
239
246
|
from wordlift_client.models.record import Record
|
|
240
247
|
from wordlift_client.models.render_request import RenderRequest
|
|
@@ -247,10 +254,10 @@ from wordlift_client.models.response1 import Response1
|
|
|
247
254
|
from wordlift_client.models.response2 import Response2
|
|
248
255
|
from wordlift_client.models.rule import Rule
|
|
249
256
|
from wordlift_client.models.rule_request import RuleRequest
|
|
257
|
+
from wordlift_client.models.schema_recommendation import SchemaRecommendation
|
|
250
258
|
from wordlift_client.models.scope import Scope
|
|
251
259
|
from wordlift_client.models.seo_fundamentals import SeoFundamentals
|
|
252
260
|
from wordlift_client.models.site_files import SiteFiles
|
|
253
|
-
from wordlift_client.models.site_files_bot_access import SiteFilesBotAccess
|
|
254
261
|
from wordlift_client.models.sitemap_import_request import SitemapImportRequest
|
|
255
262
|
from wordlift_client.models.smart_content import SmartContent
|
|
256
263
|
from wordlift_client.models.smart_content_request import SmartContentRequest
|
|
@@ -284,6 +291,7 @@ from wordlift_client.models.web_page_import_response import WebPageImportRespons
|
|
|
284
291
|
from wordlift_client.models.webpage_properties import WebpageProperties
|
|
285
292
|
from wordlift_client.models.website import Website
|
|
286
293
|
from wordlift_client.models.website_search import WebsiteSearch
|
|
294
|
+
from wordlift_client.models.well_known_files import WellKnownFiles
|
|
287
295
|
from wordlift_client.models.what_operand_lhs import WhatOperandLhs
|
|
288
296
|
from wordlift_client.models.what_operator import WhatOperator
|
|
289
297
|
from wordlift_client.models.when_operator import WhenOperator
|
wordlift_client/api/audit_api.py
CHANGED
|
@@ -57,7 +57,7 @@ class AuditApi:
|
|
|
57
57
|
) -> AuditResponse:
|
|
58
58
|
"""Website Audit
|
|
59
59
|
|
|
60
|
-
Performs a comprehensive SEO and AI-readiness audit of a specified URL. The audit analyzes: - Site files (robots.txt, llms.txt) - SEO fundamentals (title, description, headings) - Structured data (Schema.org, JSON-LD) - Content structure and semantic HTML - Image accessibility - Automation readiness for AI agents - JavaScript rendering and bot accessibility Returns an overall score (0-100) and detailed recommendations for improvement.
|
|
60
|
+
Performs a comprehensive SEO and AI-readiness audit of a specified URL. The audit analyzes: - Site files (robots.txt, llms.txt, .well-known directory) - SEO fundamentals (title, description, headings) - Structured data (Schema.org, JSON-LD, Microdata) - Content structure and semantic HTML - Image accessibility - Automation readiness for AI agents - JavaScript rendering and bot accessibility - Content freshness (legacy field, status Unknown) - Internal linking (legacy field, status Unknown) - HTML semantics (legacy field, status Unknown) Returns an overall score (0-100) and detailed recommendations for improvement.
|
|
61
61
|
|
|
62
62
|
:param audit_request: (required)
|
|
63
63
|
:type audit_request: AuditRequest
|
|
@@ -93,8 +93,12 @@ class AuditApi:
|
|
|
93
93
|
|
|
94
94
|
_response_types_map: Dict[str, Optional[str]] = {
|
|
95
95
|
'200': "AuditResponse",
|
|
96
|
+
'400': "ErrorResponse",
|
|
96
97
|
'401': "ErrorResponse",
|
|
98
|
+
'403': "ErrorResponse",
|
|
99
|
+
'404': "ErrorResponse",
|
|
97
100
|
'422': "ValidationError1",
|
|
101
|
+
'500': "ErrorResponse",
|
|
98
102
|
}
|
|
99
103
|
response_data = await self.api_client.call_api(
|
|
100
104
|
*_param,
|
|
@@ -126,7 +130,7 @@ class AuditApi:
|
|
|
126
130
|
) -> ApiResponse[AuditResponse]:
|
|
127
131
|
"""Website Audit
|
|
128
132
|
|
|
129
|
-
Performs a comprehensive SEO and AI-readiness audit of a specified URL. The audit analyzes: - Site files (robots.txt, llms.txt) - SEO fundamentals (title, description, headings) - Structured data (Schema.org, JSON-LD) - Content structure and semantic HTML - Image accessibility - Automation readiness for AI agents - JavaScript rendering and bot accessibility Returns an overall score (0-100) and detailed recommendations for improvement.
|
|
133
|
+
Performs a comprehensive SEO and AI-readiness audit of a specified URL. The audit analyzes: - Site files (robots.txt, llms.txt, .well-known directory) - SEO fundamentals (title, description, headings) - Structured data (Schema.org, JSON-LD, Microdata) - Content structure and semantic HTML - Image accessibility - Automation readiness for AI agents - JavaScript rendering and bot accessibility - Content freshness (legacy field, status Unknown) - Internal linking (legacy field, status Unknown) - HTML semantics (legacy field, status Unknown) Returns an overall score (0-100) and detailed recommendations for improvement.
|
|
130
134
|
|
|
131
135
|
:param audit_request: (required)
|
|
132
136
|
:type audit_request: AuditRequest
|
|
@@ -162,8 +166,12 @@ class AuditApi:
|
|
|
162
166
|
|
|
163
167
|
_response_types_map: Dict[str, Optional[str]] = {
|
|
164
168
|
'200': "AuditResponse",
|
|
169
|
+
'400': "ErrorResponse",
|
|
165
170
|
'401': "ErrorResponse",
|
|
171
|
+
'403': "ErrorResponse",
|
|
172
|
+
'404': "ErrorResponse",
|
|
166
173
|
'422': "ValidationError1",
|
|
174
|
+
'500': "ErrorResponse",
|
|
167
175
|
}
|
|
168
176
|
response_data = await self.api_client.call_api(
|
|
169
177
|
*_param,
|
|
@@ -195,7 +203,7 @@ class AuditApi:
|
|
|
195
203
|
) -> RESTResponseType:
|
|
196
204
|
"""Website Audit
|
|
197
205
|
|
|
198
|
-
Performs a comprehensive SEO and AI-readiness audit of a specified URL. The audit analyzes: - Site files (robots.txt, llms.txt) - SEO fundamentals (title, description, headings) - Structured data (Schema.org, JSON-LD) - Content structure and semantic HTML - Image accessibility - Automation readiness for AI agents - JavaScript rendering and bot accessibility Returns an overall score (0-100) and detailed recommendations for improvement.
|
|
206
|
+
Performs a comprehensive SEO and AI-readiness audit of a specified URL. The audit analyzes: - Site files (robots.txt, llms.txt, .well-known directory) - SEO fundamentals (title, description, headings) - Structured data (Schema.org, JSON-LD, Microdata) - Content structure and semantic HTML - Image accessibility - Automation readiness for AI agents - JavaScript rendering and bot accessibility - Content freshness (legacy field, status Unknown) - Internal linking (legacy field, status Unknown) - HTML semantics (legacy field, status Unknown) Returns an overall score (0-100) and detailed recommendations for improvement.
|
|
199
207
|
|
|
200
208
|
:param audit_request: (required)
|
|
201
209
|
:type audit_request: AuditRequest
|
|
@@ -231,8 +239,12 @@ class AuditApi:
|
|
|
231
239
|
|
|
232
240
|
_response_types_map: Dict[str, Optional[str]] = {
|
|
233
241
|
'200': "AuditResponse",
|
|
242
|
+
'400': "ErrorResponse",
|
|
234
243
|
'401': "ErrorResponse",
|
|
244
|
+
'403': "ErrorResponse",
|
|
245
|
+
'404': "ErrorResponse",
|
|
235
246
|
'422': "ValidationError1",
|
|
247
|
+
'500': "ErrorResponse",
|
|
236
248
|
}
|
|
237
249
|
response_data = await self.api_client.call_api(
|
|
238
250
|
*_param,
|
|
@@ -20,7 +20,7 @@ from typing_extensions import Annotated
|
|
|
20
20
|
from pydantic import StrictStr
|
|
21
21
|
from typing import Optional
|
|
22
22
|
from wordlift_client.models.ai_visibility_analysis_result import AIVisibilityAnalysisResult
|
|
23
|
-
from wordlift_client.models.
|
|
23
|
+
from wordlift_client.models.analyze_content_request import AnalyzeContentRequest
|
|
24
24
|
|
|
25
25
|
from wordlift_client.api_client import ApiClient, RequestSerialized
|
|
26
26
|
from wordlift_client.api_response import ApiResponse
|
|
@@ -43,7 +43,7 @@ class QueryFanOutApi:
|
|
|
43
43
|
@validate_call
|
|
44
44
|
async def create_ai_visibility_audit(
|
|
45
45
|
self,
|
|
46
|
-
|
|
46
|
+
analyze_content_request: AnalyzeContentRequest,
|
|
47
47
|
authorization: Optional[StrictStr] = None,
|
|
48
48
|
_request_timeout: Union[
|
|
49
49
|
None,
|
|
@@ -61,8 +61,8 @@ class QueryFanOutApi:
|
|
|
61
61
|
"""Create AI visibility audits for Query Fan-Out
|
|
62
62
|
|
|
63
63
|
|
|
64
|
-
:param
|
|
65
|
-
:type
|
|
64
|
+
:param analyze_content_request: (required)
|
|
65
|
+
:type analyze_content_request: AnalyzeContentRequest
|
|
66
66
|
:param authorization:
|
|
67
67
|
:type authorization: str
|
|
68
68
|
:param _request_timeout: timeout setting for this request. If one
|
|
@@ -88,7 +88,7 @@ class QueryFanOutApi:
|
|
|
88
88
|
""" # noqa: E501
|
|
89
89
|
|
|
90
90
|
_param = self._create_ai_visibility_audit_serialize(
|
|
91
|
-
|
|
91
|
+
analyze_content_request=analyze_content_request,
|
|
92
92
|
authorization=authorization,
|
|
93
93
|
_request_auth=_request_auth,
|
|
94
94
|
_content_type=_content_type,
|
|
@@ -114,7 +114,7 @@ class QueryFanOutApi:
|
|
|
114
114
|
@validate_call
|
|
115
115
|
async def create_ai_visibility_audit_with_http_info(
|
|
116
116
|
self,
|
|
117
|
-
|
|
117
|
+
analyze_content_request: AnalyzeContentRequest,
|
|
118
118
|
authorization: Optional[StrictStr] = None,
|
|
119
119
|
_request_timeout: Union[
|
|
120
120
|
None,
|
|
@@ -132,8 +132,8 @@ class QueryFanOutApi:
|
|
|
132
132
|
"""Create AI visibility audits for Query Fan-Out
|
|
133
133
|
|
|
134
134
|
|
|
135
|
-
:param
|
|
136
|
-
:type
|
|
135
|
+
:param analyze_content_request: (required)
|
|
136
|
+
:type analyze_content_request: AnalyzeContentRequest
|
|
137
137
|
:param authorization:
|
|
138
138
|
:type authorization: str
|
|
139
139
|
:param _request_timeout: timeout setting for this request. If one
|
|
@@ -159,7 +159,7 @@ class QueryFanOutApi:
|
|
|
159
159
|
""" # noqa: E501
|
|
160
160
|
|
|
161
161
|
_param = self._create_ai_visibility_audit_serialize(
|
|
162
|
-
|
|
162
|
+
analyze_content_request=analyze_content_request,
|
|
163
163
|
authorization=authorization,
|
|
164
164
|
_request_auth=_request_auth,
|
|
165
165
|
_content_type=_content_type,
|
|
@@ -185,7 +185,7 @@ class QueryFanOutApi:
|
|
|
185
185
|
@validate_call
|
|
186
186
|
async def create_ai_visibility_audit_without_preload_content(
|
|
187
187
|
self,
|
|
188
|
-
|
|
188
|
+
analyze_content_request: AnalyzeContentRequest,
|
|
189
189
|
authorization: Optional[StrictStr] = None,
|
|
190
190
|
_request_timeout: Union[
|
|
191
191
|
None,
|
|
@@ -203,8 +203,8 @@ class QueryFanOutApi:
|
|
|
203
203
|
"""Create AI visibility audits for Query Fan-Out
|
|
204
204
|
|
|
205
205
|
|
|
206
|
-
:param
|
|
207
|
-
:type
|
|
206
|
+
:param analyze_content_request: (required)
|
|
207
|
+
:type analyze_content_request: AnalyzeContentRequest
|
|
208
208
|
:param authorization:
|
|
209
209
|
:type authorization: str
|
|
210
210
|
:param _request_timeout: timeout setting for this request. If one
|
|
@@ -230,7 +230,7 @@ class QueryFanOutApi:
|
|
|
230
230
|
""" # noqa: E501
|
|
231
231
|
|
|
232
232
|
_param = self._create_ai_visibility_audit_serialize(
|
|
233
|
-
|
|
233
|
+
analyze_content_request=analyze_content_request,
|
|
234
234
|
authorization=authorization,
|
|
235
235
|
_request_auth=_request_auth,
|
|
236
236
|
_content_type=_content_type,
|
|
@@ -251,7 +251,7 @@ class QueryFanOutApi:
|
|
|
251
251
|
|
|
252
252
|
def _create_ai_visibility_audit_serialize(
|
|
253
253
|
self,
|
|
254
|
-
|
|
254
|
+
analyze_content_request,
|
|
255
255
|
authorization,
|
|
256
256
|
_request_auth,
|
|
257
257
|
_content_type,
|
|
@@ -278,8 +278,8 @@ class QueryFanOutApi:
|
|
|
278
278
|
_header_params['authorization'] = authorization
|
|
279
279
|
# process the form parameters
|
|
280
280
|
# process the body parameter
|
|
281
|
-
if
|
|
282
|
-
_body_params =
|
|
281
|
+
if analyze_content_request is not None:
|
|
282
|
+
_body_params = analyze_content_request
|
|
283
283
|
|
|
284
284
|
|
|
285
285
|
# set the HTTP header `Accept`
|
wordlift_client/api_client.py
CHANGED
|
@@ -89,7 +89,7 @@ class ApiClient:
|
|
|
89
89
|
self.default_headers[header_name] = header_value
|
|
90
90
|
self.cookie = cookie
|
|
91
91
|
# Set default User-Agent.
|
|
92
|
-
self.user_agent = 'OpenAPI-Generator/1.
|
|
92
|
+
self.user_agent = 'OpenAPI-Generator/1.135.0/python'
|
|
93
93
|
self.client_side_validation = configuration.client_side_validation
|
|
94
94
|
|
|
95
95
|
async def __aenter__(self):
|
wordlift_client/configuration.py
CHANGED
|
@@ -426,7 +426,7 @@ conf = wordlift_client.Configuration(
|
|
|
426
426
|
"OS: {env}\n"\
|
|
427
427
|
"Python Version: {pyversion}\n"\
|
|
428
428
|
"Version of the API: 1.0\n"\
|
|
429
|
-
"SDK Package Version: 1.
|
|
429
|
+
"SDK Package Version: 1.135.0".\
|
|
430
430
|
format(env=sys.platform, pyversion=sys.version)
|
|
431
431
|
|
|
432
432
|
def get_host_settings(self):
|
|
@@ -29,7 +29,7 @@ from wordlift_client.models.analyses_response_item import AnalysesResponseItem
|
|
|
29
29
|
from wordlift_client.models.analytics_import_request import AnalyticsImportRequest
|
|
30
30
|
from wordlift_client.models.analytics_sync import AnalyticsSync
|
|
31
31
|
from wordlift_client.models.analytics_sync_request import AnalyticsSyncRequest
|
|
32
|
-
from wordlift_client.models.
|
|
32
|
+
from wordlift_client.models.analyze_content_request import AnalyzeContentRequest
|
|
33
33
|
from wordlift_client.models.anchor_text import AnchorText
|
|
34
34
|
from wordlift_client.models.annotation import Annotation
|
|
35
35
|
from wordlift_client.models.ask_request import AskRequest
|
|
@@ -41,8 +41,10 @@ from wordlift_client.models.author_request import AuthorRequest
|
|
|
41
41
|
from wordlift_client.models.authorization import Authorization
|
|
42
42
|
from wordlift_client.models.authorization_status import AuthorizationStatus
|
|
43
43
|
from wordlift_client.models.autocomplete_result import AutocompleteResult
|
|
44
|
+
from wordlift_client.models.automation_issue import AutomationIssue
|
|
44
45
|
from wordlift_client.models.automation_readiness import AutomationReadiness
|
|
45
46
|
from wordlift_client.models.batch_request import BatchRequest
|
|
47
|
+
from wordlift_client.models.bot_status import BotStatus
|
|
46
48
|
from wordlift_client.models.botify_crawl_import_request import BotifyCrawlImportRequest
|
|
47
49
|
from wordlift_client.models.build_authorize_uri_request import BuildAuthorizeUriRequest
|
|
48
50
|
from wordlift_client.models.build_authorize_uri_response import BuildAuthorizeUriResponse
|
|
@@ -63,12 +65,14 @@ from wordlift_client.models.content_evaluation_response_quality_score_breakdown_
|
|
|
63
65
|
from wordlift_client.models.content_evaluation_response_quality_score_breakdown_seo_top_entities_value_inner import ContentEvaluationResponseQualityScoreBreakdownSeoTopEntitiesValueInner
|
|
64
66
|
from wordlift_client.models.content_expansion_request import ContentExpansionRequest
|
|
65
67
|
from wordlift_client.models.content_expansion_response import ContentExpansionResponse
|
|
68
|
+
from wordlift_client.models.content_freshness import ContentFreshness
|
|
66
69
|
from wordlift_client.models.content_generation import ContentGeneration
|
|
67
70
|
from wordlift_client.models.content_generation_request import ContentGenerationRequest
|
|
68
71
|
from wordlift_client.models.content_generation_stats import ContentGenerationStats
|
|
69
72
|
from wordlift_client.models.content_structure import ContentStructure
|
|
70
73
|
from wordlift_client.models.create_embeddings_input import CreateEmbeddingsInput
|
|
71
74
|
from wordlift_client.models.create_url_inspection_request import CreateUrlInspectionRequest
|
|
75
|
+
from wordlift_client.models.detected_schema import DetectedSchema
|
|
72
76
|
from wordlift_client.models.diagnostic_plugin import DiagnosticPlugin
|
|
73
77
|
from wordlift_client.models.diagnostic_plugin_request import DiagnosticPluginRequest
|
|
74
78
|
from wordlift_client.models.domain_validation_request import DomainValidationRequest
|
|
@@ -90,6 +94,7 @@ from wordlift_client.models.generate_sitemap_request import GenerateSitemapReque
|
|
|
90
94
|
from wordlift_client.models.graphql_request import GraphqlRequest
|
|
91
95
|
from wordlift_client.models.http_validation_error import HTTPValidationError
|
|
92
96
|
from wordlift_client.models.html import Html
|
|
97
|
+
from wordlift_client.models.html_semantics import HtmlSemantics
|
|
93
98
|
from wordlift_client.models.image import Image
|
|
94
99
|
from wordlift_client.models.image_accessibility import ImageAccessibility
|
|
95
100
|
from wordlift_client.models.include_exclude import IncludeExclude
|
|
@@ -99,6 +104,7 @@ from wordlift_client.models.internal_link import InternalLink
|
|
|
99
104
|
from wordlift_client.models.internal_link_destination import InternalLinkDestination
|
|
100
105
|
from wordlift_client.models.internal_link_request import InternalLinkRequest
|
|
101
106
|
from wordlift_client.models.internal_link_source import InternalLinkSource
|
|
107
|
+
from wordlift_client.models.internal_linking import InternalLinking
|
|
102
108
|
from wordlift_client.models.item import Item
|
|
103
109
|
from wordlift_client.models.js_rendering import JsRendering
|
|
104
110
|
from wordlift_client.models.kg_embedding_request import KgEmbeddingRequest
|
|
@@ -150,6 +156,7 @@ from wordlift_client.models.query_coverage_output import QueryCoverageOutput
|
|
|
150
156
|
from wordlift_client.models.question_and_answer import QuestionAndAnswer
|
|
151
157
|
from wordlift_client.models.question_and_answer_request import QuestionAndAnswerRequest
|
|
152
158
|
from wordlift_client.models.quick_win import QuickWin
|
|
159
|
+
from wordlift_client.models.quick_wins_result import QuickWinsResult
|
|
153
160
|
from wordlift_client.models.rank_entities import RankEntities
|
|
154
161
|
from wordlift_client.models.record import Record
|
|
155
162
|
from wordlift_client.models.render_request import RenderRequest
|
|
@@ -162,10 +169,10 @@ from wordlift_client.models.response1 import Response1
|
|
|
162
169
|
from wordlift_client.models.response2 import Response2
|
|
163
170
|
from wordlift_client.models.rule import Rule
|
|
164
171
|
from wordlift_client.models.rule_request import RuleRequest
|
|
172
|
+
from wordlift_client.models.schema_recommendation import SchemaRecommendation
|
|
165
173
|
from wordlift_client.models.scope import Scope
|
|
166
174
|
from wordlift_client.models.seo_fundamentals import SeoFundamentals
|
|
167
175
|
from wordlift_client.models.site_files import SiteFiles
|
|
168
|
-
from wordlift_client.models.site_files_bot_access import SiteFilesBotAccess
|
|
169
176
|
from wordlift_client.models.sitemap_import_request import SitemapImportRequest
|
|
170
177
|
from wordlift_client.models.smart_content import SmartContent
|
|
171
178
|
from wordlift_client.models.smart_content_request import SmartContentRequest
|
|
@@ -199,6 +206,7 @@ from wordlift_client.models.web_page_import_response import WebPageImportRespons
|
|
|
199
206
|
from wordlift_client.models.webpage_properties import WebpageProperties
|
|
200
207
|
from wordlift_client.models.website import Website
|
|
201
208
|
from wordlift_client.models.website_search import WebsiteSearch
|
|
209
|
+
from wordlift_client.models.well_known_files import WellKnownFiles
|
|
202
210
|
from wordlift_client.models.what_operand_lhs import WhatOperandLhs
|
|
203
211
|
from wordlift_client.models.what_operator import WhatOperator
|
|
204
212
|
from wordlift_client.models.when_operator import WhenOperator
|
|
@@ -28,7 +28,6 @@ class AIVisibilityAnalysisResult(BaseModel):
|
|
|
28
28
|
"""
|
|
29
29
|
AIVisibilityAnalysisResult
|
|
30
30
|
""" # noqa: E501
|
|
31
|
-
url: StrictStr
|
|
32
31
|
num_queries_requested: StrictInt
|
|
33
32
|
coverage_threshold: Union[StrictFloat, StrictInt]
|
|
34
33
|
entity_name: StrictStr
|
|
@@ -38,7 +37,7 @@ class AIVisibilityAnalysisResult(BaseModel):
|
|
|
38
37
|
query_details: List[QueryCoverageOutput]
|
|
39
38
|
content_chunks_count: StrictInt
|
|
40
39
|
coverage_score: Union[StrictFloat, StrictInt]
|
|
41
|
-
__properties: ClassVar[List[str]] = ["
|
|
40
|
+
__properties: ClassVar[List[str]] = ["num_queries_requested", "coverage_threshold", "entity_name", "query_reasoning", "covered_count", "total_queries", "query_details", "content_chunks_count", "coverage_score"]
|
|
42
41
|
|
|
43
42
|
model_config = ConfigDict(
|
|
44
43
|
populate_by_name=True,
|
|
@@ -100,7 +99,6 @@ class AIVisibilityAnalysisResult(BaseModel):
|
|
|
100
99
|
return cls.model_validate(obj)
|
|
101
100
|
|
|
102
101
|
_obj = cls.model_validate({
|
|
103
|
-
"url": obj.get("url"),
|
|
104
102
|
"num_queries_requested": obj.get("num_queries_requested"),
|
|
105
103
|
"coverage_threshold": obj.get("coverage_threshold"),
|
|
106
104
|
"entity_name": obj.get("entity_name"),
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
WordLift API
|
|
5
|
+
|
|
6
|
+
WordLift API
|
|
7
|
+
|
|
8
|
+
The version of the OpenAPI document: 1.0
|
|
9
|
+
Contact: hello@wordlift.io
|
|
10
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
11
|
+
|
|
12
|
+
Do not edit the class manually.
|
|
13
|
+
""" # noqa: E501
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
from __future__ import annotations
|
|
17
|
+
import pprint
|
|
18
|
+
import re # noqa: F401
|
|
19
|
+
import json
|
|
20
|
+
|
|
21
|
+
from pydantic import BaseModel, ConfigDict, Field, StrictStr
|
|
22
|
+
from typing import Any, ClassVar, Dict, List, Optional, Union
|
|
23
|
+
from typing_extensions import Annotated
|
|
24
|
+
from typing import Optional, Set
|
|
25
|
+
from typing_extensions import Self
|
|
26
|
+
|
|
27
|
+
class AnalyzeContentRequest(BaseModel):
|
|
28
|
+
"""
|
|
29
|
+
AnalyzeContentRequest
|
|
30
|
+
""" # noqa: E501
|
|
31
|
+
url: Optional[Annotated[str, Field(min_length=1, strict=True, max_length=2083)]] = None
|
|
32
|
+
text: Optional[StrictStr] = None
|
|
33
|
+
num_queries: Optional[Annotated[int, Field(le=20, strict=True, ge=1)]] = Field(default=10, description="Number of synthetic queries to generate")
|
|
34
|
+
coverage_threshold: Optional[Union[Annotated[float, Field(le=1, strict=True, ge=0)], Annotated[int, Field(le=1, strict=True, ge=0)]]] = Field(default=0.65, description="The threshold for answering synthetic queries")
|
|
35
|
+
__properties: ClassVar[List[str]] = ["url", "text", "num_queries", "coverage_threshold"]
|
|
36
|
+
|
|
37
|
+
model_config = ConfigDict(
|
|
38
|
+
populate_by_name=True,
|
|
39
|
+
validate_assignment=True,
|
|
40
|
+
protected_namespaces=(),
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def to_str(self) -> str:
|
|
45
|
+
"""Returns the string representation of the model using alias"""
|
|
46
|
+
return pprint.pformat(self.model_dump(by_alias=True))
|
|
47
|
+
|
|
48
|
+
def to_json(self) -> str:
|
|
49
|
+
"""Returns the JSON representation of the model using alias"""
|
|
50
|
+
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
|
|
51
|
+
return json.dumps(self.to_dict())
|
|
52
|
+
|
|
53
|
+
@classmethod
|
|
54
|
+
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
55
|
+
"""Create an instance of AnalyzeContentRequest from a JSON string"""
|
|
56
|
+
return cls.from_dict(json.loads(json_str))
|
|
57
|
+
|
|
58
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
59
|
+
"""Return the dictionary representation of the model using alias.
|
|
60
|
+
|
|
61
|
+
This has the following differences from calling pydantic's
|
|
62
|
+
`self.model_dump(by_alias=True)`:
|
|
63
|
+
|
|
64
|
+
* `None` is only added to the output dict for nullable fields that
|
|
65
|
+
were set at model initialization. Other fields with value `None`
|
|
66
|
+
are ignored.
|
|
67
|
+
"""
|
|
68
|
+
excluded_fields: Set[str] = set([
|
|
69
|
+
])
|
|
70
|
+
|
|
71
|
+
_dict = self.model_dump(
|
|
72
|
+
by_alias=True,
|
|
73
|
+
exclude=excluded_fields,
|
|
74
|
+
exclude_none=True,
|
|
75
|
+
)
|
|
76
|
+
# set to None if url (nullable) is None
|
|
77
|
+
# and model_fields_set contains the field
|
|
78
|
+
if self.url is None and "url" in self.model_fields_set:
|
|
79
|
+
_dict['url'] = None
|
|
80
|
+
|
|
81
|
+
# set to None if text (nullable) is None
|
|
82
|
+
# and model_fields_set contains the field
|
|
83
|
+
if self.text is None and "text" in self.model_fields_set:
|
|
84
|
+
_dict['text'] = None
|
|
85
|
+
|
|
86
|
+
return _dict
|
|
87
|
+
|
|
88
|
+
@classmethod
|
|
89
|
+
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
90
|
+
"""Create an instance of AnalyzeContentRequest from a dict"""
|
|
91
|
+
if obj is None:
|
|
92
|
+
return None
|
|
93
|
+
|
|
94
|
+
if not isinstance(obj, dict):
|
|
95
|
+
return cls.model_validate(obj)
|
|
96
|
+
|
|
97
|
+
_obj = cls.model_validate({
|
|
98
|
+
"url": obj.get("url"),
|
|
99
|
+
"text": obj.get("text"),
|
|
100
|
+
"num_queries": obj.get("num_queries") if obj.get("num_queries") is not None else 10,
|
|
101
|
+
"coverage_threshold": obj.get("coverage_threshold") if obj.get("coverage_threshold") is not None else 0.65
|
|
102
|
+
})
|
|
103
|
+
return _obj
|
|
104
|
+
|
|
105
|
+
|
|
@@ -23,10 +23,13 @@ from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr, field_v
|
|
|
23
23
|
from typing import Any, ClassVar, Dict, List, Optional
|
|
24
24
|
from typing_extensions import Annotated
|
|
25
25
|
from wordlift_client.models.automation_readiness import AutomationReadiness
|
|
26
|
+
from wordlift_client.models.content_freshness import ContentFreshness
|
|
26
27
|
from wordlift_client.models.content_structure import ContentStructure
|
|
28
|
+
from wordlift_client.models.html_semantics import HtmlSemantics
|
|
27
29
|
from wordlift_client.models.image_accessibility import ImageAccessibility
|
|
30
|
+
from wordlift_client.models.internal_linking import InternalLinking
|
|
28
31
|
from wordlift_client.models.js_rendering import JsRendering
|
|
29
|
-
from wordlift_client.models.
|
|
32
|
+
from wordlift_client.models.quick_wins_result import QuickWinsResult
|
|
30
33
|
from wordlift_client.models.seo_fundamentals import SeoFundamentals
|
|
31
34
|
from wordlift_client.models.site_files import SiteFiles
|
|
32
35
|
from wordlift_client.models.structured_data import StructuredData
|
|
@@ -41,19 +44,23 @@ class AuditData(BaseModel):
|
|
|
41
44
|
domain: Optional[StrictStr] = Field(default=None, description="The base domain of the audited URL")
|
|
42
45
|
timestamp: Optional[datetime] = Field(default=None, description="ISO 8601 timestamp of when the audit was performed")
|
|
43
46
|
overall_score: Optional[Annotated[int, Field(le=100, strict=True, ge=0)]] = Field(default=None, description="Overall SEO and AI-readiness score (0-100)", alias="overallScore")
|
|
44
|
-
|
|
47
|
+
score: Optional[Annotated[int, Field(le=100, strict=True, ge=0)]] = Field(default=None, description="Legacy field - same as overallScore")
|
|
48
|
+
summary: Optional[StrictStr] = Field(default=None, description="High-level summary of the audit findings in markdown format")
|
|
45
49
|
site_files: Optional[SiteFiles] = Field(default=None, alias="siteFiles")
|
|
46
50
|
seo_fundamentals: Optional[SeoFundamentals] = Field(default=None, alias="seoFundamentals")
|
|
47
51
|
structured_data: Optional[StructuredData] = Field(default=None, alias="structuredData")
|
|
48
52
|
content_structure: Optional[ContentStructure] = Field(default=None, alias="contentStructure")
|
|
49
53
|
image_accessibility: Optional[ImageAccessibility] = Field(default=None, alias="imageAccessibility")
|
|
54
|
+
html_semantics: Optional[HtmlSemantics] = Field(default=None, alias="htmlSemantics")
|
|
55
|
+
content_freshness: Optional[ContentFreshness] = Field(default=None, alias="contentFreshness")
|
|
56
|
+
internal_linking: Optional[InternalLinking] = Field(default=None, alias="internalLinking")
|
|
50
57
|
automation_readiness: Optional[AutomationReadiness] = Field(default=None, alias="automationReadiness")
|
|
51
58
|
js_rendering: Optional[JsRendering] = Field(default=None, alias="jsRendering")
|
|
52
|
-
quick_wins: Optional[
|
|
59
|
+
quick_wins: Optional[QuickWinsResult] = Field(default=None, alias="quickWins")
|
|
53
60
|
status: Optional[StrictStr] = Field(default=None, description="Status of the audit process")
|
|
54
61
|
account_id: Optional[StrictInt] = Field(default=None, description="Account ID associated with the audit", alias="accountId")
|
|
55
62
|
account_url: Optional[StrictStr] = Field(default=None, description="Account URL associated with the audit", alias="accountUrl")
|
|
56
|
-
__properties: ClassVar[List[str]] = ["url", "domain", "timestamp", "overallScore", "summary", "siteFiles", "seoFundamentals", "structuredData", "contentStructure", "imageAccessibility", "automationReadiness", "jsRendering", "quickWins", "status", "accountId", "accountUrl"]
|
|
63
|
+
__properties: ClassVar[List[str]] = ["url", "domain", "timestamp", "overallScore", "score", "summary", "siteFiles", "seoFundamentals", "structuredData", "contentStructure", "imageAccessibility", "htmlSemantics", "contentFreshness", "internalLinking", "automationReadiness", "jsRendering", "quickWins", "status", "accountId", "accountUrl"]
|
|
57
64
|
|
|
58
65
|
@field_validator('status')
|
|
59
66
|
def status_validate_enum(cls, value):
|
|
@@ -119,19 +126,24 @@ class AuditData(BaseModel):
|
|
|
119
126
|
# override the default output from pydantic by calling `to_dict()` of image_accessibility
|
|
120
127
|
if self.image_accessibility:
|
|
121
128
|
_dict['imageAccessibility'] = self.image_accessibility.to_dict()
|
|
129
|
+
# override the default output from pydantic by calling `to_dict()` of html_semantics
|
|
130
|
+
if self.html_semantics:
|
|
131
|
+
_dict['htmlSemantics'] = self.html_semantics.to_dict()
|
|
132
|
+
# override the default output from pydantic by calling `to_dict()` of content_freshness
|
|
133
|
+
if self.content_freshness:
|
|
134
|
+
_dict['contentFreshness'] = self.content_freshness.to_dict()
|
|
135
|
+
# override the default output from pydantic by calling `to_dict()` of internal_linking
|
|
136
|
+
if self.internal_linking:
|
|
137
|
+
_dict['internalLinking'] = self.internal_linking.to_dict()
|
|
122
138
|
# override the default output from pydantic by calling `to_dict()` of automation_readiness
|
|
123
139
|
if self.automation_readiness:
|
|
124
140
|
_dict['automationReadiness'] = self.automation_readiness.to_dict()
|
|
125
141
|
# override the default output from pydantic by calling `to_dict()` of js_rendering
|
|
126
142
|
if self.js_rendering:
|
|
127
143
|
_dict['jsRendering'] = self.js_rendering.to_dict()
|
|
128
|
-
# override the default output from pydantic by calling `to_dict()` of
|
|
129
|
-
_items = []
|
|
144
|
+
# override the default output from pydantic by calling `to_dict()` of quick_wins
|
|
130
145
|
if self.quick_wins:
|
|
131
|
-
|
|
132
|
-
if _item:
|
|
133
|
-
_items.append(_item.to_dict())
|
|
134
|
-
_dict['quickWins'] = _items
|
|
146
|
+
_dict['quickWins'] = self.quick_wins.to_dict()
|
|
135
147
|
return _dict
|
|
136
148
|
|
|
137
149
|
@classmethod
|
|
@@ -148,15 +160,19 @@ class AuditData(BaseModel):
|
|
|
148
160
|
"domain": obj.get("domain"),
|
|
149
161
|
"timestamp": obj.get("timestamp"),
|
|
150
162
|
"overallScore": obj.get("overallScore"),
|
|
163
|
+
"score": obj.get("score"),
|
|
151
164
|
"summary": obj.get("summary"),
|
|
152
165
|
"siteFiles": SiteFiles.from_dict(obj["siteFiles"]) if obj.get("siteFiles") is not None else None,
|
|
153
166
|
"seoFundamentals": SeoFundamentals.from_dict(obj["seoFundamentals"]) if obj.get("seoFundamentals") is not None else None,
|
|
154
167
|
"structuredData": StructuredData.from_dict(obj["structuredData"]) if obj.get("structuredData") is not None else None,
|
|
155
168
|
"contentStructure": ContentStructure.from_dict(obj["contentStructure"]) if obj.get("contentStructure") is not None else None,
|
|
156
169
|
"imageAccessibility": ImageAccessibility.from_dict(obj["imageAccessibility"]) if obj.get("imageAccessibility") is not None else None,
|
|
170
|
+
"htmlSemantics": HtmlSemantics.from_dict(obj["htmlSemantics"]) if obj.get("htmlSemantics") is not None else None,
|
|
171
|
+
"contentFreshness": ContentFreshness.from_dict(obj["contentFreshness"]) if obj.get("contentFreshness") is not None else None,
|
|
172
|
+
"internalLinking": InternalLinking.from_dict(obj["internalLinking"]) if obj.get("internalLinking") is not None else None,
|
|
157
173
|
"automationReadiness": AutomationReadiness.from_dict(obj["automationReadiness"]) if obj.get("automationReadiness") is not None else None,
|
|
158
174
|
"jsRendering": JsRendering.from_dict(obj["jsRendering"]) if obj.get("jsRendering") is not None else None,
|
|
159
|
-
"quickWins":
|
|
175
|
+
"quickWins": QuickWinsResult.from_dict(obj["quickWins"]) if obj.get("quickWins") is not None else None,
|
|
160
176
|
"status": obj.get("status"),
|
|
161
177
|
"accountId": obj.get("accountId"),
|
|
162
178
|
"accountUrl": obj.get("accountUrl")
|