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.

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:
- Kirjaudu sisään osoitteessa app.coredash.app
- Siirry projektiisi, sitten AI Insights, sitten Connect Your AI
- 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
| Parametri | Tyyppi | Oletus | Kuvaus |
|---|---|---|---|
metrics | string | LCP,INP,CLS,FCP,TTFB | Pilkuilla erotetut palautettavat mittarit |
percentile | string | p75 | p50, p75, p80, p90 tai p95 |
filters | object | {} | Suodata dimensioiden mukaan (katso Dimensiot alla) |
group | string | Ryhmittele tulokset avaimen mukaan vertaillaksesi segmenttejä | |
date | string | -31d | Aikaväli: -6h, today, -1d, -7d, -31d |
limit | number | 100 | Maksimimää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
| Parametri | Tyyppi | Oletus | Kuvaus |
|---|---|---|---|
metrics | string | LCP,INP,CLS,FCP,TTFB | Pilkuilla erotetut mittarit |
percentile | string | p75 | Mikä persentiili |
filters | object | {} | Suodata dimensioiden mukaan |
date | string | -31d | Aikaväli |
granularity | string | day | Aikavä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
| Parametri | Tyyppi | Oletus | Kuvaus |
|---|---|---|---|
metric | string | vaadittu | Yksi mittari: 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-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
| Avain | Nimi | Esimerkkiarvot |
|---|---|---|
d | Laitteen tyyppi | mobile, desktop |
cc | Maa | US, NL, DE (ISO 3166-1 alpha-2) |
ff | Polku | /products, /checkout (null = /) |
u | Koko URL | Tukee *-jokereita, [neq]-etuliitettä negaatiolle |
qs | Kyselymerkkijono | Osa ?key=value |
lb | Sivun tunniste | Mukautettu tunniste RUM-koodinpätkästä |
browser | Selain | Chrome, Safari, Firefox |
os | Käyttöjärjestelmä | Android, iOS, Windows |
nt | Navigoinnin tyyppi | navigate, back_forward, reload |
fv | Kävijätyyppi | 0 = palaava, 1 = uusi kävijä |
li | Kirjautumistila | 0 = kirjautunut ulos, 1 = kirjautunut sisään, 2 = ylläpitäjä |
no | Navigoinnin alkuperä | 1 = sama alkuperä (same origin), 2 = ristiinalkuperä (cross origin) |
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ä | 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.
| Avain | Nimi | Mittarille |
|---|---|---|
lcpel | LCP-elementti | LCP |
lcpet | LCP-elementin tyyppi | LCP: text, image, background-image, video |
lcpprio | LCP-prioriteetti | LCP: 1=Esiladattu (Preloaded), 2=Korkea fetchpriority, 3=Ei esiladattu, 4=Laiskasti ladattu (Lazy loaded) |
lcpurl | LCP-kuvan URL | LCP |
inpel | INP-elementti | INP |
inpit | INP-syötteen tyyppi | INP |
inpls | INP-lataustila | INP |
lurl | LOAF-skriptin URL | INP |
clsel | CLS-elementti | CLS |
Suodattimen esimerkkejä
{ "d": "mobile" }
{ "ff": "/checkout", "d": "desktop" }
{ "cc": "US", "browser": "Chrome" }
{ "u": "[neq]*/admin/*" } Mittarien viite
| Mittari | 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 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.
| Tilaus | Päivittäiset pyynnöt |
|---|---|
| Trial | 150 |
| Starter | 500 |
| Standard | 500 |
| Pro | 500+ |
| Enterprise | 500+ |
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." }
} | Koodi | HTTP-tila | Merkitys |
|---|---|---|
-32001 | 401 | Virheellinen tai puuttuva API-avain |
-32002 | 429 | Kyselyrajoitus ylitetty |
-32600 | 400 | Virheellinen pyyntö |
-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 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.

