CoreDash API: Kyselyt oikeiden käyttäjien Core Web Vitals -dataan
Tee kyselyitä oikeiden käyttäjien Core Web Vitals -dataan ohjelmallisesti. Käytä sitä skripteistä, CI-putkista tai anna tekoälyagenttisi diagnosoida suorituskykyongelmat automaattisesti.

Suorituskykydata käytössäsi missä tahansa
CoreDash kerää Core Web Vitals -dataa sivustollasi vierailevilta oikeilta käyttäjiltä. API antaa pääsyn tähän samaan dataan mistä tahansa työkalusta, skriptistä tai tekoälyagentista. Kolme työkalua, JSON sisään, JSON ulos.
Kiinnostavin käyttötapaus: tekoälyn yhdistäminen. CoreDash API käyttää samaa protokollaa kuin Model Context Protocol (MCP). Tämän ansiosta tekoälytyökalut kuten Claude, Cursor ja Windsurf voivat kysyä tietoja suoraan oikeiden käyttäjien datasta. Kysy tekoälyltäsi "miksi LCP:ni on hidas mobiilissa?", ja se hakee vastauksen todellisesta field datasta.
Rakensimme tämän päälle CWV Superpowers -työkalun. Se on tekoälyagentti, joka yhdistää CoreDashin field datan Chrome DevToolsiin Core Web Vitals -ongelmien diagnosoimiseksi ja korjaamiseksi. API mahdollistaa tämän.
Mutta et tarvitse tekoälyagenttia. curl-komento toimii aivan yhtä hyvin.
Pyöritätkö toimistoa tai hallinnoitko useita 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.
Autentikointi
Jokainen pyyntö vaatii API-avaimen Authorization-otsikossa:
Authorization: Bearer cdk_YOUR_API_KEY
Näin saat avaimen:
- Kirjaudu sisään osoitteessa app.coredash.app
- Mene projektiisi, sieltä kohtaan AI Insights ja sitten Connect Your AI
- Klikkaa Create API Key ja kopioi se. Se näytetään vain kerran.
Avaimet alkavat merkeillä cdk_ ja ne on rajattu yhteen projektiin. Voit luoda useita avaimia ja mitätöidä niitä samalta sivulta.
Pyyntömuoto
API käyttää JSON-RPC 2.0 -protokollaa. Jokainen pyyntö on POST-pyyntö osoitteeseen:
https://app.coredash.app/api/mcp
Pyyntörunko näyttää tältä:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_metrics",
"arguments": { }
}
}
Kenttä id voi olla mikä tahansa numero tai merkkijono. Se palautetaan sellaisenaan vastauksessa. Työkaluja on kolme: get_metrics, get_timeseries ja get_histogram.
get_metrics: nykyinen suorituskyky
Palauttaa nykyiset Core Web Vitals -arvot luokituksilla good/improve/poor. Tätä työkalua käytät kysymyksiin kuten "mikä LCP:ni on juuri nyt?".
Parametrit
| Parametri | Tyyppi | Oletus | Kuvaus |
|---|---|---|---|
metrics | string | LCP,INP,CLS,FCP,TTFB | Pilkuilla erotetut palautettavat metriikat |
percentile | string | p75 | p50, p75, p80, p90 tai p95 |
filters | object | {} | Suodata dimensioiden mukaan (katso Dimensiot alla) |
group | string | Ryhmittele tulokset dimension mukaan segmenttien vertailemiseksi | |
date | string | -31d | Aikaväli: -6h, today, -1d, -7d, -31d |
limit | number | 100 | Segmenttien enimmäismäärä ryhmiteltäessä (enintään 500) |
Esimerkki: hae kaikki metriikat
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-merkkijonona text-kentässä. Jäsenneltynä 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 }
}
}
}
Objekti distribution kertoo, kuinka suuri osa todellisista sivulatauksista sijoittuu kuhunkin luokitukseen. Tämä on usein hyödyllisempää kuin pelkkä p75-arvo. LCP-arvo 2450 ms, josta 61 % on luokassa good, tarkoittaa, että useimmilla käyttäjillä on hyvä kokemus, mutta jakauman häntää vetää p75-arvoa alaspäin.
Esimerkki: vertaa mobiilin ja työpöydän LCP-arvoja
Käytä group-parametria 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"
}
}
}'
Parsed response:
{
"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 3200 ms, työpöytä 1800 ms. Yhdistetty arvo näyttäisi 2500 ms, ja ajattelisit: "ei loistava, muttei kamalakaan". Ryhmitelty näkymä kertoo todellisen tilanteen: työpöytä on kunnossa, mobiili vaatii työtä.
Esimerkki: suodata tiettyyn sivuun mobiilissa
Yhdistä filters-suodattimia rajataksesi datan juuri siihen liikenteeseen, josta olet kiinnostunut:
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 metriikka-arvot ajanjaksoittain ryhmiteltynä automaattisella trendintunnistuksella. Tätä työkalua käytät kysymyksiin kuten "onko LCP:ni huonontunut?" ja "korjasiko tuo julkaisu regression?".
Parametrit
| Parametri | Tyyppi | Oletus | Kuvaus |
|---|---|---|---|
metrics | string | LCP,INP,CLS,FCP,TTFB | Pilkuilla erotetut metriikat |
percentile | string | p75 | Mikä persentiili |
filters | object | {} | Suodata dimensioiden mukaan |
date | string | -31d | Aikaväli |
granularity | string | day | Lohkon koko: hour, 6hours, day, week |
Esimerkki: LCP:n 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"
}
}
}'
Parsed response:
{
"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"
}
}
}
Yhteenveto (summary) vertaa ajanjakson jälkimmäistä puoliskoa ensimmäiseen. Trendin arvot ovat improving (yli 5 % parempi), stable (enintään 5 % muutos) tai regressing (yli 5 % huonompi). Tämä tekee timeseries-päätepisteestä hyödyllisen automaattisessa seurannassa: sinun ei tarvitse itse jäsentää yksittäisiä datapisteitä tietääksesi, ovatko asiat menossa huonompaan suuntaan.
get_histogram: jakauman muoto
Palauttaa yksittäisen metriikan jakauman noin 40 lohkona (bucket) ja niiden tapahtumamäärillä. Tätä työkalua käytät, kun p75 näyttää hyvältä, mutta epäilet pitkää häntää, tai kun haluat nähdä suorituskykydatan koko jakauman.
Parametrit
| Parametri | Tyyppi | Oletus | Kuvaus |
|---|---|---|---|
metric | string | pakollinen | Yksittäinen metriikka: LCP, INP, CLS, FCP tai TTFB |
filters | object | {} | Suodata dimensioiden mukaan |
date | string | -31d | Aikaväli |
Huomautus: toisin kuin get_metrics, tämä ottaa vastaan vain yhden metric-parametrin (ei metrics). Vain yksi metriikka 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"
}
}
}'
Parsed response:
{
"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 lohkolla on rajat from/to, arvioitu sivulatausten määrä count kyseisellä välillä sekä luokitus rating, joka perustuu lohkon sijaintiin suhteessa Core Web Vitals -kynnysarvoihin. Viimeisellä lohkolla on to: null, koska se edustaa avointa häntää.
Lohkojen leveydet ovat kiinteitä metriikkakohtaisesti: LCP käyttää 250 ms, INP 25 ms, CLS 0,025, FCP 200 ms ja TTFB 125 ms.
Tämä on hyödyllistä datan jakauman ymmärtämiseksi. p75-arvo 2400 ms voi tarkoittaa, että useimmat käyttäjät saavat noin 2400 ms tuloksen. Se voi myös tarkoittaa, että 60 % käyttäjistä saa alle 1000 ms tuloksen ja hidas mobiililiikenne venyttää jakauman häntää. Histogrammi kertoo, kummasta on kyse.
Dimensiot
Käytä näitä avaimia filters-suodattimissa tai group-arvona. Suodattaminen rajaa datan tiettyyn segmenttiin. Ryhmittely jakaa tulokset, jotta voit vertailla segmenttejä rinnakkain.
Yleiset
| Avain | Nimi | Esimerkkiarvot |
|---|---|---|
d | Laitetyyppi | mobile, desktop |
cc | Maa | US, NL, DE (ISO 3166-1 alpha-2) |
ff | Polku | /products, /checkout (null = /) |
u | Koko URL | Tukee *-villikortteja, [neq]-etuliitettä negaatiolle |
qs | Kyselymerkkijono | Osa ?avain=arvo |
lb | Sivun tunniste | Mukautettu tunniste RUM-koodinpätkästä (snippet) |
browser | Selain | Chrome, Safari, Firefox |
os | Käyttöjärjestelmä | Android, iOS, Windows |
nt | Navigaation tyyppi | navigate, back_forward, reload |
fv | Vierailijan tyyppi | 0 = palaava, 1 = uusi vierailija |
li | Kirjautumistila | 0 = uloskirjautunut, 1 = sisäänkirjautunut, 2 = ylläpitäjä |
no | Navigaation alkuperä | 1 = sama alkuperä, 2 = eri alkuperä |
ab | A/B-testi | Mukautettu testitunniste |
Laite ja verkko
| Avain | Nimi | Yksikkö |
|---|---|---|
m | Laitteen muisti | GB |
dl | Verkon nopeus | Mbps |
ccs | Client Capability Score | 1=Erinomainen, 2=Hyvä, 3=Kohtalainen, 4=Rajoitettu, 5=Erittäin rajoitettu |
redir | Uudelleenohjausten määrä | lukumäärä |
Metriikan attribuutio
Nämä dimensiot kertovat, mikä aiheutti metriikan arvon. Ryhmittele avaimella lcpel nähdäksesi, mitkä elementit muodostavat LCP-arvon sivuillasi. Ryhmittele avaimella inpel löytääksesi vuorovaikutukset, jotka aiheuttavat huonoimmat INP-arvot.
| Avain | Nimi | Metriikalle |
|---|---|---|
lcpel | LCP-elementti | LCP |
lcpet | LCP-elementin tyyppi | LCP: text, image, background-image, video |
lcpprio | LCP-prioriteetti | LCP: 1=Preloaded, 2=High fetchpriority, 3=Not preloaded, 4=Lazy loaded |
lcpurl | LCP-kuvan URL-osoite | LCP |
inpel | INP-elementti | INP |
inpit | INP-syötteen tyyppi | INP |
inpls | INP-lataustila | INP |
lurl | LOAF-skriptin URL-osoite | INP |
clsel | CLS-elementti | CLS |
Suodatinesimerkkejä
{ "d": "mobile" }
{ "ff": "/checkout", "d": "desktop" }
{ "cc": "US", "browser": "Chrome" }
{ "u": "[neq]*/admin/*" }
Metriikkaviitteet
| Metriikka | Nimi | Yksikkö | Hyvä | Vaatii parannusta | Huono |
|---|---|---|---|---|---|
LCP | Largest Contentful Paint | ms | < 2500 | 2500–4000 | > 4000 |
INP | Interaction to Next Paint | ms | < 200 | 200–500 | > 500 |
CLS | Cumulative Layout Shift | < 0,1 | 0,1–0,25 | > 0,25 | |
FCP | First Contentful Paint | ms | < 1800 | 1800–3000 | > 3000 |
TTFB | Time to First Byte | ms | < 800 | 800–1800 | > 1800 |
Oletuspersentiili on p75. Tätä Google käyttää Core Web Vitals -sijoituksissa. Jos 75 % sivulatauksistasi jää kynnysarvon alle, läpäiset vaatimukset.
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äly saa tällöin käyttöönsä työkalut get_metrics, get_timeseries ja get_histogram ja voi kysyä field dataasi osana mitä tahansa keskustelua.
Näin CWV Superpowers toimii: se yhdistää CoreDashiin MCP:n kautta, hakee oikeiden käyttäjiesi datan, avaa sivustosi Chromessa ja selvittää hitaan metriikan tarkan syyn. API tarjoaa tiedon siitä, mitä tuotannossa tapahtuu, ja Chrome kertoo, miksi niin tapahtuu.
Voit myös yhdistää MCP-palvelimen omaan tekoäly-ympäristöösi. Osoita MCP-asiakasohjelmasi osoitteeseen https://app.coredash.app/api/mcp API-avaimesi kanssa, ja tekoälysi voi vastata kysymyksiin kuten "millä sivuilla on huonoin INP mobiilissa?" käyttäen arvausten sijaan todellista field dataa.
Käyttörajat
Rajat ovat projektikohtaisia per päivä, ja ne nollautuvat keskiyöllä UTC-aikaa.
| Paketti | Päivittäiset pyynnöt |
|---|---|
| Trial | 150 |
| Starter | 500 |
| Standard | 500 |
| Pro | 500+ |
| Enterprise | 500+ |
Kokeilupaketin (trial) 150 pyyntöä riittää mainiosti manuaaliseen tutkimiseen ja tekoälyavusteiseen virheenkorjaukseen. Jos ajat automaattista seurantaa CI-ympäristössä, maksulliset paketit tarjoavat 500 pyyntöä 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." }
}
| Koodi | HTTP-tila | Merkitys |
|---|---|---|
-32001 | 401 | Virheellinen tai puuttuva API-avain |
-32002 | 429 | Käyttöraja ylittynyt |
-32600 | 400 | Virheellinen pyyntö (malformed) |
-32601 | 200 | Tuntematon metodi |
-32602 | 200 | Tuntematon työkalu tai puuttuvia parametreja |
-32603 | 500 | Sisäinen palvelinvirhe |
Jos saat virheen -32001, tarkista, että avaimesi alkaa merkeillä cdk_ ja ettei sitä ole mitätöity. Jos saat virheen -32002, päivittäinen rajasi on täynnä. Odota nollausta keskiyöllä UTC-aikaa tai päivitä tilaustasi.

