blob: 81d541c7749c493a5559ab66ece1fda116785835 [file] [log] [blame]
Yoshi Automation Botb6971b02020-11-26 17:16:03 -08001{
Anthonios Partheniou10f4b672021-04-13 14:47:53 -04002 "auth": {
3 "oauth2": {
4 "scopes": {
5 "openid": {
6 "description": "Associate you with your personal info on Google"
7 }
8 }
9 }
10 },
11 "basePath": "",
12 "baseUrl": "https://pagespeedonline.googleapis.com/",
13 "batchPath": "batch",
14 "canonicalName": "Pagespeed Insights",
15 "description": "The PageSpeed Insights API lets you analyze the performance of your website with a simple API. It offers tailored suggestions for how you can optimize your site, and lets you easily integrate PageSpeed Insights analysis into your development tools and workflow. ",
16 "discoveryVersion": "v1",
17 "documentationLink": "https://developers.google.com/speed/docs/insights/v5/about",
18 "fullyEncodeReservedExpansion": true,
19 "icons": {
20 "x16": "http://www.google.com/images/icons/product/search-16.gif",
21 "x32": "http://www.google.com/images/icons/product/search-32.gif"
22 },
23 "id": "pagespeedonline:v5",
24 "kind": "discovery#restDescription",
25 "mtlsRootUrl": "https://pagespeedonline.mtls.googleapis.com/",
26 "name": "pagespeedonline",
27 "ownerDomain": "google.com",
28 "ownerName": "Google",
29 "parameters": {
30 "$.xgafv": {
31 "description": "V1 error format.",
32 "enum": [
33 "1",
34 "2"
35 ],
36 "enumDescriptions": [
37 "v1 error format",
38 "v2 error format"
39 ],
40 "location": "query",
41 "type": "string"
42 },
43 "access_token": {
44 "description": "OAuth access token.",
45 "location": "query",
46 "type": "string"
47 },
48 "alt": {
49 "default": "json",
50 "description": "Data format for response.",
51 "enum": [
52 "json",
53 "media",
54 "proto"
55 ],
56 "enumDescriptions": [
57 "Responses with Content-Type of application/json",
58 "Media download with context-dependent Content-Type",
59 "Responses with Content-Type of application/x-protobuf"
60 ],
61 "location": "query",
62 "type": "string"
63 },
64 "callback": {
65 "description": "JSONP",
66 "location": "query",
67 "type": "string"
68 },
69 "fields": {
70 "description": "Selector specifying which fields to include in a partial response.",
71 "location": "query",
72 "type": "string"
73 },
74 "key": {
75 "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
76 "location": "query",
77 "type": "string"
78 },
79 "oauth_token": {
80 "description": "OAuth 2.0 token for the current user.",
81 "location": "query",
82 "type": "string"
83 },
84 "prettyPrint": {
85 "default": "true",
86 "description": "Returns response with indentations and line breaks.",
87 "location": "query",
88 "type": "boolean"
89 },
90 "quotaUser": {
91 "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
92 "location": "query",
93 "type": "string"
94 },
95 "uploadType": {
96 "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
97 "location": "query",
98 "type": "string"
99 },
100 "upload_protocol": {
101 "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
102 "location": "query",
103 "type": "string"
104 }
105 },
106 "protocol": "rest",
107 "resources": {
108 "pagespeedapi": {
109 "methods": {
110 "runpagespeed": {
111 "description": "Runs PageSpeed analysis on the page at the specified URL, and returns PageSpeed scores, a list of suggestions to make that page faster, and other information.",
112 "flatPath": "pagespeedonline/v5/runPagespeed",
113 "httpMethod": "GET",
114 "id": "pagespeedonline.pagespeedapi.runpagespeed",
115 "parameterOrder": [
116 "url"
117 ],
118 "parameters": {
119 "captchaToken": {
120 "description": "The captcha token passed when filling out a captcha.",
121 "location": "query",
122 "type": "string"
123 },
124 "category": {
125 "description": "A Lighthouse category to run; if none are given, only Performance category will be run",
126 "enum": [
127 "CATEGORY_UNSPECIFIED",
128 "ACCESSIBILITY",
129 "BEST_PRACTICES",
130 "PERFORMANCE",
131 "PWA",
132 "SEO"
133 ],
134 "enumDescriptions": [
135 "Default UNDEFINED category.",
136 "Accessibility (a11y), category pertaining to a website's capacity to be accessible to all users.",
137 "Best Practices, category pertaining to a website's conformance to web best practice.",
138 "Performance, category pertaining to a website's performance.",
139 "Progressive Web App (PWA), category pertaining to a website's ability to be run as a PWA.",
140 "Search Engine Optimization (SEO), category pertaining to a website's ability to be indexed by search engines."
141 ],
142 "location": "query",
143 "repeated": true,
144 "type": "string"
145 },
146 "locale": {
147 "description": "The locale used to localize formatted results",
148 "location": "query",
149 "pattern": "[a-zA-Z]+((_|-)[a-zA-Z]+)?",
150 "type": "string"
151 },
152 "strategy": {
153 "description": "The analysis strategy (desktop or mobile) to use, and desktop is the default",
154 "enum": [
155 "STRATEGY_UNSPECIFIED",
156 "DESKTOP",
157 "MOBILE"
158 ],
159 "enumDescriptions": [
160 "UNDEFINED.",
161 "Fetch and analyze the URL for desktop browsers.",
162 "Fetch and analyze the URL for mobile devices."
163 ],
164 "location": "query",
165 "type": "string"
166 },
167 "url": {
168 "description": "Required. The URL to fetch and analyze",
169 "location": "query",
170 "pattern": "(?i)(url:|origin:)?http(s)?://.*",
171 "required": true,
172 "type": "string"
173 },
174 "utm_campaign": {
175 "description": "Campaign name for analytics.",
176 "location": "query",
177 "type": "string"
178 },
179 "utm_source": {
180 "description": "Campaign source for analytics.",
181 "location": "query",
182 "type": "string"
Yoshi Automation Botb6971b02020-11-26 17:16:03 -0800183 }
Anthonios Partheniou10f4b672021-04-13 14:47:53 -0400184 },
185 "path": "pagespeedonline/v5/runPagespeed",
186 "response": {
187 "$ref": "PagespeedApiPagespeedResponseV5"
188 },
189 "scopes": [
190 "openid"
191 ]
Yoshi Automation Botb6971b02020-11-26 17:16:03 -0800192 }
Anthonios Partheniou10f4b672021-04-13 14:47:53 -0400193 }
194 }
195 },
yoshi-code-bot4c9ccb02021-05-27 00:38:02 -0700196 "revision": "20210525",
Anthonios Partheniou10f4b672021-04-13 14:47:53 -0400197 "rootUrl": "https://pagespeedonline.googleapis.com/",
198 "schemas": {
199 "AuditRefs": {
200 "description": "A light reference to an audit by id, used to group and weight audits in a given category.",
201 "id": "AuditRefs",
202 "properties": {
203 "group": {
204 "description": "The category group that the audit belongs to (optional).",
205 "type": "string"
yoshi-code-botb6dc1b92021-03-02 11:49:08 -0800206 },
Anthonios Partheniou10f4b672021-04-13 14:47:53 -0400207 "id": {
208 "description": "The audit ref id.",
209 "type": "string"
yoshi-code-botb6dc1b92021-03-02 11:49:08 -0800210 },
Anthonios Partheniou10f4b672021-04-13 14:47:53 -0400211 "weight": {
212 "description": "The weight this audit's score has on the overall category score.",
213 "format": "double",
214 "type": "number"
Yoshi Automation Botb6971b02020-11-26 17:16:03 -0800215 }
Anthonios Partheniou10f4b672021-04-13 14:47:53 -0400216 },
217 "type": "object"
Yoshi Automation Botb6971b02020-11-26 17:16:03 -0800218 },
Anthonios Partheniou10f4b672021-04-13 14:47:53 -0400219 "Bucket": {
220 "description": "A proportion of data in the total distribution, bucketed by a min/max percentage. Each bucket's range is bounded by min <= x < max, In millisecond.",
221 "id": "Bucket",
222 "properties": {
223 "max": {
224 "description": "Upper bound for a bucket's range.",
225 "format": "int32",
226 "type": "integer"
227 },
228 "min": {
229 "description": "Lower bound for a bucket's range.",
230 "format": "int32",
231 "type": "integer"
232 },
233 "proportion": {
234 "description": "The proportion of data in this bucket.",
235 "format": "double",
236 "type": "number"
yoshi-code-botb6dc1b92021-03-02 11:49:08 -0800237 }
Anthonios Partheniou10f4b672021-04-13 14:47:53 -0400238 },
239 "type": "object"
Yoshi Automation Botb6971b02020-11-26 17:16:03 -0800240 },
Anthonios Partheniou10f4b672021-04-13 14:47:53 -0400241 "Categories": {
242 "description": "The categories in a Lighthouse run.",
243 "id": "Categories",
244 "properties": {
245 "accessibility": {
246 "$ref": "LighthouseCategoryV5",
247 "description": "The accessibility category, containing all accessibility related audits."
yoshi-code-botb6dc1b92021-03-02 11:49:08 -0800248 },
Anthonios Partheniou10f4b672021-04-13 14:47:53 -0400249 "best-practices": {
250 "$ref": "LighthouseCategoryV5",
251 "description": "The best practices category, containing all best practices related audits."
yoshi-code-botb6dc1b92021-03-02 11:49:08 -0800252 },
Anthonios Partheniou10f4b672021-04-13 14:47:53 -0400253 "performance": {
254 "$ref": "LighthouseCategoryV5",
255 "description": "The performance category, containing all performance related audits."
yoshi-code-botb6dc1b92021-03-02 11:49:08 -0800256 },
Anthonios Partheniou10f4b672021-04-13 14:47:53 -0400257 "pwa": {
258 "$ref": "LighthouseCategoryV5",
259 "description": "The Progressive-Web-App (PWA) category, containing all pwa related audits."
yoshi-code-botb6dc1b92021-03-02 11:49:08 -0800260 },
Anthonios Partheniou10f4b672021-04-13 14:47:53 -0400261 "seo": {
262 "$ref": "LighthouseCategoryV5",
263 "description": "The Search-Engine-Optimization (SEO) category, containing all seo related audits."
yoshi-code-botb6dc1b92021-03-02 11:49:08 -0800264 }
Anthonios Partheniou10f4b672021-04-13 14:47:53 -0400265 },
266 "type": "object"
Yoshi Automation Botb6971b02020-11-26 17:16:03 -0800267 },
Anthonios Partheniou10f4b672021-04-13 14:47:53 -0400268 "CategoryGroupV5": {
269 "description": "Message containing a category",
270 "id": "CategoryGroupV5",
271 "properties": {
272 "description": {
273 "description": "The description of what the category is grouping",
274 "type": "string"
275 },
276 "title": {
277 "description": "The human readable title of the group",
278 "type": "string"
279 }
280 },
281 "type": "object"
282 },
283 "ConfigSettings": {
284 "description": "Message containing the configuration settings for the Lighthouse run.",
285 "id": "ConfigSettings",
286 "properties": {
287 "channel": {
288 "description": "How Lighthouse was run, e.g. from the Chrome extension or from the npm module.",
289 "type": "string"
290 },
291 "emulatedFormFactor": {
292 "description": "The form factor the emulation should use. This field is deprecated, form_factor should be used instead.",
293 "type": "string"
294 },
295 "formFactor": {
296 "description": "How Lighthouse should interpret this run in regards to scoring performance metrics and skipping mobile-only tests in desktop.",
297 "type": "string"
298 },
299 "locale": {
300 "description": "The locale setting.",
301 "type": "string"
302 },
303 "onlyCategories": {
304 "description": "List of categories of audits the run should conduct.",
305 "type": "any"
306 }
307 },
308 "type": "object"
309 },
310 "Environment": {
311 "description": "Message containing environment configuration for a Lighthouse run.",
312 "id": "Environment",
313 "properties": {
314 "benchmarkIndex": {
315 "description": "The benchmark index number that indicates rough device class.",
316 "format": "double",
317 "type": "number"
318 },
319 "hostUserAgent": {
320 "description": "The user agent string of the version of Chrome used.",
321 "type": "string"
322 },
323 "networkUserAgent": {
324 "description": "The user agent string that was sent over the network.",
325 "type": "string"
326 }
327 },
328 "type": "object"
329 },
330 "I18n": {
331 "description": "Message containing the i18n data for the LHR - Version 1.",
332 "id": "I18n",
333 "properties": {
334 "rendererFormattedStrings": {
335 "$ref": "RendererFormattedStrings",
336 "description": "Internationalized strings that are formatted to the locale in configSettings."
337 }
338 },
339 "type": "object"
340 },
341 "LighthouseAuditResultV5": {
342 "description": "An audit's result object in a Lighthouse result.",
343 "id": "LighthouseAuditResultV5",
344 "properties": {
345 "description": {
346 "description": "The description of the audit.",
347 "type": "string"
348 },
349 "details": {
350 "additionalProperties": {
351 "description": "Properties of the object.",
352 "type": "any"
353 },
354 "description": "Freeform details section of the audit.",
355 "type": "object"
356 },
357 "displayValue": {
358 "description": "The value that should be displayed on the UI for this audit.",
359 "type": "string"
360 },
361 "errorMessage": {
362 "description": "An error message from a thrown error inside the audit.",
363 "type": "string"
364 },
365 "explanation": {
366 "description": "An explanation of the errors in the audit.",
367 "type": "string"
368 },
369 "id": {
370 "description": "The audit's id.",
371 "type": "string"
372 },
373 "numericValue": {
374 "description": "A numeric value that has a meaning specific to the audit, e.g. the number of nodes in the DOM or the timestamp of a specific load event. More information can be found in the audit details, if present.",
375 "format": "double",
376 "type": "number"
377 },
378 "score": {
379 "description": "The score of the audit, can be null.",
380 "type": "any"
381 },
382 "scoreDisplayMode": {
383 "description": "The enumerated score display mode.",
384 "type": "string"
385 },
386 "title": {
387 "description": "The human readable title.",
388 "type": "string"
389 },
390 "warnings": {
391 "description": "Possible warnings that occurred in the audit, can be null.",
392 "type": "any"
393 }
394 },
395 "type": "object"
396 },
397 "LighthouseCategoryV5": {
398 "description": "A Lighthouse category.",
399 "id": "LighthouseCategoryV5",
400 "properties": {
401 "auditRefs": {
402 "description": "An array of references to all the audit members of this category.",
403 "items": {
404 "$ref": "AuditRefs"
405 },
406 "type": "array"
407 },
408 "description": {
409 "description": "A more detailed description of the category and its importance.",
410 "type": "string"
411 },
412 "id": {
413 "description": "The string identifier of the category.",
414 "type": "string"
415 },
416 "manualDescription": {
417 "description": "A description for the manual audits in the category.",
418 "type": "string"
419 },
420 "score": {
421 "description": "The overall score of the category, the weighted average of all its audits. (The category's score, can be null.)",
422 "type": "any"
423 },
424 "title": {
425 "description": "The human-friendly name of the category.",
426 "type": "string"
427 }
428 },
429 "type": "object"
430 },
431 "LighthouseResultV5": {
432 "description": "The Lighthouse result object.",
433 "id": "LighthouseResultV5",
434 "properties": {
435 "audits": {
436 "additionalProperties": {
437 "$ref": "LighthouseAuditResultV5"
438 },
439 "description": "Map of audits in the LHR.",
440 "type": "object"
441 },
442 "categories": {
443 "$ref": "Categories",
444 "description": "Map of categories in the LHR."
445 },
446 "categoryGroups": {
447 "additionalProperties": {
448 "$ref": "CategoryGroupV5"
449 },
450 "description": "Map of category groups in the LHR.",
451 "type": "object"
452 },
453 "configSettings": {
454 "$ref": "ConfigSettings",
455 "description": "The configuration settings for this LHR."
456 },
457 "environment": {
458 "$ref": "Environment",
459 "description": "Environment settings that were used when making this LHR."
460 },
461 "fetchTime": {
462 "description": "The time that this run was fetched.",
463 "type": "string"
464 },
465 "finalUrl": {
466 "description": "The final resolved url that was audited.",
467 "type": "string"
468 },
469 "i18n": {
470 "$ref": "I18n",
471 "description": "The internationalization strings that are required to render the LHR."
472 },
473 "lighthouseVersion": {
474 "description": "The lighthouse version that was used to generate this LHR.",
475 "type": "string"
476 },
477 "requestedUrl": {
478 "description": "The original requested url.",
479 "type": "string"
480 },
481 "runWarnings": {
482 "description": "List of all run warnings in the LHR. Will always output to at least `[]`.",
483 "items": {
484 "type": "any"
485 },
486 "type": "array"
487 },
488 "runtimeError": {
489 "$ref": "RuntimeError",
490 "description": "A top-level error message that, if present, indicates a serious enough problem that this Lighthouse result may need to be discarded."
491 },
492 "stackPacks": {
493 "description": "The Stack Pack advice strings.",
494 "items": {
495 "$ref": "StackPack"
496 },
497 "type": "array"
498 },
499 "timing": {
500 "$ref": "Timing",
501 "description": "Timing information for this LHR."
502 },
503 "userAgent": {
504 "description": "The user agent that was used to run this LHR.",
505 "type": "string"
506 }
507 },
508 "type": "object"
509 },
510 "PagespeedApiLoadingExperienceV5": {
511 "description": "The CrUX loading experience object that contains CrUX data breakdowns.",
512 "id": "PagespeedApiLoadingExperienceV5",
513 "properties": {
514 "id": {
515 "description": "The url, pattern or origin which the metrics are on.",
516 "type": "string"
517 },
518 "initial_url": {
519 "description": "The requested URL, which may differ from the resolved \"id\".",
520 "type": "string"
521 },
522 "metrics": {
523 "additionalProperties": {
524 "$ref": "UserPageLoadMetricV5"
525 },
526 "description": "The map of .",
527 "type": "object"
528 },
529 "origin_fallback": {
530 "description": "True if the result is an origin fallback from a page, false otherwise.",
531 "type": "boolean"
532 },
533 "overall_category": {
534 "description": "The human readable speed \"category\" of the id.",
535 "type": "string"
536 }
537 },
538 "type": "object"
539 },
540 "PagespeedApiPagespeedResponseV5": {
541 "description": "The Pagespeed API response object.",
542 "id": "PagespeedApiPagespeedResponseV5",
543 "properties": {
544 "analysisUTCTimestamp": {
545 "description": "The UTC timestamp of this analysis.",
546 "type": "string"
547 },
548 "captchaResult": {
549 "description": "The captcha verify result",
550 "type": "string"
551 },
552 "id": {
553 "description": "Canonicalized and final URL for the document, after following page redirects (if any).",
554 "type": "string"
555 },
556 "kind": {
557 "description": "Kind of result.",
558 "type": "string"
559 },
560 "lighthouseResult": {
561 "$ref": "LighthouseResultV5",
562 "description": "Lighthouse response for the audit url as an object."
563 },
564 "loadingExperience": {
565 "$ref": "PagespeedApiLoadingExperienceV5",
566 "description": "Metrics of end users' page loading experience."
567 },
568 "originLoadingExperience": {
569 "$ref": "PagespeedApiLoadingExperienceV5",
570 "description": "Metrics of the aggregated page loading experience of the origin"
571 },
572 "version": {
573 "$ref": "PagespeedVersion",
574 "description": "The version of PageSpeed used to generate these results."
575 }
576 },
577 "type": "object"
578 },
579 "PagespeedVersion": {
580 "description": "The Pagespeed Version object.",
581 "id": "PagespeedVersion",
582 "properties": {
583 "major": {
584 "description": "The major version number of PageSpeed used to generate these results.",
585 "type": "string"
586 },
587 "minor": {
588 "description": "The minor version number of PageSpeed used to generate these results.",
589 "type": "string"
590 }
591 },
592 "type": "object"
593 },
594 "RendererFormattedStrings": {
595 "description": "Message holding the formatted strings used in the renderer.",
596 "id": "RendererFormattedStrings",
597 "properties": {
598 "auditGroupExpandTooltip": {
599 "description": "The tooltip text on an expandable chevron icon.",
600 "type": "string"
601 },
602 "crcInitialNavigation": {
603 "description": "The label for the initial request in a critical request chain.",
604 "type": "string"
605 },
606 "crcLongestDurationLabel": {
607 "description": "The label for values shown in the summary of critical request chains.",
608 "type": "string"
609 },
610 "errorLabel": {
611 "description": "The label shown next to an audit or metric that has had an error.",
612 "type": "string"
613 },
614 "errorMissingAuditInfo": {
615 "description": "The error string shown next to an erroring audit.",
616 "type": "string"
617 },
618 "labDataTitle": {
619 "description": "The title of the lab data performance category.",
620 "type": "string"
621 },
622 "lsPerformanceCategoryDescription": {
623 "description": "The disclaimer shown under performance explaning that the network can vary.",
624 "type": "string"
625 },
626 "manualAuditsGroupTitle": {
627 "description": "The heading shown above a list of audits that were not computerd in the run.",
628 "type": "string"
629 },
630 "notApplicableAuditsGroupTitle": {
631 "description": "The heading shown above a list of audits that do not apply to a page.",
632 "type": "string"
633 },
634 "opportunityResourceColumnLabel": {
635 "description": "The heading for the estimated page load savings opportunity of an audit.",
636 "type": "string"
637 },
638 "opportunitySavingsColumnLabel": {
639 "description": "The heading for the estimated page load savings of opportunity audits.",
640 "type": "string"
641 },
642 "passedAuditsGroupTitle": {
643 "description": "The heading that is shown above a list of audits that are passing.",
644 "type": "string"
645 },
646 "scorescaleLabel": {
647 "description": "The label that explains the score gauges scale (0-49, 50-89, 90-100).",
648 "type": "string"
649 },
650 "toplevelWarningsMessage": {
651 "description": "The label shown preceding important warnings that may have invalidated an entire report.",
652 "type": "string"
653 },
654 "varianceDisclaimer": {
655 "description": "The disclaimer shown below a performance metric value.",
656 "type": "string"
657 },
658 "warningHeader": {
659 "description": "The label shown above a bulleted list of warnings.",
660 "type": "string"
661 }
662 },
663 "type": "object"
664 },
665 "RuntimeError": {
666 "description": "Message containing a runtime error config.",
667 "id": "RuntimeError",
668 "properties": {
669 "code": {
670 "description": "The enumerated Lighthouse Error code.",
671 "type": "string"
672 },
673 "message": {
674 "description": "A human readable message explaining the error code.",
675 "type": "string"
676 }
677 },
678 "type": "object"
679 },
680 "StackPack": {
681 "description": "Message containing Stack Pack information.",
682 "id": "StackPack",
683 "properties": {
684 "descriptions": {
685 "additionalProperties": {
686 "type": "string"
687 },
688 "description": "The stack pack advice strings.",
689 "type": "object"
690 },
691 "iconDataURL": {
692 "description": "The stack pack icon data uri.",
693 "type": "string"
694 },
695 "id": {
696 "description": "The stack pack id.",
697 "type": "string"
698 },
699 "title": {
700 "description": "The stack pack title.",
701 "type": "string"
702 }
703 },
704 "type": "object"
705 },
706 "Timing": {
707 "description": "Message containing the performance timing data for the Lighthouse run.",
708 "id": "Timing",
709 "properties": {
710 "total": {
711 "description": "The total duration of Lighthouse's run.",
712 "format": "double",
713 "type": "number"
714 }
715 },
716 "type": "object"
717 },
718 "UserPageLoadMetricV5": {
719 "description": "A CrUX metric object for a single metric and form factor.",
720 "id": "UserPageLoadMetricV5",
721 "properties": {
722 "category": {
723 "description": "The category of the specific time metric.",
724 "type": "string"
725 },
726 "distributions": {
727 "description": "Metric distributions. Proportions should sum up to 1.",
728 "items": {
729 "$ref": "Bucket"
730 },
731 "type": "array"
732 },
733 "formFactor": {
734 "description": "Identifies the form factor of the metric being collected.",
735 "type": "string"
736 },
737 "median": {
738 "description": "The median number of the metric, in millisecond.",
739 "format": "int32",
740 "type": "integer"
741 },
742 "metricId": {
743 "description": "Identifies the type of the metric.",
744 "type": "string"
745 },
746 "percentile": {
747 "description": "We use this field to store certain percentile value for this metric. For v4, this field contains pc50. For v5, this field contains pc90.",
748 "format": "int32",
749 "type": "integer"
750 }
751 },
752 "type": "object"
753 }
754 },
755 "servicePath": "",
756 "title": "PageSpeed Insights API",
757 "version": "v5",
758 "version_module": true
yoshi-code-botb6dc1b92021-03-02 11:49:08 -0800759}