API Agency do CoreDash: Gerencie Projetos e Extraia Dados Entre Contas

Gerencie muitos projetos em uma única conta. Emita uma master key uma vez, crie e exclua projetos via REST, e extraia dados do Core Web Vitals em todos eles usando uma única chave.

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

Trusted by market leaders · Client results

dpg mediaharvardebayhappyhorizonworkivamy work featured on web.devmarktplaatsmonarchadevintawhowhatwearsnverasmusmcperionfotocasaaleteiasaturnloopearplugskpnnina carecomparenestlevpn

Uma chave para cada projeto na sua conta

A API Agency é para contas que gerenciam muitos projetos. Agências, equipes internas administrando dezenas de marcas, qualquer um que não queira fazer login no dashboard toda vez que um novo cliente entrar. Emita uma master key uma vez e, em seguida, crie projetos, atualize-os, exclua-os e leia os dados do Core Web Vitals de todos eles com essa única credencial.

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

A API Agency 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 master key você passa o project_id nos argumentos para escolher qual projeto deseja.

Dois tipos de chaves de API

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

ChavePrefixoEscopoO que faz
Project keycdk_Um projetoLê dados de RUM para aquele projeto através do endpoint JSON-RPC. Veja /api.
Master keycdk_master_Todos os projetos na contaCria, lista, atualiza e exclui projetos através de REST. Também lê dados de qualquer projeto na conta passando project_id nas ferramentas de dados.

As master keys estão disponíveis apenas em contas sinalizadas como agências. Se você não vê a aba API Agency descrita abaixo, fale com o suporte.

Obtenha uma master key

As master keys são emitidas através da interface web, não pela 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 será exibido apenas uma vez.

As chaves começam com cdk_master_. Elas permitem que o portador gerencie todos os projetos que pertencem à sua conta de usuário e leia os dados de qualquer um deles. Trate-as como senhas. Você pode revogar qualquer master key na mesma aba.

Autenticação

Toda requisição à API Agency precisa de uma master key no cabeçalho Authorization:

Authorization: Bearer cdk_master_YOUR_MASTER_KEY

O mesmo cabeçalho funciona tanto para os endpoints REST de CRUD de projetos quanto para o endpoint JSON-RPC de dados. 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 comuns. Não são JSON-RPC.

POST /api/agency/projects: crie um projeto

Cria um novo projeto de propriedade do usuário da master key. Por padrão, o projeto começa como um trial de 10 dias. Passe agencyplan para iniciá-lo em um plano pago, com um período de cobrança de 33 dias.

CampoTipoObrigatórioDescrição
namestringsimNome do projeto mostrado 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 um 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"
  }'

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: listar projetos

Retorna os projetos dos quais seu usuário é dono, ordenados por data de criação (mais recentes primeiro). Paginado com limit (máx. 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: buscar um projeto

Retorna um único documento de projeto. Retorna 404 se o seu usuário não for o dono do projeto. 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: atualizar nome ou URL

Atualiza o name e/ou url. Ambos os campos são opcionais. Os campos omitidos são deixados como estavam. Qualquer outra coisa no corpo (payload) é ignorada. Status, faturamento, validade 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: exclusão definitiva de 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 repositório de dados subjacente não são excluídos nesta chamada. Eles permanecem vinculados ao ID do projeto antigo, mas ficam órfãos. Não há caminho de recuperação. O ID do projeto é aposentado.

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 master key

Para extrair dados do Core Web Vitals para 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 não mudam: get_metrics, get_timeseries, get_histogram. A única diferença em comparação ao fluxo por projeto é que você passa o project_id em arguments para que a chamada saiba para qual projeto olhar. As project keys não precisam disso porque cada project key já tem o escopo de um projeto. As master keys cobrem muitos projetos, então a requisição precisa 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 que a API por projeto, com o payload analisado em result.content[0].text. A forma 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 project key. O único requisito extra é o argumento project_id.

O mesmo se aplica ao get_timeseries e get_histogram. Passe project_id, depois os argumentos usuais.

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

Onboarding de um novo projeto de cliente

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

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

Esse é todo o loop 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 comuns:

StatusSignificado
400Campo obrigatório faltando na criação ou id de plano desconhecido.
401Master key faltando, inválida ou revogada.
404Projeto não encontrado ou não pertence ao seu usuário.
500Erro de banco de dados.

As leituras de dados em /api/mcp retornam objetos de erro JSON-RPC, o mesmo que com uma project key. A tabela de códigos de erro está na página da API do CoreDash. 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 master key chamando get_metrics para o projeto A conta no limite diário do projeto A, e uma chamada para o projeto B conta no limite do projeto B. Veja a tabela de limites de taxa na página da API do CoreDash. As chamadas de CRUD de projetos não têm limite de taxa da mesma maneira.

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