> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ankra.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# The fleet's run rate per day, with coverage drawn apart from spend

> The organisation's cost run rate per UTC day over every priced cluster (`ankra cost trend`), in the caller's display currency. A cost snapshot exists only for an hour a cluster was priced, so a cluster missing from a day was not priced that day - it did not cost nothing. Each point says how many clusters it covers (priced_cluster_count, and fully_priced_cluster_count for those whose run rate is the whole cost, not a floor), and a day no cluster was priced has a null run rate. coverage_changes lists every day the set of priced clusters changed, naming the clusters that entered and left and what that moved the line by: a coverage move, never a spend move. The last point (current) is the summary's own run rate - each cluster's latest snapshot within 26 hours, deleted clusters out - so the line ends where GET /api/v1/org/cloud-cost/summary does; earlier points are each cluster's last snapshot of the day. clusters carries each priced cluster's span over the window and when it was first priced (first_priced_exact false means the earliest priced hour still known, not necessarily the first). Bearer-PAT twin of the browser route of the same name under /org.



## OpenAPI

````yaml https://platform.ankra.app/openapi.json get /api/v1/org/cloud-cost/trend
openapi: 3.1.0
info:
  title: FastAPI
  version: 0.1.0
servers:
  - url: https://platform.ankra.app
security: []
tags:
  - name: Clusters
    description: Create, inspect and manage clusters, and the stacks deployed on them.
  - name: Managed Clusters
    description: Provider-managed control planes, driven through one common surface.
  - name: Imported Clusters
    description: Clusters that already existed and were connected to Ankra.
  - name: Cluster Access
    description: Kubeconfigs, service-account tokens and per-cluster access grants.
  - name: Kubernetes
    description: Read and act on the Kubernetes objects inside a cluster.
  - name: AWS Clusters
    description: >-
      Provision and manage self-managed k3s / kubeadm clusters on AWS EC2 in
      your own VPC.
  - name: DigitalOcean Clusters
    description: Provision and manage DigitalOcean Kubernetes clusters.
  - name: Hetzner Clusters
    description: Provision and manage Hetzner Kubernetes clusters.
  - name: OVH Clusters
    description: Provision and manage OVH Kubernetes clusters.
  - name: Scaleway Clusters
    description: Provision and manage Scaleway Kapsule clusters.
  - name: UpCloud Clusters
    description: Provision and manage UpCloud Kubernetes clusters.
  - name: Applications
    description: Deploy, configure and observe applications across the fleet.
  - name: Backups
    description: >-
      Backup vaults, restore points, protection posture and captures for stacks
      and application deployments; a completed capture is not a verified
      restore.
  - name: Stack Profiles
    description: Reusable stack definitions, their versions and sharing.
  - name: Services
    description: >-
      Versioned service packages and explicit sharing. Runtime admission is
      separate from publication.
  - name: Charts
    description: Browse the chart catalogue behind stacks and addons.
  - name: Helm
    description: Helm registries, credentials and the charts they expose.
  - name: Executions
    description: Long-running platform executions and their jobs.
  - name: Operations
    description: Cancel in-flight cluster operations and their jobs.
  - name: Chat
    description: Conversational sessions, plans and confirmable actions.
  - name: AI Agent Runs
    description: Autonomous agent runs and their outcomes.
  - name: AI Tickets
    description: The AI ticket board, its sync connections and settings.
  - name: AI Playbooks
    description: Reusable playbooks the AI lanes execute.
  - name: AI Conditions
    description: Conditions that gate AI autonomy.
  - name: AI Remediation
    description: >-
      The organisation's auto-remediation policy: what the AI lanes may fix by
      themselves, and who approves the rest.
  - name: AI Engineering Handoffs
    description: Work the AI lanes escalate to a human engineer.
  - name: AI Environment
    description: The environment and base stacks AI demos deploy into.
  - name: Security
    description: Findings, advisories, SBOMs, compliance and posture.
  - name: Cost
    description: Cluster and fleet cost, rate cards and cost settings.
  - name: Decisions
    description: >-
      The decision ledger behind the Security and Cost queues: proposals a
      surface computed, the approve and set-aside decisions people took on them,
      and the receipts of running them.
  - name: Billing
    description: Subscription and spend caps.
  - name: Organisation
    description: Members, invitations, audit logs and organisation settings.
  - name: Account Tokens
    description: Personal access tokens for the API and CLI.
  - name: Credentials
    description: The shared credential store.
  - name: AWS Credentials
    description: >-
      AWS credentials: access keys or CloudFormation-onboarded STS roles for
      cost, EKS and self-managed provisioning.
  - name: Azure Credentials
    description: Azure credentials and SSH keys.
  - name: DigitalOcean Credentials
    description: DigitalOcean credentials and SSH keys.
  - name: Hetzner Credentials
    description: Hetzner credentials and SSH keys.
  - name: OVH Credentials
    description: OVH credentials and SSH keys.
  - name: Scaleway Credentials
    description: Scaleway credentials.
  - name: UpCloud Credentials
    description: UpCloud credentials and SSH keys.
  - name: Data Source Credentials
    description: Credentials for metrics and log sources.
  - name: DNS Credentials
    description: Credentials for DNS providers.
  - name: Object Storage Buckets
    description: >-
      Buckets Ankra creates and manages on an organisation's own provider
      credentials.
  - name: DNS
    description: DNS zones and records, including custom organisation zones.
  - name: Cloudflare
    description: Cloudflare domains and the credentials behind them.
  - name: Variables
    description: Organisation- and cluster-scoped variables.
  - name: SOPS
    description: Encrypt and decrypt values with the organisation SOPS config.
  - name: Alerts
    description: Alert integrations and ingest credentials.
  - name: Notifications
    description: Notification routes and their delivery targets.
  - name: Support
    description: Support tickets.
  - name: AI Settings
    description: Organisation AI provider, model catalog and per-function model settings
paths:
  /api/v1/org/cloud-cost/trend:
    get:
      tags:
        - Cost
      summary: The fleet's run rate per day, with coverage drawn apart from spend
      description: >-
        The organisation's cost run rate per UTC day over every priced cluster
        (`ankra cost trend`), in the caller's display currency. A cost snapshot
        exists only for an hour a cluster was priced, so a cluster missing from
        a day was not priced that day - it did not cost nothing. Each point says
        how many clusters it covers (priced_cluster_count, and
        fully_priced_cluster_count for those whose run rate is the whole cost,
        not a floor), and a day no cluster was priced has a null run rate.
        coverage_changes lists every day the set of priced clusters changed,
        naming the clusters that entered and left and what that moved the line
        by: a coverage move, never a spend move. The last point (current) is the
        summary's own run rate - each cluster's latest snapshot within 26 hours,
        deleted clusters out - so the line ends where GET
        /api/v1/org/cloud-cost/summary does; earlier points are each cluster's
        last snapshot of the day. clusters carries each priced cluster's span
        over the window and when it was first priced (first_priced_exact false
        means the earliest priced hour still known, not necessarily the first).
        Bearer-PAT twin of the browser route of the same name under /org.
      operationId: cloud_cost_trend_api_v1_org_cloud_cost_trend_get
      parameters:
        - description: PAT organisation override.
          in: header
          name: x-ankra-organisation-id
          required: false
          schema:
            type: string
        - in: query
          name: days
          required: false
          schema:
            default: 30
            maximum: 34
            minimum: 1
            type: integer
          description: >-
            How many UTC days the trend covers, ending today (1..34: the cost
            snapshots are kept 35 days).
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FleetCostTrendResponse'
          description: Successful response
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContractDetailError'
          description: >-
            Missing or malformed Authorization header, days out of range, or
            business validation error
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContractDetailError'
          description: Unknown, expired, or revoked API token
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContractDetailError'
          description: >-
            Token may not use this surface (MCP-scoped token or service account
            restriction)
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Request validation error
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContractDetailError'
          description: Internal server error
      security:
        - BearerAuth: []
components:
  schemas:
    FleetCostTrendResponse:
      description: >-
        The fleet's run rate per day with the coverage drawn apart from the
        spend (ankra-cozgu.1.7).
      properties:
        currency:
          type: string
        generated_at:
          type: string
          format: date-time
        days:
          type: integer
        points:
          items:
            $ref: '#/components/schemas/FleetCostTrendPoint'
          type: array
          description: >-
            Every day of the window, oldest first; the last is the current run
            rate.
        coverage_changes:
          items:
            $ref: '#/components/schemas/CostCoverageChange'
          type: array
          description: The days the set of priced clusters changed, oldest first.
        clusters:
          items:
            $ref: '#/components/schemas/FleetCostTrendCluster'
          type: array
          description: Every cluster priced on at least one day of the window.
      required:
        - currency
        - generated_at
        - days
        - points
        - coverage_changes
        - clusters
      title: FleetCostTrendResponse
      type: object
    ContractDetailError:
      example:
        detail: Cluster not found
      properties:
        detail:
          oneOf:
            - type: string
            - additionalProperties: true
              properties: {}
              type: object
      required:
        - detail
      type: object
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          title: Detail
          type: array
      title: HTTPValidationError
      type: object
    FleetCostTrendPoint:
      description: One day of the fleet line.
      properties:
        day:
          format: date
          type: string
        monthly_cost_estimate_cents:
          anyOf:
            - type: integer
            - type: 'null'
          description: >-
            The run rates of the clusters priced that day, summed; null on a day
            no cluster was priced, which is unknown, not free.
        priced_cluster_count:
          type: integer
        fully_priced_cluster_count:
          type: integer
          description: >-
            The priced clusters whose every node and billed resource was priced;
            the others' run rates are floors.
        current:
          type: boolean
          description: >-
            The last point: the summary's current run rate rather than a closed
            day.
      required:
        - day
        - monthly_cost_estimate_cents
        - priced_cluster_count
        - fully_priced_cluster_count
        - current
      title: FleetCostTrendPoint
      type: object
    CostCoverageChange:
      description: A day the set of priced clusters changed.
      properties:
        day:
          format: date
          type: string
        priced_cluster_count_before:
          type: integer
        priced_cluster_count_after:
          type: integer
        entered:
          items:
            $ref: '#/components/schemas/CostCoverageChangeCluster'
          type: array
          description: >-
            Clusters priced this day and not the day before, with their run rate
            this day.
        left:
          items:
            $ref: '#/components/schemas/CostCoverageChangeCluster'
          type: array
          description: >-
            Clusters priced the day before and not this day (stopped, deleted,
            or not metered), with their run rate the day before.
        coverage_delta_monthly_cents:
          type: integer
          description: >-
            What the change moved the line by: entering run rates less leaving
            ones. Coverage, not spend.
      required:
        - day
        - priced_cluster_count_before
        - priced_cluster_count_after
        - entered
        - left
        - coverage_delta_monthly_cents
      title: CostCoverageChange
      type: object
    FleetCostTrendCluster:
      description: One cluster's coverage over the trend window.
      properties:
        cluster_id:
          type: string
          format: uuid
        cluster_name:
          type: string
        deleted:
          type: boolean
          description: Deleted since; its priced days still count, they were spent.
        first_priced_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          description: >-
            When the platform first priced the cluster. Exact only when
            first_priced_exact; otherwise the earliest priced hour still known
            (it was priced by then, and possibly long before). Null when it
            cannot be read.
        first_priced_exact:
          type: boolean
        first_day:
          type: string
          format: date
          description: The first day of the window the cluster was priced.
        last_day:
          type: string
          format: date
          description: The last day of the window the cluster was priced.
        priced_days:
          type: integer
      required:
        - cluster_id
        - cluster_name
        - deleted
        - first_priced_at
        - first_priced_exact
        - first_day
        - last_day
        - priced_days
      title: FleetCostTrendCluster
      type: object
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          title: Location
          type: array
        msg:
          title: Message
          type: string
        type:
          title: Error Type
          type: string
      required:
        - loc
        - msg
        - type
      title: ValidationError
      type: object
    CostCoverageChangeCluster:
      properties:
        cluster_id:
          type: string
          format: uuid
        cluster_name:
          type: string
        monthly_cost_estimate_cents:
          type: integer
      required:
        - cluster_id
        - cluster_name
        - monthly_cost_estimate_cents
      title: CostCoverageChangeCluster
      type: object
  securitySchemes:
    BearerAuth:
      bearerFormat: PAT
      scheme: bearer
      type: http

````