CoreDash API: Tee kyselyitä todellisten käyttäjien Core Web Vitals -dataan

Tee kyselyitä todellisten käyttäjien Core Web Vitals -dataan ohjelmallisesti. Käytä sitä skripteistä, CI-liukuhihnoista tai anna tekoälyagenttisi diagnosoida suorituskykyongelmat automaattisesti.

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

Trusted by market leaders · Client results

aleteiafotocasakpnmarktplaatsvpnebaycompareloopearplugsdpg medianina careharvardmy work featured on web.devworkivawhowhatwearadevintasaturnmonarchnestlesnverasmusmcperionhappyhorizon

Suorituskykydata kaikkialla, missä sitä tarvitset

CoreDash kerää Core Web Vitals -dataa sivustollasi vierailevilta todellisilta käyttäjiltä. API antaa sinulle pääsyn tähän samaan dataan mistä tahansa työkalusta, skriptistä tai tekoälyagentista. Kolme työkalua, JSON sisään, JSON ulos.

Mielenkiintoisin käyttötapaus: tekoälyn yhdistäminen. CoreDash API käyttää samaa protokollaa kuin Model Context Protocol (MCP), mikä tarkoittaa, että tekoälytyökalut, kuten Claude, Cursor ja Windsurf, voivat tehdä kyselyitä todellisten käyttäjien dataan suoraan. Kysy tekoälyltäsi "miksi LCP on hidas mobiilissa?" ja se hakee todellisen kenttädatan vastatakseen.

Rakensimme CWV Superpowers -ominaisuuden tämän päälle. Se on tekoälyagentti, joka yhdistää CoreDash-kenttädatasi Chrome DevToolsiin diagnosoidakseen ja korjatakseen Core Web Vitals -ongelmia. API mahdollistaa tämän.

Mutta et tarvitse tekoälyagenttia. curl-komento toimii aivan yhtä hyvin.

Johdatko toimistoa tai hallitsetko monia projekteja yhdeltä tililtä? Tarjolla on erillinen Agency API, joka käyttää pääavainta projektien luomiseen, päivittämiseen ja poistamiseen sekä datan hakemiseen kaikista niistä yhdellä avaimella. Tämän sivun loppuosa käsittelee projektikohtaista data-API:a.

Todennus

Jokainen pyyntö vaatii API-avaimen Authorization-otsikkoon:

Authorization: Bearer cdk_YOUR_API_KEY

Avaimen hankkiminen:

  1. Kirjaudu sisään osoitteessa app.coredash.app
  2. Siirry projektiisi, sitten AI Insights, sitten Connect Your AI
  3. Napsauta Create API Key ja kopioi se. Se näytetään vain kerran.

Avaimet alkavat merkkijonolla cdk_ ja ne on rajattu yhteen projektiin. Voit luoda useita avaimia ja kumota ne samalta sivulta.

Pyynnön muoto

API käyttää JSON-RPC 2.0 -protokollaa. Jokainen pyyntö on POST-pyyntö osoitteeseen:

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

Pyynnön runko näyttää tältä:

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

id-kenttä voi olla mikä tahansa numero tai merkkijono. Se palautetaan vastauksessa. Työkaluja on kolme: get_metrics, get_timeseries ja get_histogram.

get_metrics: nykyinen suorituskyky

Palauttaa nykyiset Core Web Vitals -arvot arvioilla good/improve/poor. Tätä työkalua käytät kysymyksiin kuten "mikä on minun LCP juuri nyt?".

Parametrit

ParametriTyyppiOletusKuvaus
metricsstringLCP,INP,CLS,FCP,TTFBPilkuilla erotetut palautettavat mittarit
percentilestringp75p50, p75, p80, p90 tai p95
filtersobject{}Suodata dimensioiden mukaan (katso Dimensiot alla)
groupstringRyhmittele tulokset avaimen mukaan vertaillaksesi segmenttejä
datestring-31dAikaväli: -6h, today, -1d, -7d, -31d
limitnumber100Maksimimäärä segmenttejä ryhmiteltäessä (max 500)

Esimerkki: hae kaikki mittarit

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

Raakavastaus on JSON-RPC-kääre:

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

Varsinainen data on JSON-merkkijono text-kentän sisällä. Jäsennettynä se näyttää tältä:

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

distribution-objekti kertoo, kuinka suuri prosenttiosuus todellisista sivulatauksista osuu kuhunkin arvioon. Tämä on usein hyödyllisempää kuin pelkkä p75-arvo yksinään. 2450ms LCP, jossa 61 % on "good", tarkoittaa, että useimmilla käyttäjillä on hyvä kokemus, mutta häntä vetää p75-arvoa alaspäin.

Esimerkki: vertaile mobiili vs. työpöytä LCP

Käytä group-parametriä jakaaksesi tulokset minkä tahansa dimension mukaan. Näin selvität, onko LCP-ongelmasi mobiiliongelma:

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

Jäsennetty vastaus:

{
  "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 }
        }
      }
    }
  ]
}

Mobiili on 3200ms, työpöytä 1800ms. Yhdistetty arvo näyttäisi 2500ms ja ajattelisit "ei loistava, mutta ei surkeakaan". Ryhmitelty näkymä paljastaa todellisen tilanteen: työpöytä on kunnossa, mobiili vaatii työtä.

Esimerkki: suodata tietylle sivulle mobiilissa

Yhdistä filters rajataksesi datan juuri siihen liikenteeseen, josta välität:

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: suorituskyky ajan myötä

Palauttaa mittariarvot ajallisesti ryhmiteltyinä automaattisella trendin tunnistuksella. Tätä työkalua käytät kysymyksiin "onko LCP:ni huonontunut?" ja "korjasiko tuo julkaisu regression?"

Parametrit

ParametriTyyppiOletusKuvaus
metricsstringLCP,INP,CLS,FCP,TTFBPilkuilla erotetut mittarit
percentilestringp75Mikä persentiili
filtersobject{}Suodata dimensioiden mukaan
datestring-31dAikaväli
granularitystringdayAikavälin koko: hour, 6hours, day, week

Esimerkki: LCP-trendi viimeisen 7 päivän ajalta

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

Jäsennetty vastaus:

{
  "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 vertaa jakson jälkimmäistä puoliskoa ensimmäiseen puoliskoon. Trendiarvot ovat improving (yli 5 % parempi), stable (5 % sisällä) tai regressing (yli 5 % huonompi). Tämä tekee timeseries-päätepisteestä hyödyllisen automaattiseen seurantaan: sinun ei tarvitse jäsentää datapisteitä itse tietääksesi, onko tilanne huonontumassa.

get_histogram: jakauman muoto

Palauttaa yksittäisen mittarin jakauman noin 40 lokerona sisältäen lukumäärät per alue. Tätä työkalua käytät, kun p75 näyttää hyvältä, mutta epäilet pitkää häntää, tai kun haluat nähdä suorituskykydatallesi täydellisen muodon.

Parametrit

ParametriTyyppiOletusKuvaus
metricstringvaadittuYksi mittari: LCP, INP, CLS, FCP tai TTFB
filtersobject{}Suodata dimensioiden mukaan
datestring-31dAikaväli

Huomautus: toisin kuin get_metrics, tämä ottaa vastaan vain yhden metric-arvon (ei metrics). Yksi mittari per pyyntö.

Esimerkki: LCP-jakauma mobiilissa

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

Jäsennetty vastaus:

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

Jokaisella lokerolla on from/to-rajat, count arvioiduista sivulatauksista tällä alueella ja rating, joka perustuu siihen, miten lokero asettuu suhteessa Core Web Vitals -raja-arvoihin. Viimeisen lokeron arvo on to: null, koska se on avoin häntä.

Lokeroiden leveydet on kiinnitetty mittarikohtaisesti: LCP käyttää 250ms, INP käyttää 25ms, CLS käyttää 0.025, FCP käyttää 200ms, TTFB käyttää 125ms.

Tämä on hyödyllistä datasi muodon ymmärtämiseksi. 2400ms p75 voi tarkoittaa, että useimmat käyttäjät ovat noin 2400ms paikkeilla, tai se voi tarkoittaa, että 60 % on alle 1000ms ja hidas mobiililiikenne vetää häntää alas. Histogrammi kertoo, kumpi on kyseessä.

Dimensiot

Käytä näitä avaimia kohdassa filters tai group-arvona. Suodatus rajaa datan tiettyyn segmenttiin. Ryhmittely jakaa tulokset, jotta voit vertailla segmenttejä rinnakkain.

Yleiset

AvainNimiEsimerkkiarvot
dLaitteen tyyppimobile, desktop
ccMaaUS, NL, DE (ISO 3166-1 alpha-2)
ffPolku/products, /checkout (null = /)
uKoko URLTukee *-jokereita, [neq]-etuliitettä negaatiolle
qsKyselymerkkijonoOsa ?key=value
lbSivun tunnisteMukautettu tunniste RUM-koodinpätkästä
browserSelainChrome, Safari, Firefox
osKäyttöjärjestelmäAndroid, iOS, Windows
ntNavigoinnin tyyppinavigate, back_forward, reload
fvKävijätyyppi0 = palaava, 1 = uusi kävijä
liKirjautumistila0 = kirjautunut ulos, 1 = kirjautunut sisään, 2 = ylläpitäjä
noNavigoinnin alkuperä1 = sama alkuperä (same origin), 2 = ristiinalkuperä (cross origin)
abA/B-testiMukautettu testitunniste

Laite ja verkko

AvainNimiYksikkö
mLaitteen muistiGB
dlVerkon nopeusMbps
ccsClient Capability Score1=Erinomainen, 2=Hyvä, 3=Kohtalainen, 4=Rajoitettu, 5=Erittäin rajoitettu
redirUudelleenohjausten määrämäärä

Mittarin attribuutio

Nämä dimensiot kertovat, mikä aiheutti mittarin arvon. Ryhmittele lcpel-avaimella nähdäksesi, mitkä elementit muodostavat LCP:n sivuillasi. Ryhmittele inpel-avaimella löytääksesi vuorovaikutukset, jotka tuottavat huonoimman INP:n.

AvainNimiMittarille
lcpelLCP-elementtiLCP
lcpetLCP-elementin tyyppiLCP: text, image, background-image, video
lcpprioLCP-prioriteettiLCP: 1=Esiladattu (Preloaded), 2=Korkea fetchpriority, 3=Ei esiladattu, 4=Laiskasti ladattu (Lazy loaded)
lcpurlLCP-kuvan URLLCP
inpelINP-elementtiINP
inpitINP-syötteen tyyppiINP
inplsINP-lataustilaINP
lurlLOAF-skriptin URLINP
clselCLS-elementtiCLS

Suodattimen esimerkkejä

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

Mittarien viite

MittariNimiYksikköHyväVaatii parannustaHuono
LCPLargest Contentful Paintms< 25002500 - 4000> 4000
INPInteraction to Next Paintms< 200200 - 500> 500
CLSCumulative Layout Shift< 0.10.1 - 0.25> 0.25
FCPFirst Contentful Paintms< 18001800 - 3000> 3000
TTFBTime to First Bytems< 800800 - 1800> 1800

Oletuspersentiili on p75. Tätä Google käyttää Core Web Vitals -sijoituksissa. Jos 75 % sivulatauksistasi on raja-arvon alapuolella, läpäiset.

API:n käyttö MCP-palvelimena

API-päätepiste on täysin yhteensopiva MCP-palvelin. Jos tekoälytyökalusi tukee MCP:tä (Claude Code, Cursor, Windsurf ja muut), voit yhdistää sen suoraan. Tekoälyllä on tällöin pääsy get_metrics-, get_timeseries- ja get_histogram-työkaluihin ja se voi tehdä kyselyitä kenttädataasi osana mitä tahansa keskustelua.

Näin CWV Superpowers toimii: se yhdistää CoreDashiin MCP:n kautta, hakee todellisten käyttäjien datasi, avaa sivustosi Chromessa ja jäljittää tarkan syyn hitaalle mittarille. API tarjoaa "mitä tuotannossa tapahtuu" -osan, Chrome tarjoaa "miksi se tapahtuu" -osan.

Voit myös yhdistää MCP-palvelimen omaan tekoälyympäristöösi. Osoita MCP-asiakkaasi osoitteeseen https://app.coredash.app/api/mcp API-avaimesi kera, ja tekoälysi voi vastata kysymyksiin, kuten "millä sivuilla on huonoin INP mobiilissa?", käyttäen todellista kenttädataa arvaamisen sijaan.

Kyselyrajoitukset

Rajoitukset ovat projektikohtaisia per päivä ja ne nollautuvat keskiyöllä UTC-aikaa.

TilausPäivittäiset pyynnöt
Trial150
Starter500
Standard500
Pro500+
Enterprise500+

150 pyyntöä Trial-tilauksessa riittää mainiosti manuaaliseen tutkimiseen ja tekoälyavusteiseen vianmääritykseen. Jos ajat automaattista seurantaa CI:ssä, maksulliset tilaukset antavat sinulle 500 päivässä.

Virheiden käsittely

Virheet palautetaan JSON-RPC-virheobjekteina:

{
  "jsonrpc": "2.0",
  "id": 1,
  "error": { "code": -32001, "message": "Invalid or revoked API key." }
}
KoodiHTTP-tilaMerkitys
-32001401Virheellinen tai puuttuva API-avain
-32002429Kyselyrajoitus ylitetty
-32600400Virheellinen pyyntö
-32601200Tuntematon metodi
-32602200Tuntematon työkalu tai puuttuvia parametreja
-32603500Sisäinen palvelinvirhe

Jos saat virheen -32001, tarkista, että avaimesi alkaa merkkijonolla cdk_ ja ettet ole kumonnut sitä. Jos saat virheen -32002, olet saavuttanut päivittäisen rajoituksen. Odota keskiyön UTC-nollausta tai päivitä tilauksesi.


CoreDash API: Tee kyselyitä todellisten käyttäjien Core Web Vitals -dataanCore Web Vitals CoreDash API: Tee kyselyitä todellisten käyttäjien Core Web Vitals -dataan