---
title: "Read the Dashboard in one project-scoped snapshot"
method: GET
path: "/projects/{id}/dashboard"
---

# Read the Dashboard in one project-scoped snapshot

`GET /projects/{id}/dashboard`

## Request

- Base URL: `https://api.eurobase.dev`
- URL: `https://api.eurobase.dev/projects/{id}/dashboard`
- Auth: none declared

Returns the resource map and telemetry overview from one authorized database read.

## Path parameters

- `id` string, required

## Query parameters

- `timeRange` '30m' | '6h' | '24h' | '7d'

## Response `200`

Dashboard snapshot

- ProjectDashboardResponse
  - `resourceMap` ProjectResourceMapResponse, required
    - `project` ProjectSummary, required
      - `id` string, required
      - `name` string, nullable
      - `organizationId` string, nullable
      - `projectMembershipId` string, nullable
      - `projectRole` 'owner' | 'admin' | 'contributor' | 'null', nullable
      - `projectSlug` string, nullable
      - `projectHostname` string, nullable
      - `primaryHostname` string, nullable: Official address of the project: its active custom domain whose DNS points at Eurobase, the one that went live first when several do, otherwise projectHostname. projectHostname stays reserved and keeps serving.
      - `deploymentMode` 'runtime' | 'static', required
      - `lifecycleState` string, nullable
      - `deleteRequestedAt` string, date-time, nullable
      - `projectRoute` ProjectRoute, required
        - `status` 'healthy' | 'repairing' | 'degraded' | 'broken' | 'unknown', required
        - `reasonCode` 'none' | 'dns_record_missing' | 'dns_propagating' | 'domain_binding_missing' | 'tls_pending' | 'missing_project_upstream' | 'upstream_unreachable' | 'ingress_unreachable' | 'unmanaged_custom_domain' | 'scw_mutation_failed', required
        - `checkedAt` string, date-time, nullable
        - `lastRepairAt` string, date-time, nullable
        - `lastError` string, nullable
        - `managed` boolean, required
        - `convergenceState` 'recovering' | 'exhausted' | 'ready' | 'null', nullable
        - `upstream` ProjectUpstreamState, required
          - `status` 'healthy' | 'broken' | 'unknown', required
          - `reasonCode` 'none' | 'missing_project_upstream' | 'upstream_unreachable', required
          - `checkedAt` string, date-time, nullable
          - `lastError` string, nullable
      - `releaseUsability` ReleaseUsability, required
        - `status` 'reachable' | 'degraded' | 'blocked' | 'unknown', required
        - `reasonCode` 'none' | 'missing_live_release' | 'access_not_allowed' | 'route_repair_in_progress' | 'route_incident' | 'project_suspended', required
        - `lastLiveDeploymentId` string, nullable, required
      - `projectSummaryStatus` ProjectSummaryStatus
        - `label` string, required
        - `tone` 'neutral' | 'problem' | 'error', required
        - `code` 'setup_required' | 'route_issue' | 'deploy_failed' | 'deploy_unhealthy' | 'live_release_blocked' | 'status_check_delayed' | 'deploy_in_progress' | 'rollback_live' | 'healthy' | 'suspended', required
        - `detailTitle` string, nullable, required
        - `detail` string, nullable, required
      - `servingSuspension` ProjectServingSuspension: An operator suspension of the project's public serving (ADR 0080). Operator notes and evidence are never included.
        - `state` 'suspended', required
        - `reasonCategory` 'phishing' | 'malware' | 'shared_domain_abuse' | 'spam' | 'illegal_content' | 'legal_order' | 'other_policy_violation', required
        - `reasonLabel` string, required
        - `since` string, date-time, nullable, required
        - `supportEmail` string, required
        - `policyUrl` string, required
      - `sourceProfile` ProjectSourceProfileSummary, required
        - `framework` 'next' | 'astro' | 'svelte-kit' | 'nuxt' | 'react-router' | 'vite' | 'hono' | 'nestjs' | 'fastify' | 'express' | 'django' | 'fastapi' | 'flask' | 'laravel' | 'rails' | 'node' | 'python' | 'php' | 'ruby' | 'go' | 'java' | 'dotnet' | 'static', required
        - `frameworkLabel` string, required
        - `outputMode` 'runtime' | 'static', required
      - `sourceLock` ProjectSourceLock: ADR 0090: while locked, no caller can change the project repository, branch, root directory or deployment mode.
        - `locked` boolean, required
        - `lockedAt` string, date-time, nullable, required
    - `region` ProjectResourceMapRegion, required
      - `code` string, required
      - `label` string, required
    - `nodes` ProjectResourceMapNode[], required
      - `id` string, required
      - `kind` 'region' | 'git_source' | 'app_deployment' | 'container' | 'function' | 'storage_bucket', required
      - `resourceId` string, nullable, required
      - `label` string, required
      - `subtitle` string, nullable, required
      - `status` ProjectResourceMapNodeStatus, required
        - `code` string, required
        - `label` string, required
        - `tone` string, required
      - `access` ProjectResourceMapNodeAccess, required
        - `mode` 'public' | 'private' | 'signed', required
        - `label` string, required
        - `description` string, nullable, required
      - `href` string, nullable, required
      - `sourceProfile` ProjectSourceProfileSummary, required
        - `framework` 'next' | 'astro' | 'svelte-kit' | 'nuxt' | 'react-router' | 'vite' | 'hono' | 'nestjs' | 'fastify' | 'express' | 'django' | 'fastapi' | 'flask' | 'laravel' | 'rails' | 'node' | 'python' | 'php' | 'ruby' | 'go' | 'java' | 'dotnet' | 'static', required
        - `frameworkLabel` string, required
        - `outputMode` 'runtime' | 'static', required
      - `meta` ProjectResourceMapNodeMeta[], required
        - `label` string, required
        - `value` string, required
    - `links` ProjectResourceMapLink[], required
      - `fromNodeId` string, required
      - `toNodeId` string, required
      - `kind` 'project_context' | 'source_dependency', required
    - `generatedAt` string, date-time, required
  - `telemetryOverview` ProjectTelemetryOverviewResponse, required
    - `project` ProjectSummary, required
      - `id` string, required
      - `name` string, nullable
      - `organizationId` string, nullable
      - `projectMembershipId` string, nullable
      - `projectRole` 'owner' | 'admin' | 'contributor' | 'null', nullable
      - `projectSlug` string, nullable
      - `projectHostname` string, nullable
      - `primaryHostname` string, nullable: Official address of the project: its active custom domain whose DNS points at Eurobase, the one that went live first when several do, otherwise projectHostname. projectHostname stays reserved and keeps serving.
      - `deploymentMode` 'runtime' | 'static', required
      - `lifecycleState` string, nullable
      - `deleteRequestedAt` string, date-time, nullable
      - `projectRoute` ProjectRoute, required
        - `status` 'healthy' | 'repairing' | 'degraded' | 'broken' | 'unknown', required
        - `reasonCode` 'none' | 'dns_record_missing' | 'dns_propagating' | 'domain_binding_missing' | 'tls_pending' | 'missing_project_upstream' | 'upstream_unreachable' | 'ingress_unreachable' | 'unmanaged_custom_domain' | 'scw_mutation_failed', required
        - `checkedAt` string, date-time, nullable
        - `lastRepairAt` string, date-time, nullable
        - `lastError` string, nullable
        - `managed` boolean, required
        - `convergenceState` 'recovering' | 'exhausted' | 'ready' | 'null', nullable
        - `upstream` ProjectUpstreamState, required
          - `status` 'healthy' | 'broken' | 'unknown', required
          - `reasonCode` 'none' | 'missing_project_upstream' | 'upstream_unreachable', required
          - `checkedAt` string, date-time, nullable
          - `lastError` string, nullable
      - `releaseUsability` ReleaseUsability, required
        - `status` 'reachable' | 'degraded' | 'blocked' | 'unknown', required
        - `reasonCode` 'none' | 'missing_live_release' | 'access_not_allowed' | 'route_repair_in_progress' | 'route_incident' | 'project_suspended', required
        - `lastLiveDeploymentId` string, nullable, required
      - `projectSummaryStatus` ProjectSummaryStatus
        - `label` string, required
        - `tone` 'neutral' | 'problem' | 'error', required
        - `code` 'setup_required' | 'route_issue' | 'deploy_failed' | 'deploy_unhealthy' | 'live_release_blocked' | 'status_check_delayed' | 'deploy_in_progress' | 'rollback_live' | 'healthy' | 'suspended', required
        - `detailTitle` string, nullable, required
        - `detail` string, nullable, required
      - `servingSuspension` ProjectServingSuspension: An operator suspension of the project's public serving (ADR 0080). Operator notes and evidence are never included.
        - `state` 'suspended', required
        - `reasonCategory` 'phishing' | 'malware' | 'shared_domain_abuse' | 'spam' | 'illegal_content' | 'legal_order' | 'other_policy_violation', required
        - `reasonLabel` string, required
        - `since` string, date-time, nullable, required
        - `supportEmail` string, required
        - `policyUrl` string, required
      - `sourceProfile` ProjectSourceProfileSummary, required
        - `framework` 'next' | 'astro' | 'svelte-kit' | 'nuxt' | 'react-router' | 'vite' | 'hono' | 'nestjs' | 'fastify' | 'express' | 'django' | 'fastapi' | 'flask' | 'laravel' | 'rails' | 'node' | 'python' | 'php' | 'ruby' | 'go' | 'java' | 'dotnet' | 'static', required
        - `frameworkLabel` string, required
        - `outputMode` 'runtime' | 'static', required
      - `sourceLock` ProjectSourceLock: ADR 0090: while locked, no caller can change the project repository, branch, root directory or deployment mode.
        - `locked` boolean, required
        - `lockedAt` string, date-time, nullable, required
    - `timeRange` '30m' | '6h' | '24h' | '7d', required
    - `windowGranularity` '5m' | '1h' | '1d', required
    - `windowStart` string, date-time, required
    - `windowEnd` string, date-time, required
    - `bucketStarts` string[], required
    - `availability` 'ready' | 'partial' | 'unavailable' | 'cutover_incomplete', required
    - `totals` object, required
      - `totalActivity` integer, nullable, required
      - `totalRequests` integer, required
      - `successRate` number, nullable, required: Percentage of requests with a recorded status that did not return 5xx; null when none has a status.
    - `series` object, required
      - `totalActivity` integer[], required
      - `totalRequests` integer[], required
    - `families` object, required
      - `deploymentTraffic` ProjectTelemetryFamilySummary, required
        - `value` integer, nullable, required
        - `series` integer[], nullable, required
        - `statusTotals` object, nullable, required
          - `success` integer, required
          - `warning` integer, required
          - `error` integer, required
        - `statusSeries` object, nullable, required
          - `success` integer[], required
          - `warning` integer[], required
          - `error` integer[], required
        - `blockedTotal` integer, nullable, required: Requests the Mini WAF blocked on this family's surfaces in the window (ADR 0109). Not part of value. Null when there were none, the family has no blockable surfaces, or the value is unavailable.
        - `blockedSeries` integer[], nullable, required: Blocked requests per bucket, aligned with series; null when blockedTotal is null.
        - `availability` 'ready' | 'partial' | 'unavailable' | 'cutover_incomplete', required
        - `includedInTotal` boolean, required
        - `coverage` ProjectTelemetryCoverage, required
          - `fullyIncluded` boolean, required
          - `includedSubsurfaces` string[], nullable, required
          - `missingSubsurfaces` string[], nullable, required
        - `cutoverStartedAt` string, date-time, nullable, required
        - `updatedAt` string, date-time, required
        - `reason` string, nullable, required
      - `containerTraffic` ProjectTelemetryFamilySummary, required
        - `value` integer, nullable, required
        - `series` integer[], nullable, required
        - `statusTotals` object, nullable, required
          - `success` integer, required
          - `warning` integer, required
          - `error` integer, required
        - `statusSeries` object, nullable, required
          - `success` integer[], required
          - `warning` integer[], required
          - `error` integer[], required
        - `blockedTotal` integer, nullable, required: Requests the Mini WAF blocked on this family's surfaces in the window (ADR 0109). Not part of value. Null when there were none, the family has no blockable surfaces, or the value is unavailable.
        - `blockedSeries` integer[], nullable, required: Blocked requests per bucket, aligned with series; null when blockedTotal is null.
        - `availability` 'ready' | 'partial' | 'unavailable' | 'cutover_incomplete', required
        - `includedInTotal` boolean, required
        - `coverage` ProjectTelemetryCoverage, required
          - `fullyIncluded` boolean, required
          - `includedSubsurfaces` string[], nullable, required
          - `missingSubsurfaces` string[], nullable, required
        - `cutoverStartedAt` string, date-time, nullable, required
        - `updatedAt` string, date-time, required
        - `reason` string, nullable, required
      - `functionHostTraffic` ProjectTelemetryFamilySummary, required
        - `value` integer, nullable, required
        - `series` integer[], nullable, required
        - `statusTotals` object, nullable, required
          - `success` integer, required
          - `warning` integer, required
          - `error` integer, required
        - `statusSeries` object, nullable, required
          - `success` integer[], required
          - `warning` integer[], required
          - `error` integer[], required
        - `blockedTotal` integer, nullable, required: Requests the Mini WAF blocked on this family's surfaces in the window (ADR 0109). Not part of value. Null when there were none, the family has no blockable surfaces, or the value is unavailable.
        - `blockedSeries` integer[], nullable, required: Blocked requests per bucket, aligned with series; null when blockedTotal is null.
        - `availability` 'ready' | 'partial' | 'unavailable' | 'cutover_incomplete', required
        - `includedInTotal` boolean, required
        - `coverage` ProjectTelemetryCoverage, required
          - `fullyIncluded` boolean, required
          - `includedSubsurfaces` string[], nullable, required
          - `missingSubsurfaces` string[], nullable, required
        - `cutoverStartedAt` string, date-time, nullable, required
        - `updatedAt` string, date-time, required
        - `reason` string, nullable, required
      - `storageActivity` ProjectTelemetryFamilySummary, required
        - `value` integer, nullable, required
        - `series` integer[], nullable, required
        - `statusTotals` object, nullable, required
          - `success` integer, required
          - `warning` integer, required
          - `error` integer, required
        - `statusSeries` object, nullable, required
          - `success` integer[], required
          - `warning` integer[], required
          - `error` integer[], required
        - `blockedTotal` integer, nullable, required: Requests the Mini WAF blocked on this family's surfaces in the window (ADR 0109). Not part of value. Null when there were none, the family has no blockable surfaces, or the value is unavailable.
        - `blockedSeries` integer[], nullable, required: Blocked requests per bucket, aligned with series; null when blockedTotal is null.
        - `availability` 'ready' | 'partial' | 'unavailable' | 'cutover_incomplete', required
        - `includedInTotal` boolean, required
        - `coverage` ProjectTelemetryCoverage, required
          - `fullyIncluded` boolean, required
          - `includedSubsurfaces` string[], nullable, required
          - `missingSubsurfaces` string[], nullable, required
        - `cutoverStartedAt` string, date-time, nullable, required
        - `updatedAt` string, date-time, required
        - `reason` string, nullable, required
    - `breakdowns` object, required
      - `deploymentTraffic` object, required
        - `bySurfaceKind` ProjectTelemetryBreakdownItem[], required
          - `key` string, required
          - `value` integer, nullable, required
        - `byStatusClass` ProjectTelemetryBreakdownItem[], required
          - `key` string, required
          - `value` integer, nullable, required
      - `containerTraffic` object, required
        - `bySurfaceKind` ProjectTelemetryBreakdownItem[], required
          - `key` string, required
          - `value` integer, nullable, required
        - `byStatusClass` ProjectTelemetryBreakdownItem[], required
          - `key` string, required
          - `value` integer, nullable, required
      - `functionHostTraffic` object, required
        - `byStatusClass` ProjectTelemetryBreakdownItem[], required
          - `key` string, required
          - `value` integer, nullable, required
      - `storageActivity` object, required
        - `byOperationKind` ProjectTelemetryBreakdownItem[], required
          - `key` string, required
          - `value` integer, nullable, required
        - `byActorType` ProjectTelemetryBreakdownItem[], required
          - `key` string, required
          - `value` integer, nullable, required
    - `updatedAt` string, date-time, required

## Other responses

- `404`: Project not found or not visible to the caller

---

[API](https://skmtc.dev/eurobase/apis/eurobase-api.md) · [All operations](https://skmtc.dev/eurobase/apis/eurobase-api/llms.txt) · [OpenAPI document](https://skmtc.dev/eurobase/apis/eurobase-api/revisions/5266a299d18a?raw)
