---
title: "Read observed cloud resources, usage, and spending"
method: GET
path: "/v1/cloud-connections/{id}"
tags: ["Cloud observation"]
---

# Read observed cloud resources, usage, and spending

`GET /v1/cloud-connections/{id}`

## Request

- Base URL: `/` (relative, and the document was published on a file host, not at the API’s origin)
- URL: `/v1/cloud-connections/{id}`
- Auth: HTTP bearer

Returns one connected account, project, or subscription and its report. Sources retain independent collection states. Unknown measurements remain unavailable. Provider-reported spending and currencies remain separate from Nodus billing. Invalid report windows return 400 invalid_window. Disconnected records return 404.

## Path parameters

- `id` string, required

## Query parameters

- `days` 7 | 30
- `horizon` 7 | 30

## Response `200`

Read observed cloud resources, usage, and spending

- CloudConnectionReportResponse
  - `connection` CloudObservationConnection, required
    - `id` string, required
    - `provider` 'aws' | 'gcp' | 'azure', required
    - `scope` string, required
    - `config` CloudObservationConfig, required: Account identity and read scope. Fields depend on the provider. Credentials are never returned.
      - `provider` 'aws' | 'gcp' | 'azure', required
      - `name` string, required
      - `role_arn` string
      - `project_id` string
      - `billing_table` string
      - `billing_location` string
      - `billing_scope` string
      - `directory_id` string
      - `subscription_id` string
      - `client_id` string
      - `regions` string[]
    - `state` 'pending' | 'collecting' | 'ready' | 'partial' | 'error', required
    - `last_attempt_at` string, date-time, nullable, required
    - `last_success_at` string, date-time, nullable, required
    - `created_at` string, date-time, required
  - `report` CloudObservationReport, required
    - `discovery` CloudObservationCoverage, required
      - `status` string, required: Source collection state. May be empty before its first collection.
      - `source` string, required
      - `message` string, required
      - `observed_at` string, date-time, nullable, required
      - `from` string, date-time
      - `to` string, date-time
    - `from` string, date-time, required
    - `to` string, date-time, required
    - `series` CloudObservationSeries[], required
      - `key` string, required
      - `label` string, required
      - `unit` string, required
      - `history` CloudDailyObservation[], nullable, required
        - `day` string, date, required
        - `value` number, nullable, required
      - `total` number, nullable, required
      - `breakdown` CloudObservationBreakdown[], nullable, required
        - `name` string, required
        - `value` number, required
      - `by_region` CloudObservationBreakdown[]
        - `name` string, required
        - `value` number, required
      - `by_project` CloudObservationBreakdown[]
        - `name` string, required
        - `value` number, required
      - `forecast` CloudObservationForecast, required: Usage-continuation projection from measured history. Does not predict credit exhaustion or compare workload execution prices.
        - `status` string, required
        - `method` string, required
        - `message` string, required
        - `history_days` integer, required
        - `points` CloudDailyObservation[], nullable, required
          - `day` string, date, required
          - `value` number, nullable, required
        - `total` number, nullable, required
        - `breakdown` CloudObservationBreakdown[]
          - `name` string, required
          - `value` number, required
        - `by_region` CloudObservationBreakdown[]
          - `name` string, required
          - `value` number, required
        - `by_project` CloudObservationBreakdown[]
          - `name` string, required
          - `value` number, required
      - `measured_total` number: Sum of available observed costs in an aggregate window. A missing complete total means the subtotal has incomplete coverage.
      - `by_provider` CloudObservationBreakdown[]: Observed spending allocated to cloud providers. Currencies and unavailable costs are not combined.
        - `name` string, required
        - `value` number, required
    - `resources` CloudObservedResource[], nullable, required
      - `provider_id` string
      - `resource_type` string
      - `service` string
      - `category` string
      - `scope` string
      - `group` string
      - `id` string, required
      - `name` string, required
      - `kind` string, required
      - `region` string, required
      - `zone` string
      - `state` string, required
      - `machine_type` string, required
      - `gpu_type` string
      - `vcpus` number, nullable, required
      - `memory_gb` number, nullable, required
      - `gpu_count` integer, nullable, required
      - `tags` object, nullable, required
    - `inventory` CloudObservationCoverage, required
      - `status` string, required: Source collection state. May be empty before its first collection.
      - `source` string, required
      - `message` string, required
      - `observed_at` string, date-time, nullable, required
      - `from` string, date-time
      - `to` string, date-time
    - `performance` CloudObservationCoverage, required
      - `status` string, required: Source collection state. May be empty before its first collection.
      - `source` string, required
      - `message` string, required
      - `observed_at` string, date-time, nullable, required
      - `from` string, date-time
      - `to` string, date-time
    - `billing` CloudObservationCoverage, required
      - `status` string, required: Source collection state. May be empty before its first collection.
      - `source` string, required
      - `message` string, required
      - `observed_at` string, date-time, nullable, required
      - `from` string, date-time
      - `to` string, date-time
    - `gpu_inventory` CloudGPUInventory, required: Known attached GPU counts grouped by model and VM power state. This is not device utilization, schedulable capacity, or workload attribution. Unknown GPU counts and models remain explicit. Source status and observation time identify retained or unavailable data.
      - `status` string, required
      - `observed_at` string, date-time, nullable, required
      - `total_gpus` integer, required
      - `running_gpus` integer, required
      - `stopped_gpus` integer, required
      - `other_gpus` integer, required
      - `gpu_vms` integer, required
      - `unknown_count_vms` integer, required
      - `unknown_model_gpus` integer, required
      - `models` CloudGPUInventoryModel[], required
        - `model` string, required
        - `gpu_count` integer, required
        - `running_gpus` integer, required
        - `stopped_gpus` integer, required
        - `other_gpus` integer, required
        - `vm_count` integer, required
  - `gpu_history` CloudGPUHistory[], required: History for the selected 7 or 30 UTC days, including today, from the current connected scope. Retention is up to 90 days. This window differs from report history, which ends yesterday.
    - `day` string, date, required
    - `inventory` CloudGPUInventory, required: Known attached GPU counts grouped by model and VM power state. This is not device utilization, schedulable capacity, or workload attribution. Unknown GPU counts and models remain explicit. Source status and observation time identify retained or unavailable data.
      - `status` string, required
      - `observed_at` string, date-time, nullable, required
      - `total_gpus` integer, required
      - `running_gpus` integer, required
      - `stopped_gpus` integer, required
      - `other_gpus` integer, required
      - `gpu_vms` integer, required
      - `unknown_count_vms` integer, required
      - `unknown_model_gpus` integer, required
      - `models` CloudGPUInventoryModel[], required
        - `model` string, required
        - `gpu_count` integer, required
        - `running_gpus` integer, required
        - `stopped_gpus` integer, required
        - `other_gpus` integer, required
        - `vm_count` integer, required

## Other responses

- `default`: Authentication, administrator access, invalid input, missing records, conflicts, rate limits, credential storage, and transient failures are returned using the stable error and message fields.

---

[API](https://skmtc.dev/nodus-compute/apis/nodus-infrastructure-execution-api.md) - [All operations](https://skmtc.dev/nodus-compute/apis/nodus-infrastructure-execution-api/llms.txt) - [OpenAPI document](https://skmtc.dev/nodus-compute/apis/nodus-infrastructure-execution-api/revisions/a59210899d95?raw)
