CoreDash API: Hent Core Web Vitals-data fra reelle brukere

Hent Core Web Vitals-dataene dine fra reelle brukere programmatisk. Bruk det fra skript, CI-pipelines, eller la AI-agenten din diagnostisere ytelsesproblemer automatisk.

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

Trusted by market leaders · Client results

whowhatwearworkivacomparesaturnmarktplaatsmonarchvpnebayharvardperionerasmusmcmy work featured on web.devloopearplugsfotocasaadevintanestlealeteiakpndpg medianina caresnvhappyhorizon

Ytelsesdataene dine, der du trenger dem

CoreDash samler inn Core Web Vitals fra reelle brukere som besøker nettstedet ditt. API-et gir deg tilgang til de samme dataene fra alle verktøy, skript eller AI-agenter. Tre verktøy, JSON inn, JSON ut.

Det mest interessante bruksområdet: å koble til AI-en din. CoreDash API-et bruker samme protokoll som Model Context Protocol (MCP). Det betyr at AI-verktøy som Claude, Cursor og Windsurf kan hente data fra dine reelle brukere direkte. Spør AI-en din «hvorfor er LCP-en min treg på mobil?», så henter den de faktiske field data-ene for å svare.

Vi bygde CWV Superpowers på toppen av dette. Det er en AI-agent som kombinerer CoreDash field data med Chrome DevTools for å diagnostisere og fikse problemer med Core Web Vitals. API-et gjør dette mulig.

Men du trenger ikke en AI-agent. En curl-kommando fungerer like bra.

Driver du et byrå eller administrerer mange prosjekter fra én konto? Det finnes et eget Agency API som bruker en hovednøkkel til å opprette, oppdatere og slette prosjekter, og til å hente data på tvers av alle med én enkelt nøkkel. Resten av denne siden dekker data-API-et per prosjekt.

Autentisering

Alle forespørsler må ha en API-nøkkel i Authorization-headeren:

Authorization: Bearer cdk_YOUR_API_KEY

Slik får du en nøkkel:

  1. Logg inn på app.coredash.app
  2. Gå til prosjektet ditt, deretter AI Insights, og så Connect Your AI
  3. Klikk på Create API Key og kopier den. Den vises bare én gang.

Nøkler starter med cdk_ og er begrenset til et enkelt prosjekt. Du kan opprette flere nøkler og tilbakekalle dem fra den samme siden.

Forespørselsformat

API-et bruker JSON-RPC 2.0. Hver forespørsel er en POST til:

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

Forespørselsdelen ser slik ut:

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

Feltet id kan være et hvilket som helst tall eller en streng. Det returneres i svaret. Det finnes tre verktøy: get_metrics, get_timeseries og get_histogram.

get_metrics: gjeldende ytelse

Returnerer gjeldende verdier for Core Web Vitals med vurderingene good/improve/poor. Dette er verktøyet du bruker for spørsmål som «hva er LCP-en min akkurat nå?».

Parametere

ParameterTypeStandardverdiBeskrivelse
metricsstringLCP,INP,CLS,FCP,TTFBKommaseparerte metrikker som skal returneres
percentilestringp75p50, p75, p80, p90 eller p95
filtersobject{}Filtrer etter dimensjoner (se dimensjoner nedenfor)
groupstringGrupper resultater etter en dimensjonsnøkkel for å sammenligne segmenter
datestring-31dTidsrom: -6h, today, -1d, -7d, -31d
limitnumber100Maks antall 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å svaret er en JSON-RPC-pakke:

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

De faktiske dataene er en JSON-streng i feltet text. Parset ser det slik ut:

{
  "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 forteller deg hvor stor prosentandel av de reelle sidevisningene som havner i hver kategori. Dette er ofte mer nyttig enn bare p75-verdien. En LCP på 2450 ms med 61 % good betyr at de fleste brukere har en fin opplevelse, men halen drar p75 ned.

Eksempel: sammenlign LCP på mobil og desktop

Bruk parameteren group for å dele opp resultatene etter en hvilken som helst dimensjon. Slik finner du ut om LCP-problemet ditt gjelder 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": 2,
    "method": "tools/call",
    "params": {
      "name": "get_metrics",
      "arguments": {
        "metrics": "LCP",
        "group": "d",
        "date": "-7d"
      }
    }
  }'

Parset 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å 3200 ms, desktop på 1800 ms. Samleverdien ville vist 2500 ms, og du ville tenkt «ikke spesielt bra, men ikke helt forferdelig». Den grupperte visningen viser sannheten: desktop er grei, mobil krever arbeid.

Eksempel: filtrer til en spesifikk side på mobil

Kombiner filters for å snevre inn til akkurat den trafikken du bryr deg 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: ytelse over tid

Returnerer metrikkverdier oppdelt i tidsbøtter med automatisk trendgjenkjenning. Dette er verktøyet du bruker for «har LCP-en min blitt dårligere?» og «fikset den deployen regresjonen?».

Parametere

ParameterTypeStandardverdiBeskrivelse
metricsstringLCP,INP,CLS,FCP,TTFBKommaseparerte metrikker
percentilestringp75Hvilken persentil
filtersobject{}Filtrer etter dimensjoner
datestring-31dTidsrom
granularitystringdayBøttestørrelse: hour, 6hours, day, week

Eksempel: LCP-trend over de siste 7 dagene

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"
      }
    }
  }'

Parset 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"
    }
  }
}

Sammendraget (summary) sammenligner den andre halvdelen av perioden med den første. Trendverdiene er improving (mer enn 5 % bedre), stable (innenfor 5 %) eller regressing (mer enn 5 % verre). Dette er det som gjør timeseries-endepunktet nyttig for automatisert overvåking: du slipper å tolke datapunktene selv for å vite om ting blir dårligere.

get_histogram: fordelingsform

Returnerer fordelingen av en enkelt metrikk som ~40 bøtter med antall per intervall. Dette er verktøyet du bruker når p75 ser fin ut, men du mistenker en lang hale, eller når du vil se den fulle formen på ytelsesdataene dine.

Parametere

ParameterTypeStandardverdiBeskrivelse
metricstringpåkrevdEnkelt metrikk: LCP, INP, CLS, FCP eller TTFB
filtersobject{}Filtrer etter dimensjoner
datestring-31dTidsrom

Merk: i motsetning til get_metrics, tar denne en enkelt metric (ikke metrics). Én metrikk per forespørsel.

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"
      }
    }
  }'

Parset 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 bøtte har from/to-grenser, et antall (count) estimerte sidevisninger i det intervallet, og en vurdering (rating) basert på hvor bøtten ligger i forhold til grenseverdiene for Core Web Vitals. Den siste bøtten har to: null fordi den representerer den åpne halen.

Bøttebreddene er faste per metrikk: LCP bruker 250 ms, INP bruker 25 ms, CLS bruker 0,025, FCP bruker 200 ms, TTFB bruker 125 ms.

Dette er nyttig for å forstå formen på dataene dine. En p75 på 2400 ms kan bety at de fleste brukerne ligger rundt 2400 ms, eller det kan bety at 60 % er under 1000 ms og en andel treg mobiltrafikk drar i halen. Histogrammet forteller deg hva som er tilfelle.

Dimensjoner

Bruk disse nøklene i filters eller som group-verdi. Filtrering snevrer inn dataene til et bestemt segment. Gruppering deler opp resultatene slik at du kan sammenligne segmenter side om side.

Generelt

NøkkelNavnEksempelverdier
dEnhetstypemobile, desktop
ccLandUS, NL, DE (ISO 3166-1 alfa-2)
ffStibane (pathname)/products, /checkout (null = /)
uFull URLStøtter * jokertegn, [neq]-prefiks for negering
qsSpørrestreng (query string)Delen med ?key=value
lbSideetikett (page label)Egendefinert etikett fra RUM-kodesnutten
browserNettleserChrome, Safari, Firefox
osOperativsystemAndroid, iOS, Windows
ntNavigasjonstypenavigate, back_forward, reload
fvBesøkende-type0 = returnerende, 1 = ny besøkende
liInnloggingsstatus0 = utlogget, 1 = innlogget, 2 = admin
noNavigasjonsopprinnelse1 = same origin, 2 = cross origin
abA/B-testEgendefinert testetikett

Enhet og nettverk

NøkkelNavnEnhet
mEnhetsminneGB
dlNettverkshastighetMbps
ccsClient Capability Score1=Excellent, 2=Good, 3=Moderate, 4=Limited, 5=Constrained
redirAntall viderekoblinger (redirects)antall

Metrikk-attribusjon

Disse dimensjonene forteller deg hva som forårsaket en metrikkverdi. Grupper etter lcpel for å se hvilke elementer som utløser LCP-en på sidene dine. Grupper etter inpel for å finne interaksjonene som gir dårligst INP.

NøkkelNavnFor metrikk
lcpelLCP-elementLCP
lcpetLCP-elementtypeLCP: text, image, background-image, video
lcpprioLCP-prioritetLCP: 1=Preloaded, 2=High fetchpriority, 3=Not preloaded, 4=Lazy loaded
lcpurlBilde-URL for LCPLCP
inpelINP-elementINP
inpitINP-inndatatype (input type)INP
inplsINP-lastetilstand (load state)INP
lurlLOAF skript-URLINP
clselCLS-elementCLS

Filtereksempler

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

Metrikkreferanse

MetrikkNavnEnhetGodTrenger forbedringDårlig
LCPLargest Contentful Paintms< 25002500 til 4000> 4000
INPInteraction to Next Paintms< 200200 til 500> 500
CLSCumulative Layout Shift< 0,10,1 til 0,25> 0,25
FCPFirst Contentful Paintms< 18001800 til 3000> 3000
TTFBTime to First Bytems< 800800 til 1800> 1800

Standard persentil er p75. Dette er hva Google bruker for rangering av Core Web Vitals. Hvis 75 % av sidevisningene dine er under grenseverdien, består du.

Bruk av API-et som en MCP-server

API-endepunktet er en fullt kompatibel MCP-server. Hvis AI-verktøyet ditt støtter MCP (Claude Code, Cursor, Windsurf med flere), kan du koble det til direkte. AI-en får da tilgang til get_metrics, get_timeseries og get_histogram som verktøy, og kan gjøre spørringer mot dine field data som en del av enhver samtale.

Det er slik CWV Superpowers fungerer: den kobler seg til CoreDash via MCP, henter data fra dine reelle brukere, åpner nettstedet ditt i Chrome og sporer den nøyaktige årsaken til en treg metrikk. API-et leverer «hva som skjer i produksjon»-delen, mens Chrome leverer «hvorfor det skjer»-delen.

Du kan også koble MCP-serveren til ditt eget AI-oppsett. Pek MCP-klienten din mot https://app.coredash.app/api/mcp med API-nøkkelen din, og AI-en din kan svare på spørsmål som «hvilke sider har dårligst INP på mobil?» ved å bruke faktiske field data i stedet for å gjette.

Rate limits

Grensene gjelder per prosjekt per dag og nullstilles ved midnatt UTC.

PlanDaglige forespørsler
Trial150
Starter500
Standard500
Pro500+
Enterprise500+

150 forespørsler på trial-planen er mer enn nok for manuell utforskning og AI-assistert feilsøking. Hvis du kjører automatisert overvåking i CI, gir de betalte planene deg 500 per dag.

Feilhåndtering

Feil returneres som JSON-RPC-feilobjekter:

{
  "jsonrpc": "2.0",
  "id": 1,
  "error": { "code": -32001, "message": "Invalid or revoked API key." }
}
KodeHTTP-statusBetydning
-32001401Feil eller manglende API-nøkkel
-32002429Grensen for antall forespørsler er overskredet (rate limit exceeded)
-32600400Ugyldig forespørsel (malformed request)
-32601200Ukjent metode (unknown method)
-32602200Ukjent verktøy eller manglende parametere
-32603500Intern serverfeil (internal server error)

Hvis du får -32001, sjekk at nøkkelen din starter med cdk_ og at du ikke har tilbakekalt den. Hvis du får -32002, har du nådd den daglige grensen. Vent til nullstillingen ved midnatt UTC eller oppgrader planen din.


CoreDash API: Hent Core Web Vitals-data fra reelle brukereCore Web Vitals CoreDash API: Hent Core Web Vitals-data fra reelle brukere