CoreDash API: Forespørg Core Web Vitals-data fra rigtige brugere

Forespørg dine Core Web Vitals-data fra rigtige brugere programmatisk. Brug dem fra scripts, CI-pipelines, eller lad din AI-agent diagnosticere ydeevneproblemer automatisk.

Arjen Karel Core Web Vitals Consultant
Arjen Karel - linkedin
Last update: 2026-05-29

Trusted by market leaders · Client results

marktplaatskpnwhowhatwearaleteiaperiondpg medialoopearplugsworkivasnvnestlevpnmy work featured on web.devcompareebaymonarchadevintanina careharvarderasmusmchappyhorizonsaturnfotocasa

Dine ydeevnedata, uanset hvor du har brug for dem

CoreDash indsamler Core Web Vitals fra rigtige brugere, der besøger dit websted. API'et giver dig adgang til de samme data fra ethvert værktøj, script eller AI-agent. Tre værktøjer, JSON ind, JSON ud.

Den mest interessante use case: at forbinde din AI. CoreDash API'et bruger den samme protokol som Model Context Protocol (MCP), hvilket betyder, at AI-værktøjer som Claude, Cursor og Windsurf kan forespørge dine rigtige brugerdata direkte. Spørg din AI "hvorfor er min LCP langsom på mobil?", og den henter de faktiske feltdata for at svare.

Vi byggede CWV Superpowers oven på dette. Det er en AI-agent, der kombinerer dine CoreDash feltdata med Chrome DevTools for at diagnosticere og rette Core Web Vitals-problemer. Det er API'et, der gør dette muligt.

Men du behøver ikke en AI-agent. En curl-kommando fungerer lige så godt.

Driver du et bureau eller administrerer mange projekter fra én konto? Der findes et separat Agency API, som bruger en master key til at oprette, opdatere og slette projekter og til at hente data på tværs af dem alle med en enkelt nøgle. Resten af denne side dækker data-API'et pr. projekt.

Godkendelse

Hver anmodning kræver en API-nøgle i Authorization headeren:

Authorization: Bearer cdk_YOUR_API_KEY

For at få en nøgle:

  1. Log ind på app.coredash.app
  2. Gå til dit projekt, derefter AI Insights, og så Connect Your AI
  3. Klik på Create API Key og kopiér den. Den vises kun én gang.

Nøgler starter med cdk_ og er afgrænset til et enkelt projekt. Du kan oprette flere nøgler og tilbagekalde dem fra den samme side.

Anmodningsformat

API'et bruger JSON-RPC 2.0. Hver anmodning er en POST til:

https://app.coredash.app/api/mcp

Anmodningens brødtekst (body) ser således ud:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_metrics",
    "arguments": { }
  }
}

Feltet id kan være et hvilket som helst tal eller en streng. Det returneres i svaret. Der er tre værktøjer: get_metrics, get_timeseries og get_histogram.

get_metrics: nuværende ydeevne

Returnerer de aktuelle Core Web Vitals-værdier med bedømmelserne good/improve/poor. Dette er det værktøj, du bruger til spørgsmål af typen "hvad er min LCP lige nu?".

Parametre

ParameterTypeStandardBeskrivelse
metricsstringLCP,INP,CLS,FCP,TTFBKommaseparerede metrikker, der skal returneres
percentilestringp75p50, p75, p80, p90 eller p95
filtersobject{}Filtrer efter dimensioner (se Dimensioner nedenfor)
groupstringGruppér resultater efter en dimensionsnøgle for at sammenligne segmenter
datestring-31dTidsinterval: -6h, today, -1d, -7d, -31d
limitnumber100Maksimalt antal segmenter ved gruppering (maks. 500)

Eksempel: hent alle metrikker

curl -X POST https://app.coredash.app/api/mcp \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer cdk_YOUR_API_KEY" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "get_metrics",
      "arguments": {}
    }
  }'

Det rå svar er en JSON-RPC-indpakning:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [{
      "type": "text",
      "text": "{ ... JSON string ... }"
    }]
  }
}

De faktiske data er en JSON-streng inde i text feltet. Tolket ser det således ud:

{
  "period": "last 31 days",
  "percentile": "p75",
  "metrics": {
    "LCP": {
      "value": 2450,
      "unit": "ms",
      "rating": "improve",
      "distribution": { "good": 61.2, "improve": 22.4, "poor": 16.4 }
    },
    "INP": {
      "value": 180,
      "unit": "ms",
      "rating": "good",
      "distribution": { "good": 82.1, "improve": 12.3, "poor": 5.6 }
    },
    "CLS": {
      "value": 0.08,
      "unit": "",
      "rating": "good",
      "distribution": { "good": 74.5, "improve": 18.2, "poor": 7.3 }
    }
  }
}

Objektet distribution fortæller dig, hvor stor en procentdel af de rigtige sideindlæsninger, der falder inden for hver bedømmelse. Dette er ofte mere nyttigt end selve p75-værdien. En LCP på 2450ms med 61 % good betyder, at de fleste brugere har en fin oplevelse, men halen trækker p75 ned.

Eksempel: sammenlign LCP på mobil vs. desktop

Brug parameteren group til at opdele resultater efter en hvilken som helst dimension. Det er sådan, du finder ud af, om dit LCP-problem er et mobilproblem:

curl -X POST https://app.coredash.app/api/mcp \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer cdk_YOUR_API_KEY" \
  -d '{
    "jsonrpc": "2.0",
    "id": 2,
    "method": "tools/call",
    "params": {
      "name": "get_metrics",
      "arguments": {
        "metrics": "LCP",
        "group": "d",
        "date": "-7d"
      }
    }
  }'

Tolket svar:

{
  "period": "last 7 days",
  "percentile": "p75",
  "groupedBy": "d",
  "groupName": "Device Type",
  "segments": [
    {
      "segment": "mobile",
      "value": "mobile",
      "metrics": {
        "LCP": {
          "value": 3200, "unit": "ms", "rating": "improve",
          "distribution": { "good": 52.3, "improve": 28.1, "poor": 19.6 }
        }
      }
    },
    {
      "segment": "desktop",
      "value": "desktop",
      "metrics": {
        "LCP": {
          "value": 1800, "unit": "ms", "rating": "good",
          "distribution": { "good": 78.5, "improve": 15.2, "poor": 6.3 }
        }
      }
    }
  ]
}

Mobil på 3200ms, desktop på 1800ms. Det samlede tal ville vise 2500ms, og du ville tænke "ikke fantastisk, men heller ikke forfærdeligt". Den grupperede visning viser den sande historie: desktop er fint, mobil kræver arbejde.

Eksempel: filtrer til en bestemt side på mobil

Kombinér filters for at indsnævre nøjagtigt til den trafik, du bekymrer dig om:

curl -X POST https://app.coredash.app/api/mcp \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer cdk_YOUR_API_KEY" \
  -d '{
    "jsonrpc": "2.0",
    "id": 3,
    "method": "tools/call",
    "params": {
      "name": "get_metrics",
      "arguments": {
        "metrics": "LCP,CLS",
        "filters": { "ff": "/checkout", "d": "mobile" },
        "date": "-7d"
      }
    }
  }'

get_timeseries: ydeevne over tid

Returnerer metrik-værdier inddelt i tidsintervaller (buckets) med automatisk tendensregistrering. Dette er det værktøj, du bruger til "er min LCP blevet værre?" og "løste den udrulning regressionen?".

Parametre

ParameterTypeStandardBeskrivelse
metricsstringLCP,INP,CLS,FCP,TTFBKommaseparerede metrikker
percentilestringp75Hvilken percentil
filtersobject{}Filtrer efter dimensioner
datestring-31dTidsinterval
granularitystringdayBucket-størrelse: hour, 6hours, day, week

Eksempel: LCP-tendens over de seneste 7 dage

curl -X POST https://app.coredash.app/api/mcp \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer cdk_YOUR_API_KEY" \
  -d '{
    "jsonrpc": "2.0",
    "id": 4,
    "method": "tools/call",
    "params": {
      "name": "get_timeseries",
      "arguments": {
        "metrics": "LCP",
        "date": "-7d",
        "granularity": "day"
      }
    }
  }'

Tolket svar:

{
  "period": "last 7 days",
  "percentile": "p75",
  "granularity": "day",
  "dataPoints": 7,
  "timeseries": [
    { "date": "2026-03-10T00:00:00.000Z", "LCP": { "value": 2600, "unit": "ms", "rating": "improve" } },
    { "date": "2026-03-11T00:00:00.000Z", "LCP": { "value": 2450, "unit": "ms", "rating": "improve" } },
    { "date": "2026-03-12T00:00:00.000Z", "LCP": { "value": 2300, "unit": "ms", "rating": "good" } }
  ],
  "summary": {
    "LCP": {
      "recent": 2350,
      "previous": 2680,
      "change": -12.3,
      "trend": "improving",
      "unit": "ms"
    }
  }
}

summary sammenligner den anden halvdel af perioden med den første halvdel. Tendensværdierne er improving (mere end 5 % bedre), stable (inden for 5 %) eller regressing (mere end 5 % værre). Det er dette, der gør timeseries-endpointet nyttigt til automatiseret overvågning: du behøver ikke selv at tolke datapunkterne for at vide, om tingene bliver værre.

get_histogram: fordelingsform

Returnerer fordelingen for en enkelt metrik som ca. 40 buckets med antal pr. interval. Dette er værktøjet, du bruger, når p75 ser fint ud, men du har mistanke om en lang hale, eller når du vil se den fulde form af dine ydeevnedata.

Parametre

ParameterTypeStandardBeskrivelse
metricstringrequiredEnkelt metrik: LCP, INP, CLS, FCP eller TTFB
filtersobject{}Filtrer efter dimensioner
datestring-31dTidsinterval

Bemærk: i modsætning til get_metrics, tager denne en enkelt metric (ikke metrics). Én metrik pr. anmodning.

Eksempel: LCP-fordeling på mobil

curl -X POST https://app.coredash.app/api/mcp \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer cdk_YOUR_API_KEY" \
  -d '{
    "jsonrpc": "2.0",
    "id": 5,
    "method": "tools/call",
    "params": {
      "name": "get_histogram",
      "arguments": {
        "metric": "LCP",
        "filters": { "d": "mobile" },
        "date": "-7d"
      }
    }
  }'

Tolket svar:

{
  "period": "last 7 days",
  "metric": "LCP",
  "unit": "ms",
  "filters": { "d": "mobile" },
  "buckets": [
    { "from": 0, "to": 250, "count": 1250, "rating": "good" },
    { "from": 250, "to": 500, "count": 3400, "rating": "good" },
    { "from": 500, "to": 750, "count": 2800, "rating": "good" },
    { "from": 2500, "to": 2750, "count": 890, "rating": "improve" },
    { "from": 4000, "to": 4250, "count": 120, "rating": "poor" },
    { "from": 9750, "to": null, "count": 15, "rating": "poor" }
  ],
  "total": 45000
}

Hver bucket har from/to-grænser, et count af estimerede sideindlæsninger i det interval, og en rating baseret på hvor denne bucket befinder sig i forhold til Core Web Vitals-tærskelværdierne. Den sidste bucket har to: null, fordi det er den åbne hale.

Bucket-bredder er faste pr. metrik: LCP bruger 250ms, INP bruger 25ms, CLS bruger 0.025, FCP bruger 200ms, TTFB bruger 125ms.

Dette er nyttigt til at forstå formen af dine data. En p75 på 2400ms kunne betyde, at de fleste brugere ligger omkring 2400ms, eller det kunne betyde, at 60 % er under 1000ms, og en klump af langsom mobiltrafik trækker i halen. Histogrammet fortæller dig, hvad der er tilfældet.

Dimensioner

Brug disse nøgler i filters eller som group-værdi. Filtrering indsnævrer dataene til et specifikt segment. Gruppering opdeler resultaterne, så du kan sammenligne segmenter side om side.

Generelt

NøgleNavnEksempelværdier
dEnhedstypemobile, desktop
ccLandUS, NL, DE (ISO 3166-1 alpha-2)
ffStinavn/products, /checkout (null = /)
uFuld URLUnderstøtter * wildcards, [neq] præfiks til negering
qsQuery StringDelen med ?key=value
lbSideetiketTilpasset etiket fra RUM-spatiet (snippet)
browserBrowserChrome, Safari, Firefox
osOperativsystemAndroid, iOS, Windows
ntNavigationstypenavigate, back_forward, reload
fvBesøgstype0 = tilbagevendende, 1 = ny besøgende
liLogget ind-status0 = logget ud, 1 = logget ind, 2 = admin
noNavigationsoprindelse1 = same origin, 2 = cross origin
abA/B-testTilpasset testetiket

Enhed og netværk

NøgleNavnEnhed
mEnhedshukommelseGB
dlNetværkshastighedMbps
ccsClient Capability Score1=Fremragende, 2=God, 3=Moderat, 4=Begrænset, 5=Indskrænket
redirAntal omdirigeringerantal

Metrik-attribuering

Disse dimensioner fortæller dig hvad der forårsagede en metrik-værdi. Gruppér efter lcpel for at se, hvilke elementer der bliver LCP på tværs af dine sider. Gruppér efter inpel for at finde de interaktioner, der producerer den dårligste INP.

NøgleNavnFor metrik
lcpelLCP-elementLCP
lcpetLCP-elementtypeLCP: text, image, background-image, video
lcpprioLCP-prioritetLCP: 1=Forudindlæst (Preloaded), 2=Høj fetchpriority, 3=Ikke forudindlæst, 4=Lazy-loaded
lcpurlLCP Billede-URLLCP
inpelINP-elementINP
inpitINP-inputtypeINP
inplsINP-indlæsningstilstandINP
lurlLOAF Script-URLINP
clselCLS-elementCLS

Filtereksempler

{ "d": "mobile" }
{ "ff": "/checkout", "d": "desktop" }
{ "cc": "US", "browser": "Chrome" }
{ "u": "[neq]*/admin/*" }

Metrik-reference

MetrikNavnEnhedGodKræver forbedringDårlig
LCPLargest Contentful Paintms< 25002500 to 4000> 4000
INPInteraction to Next Paintms< 200200 to 500> 500
CLSCumulative Layout Shift< 0.10.1 to 0.25> 0.25
FCPFirst Contentful Paintms< 18001800 to 3000> 3000
TTFBTime to First Bytems< 800800 to 1800> 1800

Standardpercentilen er p75. Det er dette, Google bruger til rangering af Core Web Vitals. Hvis 75 % af dine sideindlæsninger ligger under tærskelværdien, består du.

Brug af API'et som en MCP-server

API-endpointet er en fuldt kompatibel MCP-server. Hvis dit AI-værktøj understøtter MCP (Claude Code, Cursor, Windsurf og andre), kan du forbinde det direkte. AI'en har derefter adgang til get_metrics, get_timeseries og get_histogram som værktøjer, og kan forespørge dine feltdata som en del af enhver samtale.

Det er sådan CWV Superpowers fungerer: den forbinder til CoreDash via MCP, henter dine rigtige brugerdata, åbner dit websted i Chrome og sporer den nøjagtige årsag til en langsom metrik. API'et leverer "hvad der sker i produktion"-delen, Chrome leverer "hvorfor det sker"-delen.

Du kan også forbinde MCP-serveren til din egen AI-opsætning. Peg din MCP-klient på https://app.coredash.app/api/mcp med din API-nøgle, så kan din AI besvare spørgsmål som "hvilke sider har den dårligste INP på mobil?" ved hjælp af faktiske feltdata i stedet for at gætte.

Rate limits

Grænserne er pr. projekt pr. dag og nulstilles ved midnat UTC.

AbonnementDaglige anmodninger
Prøveversion150
Starter500
Standard500
Pro500+
Enterprise500+

150 anmodninger på prøveversionen er rigeligt til manuel udforskning og AI-assisteret fejlfinding. Hvis du kører automatiseret overvågning i CI, giver de betalte abonnementer dig 500 om dagen.

Fejlhåndtering

Fejl returneres som JSON-RPC-fejlobjekter:

{
  "jsonrpc": "2.0",
  "id": 1,
  "error": { "code": -32001, "message": "Invalid or revoked API key." }
}
KodeHTTP-statusBetydning
-32001401Ugyldig eller manglende API-nøgle
-32002429Rate limit overskredet
-32600400Forkert udformet anmodning
-32601200Ukendt metode
-32602200Ukendt værktøj eller manglende parametre
-32603500Intern serverfejl

Hvis du får -32001, skal du kontrollere, at din nøgle starter med cdk_, og at du ikke har tilbagekaldt den. Hvis du får -32002, har du ramt den daglige grænse. Vent på nulstillingen ved midnat UTC, eller opgrader dit abonnement.


CoreDash API: Forespørg Core Web Vitals-data fra rigtige brugereCore Web Vitals CoreDash API: Forespørg Core Web Vitals-data fra rigtige brugere