{
  "info": {
    "name": "PageVitals — mcp.ai",
    "description": "REST API for the PageVitals MCP. Set {{apiKey}} to a workspace key (sk_live_…) created at https://mcp.ai/settings/api-keys.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{apiKey}}",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://api.mcp.ai/api/page_vitals",
      "type": "string"
    },
    {
      "key": "apiKey",
      "value": "sk_live_...",
      "type": "string"
    }
  ],
  "item": [
    {
      "name": "page_vitals_add_configured_pages",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/add/configured/pages",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "add",
            "configured",
            "pages"
          ]
        },
        "description": "Add one or more explicitly supplied pages to PageVitals monitoring for a website. This persistent bulk operation can consume monitored-page quota and cause future synthetic tests, so call it only when",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"pages\": \"\",\n  \"website_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "page_vitals_create_budget",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/create/budget",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "create",
            "budget"
          ]
        },
        "description": "Create a persistent PageVitals performance budget for a website. This changes monitoring and may change owner alerting behavior, so call only when the user explicitly requests the budget and supplies ",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"value\": 0,\n  \"device\": \"\",\n  \"metric\": \"\",\n  \"operator\": \"\",\n  \"website_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "page_vitals_create_multistep_test",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/create/multistep/test",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "create",
            "multistep",
            "test"
          ]
        },
        "description": "Create an empty PageVitals multistep test definition with an explicit name and device profile. This only saves persistent configuration: it does not run the test, trigger any synthetic checks, or cons",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"alias\": \"\",\n  \"device\": \"\",\n  \"website_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "page_vitals_create_website",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/create/website",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "create",
            "website"
          ]
        },
        "description": "Add a domain to the PageVitals account and begin managing it. This may consume website quota and start monitoring, so call only when the user explicitly asks to add the domain.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"domain\": \"\",\n  \"display_name\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "page_vitals_delete_budget",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/delete/budget",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "delete",
            "budget"
          ]
        },
        "description": "Delete one PageVitals performance budget and stop enforcing its threshold. This is a destructive alerting mutation; use only when the user explicitly selects the exact budget ID for deletion.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"budget_id\": \"\",\n  \"website_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "page_vitals_delete_configured_page",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/delete/configured/page",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "delete",
            "configured",
            "page"
          ]
        },
        "description": "Permanently delete one PageVitals configured page and all of its test results, including historical results. This is irreversible; use only for an explicit request naming the exact website ID and conf",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"page_id\": \"\",\n  \"website_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "page_vitals_delete_multistep_test",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/delete/multistep/test",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "delete",
            "multistep",
            "test"
          ]
        },
        "description": "Permanently delete one PageVitals multistep test definition. This is irreversible; use only when the user explicitly identifies the exact website ID and test ID.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"test_id\": \"\",\n  \"website_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "page_vitals_delete_website",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/delete/website",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "delete",
            "website"
          ]
        },
        "description": "Permanently delete one PageVitals website and all of its tests, metrics, analytics, and configuration. This is irreversible; use only for an explicit request naming the exact website ID.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"website_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "page_vitals_get_multistep_test",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/get/multistep/test",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "get",
            "multistep",
            "test"
          ]
        },
        "description": "Get one multistep test definition, including its configured steps.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"test_id\": \"\",\n  \"website_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "page_vitals_get_page_metrics",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/get/page/metrics",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "get",
            "page",
            "metrics"
          ]
        },
        "description": "Get the latest Lighthouse and Chrome UX metrics for one configured page and device.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"device\": \"\",\n  \"page_id\": \"\",\n  \"website_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "page_vitals_get_page_opportunities",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/get/page/opportunities",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "get",
            "page",
            "opportunities"
          ]
        },
        "description": "List Lighthouse improvement opportunities for a page/device, or return the full variable-shape details for one opportunity ID.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"device\": \"\",\n  \"page_id\": \"\",\n  \"website_id\": \"\",\n  \"opportunity_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "page_vitals_get_page_timeline",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/get/page/timeline",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "get",
            "page",
            "timeline"
          ]
        },
        "description": "Get one historical timeline for a page/device: combined loading metrics, CrUX, network bytes, CPU time, or Google Search performance. Google Search requires that integration on the website.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"device\": \"\",\n  \"page_id\": \"\",\n  \"date_range\": \"\",\n  \"website_id\": \"\",\n  \"timeline_type\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "page_vitals_get_test",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/get/test",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "get",
            "test"
          ]
        },
        "description": "Get the detailed Lighthouse, timing, resource, budget, and validation summary for one synthetic test. Provider values, nulls, metric scales, and JSON-looking strings are returned unchanged.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"test_id\": \"\",\n  \"website_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "page_vitals_get_test_report",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/get/test/report",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "get",
            "test",
            "report"
          ]
        },
        "description": "Get one specialized synthetic-test report: keyed Lighthouse opportunities, the request waterfall, or grouped HTML validation findings. Validation always omits the embedded raw HTML.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"test_id\": \"\",\n  \"website_id\": \"\",\n  \"report_type\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "page_vitals_get_test_series",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/get/test/series",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "get",
            "test",
            "series"
          ]
        },
        "description": "Get one synthetic test series and its individual tests, statuses, page IDs, device variants, and failure messages.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"series_id\": \"\",\n  \"website_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "page_vitals_list_budgets",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/list/budgets",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "list",
            "budgets"
          ]
        },
        "description": "List performance budgets, current status, notification settings, and affected pages for a website.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"website_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "page_vitals_list_configured_pages",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/list/configured/pages",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "list",
            "configured",
            "pages"
          ]
        },
        "description": "List the raw pages configured for PageVitals monitoring on a website.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"website_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "page_vitals_list_multistep_runs",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/list/multistep/runs",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "list",
            "multistep",
            "runs"
          ]
        },
        "description": "List historical runs for one multistep test, including status, duration, interaction, layout-shift, CPU, transfer-size, and blocking-time metrics.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"test_id\": \"\",\n  \"website_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "page_vitals_list_multistep_tests",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/list/multistep/tests",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "list",
            "multistep",
            "tests"
          ]
        },
        "description": "List multistep tests configured for a website with recent metrics, state, and success rates. A website with no configured multistep tests returns an empty tests list.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"website_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "page_vitals_list_page_metrics",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/list/page/metrics",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "list",
            "page",
            "metrics"
          ]
        },
        "description": "List every configured page/device combination for a website with recent timeline and latest performance metrics.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"website_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "page_vitals_list_test_series",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/list/test/series",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "list",
            "test",
            "series"
          ]
        },
        "description": "List recent synthetic test series for a website, including status and failure counts.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"website_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "page_vitals_list_website_opportunities",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/list/website/opportunities",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "list",
            "website",
            "opportunities"
          ]
        },
        "description": "List Lighthouse improvement opportunities aggregated across a website and the affected pages.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"website_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "page_vitals_list_websites",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/list/websites",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "list",
            "websites"
          ]
        },
        "description": "List websites visible to the connected PageVitals API key. Use the returned website IDs with all website-scoped tools.",
        "body": {
          "mode": "raw",
          "raw": "{}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "page_vitals_run_multistep_tests",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/run/multistep/tests",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "run",
            "multistep",
            "tests"
          ]
        },
        "description": "Trigger exactly one named multistep test or intentionally fan out to every multistep test configured for a website. Every triggered run consumes PageVitals test quota and may incur cost. Choosing targ",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"target\": \"\",\n  \"test_id\": \"\",\n  \"website_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "page_vitals_run_test_series",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/run/test/series",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "run",
            "test",
            "series"
          ]
        },
        "description": "Trigger synthetic tests for selected page/device variants, or for every configured test when pages is omitted. This action consumes PageVitals test quota and may incur cost; call it only when the user",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"pages\": \"\",\n  \"initiator\": \"\",\n  \"website_id\": \"\",\n  \"description\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "page_vitals_update_budget",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/update/budget",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "update",
            "budget"
          ]
        },
        "description": "Replace a PageVitals performance budget's complete metric threshold and device scope. This may change monitoring alerts or notifications. Read the current budget first, use its exact website and budge",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"value\": \"\",\n  \"device\": \"\",\n  \"metric\": \"\",\n  \"operator\": \"\",\n  \"budget_id\": \"\",\n  \"website_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "page_vitals_update_configured_page",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/update/configured/page",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "update",
            "configured",
            "page"
          ]
        },
        "description": "Update a configured PageVitals page's URL, display alias, or both. This changes persistent monitoring configuration; use the exact page ID from List Configured Pages and provide at least one new value",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"url\": \"\",\n  \"alias\": \"\",\n  \"page_id\": \"\",\n  \"website_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "page_vitals_update_multistep_test",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/update/multistep/test",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "update",
            "multistep",
            "test"
          ]
        },
        "description": "Update a multistep test's alias and device. Both fields are required because PageVitals PUT replacement and partial-update semantics were not safely live-tested; read the current test first when prese",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"alias\": \"\",\n  \"device\": \"\",\n  \"test_id\": \"\",\n  \"website_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    }
  ]
}