CoreDash Agency API: Hantera projekt och hämta data mellan konton
Hantera många projekt från ett konto. Skapa en masternyckel en gång, skapa och radera projekt via REST, och hämta Core Web Vitals-data för alla med en enda nyckel.

En nyckel för varje projekt på ditt konto
Agency API är till för konton som hanterar många projekt. Byråer, interna team som driver ett dussin varumärken, eller vem som helst som vill slippa logga in i kontrollpanelen varje gång en ny kund tillkommer. Skapa en masternyckel en gång. Sedan skapar, uppdaterar och raderar du projekt samt läser Core Web Vitals-data för alla projekt med samma nyckel.
Letar du efter API:et för enskilda projekt i stället? Sidan för CoreDash API täcker ett enskilt projekt med en projektspecifik nyckel. Samma dataverktyg, snävare omfång, enklare uppsättning.
Agency API gör två saker:
- Projekt-CRUD: ett litet REST-gränssnitt på
/api/agency/projectsför att skapa, lista, uppdatera och radera projekt. - Dataläsning över flera projekt: samma JSON-RPC-verktyg som för det projektspecifika API:et (
get_metrics,get_timeseries,get_histogram) på/api/mcp. Med en masternyckel skickar du medproject_idi argumenten för att välja vilket projekt du vill läsa från.
Två typer av API-nycklar
CoreDash utfärdar två nivåer av nycklar. De har olika uppgifter.
| Nyckel | Prefix | Omfång | Vad den gör |
|---|---|---|---|
| Projektnyckel | cdk_ | Ett projekt | Läser RUM-data för det projektet via JSON-RPC-slutpunkten. Se /api. |
| Masternyckel | cdk_master_ | Alla projekt på kontot | Skapar, listar, uppdaterar och raderar projekt via REST. Läser också data för alla projekt på kontot genom att skicka med project_id i dataverktygen. |
Masternycklar är endast tillgängliga för konton med byråstatus. Kontakta supporten om du inte ser fliken Agency API som beskrivs nedan.
Skaffa en masternyckel
Masternycklar skapas i webbgränssnittet, inte via API:et.
- Logga in på app.coredash.app.
- Öppna My Account och klicka på fliken Agency API.
- Klicka på Generate master key, ge den ett namn och kopiera värdet. Det visas bara en gång.
Nycklarna börjar med cdk_master_. De låter innehavaren hantera alla projekt som tillhör ditt användarkonto och läsa data för dem. Hantera dem som lösenord. Du kan när som helst återkalla en masternyckel från samma flik.
Autentisering
Varje anrop till Agency API kräver en masternyckel i Authorization-headern:
Authorization: Bearer cdk_master_YOUR_MASTER_KEY
Samma header fungerar för både REST-slutpunkterna för projekt-CRUD och JSON-RPC-slutpunkten för data. Inget annat ändras.
Projekt-CRUD: REST-gränssnittet
Bas-URL för projekthantering:
https://app.coredash.app/api/agency/projects
Detta är vanliga REST-anrop, inte JSON-RPC.
POST /api/agency/projects: skapa ett projekt
Skapar ett nytt projekt som ägs av masternyckelns användare. Som standard startar projektet med en 10-dagars provperiod. Skicka med agencyplan för att i stället starta det på en betalplan med en faktureringsperiod på 33 dagar.
| Fält | Typ | Krävs | Beskrivning |
|---|---|---|---|
name | string | ja | Projektnamn som visas i kontrollpanelen. |
url | string | nej | Webbplatsens URL som projektet spårar. |
agencyplan | string | nej | Plan-ID (till exempel starter). Om det anges startar projektet på matchande betalplan i stället för en provperiod. |
curl -X POST https://app.coredash.app/api/agency/projects \
-H "Content-Type: application/json" \
-H "Authorization: Bearer cdk_master_YOUR_MASTER_KEY" \
-d '{
"name": "Acme client",
"url": "https://acme.example",
"agencyplan": "starter"
}'
Svaret vid framgångsrikt anrop är 201:
{
"status": 201,
"project": {
"_id": "655f1f77bcf86cd799439011",
"name": "Acme client",
"url": "https://acme.example",
"status": "paid",
"users": ["644..."],
"expires": "2026-06-28T12:00:00.000Z",
"alerts": { "ai": true },
"created": { "date": "2026-05-26T12:00:00.000Z" }
}
}
Det _id som returneras är det du lägger till i spårningskoden på kundens webbplats. Det är också det project_id du skickar med till dataverktygen nedan.
GET /api/agency/projects: lista projekt
Returnerar de projekt som din användare äger, sorterade efter skapandedatum (nyaste först). Paginering sker med limit (max 500, standardvärde 100) och offset.
curl "https://app.coredash.app/api/agency/projects?limit=50" \ -H "Authorization: Bearer cdk_master_YOUR_MASTER_KEY"
{
"status": 200,
"projects": [
{ "_id": "...", "name": "Acme client", "url": "https://acme.example", "status": "paid" },
{ "_id": "...", "name": "Beta client", "url": "https://beta.example", "status": "trial" }
]
}
GET /api/agency/projects/:id: hämta ett projekt
Returnerar ett enskilt projektdokument. Returnerar 404 om din användare inte äger projektet. Vi gör medvetet ingen skillnad på ”hittades inte” och ”inte ditt” för att projekt-ID:n inte ska kunna kartläggas mellan konton.
curl https://app.coredash.app/api/agency/projects/655f1f77bcf86cd799439011 \ -H "Authorization: Bearer cdk_master_YOUR_MASTER_KEY"
PATCH /api/agency/projects/:id: uppdatera namn eller URL
Uppdaterar name och/oder url. Båda fälten är valfria. Utelämnade fält lämnas som de var. Allt annat i anropskroppen ignoreras. Status, fakturering, utgångsdatum och larm hanteras via kontrollpanelen.
curl -X PATCH https://app.coredash.app/api/agency/projects/655f1f77bcf86cd799439011 \
-H "Content-Type: application/json" \
-H "Authorization: Bearer cdk_master_YOUR_MASTER_KEY" \
-d '{ "name": "Acme client renamed" }'
DELETE /api/agency/projects/:id: radera ett projekt permanent
Raderar projektet och allt som är kopplat till det: Lighthouse-körningar, CrUX-data, larm, snapshots och snapshot-konfigurationer.
RUM-data i det bakomliggande datalagret raderas inte vid detta anrop. Den ligger kvar kopplad till det gamla projekt-ID:t men blir föräldralös. Det finns ingen väg för återställning. Projekt-ID:t tas ur bruk.
curl -X DELETE https://app.coredash.app/api/agency/projects/655f1f77bcf86cd799439011 \ -H "Authorization: Bearer cdk_master_YOUR_MASTER_KEY"
{ "status": 200, "deleted": true }
Läsa data med en masternyckel
För att hämta Core Web Vitals-data för ett av dina projekt anropar du samma JSON-RPC-slutpunkt som det projektspecifika API:et använder:
https://app.coredash.app/api/mcp
De tre verktygen är oförändrade: get_metrics, get_timeseries och get_histogram. Den enda skillnaden jämfört med det projektspecifika flödet är att du skickar med project_id i arguments så att anropet vet vilket projekt som ska läsas. Projektnycklar behöver inte detta eftersom varje projektnyckel redan är låst till ett projekt. Masternycklar täcker många projekt, så anropet måste specificera ett.
Exempel: get_metrics för ett specifikt projekt
curl -X POST https://app.coredash.app/api/mcp \
-H "Content-Type: application/json" \
-H "Authorization: Bearer cdk_master_YOUR_MASTER_KEY" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_metrics",
"arguments": {
"project_id": "655f1f77bcf86cd799439011",
"metrics": "LCP,INP,CLS",
"date": "-7d"
}
}
}'
Svaret använder samma JSON-RPC-wrapper som det projektspecifika API:et, med den tolkade payloaden i result.content[0].text. Den inre JSON-strukturen, distribution-objektet, summary-fältet för tidsserier och bucket-strukturen för histogram fungerar på samma sätt som med en projektnyckel. Det enda extra kravet är argumentet project_id.
Detsamma gäller för get_timeseries och get_histogram. Skicka med project_id följt av de vanliga argumenten.
Alla andra parametrar fungerar på samma sätt: filters, group, percentile, date, granularity och så vidare. Dimensionsreferensen (d, cc, ff, lcpel, inpel med flera), tröskelvärdena för mätetal och percentilsemantiken är dokumenterade på sidan för CoreDash API. Läs den för den fullständiga parameter- och dimensionsytan. Den här sidan beskriver bara vad som skiljer sig när du autentiserar med en masternyckel.
Onboarding av ett nytt kundprojekt
Det typiska flödet för en byrå som lägger till en ny kund:
- Generera en masternyckel en gång under My Account → fliken Agency API och spara den säkert.
- Gör en
POST /api/agency/projectsmed kundens namn och URL. Svaret innehåller det nya_id-värdet. - Bädda in spårningskoden på kundens webbplats med det
_id-värdet. - Läs RUM-data för projektet när som helst via
POST /api/mcpmed samma masternyckel och"project_id": "<id-värdet>"i argumenten. Ingen separat projektnyckel behövs.
Det är hela onboarding-loopen. En nyckel, en POST, en inbäddad spårningskod, och du kan redan hämta data för det nya projektet.
Fel
Slutpunkterna för projekt-CRUD returnerar vanliga REST-statuskoder:
| Status | Betydelse |
|---|---|
400 | Obligatoriskt fält saknas vid skapandet, eller okänt plan-ID. |
401 | Masternyckel saknas, är ogiltig eller har återkallats. |
404 | Projektet hittades inte, eller ägs inte av din användare. |
500 | Databasfel. |
Dataläsningar på /api/mcp returnerar JSON-RPC-felobjekt, på samma sätt som med en projektnyckel. Tabellen över felkoder finns på sidan för CoreDash API. Om du får -32001 bör du dubbelkolla att din nyckel börjar med cdk_master_ och att du har inkluderat project_id i argumenten.
Anropsbegränsningar
Dagliga begränsningar per projekt gäller fortfarande när du läser data: anrop till get_metrics med en masternyckel för projekt A räknas mot projekt A:s dagliga kvot, och anrop för projekt B räknas mot projekt B:s. Se tabellen över anropsbegränsningar på sidan för CoreDash API. Projekt-CRUD-anrop begränsas inte på samma sätt.

