wordlift-client 1.122.0__py3-none-any.whl → 1.124.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.
Files changed (29) hide show
  1. wordlift_client/__init__.py +18 -1
  2. wordlift_client/api/__init__.py +1 -0
  3. wordlift_client/api/audit_api.py +315 -0
  4. wordlift_client/api/google_search_console_api.py +275 -0
  5. wordlift_client/api_client.py +1 -1
  6. wordlift_client/configuration.py +1 -1
  7. wordlift_client/models/__init__.py +16 -0
  8. wordlift_client/models/account_stats.py +3 -1
  9. wordlift_client/models/audit_data.py +166 -0
  10. wordlift_client/models/audit_request.py +88 -0
  11. wordlift_client/models/audit_response.py +94 -0
  12. wordlift_client/models/automation_readiness.py +102 -0
  13. wordlift_client/models/content_structure.py +103 -0
  14. wordlift_client/models/create_url_inspection_request.py +88 -0
  15. wordlift_client/models/error_response.py +90 -0
  16. wordlift_client/models/image_accessibility.py +107 -0
  17. wordlift_client/models/js_rendering.py +130 -0
  18. wordlift_client/models/quick_win.py +102 -0
  19. wordlift_client/models/seo_fundamentals.py +116 -0
  20. wordlift_client/models/site_files.py +130 -0
  21. wordlift_client/models/site_files_bot_access.py +122 -0
  22. wordlift_client/models/structured_data.py +106 -0
  23. wordlift_client/models/validation_error1.py +96 -0
  24. wordlift_client/models/validation_error1_detail_inner.py +92 -0
  25. {wordlift_client-1.122.0.dist-info → wordlift_client-1.124.0.dist-info}/METADATA +1 -1
  26. {wordlift_client-1.122.0.dist-info → wordlift_client-1.124.0.dist-info}/RECORD +29 -12
  27. {wordlift_client-1.122.0.dist-info → wordlift_client-1.124.0.dist-info}/LICENSE +0 -0
  28. {wordlift_client-1.122.0.dist-info → wordlift_client-1.124.0.dist-info}/WHEEL +0 -0
  29. {wordlift_client-1.122.0.dist-info → wordlift_client-1.124.0.dist-info}/top_level.txt +0 -0
@@ -15,7 +15,7 @@
15
15
  """ # noqa: E501
16
16
 
17
17
 
18
- __version__ = "1.122.0"
18
+ __version__ = "1.124.0"
19
19
 
20
20
  # import apis into sdk package
21
21
  from wordlift_client.api.account_api import AccountApi
@@ -27,6 +27,7 @@ from wordlift_client.api.agent_api import AgentApi
27
27
  from wordlift_client.api.analyses_api import AnalysesApi
28
28
  from wordlift_client.api.analytics_imports_api import AnalyticsImportsApi
29
29
  from wordlift_client.api.analytics_syncs_api import AnalyticsSyncsApi
30
+ from wordlift_client.api.audit_api import AuditApi
30
31
  from wordlift_client.api.authors_api import AuthorsApi
31
32
  from wordlift_client.api.autocomplete_api import AutocompleteApi
32
33
  from wordlift_client.api.botify_crawl_imports_api import BotifyCrawlImportsApi
@@ -117,10 +118,14 @@ from wordlift_client.models.anchor_text import AnchorText
117
118
  from wordlift_client.models.annotation import Annotation
118
119
  from wordlift_client.models.ask_request import AskRequest
119
120
  from wordlift_client.models.ask_response import AskResponse
121
+ from wordlift_client.models.audit_data import AuditData
122
+ from wordlift_client.models.audit_request import AuditRequest
123
+ from wordlift_client.models.audit_response import AuditResponse
120
124
  from wordlift_client.models.author_request import AuthorRequest
121
125
  from wordlift_client.models.authorization import Authorization
122
126
  from wordlift_client.models.authorization_status import AuthorizationStatus
123
127
  from wordlift_client.models.autocomplete_result import AutocompleteResult
128
+ from wordlift_client.models.automation_readiness import AutomationReadiness
124
129
  from wordlift_client.models.batch_request import BatchRequest
125
130
  from wordlift_client.models.botify_crawl_import_request import BotifyCrawlImportRequest
126
131
  from wordlift_client.models.build_authorize_uri_request import BuildAuthorizeUriRequest
@@ -145,9 +150,11 @@ from wordlift_client.models.content_expansion_response import ContentExpansionRe
145
150
  from wordlift_client.models.content_generation import ContentGeneration
146
151
  from wordlift_client.models.content_generation_request import ContentGenerationRequest
147
152
  from wordlift_client.models.content_generation_stats import ContentGenerationStats
153
+ from wordlift_client.models.content_structure import ContentStructure
148
154
  from wordlift_client.models.create_embeddings_input import CreateEmbeddingsInput
149
155
  from wordlift_client.models.create_seo_score200_response import CreateSEOScore200Response
150
156
  from wordlift_client.models.create_seo_score_request import CreateSEOScoreRequest
157
+ from wordlift_client.models.create_url_inspection_request import CreateUrlInspectionRequest
151
158
  from wordlift_client.models.diagnostic_plugin import DiagnosticPlugin
152
159
  from wordlift_client.models.diagnostic_plugin_request import DiagnosticPluginRequest
153
160
  from wordlift_client.models.domain_validation_request import DomainValidationRequest
@@ -158,6 +165,7 @@ from wordlift_client.models.entity1 import Entity1
158
165
  from wordlift_client.models.entity_gap_request import EntityGapRequest
159
166
  from wordlift_client.models.entity_match import EntityMatch
160
167
  from wordlift_client.models.entity_patch_request import EntityPatchRequest
168
+ from wordlift_client.models.error_response import ErrorResponse
161
169
  from wordlift_client.models.event import Event
162
170
  from wordlift_client.models.exchange_auth_code_request import ExchangeAuthCodeRequest
163
171
  from wordlift_client.models.exchange_auth_code_response import ExchangeAuthCodeResponse
@@ -169,6 +177,7 @@ from wordlift_client.models.graphql_request import GraphqlRequest
169
177
  from wordlift_client.models.http_validation_error import HTTPValidationError
170
178
  from wordlift_client.models.html import Html
171
179
  from wordlift_client.models.image import Image
180
+ from wordlift_client.models.image_accessibility import ImageAccessibility
172
181
  from wordlift_client.models.image_to_text_request import ImageToTextRequest
173
182
  from wordlift_client.models.image_to_text_response import ImageToTextResponse
174
183
  from wordlift_client.models.include_exclude import IncludeExclude
@@ -179,6 +188,7 @@ from wordlift_client.models.internal_link_destination import InternalLinkDestina
179
188
  from wordlift_client.models.internal_link_request import InternalLinkRequest
180
189
  from wordlift_client.models.internal_link_source import InternalLinkSource
181
190
  from wordlift_client.models.item import Item
191
+ from wordlift_client.models.js_rendering import JsRendering
182
192
  from wordlift_client.models.kg_embedding_request import KgEmbeddingRequest
183
193
  from wordlift_client.models.kg_embedding_response import KgEmbeddingResponse
184
194
  from wordlift_client.models.level_enum import LevelEnum
@@ -226,6 +236,7 @@ from wordlift_client.models.properties import Properties
226
236
  from wordlift_client.models.properties1 import Properties1
227
237
  from wordlift_client.models.question_and_answer import QuestionAndAnswer
228
238
  from wordlift_client.models.question_and_answer_request import QuestionAndAnswerRequest
239
+ from wordlift_client.models.quick_win import QuickWin
229
240
  from wordlift_client.models.rank_entities import RankEntities
230
241
  from wordlift_client.models.record import Record
231
242
  from wordlift_client.models.render_request import RenderRequest
@@ -239,9 +250,13 @@ from wordlift_client.models.response2 import Response2
239
250
  from wordlift_client.models.rule import Rule
240
251
  from wordlift_client.models.rule_request import RuleRequest
241
252
  from wordlift_client.models.scope import Scope
253
+ from wordlift_client.models.seo_fundamentals import SeoFundamentals
254
+ from wordlift_client.models.site_files import SiteFiles
255
+ from wordlift_client.models.site_files_bot_access import SiteFilesBotAccess
242
256
  from wordlift_client.models.sitemap_import_request import SitemapImportRequest
243
257
  from wordlift_client.models.smart_content import SmartContent
244
258
  from wordlift_client.models.smart_content_request import SmartContentRequest
259
+ from wordlift_client.models.structured_data import StructuredData
245
260
  from wordlift_client.models.submit_fact_check200_response import SubmitFactCheck200Response
246
261
  from wordlift_client.models.submit_fact_check_request import SubmitFactCheckRequest
247
262
  from wordlift_client.models.token_response import TokenResponse
@@ -253,6 +268,8 @@ from wordlift_client.models.update_record_request import UpdateRecordRequest
253
268
  from wordlift_client.models.update_records_request import UpdateRecordsRequest
254
269
  from wordlift_client.models.update_site_url_request import UpdateSiteUrlRequest
255
270
  from wordlift_client.models.validation_error import ValidationError
271
+ from wordlift_client.models.validation_error1 import ValidationError1
272
+ from wordlift_client.models.validation_error1_detail_inner import ValidationError1DetailInner
256
273
  from wordlift_client.models.validation_fix import ValidationFix
257
274
  from wordlift_client.models.validation_result import ValidationResult
258
275
  from wordlift_client.models.validation_type_enum import ValidationTypeEnum
@@ -10,6 +10,7 @@ from wordlift_client.api.agent_api import AgentApi
10
10
  from wordlift_client.api.analyses_api import AnalysesApi
11
11
  from wordlift_client.api.analytics_imports_api import AnalyticsImportsApi
12
12
  from wordlift_client.api.analytics_syncs_api import AnalyticsSyncsApi
13
+ from wordlift_client.api.audit_api import AuditApi
13
14
  from wordlift_client.api.authors_api import AuthorsApi
14
15
  from wordlift_client.api.autocomplete_api import AutocompleteApi
15
16
  from wordlift_client.api.botify_crawl_imports_api import BotifyCrawlImportsApi
@@ -0,0 +1,315 @@
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
+ import warnings
16
+ from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
17
+ from typing import Any, Dict, List, Optional, Tuple, Union
18
+ from typing_extensions import Annotated
19
+
20
+ from wordlift_client.models.audit_request import AuditRequest
21
+ from wordlift_client.models.audit_response import AuditResponse
22
+
23
+ from wordlift_client.api_client import ApiClient, RequestSerialized
24
+ from wordlift_client.api_response import ApiResponse
25
+ from wordlift_client.rest import RESTResponseType
26
+
27
+
28
+ class AuditApi:
29
+ """NOTE: This class is auto generated by OpenAPI Generator
30
+ Ref: https://openapi-generator.tech
31
+
32
+ Do not edit the class manually.
33
+ """
34
+
35
+ def __init__(self, api_client=None) -> None:
36
+ if api_client is None:
37
+ api_client = ApiClient.get_default()
38
+ self.api_client = api_client
39
+
40
+
41
+ @validate_call
42
+ async def audit_website(
43
+ self,
44
+ audit_request: AuditRequest,
45
+ _request_timeout: Union[
46
+ None,
47
+ Annotated[StrictFloat, Field(gt=0)],
48
+ Tuple[
49
+ Annotated[StrictFloat, Field(gt=0)],
50
+ Annotated[StrictFloat, Field(gt=0)]
51
+ ]
52
+ ] = None,
53
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
54
+ _content_type: Optional[StrictStr] = None,
55
+ _headers: Optional[Dict[StrictStr, Any]] = None,
56
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
57
+ ) -> AuditResponse:
58
+ """Website Audit
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.
61
+
62
+ :param audit_request: (required)
63
+ :type audit_request: AuditRequest
64
+ :param _request_timeout: timeout setting for this request. If one
65
+ number provided, it will be total request
66
+ timeout. It can also be a pair (tuple) of
67
+ (connection, read) timeouts.
68
+ :type _request_timeout: int, tuple(int, int), optional
69
+ :param _request_auth: set to override the auth_settings for an a single
70
+ request; this effectively ignores the
71
+ authentication in the spec for a single request.
72
+ :type _request_auth: dict, optional
73
+ :param _content_type: force content-type for the request.
74
+ :type _content_type: str, Optional
75
+ :param _headers: set to override the headers for a single
76
+ request; this effectively ignores the headers
77
+ in the spec for a single request.
78
+ :type _headers: dict, optional
79
+ :param _host_index: set to override the host_index for a single
80
+ request; this effectively ignores the host_index
81
+ in the spec for a single request.
82
+ :type _host_index: int, optional
83
+ :return: Returns the result object.
84
+ """ # noqa: E501
85
+
86
+ _param = self._audit_website_serialize(
87
+ audit_request=audit_request,
88
+ _request_auth=_request_auth,
89
+ _content_type=_content_type,
90
+ _headers=_headers,
91
+ _host_index=_host_index
92
+ )
93
+
94
+ _response_types_map: Dict[str, Optional[str]] = {
95
+ '200': "AuditResponse",
96
+ '401': "ErrorResponse",
97
+ '422': "ValidationError1",
98
+ }
99
+ response_data = await self.api_client.call_api(
100
+ *_param,
101
+ _request_timeout=_request_timeout
102
+ )
103
+ await response_data.read()
104
+ return self.api_client.response_deserialize(
105
+ response_data=response_data,
106
+ response_types_map=_response_types_map,
107
+ ).data
108
+
109
+
110
+ @validate_call
111
+ async def audit_website_with_http_info(
112
+ self,
113
+ audit_request: AuditRequest,
114
+ _request_timeout: Union[
115
+ None,
116
+ Annotated[StrictFloat, Field(gt=0)],
117
+ Tuple[
118
+ Annotated[StrictFloat, Field(gt=0)],
119
+ Annotated[StrictFloat, Field(gt=0)]
120
+ ]
121
+ ] = None,
122
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
123
+ _content_type: Optional[StrictStr] = None,
124
+ _headers: Optional[Dict[StrictStr, Any]] = None,
125
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
126
+ ) -> ApiResponse[AuditResponse]:
127
+ """Website Audit
128
+
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.
130
+
131
+ :param audit_request: (required)
132
+ :type audit_request: AuditRequest
133
+ :param _request_timeout: timeout setting for this request. If one
134
+ number provided, it will be total request
135
+ timeout. It can also be a pair (tuple) of
136
+ (connection, read) timeouts.
137
+ :type _request_timeout: int, tuple(int, int), optional
138
+ :param _request_auth: set to override the auth_settings for an a single
139
+ request; this effectively ignores the
140
+ authentication in the spec for a single request.
141
+ :type _request_auth: dict, optional
142
+ :param _content_type: force content-type for the request.
143
+ :type _content_type: str, Optional
144
+ :param _headers: set to override the headers for a single
145
+ request; this effectively ignores the headers
146
+ in the spec for a single request.
147
+ :type _headers: dict, optional
148
+ :param _host_index: set to override the host_index for a single
149
+ request; this effectively ignores the host_index
150
+ in the spec for a single request.
151
+ :type _host_index: int, optional
152
+ :return: Returns the result object.
153
+ """ # noqa: E501
154
+
155
+ _param = self._audit_website_serialize(
156
+ audit_request=audit_request,
157
+ _request_auth=_request_auth,
158
+ _content_type=_content_type,
159
+ _headers=_headers,
160
+ _host_index=_host_index
161
+ )
162
+
163
+ _response_types_map: Dict[str, Optional[str]] = {
164
+ '200': "AuditResponse",
165
+ '401': "ErrorResponse",
166
+ '422': "ValidationError1",
167
+ }
168
+ response_data = await self.api_client.call_api(
169
+ *_param,
170
+ _request_timeout=_request_timeout
171
+ )
172
+ await response_data.read()
173
+ return self.api_client.response_deserialize(
174
+ response_data=response_data,
175
+ response_types_map=_response_types_map,
176
+ )
177
+
178
+
179
+ @validate_call
180
+ async def audit_website_without_preload_content(
181
+ self,
182
+ audit_request: AuditRequest,
183
+ _request_timeout: Union[
184
+ None,
185
+ Annotated[StrictFloat, Field(gt=0)],
186
+ Tuple[
187
+ Annotated[StrictFloat, Field(gt=0)],
188
+ Annotated[StrictFloat, Field(gt=0)]
189
+ ]
190
+ ] = None,
191
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
192
+ _content_type: Optional[StrictStr] = None,
193
+ _headers: Optional[Dict[StrictStr, Any]] = None,
194
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
195
+ ) -> RESTResponseType:
196
+ """Website Audit
197
+
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.
199
+
200
+ :param audit_request: (required)
201
+ :type audit_request: AuditRequest
202
+ :param _request_timeout: timeout setting for this request. If one
203
+ number provided, it will be total request
204
+ timeout. It can also be a pair (tuple) of
205
+ (connection, read) timeouts.
206
+ :type _request_timeout: int, tuple(int, int), optional
207
+ :param _request_auth: set to override the auth_settings for an a single
208
+ request; this effectively ignores the
209
+ authentication in the spec for a single request.
210
+ :type _request_auth: dict, optional
211
+ :param _content_type: force content-type for the request.
212
+ :type _content_type: str, Optional
213
+ :param _headers: set to override the headers for a single
214
+ request; this effectively ignores the headers
215
+ in the spec for a single request.
216
+ :type _headers: dict, optional
217
+ :param _host_index: set to override the host_index for a single
218
+ request; this effectively ignores the host_index
219
+ in the spec for a single request.
220
+ :type _host_index: int, optional
221
+ :return: Returns the result object.
222
+ """ # noqa: E501
223
+
224
+ _param = self._audit_website_serialize(
225
+ audit_request=audit_request,
226
+ _request_auth=_request_auth,
227
+ _content_type=_content_type,
228
+ _headers=_headers,
229
+ _host_index=_host_index
230
+ )
231
+
232
+ _response_types_map: Dict[str, Optional[str]] = {
233
+ '200': "AuditResponse",
234
+ '401': "ErrorResponse",
235
+ '422': "ValidationError1",
236
+ }
237
+ response_data = await self.api_client.call_api(
238
+ *_param,
239
+ _request_timeout=_request_timeout
240
+ )
241
+ return response_data.response
242
+
243
+
244
+ def _audit_website_serialize(
245
+ self,
246
+ audit_request,
247
+ _request_auth,
248
+ _content_type,
249
+ _headers,
250
+ _host_index,
251
+ ) -> RequestSerialized:
252
+
253
+ _host = None
254
+
255
+ _collection_formats: Dict[str, str] = {
256
+ }
257
+
258
+ _path_params: Dict[str, str] = {}
259
+ _query_params: List[Tuple[str, str]] = []
260
+ _header_params: Dict[str, Optional[str]] = _headers or {}
261
+ _form_params: List[Tuple[str, str]] = []
262
+ _files: Dict[str, Union[str, bytes]] = {}
263
+ _body_params: Optional[bytes] = None
264
+
265
+ # process the path parameters
266
+ # process the query parameters
267
+ # process the header parameters
268
+ # process the form parameters
269
+ # process the body parameter
270
+ if audit_request is not None:
271
+ _body_params = audit_request
272
+
273
+
274
+ # set the HTTP header `Accept`
275
+ _header_params['Accept'] = self.api_client.select_header_accept(
276
+ [
277
+ 'application/json'
278
+ ]
279
+ )
280
+
281
+ # set the HTTP header `Content-Type`
282
+ if _content_type:
283
+ _header_params['Content-Type'] = _content_type
284
+ else:
285
+ _default_content_type = (
286
+ self.api_client.select_header_content_type(
287
+ [
288
+ 'application/json'
289
+ ]
290
+ )
291
+ )
292
+ if _default_content_type is not None:
293
+ _header_params['Content-Type'] = _default_content_type
294
+
295
+ # authentication setting
296
+ _auth_settings: List[str] = [
297
+ 'ApiKey'
298
+ ]
299
+
300
+ return self.api_client.param_serialize(
301
+ method='POST',
302
+ resource_path='/audit',
303
+ path_params=_path_params,
304
+ query_params=_query_params,
305
+ header_params=_header_params,
306
+ body=_body_params,
307
+ post_params=_form_params,
308
+ files=_files,
309
+ auth_settings=_auth_settings,
310
+ collection_formats=_collection_formats,
311
+ _host=_host,
312
+ _request_auth=_request_auth
313
+ )
314
+
315
+