---
title: "List centralized project log rows with recent-history filters"
method: GET
path: "/projects/{id}/logs"
---

# List centralized project log rows with recent-history filters

`GET /projects/{id}/logs`

## Request

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

Returns the authoritative bounded row page and DB revision without computing exact retained-window statistics. Each query returns the newest matching rows, newest first. Load older through the stable timestamp-and-ID cursor; there is no total or offset.

## Path parameters

- `id` string, required

## Query parameters

- `assetType` 'app' | 'service' | 'function' | 'deployment' | 'container' | 'runtime' | 'storage' | 'static'
- `assetId` string
- `deploymentId` string
- `invocationId` string
- `severity` 'info' | 'warning' | 'error'
- `statusClass` '2xx' | '3xx' | '4xx' | '5xx'
- `method` 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'HEAD' | 'OPTIONS'
- `statusCode` integer
- `pathClass` string
- `excludePaths` string
- `hideBlocked` '1'
- `requestId` string
- `sourceNetwork` string
- `sourceIp` string
- `category` 'activity' | 'access' | 'runtime' | 'deploy' | 'build' | 'function' | 'storage'
- `view` 'deployments' | 'http' | 'containers' | 'functions' | 'storage'
- `timeRange` '1h' | '24h' | '7d' | '30d'
- `from` string
- `to` string
- `limit` integer
- `cursor` string
- `search` string

## Response `200`

Project log console entries

- ProjectLogsResponse
  - `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
  - `revision` string, required
  - `temporalEpoch` integer, nullable, required
  - `nextExpiryAt` string, date-time, nullable, required
  - `filters` object, required
    - `assetType` 'app' | 'service' | 'function' | 'deployment' | 'container' | 'runtime' | 'storage' | 'static' | 'null', nullable, required
    - `assetId` string, nullable, required
    - `deploymentId` string, nullable, required
    - `invocationId` string, nullable, required
    - `severity` 'info' | 'warning' | 'error' | 'null', nullable, required
    - `statusClass` '2xx' | '3xx' | '4xx' | '5xx' | 'null', nullable, required
    - `method` string, nullable, required
    - `statusCode` integer, nullable, required
    - `pathClass` string, nullable, required
    - `excludePaths` string[], required
    - `hideBlocked` boolean, required
    - `requestId` string, nullable, required
    - `sourceNetwork` string, nullable, required
    - `sourceIp` string, nullable, required
    - `category` string, nullable, required
    - `view` 'deployments' | 'http' | 'containers' | 'functions' | 'storage' | 'null', nullable, required
    - `timeRange` '1h' | '24h' | '7d' | '30d' | 'null', nullable, required
    - `from` string, date-time, nullable, required
    - `to` string, date-time, nullable, required
  - `retentionPolicy` object, required
    - `maxEntriesPerCategory` integer, required
    - `maxAgeDays` integer, required
  - `pagination` object, required
    - `limit` integer, required
    - `nextCursor` string, nullable, required
    - `hasMore` boolean, required
  - `entries` ProjectLogEntry[], required
    - `id` string, required
    - `assetType` 'app' | 'service' | 'function' | 'deployment' | 'container' | 'runtime' | 'storage' | 'static', required
    - `assetId` string, required
    - `assetName` string, nullable
    - `deploymentId` string, nullable
    - `severity` 'info' | 'warning' | 'error', required
    - `logKind` 'build' | 'deploy' | 'runtime' | 'network' | 'event' | 'null', nullable
    - `stream` 'stdout' | 'stderr' | 'system' | 'null', nullable
    - `source` 'builder' | 'runner' | 'deploy' | 'health' | 'gateway' | 'runtime' | 'api' | 'storage' | 'function' | 'null', nullable
    - `category` string, required
    - `eventType` string, nullable, required
    - `message` string, required
    - `redacted` boolean, required
    - `truncated` boolean, required
    - `truncationReason` string, nullable
    - `payloadSummary` string, nullable, required
    - `requestId` string, nullable
    - `method` string, nullable
    - `requestTarget` string, nullable
    - `pathClass` string, nullable
    - `statusCode` integer, nullable
    - `statusClass` string, nullable
    - `latencyMs` integer, nullable
    - `sourceIp` string, nullable
    - `sourceGeo` ProjectLogSourceGeo, nullable
      - `label` string, required
      - `countryCode` string, required
      - `country` string, required
      - `regionCode` string, nullable, required
      - `region` string, nullable, required
      - `city` string, nullable, required
    - `sourceNetworkHash` string, nullable
    - `userAgentFamily` string, nullable
    - `reason` string, nullable
    - `blocked` object, nullable: A grouped Mini WAF block row (ADR 0109): its exact count, first time, most active client IPs and user-agent families. Kind path is one URL; urls is several URLs of one scope, minute and method, named in urls (most blocked first, at most 50) with their exact distinct count; not_recorded is blocks the Gateway counted but could not record.
      - `kind` 'path' | 'urls' | 'not_recorded', required
      - `distinctUrls` integer, nullable, required
      - `urls` object[], required
        - `url` string, required
        - `count` integer, required
      - `count` integer, required
      - `firstObservedAt` string, date-time, nullable, required
      - `distinctIps` integer, required
      - `ips` object[], required
        - `ip` string, required
        - `count` integer, required
      - `userAgentFamilies` object[], required
        - `family` 'Chrome' | 'Firefox' | 'Safari' | 'curl' | 'bot' | 'other' | 'unknown', required
        - `count` integer, required
    - `providerReady` boolean, nullable
    - `gatewayStatusCode` integer, nullable
    - `gatewayRouteMatched` boolean, nullable
    - `gatewayAppRespondedOk` boolean, nullable
    - `gatewayTlsOk` boolean, nullable
    - `probeAttempts` integer, nullable
    - `observedAt` string, date-time, required
    - `ingestedAt` string, date-time, required
  - `runtimeLogState` RuntimeLogState, required
    - `status` 'ready' | 'empty' | 'blocked' | 'delayed' | 'failed' | 'unavailable', required
    - `reason` 'runtime-log-access-blocked' | 'runtime-log-collection-delayed' | 'runtime-log-collection-failed' | 'runtime-log-source-unavailable' | 'null', nullable, required
    - `checkedAt` string, date-time, nullable, required
    - `lastSuccessAt` string, date-time, nullable, required
  - `accessLogState` object, required
    - `status` 'ready' | 'empty' | 'delayed' | 'unavailable', required
    - `reason` 'access-log-ready' | 'access-log-empty' | 'access-log-delayed' | 'access-log-unavailable', required
    - `checkedAt` string, date-time, nullable
    - `lastSuccessAt` string, date-time, nullable

---

[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)
