Web vitals over time
Selected Web Vital and percentile over time with the same scope and filters as the performance page.
On this page
get_performance_timeseriesAccess & permissions
Use an authorized read credential. Current membership and any elevated role described above still apply.
API keys default to their bound site. For multi-site OAuth connections, call list_projects and pass the intended projectId. Only approved sites are accessible.
Arguments
projectIdOptionalstring · uuid
Weeveo project id. Defaults to the key's project.
Validation pattern: see complete JSON Schema
rangeOptional"today" | "yesterday" | "7d" | "30d" | "90d" | "12mo" | "custom"
Date range preset; custom requires from and to.
Default: "30d"
fromOptionalstring · date
First local date, YYYY-MM-DD, for a custom range.
Validation pattern: see complete JSON Schema
toOptionalstring · date
Last local date, inclusive, for a custom range.
Validation pattern: see complete JSON Schema
trafficOptional"human" | "known_bot" | "suspicious" | "unknown" | "all"
Default: "human"
filtersOptionalobject[]
max items 20
filters[].fieldRequired within object"source" | "medium" | "url_path" | "referrer_domain" | "utm_source" | "utm_medium" | "utm_campaign" | "utm_term" | "utm_content" | "country" | "region" | "city" | "device_type" | "browser" | "os" | "event_name"
filters[].opRequired within object"is" | "is_not" | "contains"
filters[].valueRequired within objectstring
min length 1; max length 500
compareOptionalboolean
Include the previous period for deltas.
Default: true
metricOptional"lcp" | "inp" | "cls" | "fcp" | "ttfb"
Default: "lcp"
percentileOptional"p50" | "p75" | "p95"
Default: "p75"
Nested fields are listed with dotted paths; array item fields use []. Defaults apply to omitted arguments. For unions and all validation details, use the complete schema below.
HTTP request
POST https://weeveo.com/api/v1/tools/get_performance_timeseries
Authorization: Bearer <YOUR_CREDENTIAL>
Content-Type: application/json
<JSON_ARGUMENT_OBJECT>Replace the placeholders with your server-side credential and a JSON object satisfying the schema. GET is also available for simple scalar arguments. Use POST for arrays and nested objects. These documentation pages never execute a request.
Complete input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"projectId": {
"description": "Weeveo project id. Defaults to the key's project.",
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"range": {
"default": "30d",
"description": "Date range preset; custom requires from and to.",
"type": "string",
"enum": [
"today",
"yesterday",
"7d",
"30d",
"90d",
"12mo",
"custom"
]
},
"from": {
"description": "First local date, YYYY-MM-DD, for a custom range.",
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"to": {
"description": "Last local date, inclusive, for a custom range.",
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"traffic": {
"default": "human",
"type": "string",
"enum": [
"human",
"known_bot",
"suspicious",
"unknown",
"all"
]
},
"filters": {
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"field": {
"type": "string",
"enum": [
"source",
"medium",
"url_path",
"referrer_domain",
"utm_source",
"utm_medium",
"utm_campaign",
"utm_term",
"utm_content",
"country",
"region",
"city",
"device_type",
"browser",
"os",
"event_name"
]
},
"op": {
"type": "string",
"enum": [
"is",
"is_not",
"contains"
]
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 500
}
},
"required": [
"field",
"op",
"value"
]
}
},
"compare": {
"default": true,
"description": "Include the previous period for deltas.",
"type": "boolean"
},
"metric": {
"default": "lcp",
"type": "string",
"enum": [
"lcp",
"inp",
"cls",
"fcp",
"ttfb"
]
},
"percentile": {
"default": "p75",
"type": "string",
"enum": [
"p50",
"p75",
"p95"
]
}
}
}Download all tool schemas or query authenticated GET /api/v1/tools for runtime discovery.
Response & errors
{
"tool": "get_performance_timeseries",
"result": "<tool-specific value>"
}The result placeholder above describes the response envelope, not a literal returned string or a universal result schema. Results vary by tool. Fields named Cents are minor currency units; use returned currency labels. Secrets from creation tools are one-time results and must be saved securely immediately.
Failures return an HTTP error status with an error message. See errors, limits and retries, common analytics arguments and permissions.
Still looking for an answer? Try troubleshooting or get in touch.