CoreDash Agency API: Gerencie Projetos e Extraia Dados Entre Contas

Gerencie vários projetos a partir de uma conta. Crie uma chave mestra uma vez, crie e exclua projetos via REST, e extraia dados do Core Web Vitals através de todos eles com uma única chave.

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

Trusted by market leaders · Client results

dpg mediacomparenina caresaturnworkivamonarchmy work featured on web.devhappyhorizonharvarderasmusmcmarktplaatsebayadevintakpnvpnloopearplugsnestleperionsnvaleteiafotocasawhowhatwear

Uma chave para cada projeto na sua conta

A Agency API é para contas que gerenciam muitos projetos. Agências, equipes internas que operam diversas marcas, qualquer pessoa que não queira fazer login no dashboard sempre que um novo cliente entrar a bordo. Crie uma chave mestra uma vez, e em seguida crie projetos, atualize-os, exclua-os e leia dados do Core Web Vitals através de todos eles com essa única credencial.

Procurando pela API por projeto em vez disso? A página da CoreDash API abrange um único projeto com uma chave com escopo de projeto. Mesmas ferramentas de dados, escopo mais restrito, configuração mais simples.

A Agency API faz duas coisas:

  1. CRUD de Projetos: uma pequena superfície REST em /api/agency/projects para criar, listar, atualizar e excluir projetos.
  2. Leituras de dados entre projetos: as mesmas ferramentas JSON-RPC da API por projeto (get_metrics, get_timeseries, get_histogram) em /api/mcp. Com uma chave mestra você passa project_id nos argumentos para escolher qual projeto você quer.

Dois tipos de chaves de API

O CoreDash emite dois níveis de chaves. Cada um tem um trabalho diferente.

ChavePrefixoEscopoO que faz
Chave de projetocdk_Um projetoLê dados de RUM para aquele projeto através do endpoint JSON-RPC. Veja /api.
Chave mestracdk_master_Todos os projetos da contaCria, lista, atualiza e exclui projetos através de REST. Também lê dados de qualquer projeto na conta ao passar project_id nas ferramentas de dados.

As chaves mestras estão disponíveis apenas em contas marcadas como agência. Se você não vir a aba Agency API descrita abaixo, fale com o suporte.

Obtenha uma chave mestra

As chaves mestras são geradas a partir da interface web (UI), não da API.

  1. Faça login em app.coredash.app.
  2. Abra My Account e clique na aba Agency API.
  3. Clique em Generate master key, dê um nome a ela e copie o valor. Ele é exibido apenas uma vez.

As chaves começam com cdk_master_. Elas permitem que o portador gerencie cada projeto que pertence à sua conta de usuário e leia dados de qualquer um deles. Trate-as como senhas. Você pode revogar qualquer chave mestra na mesma aba.

Autenticação

Toda requisição para a Agency API precisa de uma chave mestra no cabeçalho Authorization:

Authorization: Bearer cdk_master_YOUR_MASTER_KEY

O mesmo cabeçalho funciona tanto para os endpoints REST de CRUD do projeto quanto para o endpoint de dados JSON-RPC. Nada mais muda.

CRUD de Projetos: a superfície REST

URL base para gerenciamento de projetos:

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

Estas são chamadas REST simples. Não JSON-RPC.

POST /api/agency/projects: crie um projeto

Cria um novo projeto de propriedade do usuário da chave mestra. Por padrão, o projeto inicia como uma avaliação (trial) de 10 dias. Passe agencyplan para iniciá-lo em um plano pago em vez disso, com um período de faturamento de 33 dias.

CampoTipoObrigatórioDescrição
namestringsimNome do projeto exibido no dashboard.
urlstringnãoA URL do site que o projeto rastreia.
agencyplanstringnãoID do plano (por exemplo, starter). Quando definido, o projeto inicia no plano pago correspondente em vez de uma avaliação.
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"
  }'

A resposta em caso de sucesso é 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" }
  }
}

O _id é o que você coloca no snippet de rastreamento no site do cliente. É também o project_id que você passa para as ferramentas de dados abaixo.

GET /api/agency/projects: liste projetos

Retorna os projetos que o seu usuário possui, ordenados pela data de criação (os mais recentes primeiro). Paginado com limit (máximo 500, padrão 100) e 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: busque um projeto

Retorna um único documento de projeto. Retorna 404 se o seu usuário não possuir o projeto. Nós deliberadamente não diferenciamos "não encontrado" de "não é seu" para que os IDs de projeto não possam ser enumerados entre contas.

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

PATCH /api/agency/projects/:id: atualize o nome ou URL

Atualiza o name e/ou url. Ambos os campos são opcionais. Campos omitidos permanecem como estavam. Qualquer outra coisa no corpo (body) é ignorada. Status, faturamento, expiração e alertas são gerenciados através do 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: exclua permanentemente um projeto

Exclui o projeto e tudo anexado a ele: execuções do Lighthouse, dados do CrUX, alertas, snapshots e configurações de snapshot.

Os dados de RUM no armazenamento de dados de apoio não são excluídos nesta chamada. Eles permanecem vinculados ao ID antigo do projeto, mas tornam-se órfãos. Não há caminho de recuperação. O ID do projeto é desativado.

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

Lendo dados com uma chave mestra

Para extrair dados do Core Web Vitals de um dos seus projetos, acesse o mesmo endpoint JSON-RPC que a API por projeto usa:

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

As três ferramentas continuam inalteradas: get_metrics, get_timeseries, get_histogram. A única diferença em comparação com o fluxo por projeto é que você passa project_id em arguments para que a chamada saiba para qual projeto olhar. Chaves de projeto não precisam disso porque cada chave de projeto já tem o escopo de um projeto. Chaves mestras cobrem muitos projetos, então a requisição tem que nomear um.

Exemplo: get_metrics para um projeto específico

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

A resposta é o mesmo wrapper JSON-RPC da API por projeto, com o payload processado em result.content[0].text. O formato do JSON interno, o objeto distribution, o campo summary nas séries temporais, a estrutura de buckets nos histogramas, todos se comportam da mesma maneira que com uma chave de projeto. O único requisito extra é o argumento project_id.

O mesmo se aplica a get_timeseries e get_histogram. Passe o project_id e depois os argumentos habituais.

Todos os outros parâmetros funcionam da mesma forma: filters, group, percentile, date, granularity, e assim por diante. A referência de dimensões (d, cc, ff, lcpel, inpel, todas elas), os limiares das métricas e a semântica de percentis estão todos documentados na página da CoreDash API. Leia isso para conhecer a superfície completa de parâmetros e dimensões. Esta página cobre apenas o que é diferente quando você se autentica com uma chave mestra.

Integração (onboarding) de um novo projeto de cliente

O fluxo típico para uma agência adicionando um novo cliente:

  1. Gere uma chave mestra uma vez em My Account → aba Agency API e armazene-a de forma segura.
  2. Faça um POST /api/agency/projects com o nome e a URL do cliente. A resposta contém o novo _id.
  3. Incorpore o snippet de rastreamento no site do cliente com esse _id.
  4. Leia os dados de RUM para aquele projeto a qualquer momento via POST /api/mcp com a mesma chave mestra e "project_id": "<o _id>" nos argumentos. Nenhuma chave de projeto separada é necessária.

Esse é todo o ciclo de onboarding. Uma chave, um POST, uma incorporação de snippet, e você já pode consultar os dados do novo projeto.

Erros

Os endpoints de CRUD de projetos retornam códigos de status REST simples:

StatusSignificado
400Campo obrigatório ausente na criação, ou ID de plano desconhecido.
401Chave mestra ausente, inválida ou revogada.
404Projeto não encontrado, ou não pertence ao seu usuário.
500Erro no banco de dados.

As leituras de dados em /api/mcp retornam objetos de erro JSON-RPC, da mesma forma que com uma chave de projeto. A tabela de códigos de erro está na página da CoreDash API. Se você receber -32001, verifique novamente se a sua chave começa com cdk_master_ e se você incluiu project_id nos argumentos.

Limites de taxa

Os limites diários por projeto ainda se aplicam quando você lê dados: uma chave mestra chamando get_metrics para o projeto A conta na cota diária do projeto A, e uma chamada para o projeto B conta na do projeto B. Consulte a tabela de limites de taxa na página da CoreDash API. As chamadas de CRUD de projeto não possuem os mesmos limites de taxa.


CoreDash Agency API: Gerencie Projetos e Extraia Dados Entre ContasCore Web Vitals CoreDash Agency API: Gerencie Projetos e Extraia Dados Entre Contas