CoreDash Agency API: Beheer Projecten en Haal Data Op Over Meerdere Accounts

Beheer vele projecten vanuit één account. Genereer eenmalig een master key, maak en verwijder projecten via REST, en haal Core Web Vitals data op over allemaal met één enkele sleutel.

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

Trusted by market leaders · Client results

loopearplugsaleteiadpg mediahappyhorizonwhowhatwearkpnfotocasanestleerasmusmcvpnmy work featured on web.devebayperionsnvsaturnnina careharvardmarktplaatsadevintamonarchcompareworkiva

Één sleutel voor elk project op je account

De Agency API is voor accounts die vele projecten beheren. Bureaus, in-house teams die een dozijn merken runnen, iedereen die niet telkens in het dashboard wil inloggen wanneer er een nieuwe klant bijkomt. Genereer eenmalig een master key, maak vervolgens projecten aan, update ze, verwijder ze, en lees Core Web Vitals data van allemaal met dat ene inloggegeven.

Op zoek naar de per-project API? De CoreDash API pagina behandelt een enkel project met een project-gebonden sleutel. Dezelfde data tools, smallere scope, eenvoudigere setup.

De Agency API doet twee dingen:

  1. Project CRUD: een klein REST oppervlak op /api/agency/projects voor het maken, oplijsten, updaten en verwijderen van projecten.
  2. Cross-project data lezen: dezelfde JSON-RPC tools als de per-project API (get_metrics, get_timeseries, get_histogram) op /api/mcp. Met een master key geef je project_id door in de argumenten om te kiezen welk project je wilt.

Twee soorten API sleutels

CoreDash geeft twee sleutelniveaus uit. Elk heeft een andere taak.

SleutelPrefixScopeWat het doet
Project sleutelcdk_Eén projectLeest RUM data voor dat project via het JSON-RPC eindpunt. Zie /api.
Master keycdk_master_Elk project op het accountMaakt, lijst, updatet en verwijdert projecten via REST. Leest ook data voor elk willekeurig project op het account door project_id door te geven in de data tools.

Master keys zijn alleen beschikbaar op accounts met een agency vlag. Als je het hieronder beschreven Agency API tabblad niet ziet, neem dan contact op met support.

Verkrijg een master key

Master keys worden gegenereerd vanuit de web UI, niet vanuit de API.

  1. Log in op app.coredash.app.
  2. Open Mijn Account en klik op het Agency API tabblad.
  3. Klik op Genereer master key, geef het een naam, en kopieer de waarde. Deze wordt eenmalig getoond.

Sleutels beginnen met cdk_master_. Ze laten de houder elk project beheren dat bij jouw gebruikersaccount hoort, en data lezen voor elk van hen. Behandel ze als wachtwoorden. Je kunt elke master key intrekken vanaf hetzelfde tabblad.

Authenticatie

Elk Agency API verzoek heeft een master key nodig in de Authorization header:

Authorization: Bearer cdk_master_YOUR_MASTER_KEY

Dezelfde header werkt voor zowel de REST project CRUD eindpunten als het JSON-RPC data eindpunt. Verder verandert er niets.

Project CRUD: het REST oppervlak

Basis URL voor projectbeheer:

https://app.coredash.app/api/agency/projects

Dit zijn gewone REST calls. Geen JSON-RPC.

POST /api/agency/projects: maak een project aan

Maakt een nieuw project aan dat eigendom is van de gebruiker van de master key. Standaard start het project als een 10-daagse trial. Geef agencyplan door om het in plaats daarvan op een betaald plan te starten, met een factureringsperiode van 33 dagen.

VeldTypeVereistBeschrijving
namestringjaProjectnaam die in het dashboard wordt getoond.
urlstringneeDe site URL die het project volgt.
agencyplanstringneePlan id (bijvoorbeeld starter). Indien ingesteld, start het project op het overeenkomende betaalde plan in plaats van een trial.
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"
  }'

Response bij succes is 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" }
  }
}

De _id is wat je in de tracking snippet op de site van de klant plaatst. Het is ook de project_id die je doorgeeft aan de data tools hieronder.

GET /api/agency/projects: lijst projecten op

Retourneert de projecten die jouw gebruiker bezit, gesorteerd op aanmaakdatum (nieuwste eerst). Gepagineerd met limit (max 500, standaard 100) en 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: haal één project op

Retourneert een enkel projectdocument. Retourneert 404 als jouw gebruiker het project niet bezit. We maken bewust geen onderscheid tussen "niet gevonden" en "niet van jou", zodat project ID's niet kunnen worden opgesomd over verschillende accounts heen.

curl https://app.coredash.app/api/agency/projects/655f1f77bcf86cd799439011 \
  -H "Authorization: Bearer cdk_master_YOUR_MASTER_KEY"

PATCH /api/agency/projects/:id: update naam of URL

Updatet name en/of url. Beide velden zijn optioneel. Weggelaten velden blijven zoals ze waren. Al het andere in de body wordt genegeerd. Status, facturering, vervaldatum en waarschuwingen worden beheerd via het dashboard.

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: hard-delete een project

Verwijdert het project en alles wat eraan vastzit: Lighthouse runs, CrUX data, waarschuwingen, snapshots en snapshot configs.

RUM data in de achterliggende data store wordt niet verwijderd in deze call. Het blijft gekoppeld aan de oude project ID, maar wordt verweesd. Er is geen herstelpad. De project ID is buiten gebruik gesteld.

curl -X DELETE https://app.coredash.app/api/agency/projects/655f1f77bcf86cd799439011 \
  -H "Authorization: Bearer cdk_master_YOUR_MASTER_KEY"
{ "status": 200, "deleted": true }

Data lezen met een master key

Om Core Web Vitals data op te halen voor één van je projecten, roep je hetzelfde JSON-RPC eindpunt aan dat de per-project API gebruikt:

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

De drie tools zijn ongewijzigd: get_metrics, get_timeseries, get_histogram. Het enige verschil met de per-project flow is dat je project_id doorgeeft in arguments zodat de call weet naar welk project er gekeken moet worden. Project sleutels hebben dit niet nodig omdat elke project sleutel al gekoppeld is aan één project. Master keys dekken vele projecten, dus het verzoek moet er één benoemen.

Voorbeeld: get_metrics voor een specifiek project

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

De response is dezelfde JSON-RPC wrapper als de per-project API, met de geparste payload in result.content[0].text. De vorm van de binnenste JSON, het distribution object, het summary veld op timeseries, de bucket structuur op histogrammen, werken allemaal op dezelfde manier als met een project sleutel. De enige extra vereiste is het project_id argument.

Hetzelfde geldt voor get_timeseries en get_histogram. Geef project_id door, daarna de gebruikelijke argumenten.

Alle andere parameters werken op dezelfde manier: filters, group, percentile, date, granularity, enzovoort. De dimensies referentie (d, cc, ff, lcpel, inpel, allemaal), de metrics drempelwaarden, en de percentiel semantiek zijn allemaal gedocumenteerd op de CoreDash API pagina. Lees die voor het volledige parameter en dimensie oppervlak. Deze pagina behandelt alleen wat er anders is wanneer je je authenticeert met een master key.

Een nieuw klantproject onboarden

De typische flow voor een bureau dat een nieuwe klant toevoegt:

  1. Genereer eenmalig een master key bij Mijn Account → Agency API tabblad en bewaar deze veilig.
  2. POST /api/agency/projects met de naam en URL van de klant. De response bevat de nieuwe _id.
  3. Sluit de tracking snippet in op de site van de klant met die _id.
  4. Lees op elk moment RUM data voor dat project via POST /api/mcp met dezelfde master key en "project_id": "<de _id>" in de argumenten. Geen aparte project sleutel nodig.

Dat is de hele onboarding loop. Eén sleutel, één POST, één snippet insluiten, en je kunt al data bevragen voor het nieuwe project.

Fouten

Project CRUD eindpunten retourneren gewone REST status codes:

StatusBetekenis
400Ontbrekend vereist veld bij aanmaken, of onbekend plan id.
401Ontbrekende, onjuiste of ingetrokken master key.
404Project niet gevonden, of niet in bezit van jouw gebruiker.
500Database fout.

Data lezen op /api/mcp retourneert JSON-RPC fout objecten, net als met een project sleutel. De foutcode tabel staat op de CoreDash API pagina. Als je -32001 krijgt, controleer dan nogmaals of je sleutel begint met cdk_master_ en of je project_id hebt opgenomen in de argumenten.

Snelheidslimieten

Per-project dagelijkse limieten zijn nog steeds van toepassing wanneer je data leest: een master key die get_metrics aanroept voor project A telt mee voor het dagelijkse quotum van project A, en een call voor project B telt mee voor dat van project B. Zie de snelheidslimieten tabel op de CoreDash API pagina. Project CRUD calls hebben niet dezelfde snelheidslimieten.

CoreDash Agency API: Beheer Projecten en Haal Data Op Over Meerdere AccountsCore Web Vitals CoreDash Agency API: Beheer Projecten en Haal Data Op Over Meerdere Accounts