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.

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

Trusted by market leaders · Client results

saturncompareerasmusmckpnfotocasaloopearplugsperionsnvhappyhorizonmy work featured on web.devvpnworkivawhowhatwearaleteiadpg mediaadevintaharvardmarktplaatsnina carenestlemonarchebay

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:

  1. Projekt-CRUD: ett litet REST-gränssnitt på /api/agency/projects för att skapa, lista, uppdatera och radera projekt.
  2. 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 med project_id i 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.

NyckelPrefixOmfångVad den gör
Projektnyckelcdk_Ett projektLäser RUM-data för det projektet via JSON-RPC-slutpunkten. Se /api.
Masternyckelcdk_master_Alla projekt på kontotSkapar, 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.

  1. Logga in på app.coredash.app.
  2. Öppna My Account och klicka på fliken Agency API.
  3. 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ältTypKrävsBeskrivning
namestringjaProjektnamn som visas i kontrollpanelen.
urlstringnejWebbplatsens URL som projektet spårar.
agencyplanstringnejPlan-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:

  1. Generera en masternyckel en gång under My Account → fliken Agency API och spara den säkert.
  2. Gör en POST /api/agency/projects med kundens namn och URL. Svaret innehåller det nya _id-värdet.
  3. Bädda in spårningskoden på kundens webbplats med det _id-värdet.
  4. Läs RUM-data för projektet när som helst via POST /api/mcp med 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:

StatusBetydelse
400Obligatoriskt fält saknas vid skapandet, eller okänt plan-ID.
401Masternyckel saknas, är ogiltig eller har återkallats.
404Projektet hittades inte, eller ägs inte av din användare.
500Databasfel.

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.

CoreDash Agency API: Hantera projekt och hämta data mellan kontonCore Web Vitals CoreDash Agency API: Hantera projekt och hämta data mellan konton