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

# Latest observation

> The latest published index value for one GPU SKU, in USD per GPU-hour. A value is published every 15 minutes.

Returns the price, observation time and stability band. Add `include=receipts` for the per-provider receipts in `data.receipts`.

A latest observation older than 4 publication intervals (60 minutes) reports `meta.status: "stale"` and `meta.freshness: "stale"`; the value itself is unchanged.



## OpenAPI

````yaml https://mcp.getcomputable.com/openapi.json get /v1/index/{sku}/latest
openapi: 3.1.0
info:
  title: Computable GPU Index API
  version: '1'
  summary: GPU compute price index in USD per GPU-hour.
  description: >-
    Anonymous, read-only. No API key and no registration.


    Successful responses contain `data`, publication details in `meta`, and
    `license`. Errors contain `error`, `meta`, and `license`. Preserve or ignore
    unfamiliar calculation and receipt disclosure fields.


    Values are published every 15 minutes. History covers the last 90 days;
    older values are available at
    [data.getcomputable.com](https://data.getcomputable.com).


    Data is licensed CC BY-NC 4.0 with attribution; each response includes the
    attribution to use.
  license:
    name: CC BY-NC 4.0
    identifier: CC-BY-NC-4.0
servers:
  - url: https://api.getcomputable.com
    description: Public REST host.
security: []
tags:
  - name: Index
    description: Latest index values and price history.
  - name: Methodology
    description: Covered SKUs, calculation methods and history limits.
paths:
  /v1/index/{sku}/latest:
    get:
      tags:
        - Index
      summary: Latest observation
      description: >-
        The latest published index value for one GPU SKU, in USD per GPU-hour. A
        value is published every 15 minutes.


        Returns the price, observation time and stability band. Add
        `include=receipts` for the per-provider receipts in `data.receipts`.


        A latest observation older than 4 publication intervals (60 minutes)
        reports `meta.status: "stale"` and `meta.freshness: "stale"`; the value
        itself is unchanged.
      operationId: getLatestIndexValue
      parameters:
        - name: sku
          in: path
          required: true
          description: >-
            GPU SKU. Currently B300, B200, H100 or H200; the live list is in
            `GET /v1/methodology`.
          schema:
            $ref: '#/components/schemas/Identifier'
          examples:
            B300:
              value: B300
            B200:
              value: B200
            H100:
              value: H100
            H200:
              value: H200
        - name: include
          in: query
          required: false
          description: >-
            Set to `receipts` to include per-provider prices, weights and source
            URLs in `data.receipts`.
          schema:
            type: string
            enum:
              - receipts
      responses:
        '200':
          description: >-
            The latest value, with per-provider receipts when
            `include=receipts`.
          headers:
            Cache-Control:
              $ref: '#/components/headers/CacheControlWindowed'
            ETag:
              $ref: '#/components/headers/ETag'
            x-index-artifact:
              $ref: '#/components/headers/IndexArtifact'
            x-index-artifact-sha256:
              $ref: '#/components/headers/IndexArtifactSha256'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimitLimit'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimitPolicy'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimitRemaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimitReset'
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/LatestIndexValueDataResponse'
                  - $ref: '#/components/schemas/IndexValueDataResponse'
              examples:
                lean:
                  summary: Latest value without receipts
                  value:
                    data:
                      sku: H100
                      observed_at: '2026-08-27T06:00:00.000Z'
                      value_usd_gpu_hr: 3.645759
                      stability_band_usd_gpu_hr: 0.555759
                      unit: USD/GPU/hour
                    meta:
                      scope: observation
                      index_name: Computable GPU Index
                      methodology_id: h100_sxm_v1_calc_v10
                      input_snapshot_sha256: >-
                        8e1df331554b6b256ba89297a541ccdd3b7e75b88f9fdf3f4db98f275cdd3c2a
                      as_of_observed_at: '2026-08-27T06:00:00.000Z'
                      generated_at: '2026-08-27T06:04:24.000Z'
                      coverage:
                        n_sources: 3
                        n_passing: 2
                        frozen: []
                        excluded:
                          - vast
                      status: ok
                      reason: null
                      freshness: fresh
                    license:
                      spdx: CC-BY-NC-4.0
                      url: https://creativecommons.org/licenses/by-nc/4.0/
                      attribution: >-
                        Computable GPU Index by Computable —
                        mcp.getcomputable.com
                withReceipts:
                  summary: include=receipts
                  value:
                    data:
                      sku: H100
                      observed_at: '2026-08-27T06:00:00.000Z'
                      value_usd_gpu_hr: 3.645759
                      stability_band_usd_gpu_hr: 0.555759
                      unit: USD/GPU/hour
                      receipts:
                        - source_id: civo
                          liveness_score: null
                          price: 2.99
                          sd: 0.05
                          weight: 0.51
                          source_url: https://www.civo.com/pricing
                          status: ok
                          filter_verdict: accepted
                          last_seen: '2026-08-27T06:00:00.000Z'
                        - source_id: lambda
                          liveness_score: null
                          price: 3.99
                          sd: 0.05
                          weight: 0.49
                          source_url: https://lambda.ai/pricing
                          status: ok
                          filter_verdict: accepted
                          last_seen: '2026-08-27T06:00:00.000Z'
                        - source_id: vast
                          liveness_score: null
                          price: null
                          sd: null
                          weight: null
                          source_url: https://console.vast.ai/api/v0/bundles/
                          status: excluded
                          filter_verdict: not_evaluated
                          last_seen: null
                    meta:
                      scope: observation
                      index_name: Computable GPU Index
                      methodology_id: h100_sxm_v1_calc_v10
                      input_snapshot_sha256: >-
                        8e1df331554b6b256ba89297a541ccdd3b7e75b88f9fdf3f4db98f275cdd3c2a
                      as_of_observed_at: '2026-08-27T06:00:00.000Z'
                      generated_at: '2026-08-27T06:04:24.000Z'
                      coverage:
                        n_sources: 3
                        n_passing: 2
                        frozen: []
                        excluded:
                          - vast
                      status: ok
                      reason: null
                      freshness: fresh
                    license:
                      spdx: CC-BY-NC-4.0
                      url: https://creativecommons.org/licenses/by-nc/4.0/
                      attribution: >-
                        Computable GPU Index by Computable —
                        mcp.getcomputable.com
        '304':
          description: >-
            The response has not changed since the `ETag` sent in
            `If-None-Match`. No body is returned.
          headers:
            Cache-Control:
              $ref: '#/components/headers/CacheControlWindowed'
            ETag:
              $ref: '#/components/headers/ETag'
            x-index-artifact:
              $ref: '#/components/headers/IndexArtifact'
            x-index-artifact-sha256:
              $ref: '#/components/headers/IndexArtifactSha256'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimitLimit'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimitPolicy'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimitRemaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimitReset'
        '400':
          description: >-
            Request failed. `history_window_exceeded`: The requested window
            starts before the 90-day history. `invalid_request`: A parameter is
            malformed or over the limit.
          headers:
            Cache-Control:
              $ref: '#/components/headers/CacheControlRefusal'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimitLimit'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimitPolicy'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimitRemaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimitReset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RefusalEnvelope'
              examples:
                history_window_exceeded:
                  $ref: '#/components/examples/history_window_exceeded'
                invalid_request:
                  $ref: '#/components/examples/invalid_request'
        '403':
          description: '`invalid_request`: The `Host` or `Origin` header is not allowed.'
          headers:
            Cache-Control:
              $ref: '#/components/headers/CacheControlRefusal'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimitLimit'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimitPolicy'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimitRemaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimitReset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RefusalEnvelope'
              examples:
                invalid_request:
                  $ref: '#/components/examples/invalid_request'
        '404':
          description: >-
            Request failed. `artifact_missing`: The requested published data
            file is not available. `unknown_sku`: The requested SKU is not
            published by this index.
          headers:
            Cache-Control:
              $ref: '#/components/headers/CacheControlRefusal'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimitLimit'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimitPolicy'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimitRemaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimitReset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RefusalEnvelope'
              examples:
                artifact_missing:
                  $ref: '#/components/examples/artifact_missing'
                unknown_sku:
                  $ref: '#/components/examples/unknown_sku'
        '429':
          description: >-
            Request failed. `rate_limited`: The fair-use request limit has been
            reached.
          headers:
            Cache-Control:
              $ref: '#/components/headers/CacheControlRefusal'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimitLimit'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimitPolicy'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimitRemaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimitReset'
            Retry-After:
              $ref: '#/components/headers/RetryAfter'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RefusalEnvelope'
              examples:
                rate_limited:
                  $ref: '#/components/examples/rate_limited'
        '500':
          description: >-
            Request failed. `internal_error`: The request could not be
            completed.
          headers:
            Cache-Control:
              $ref: '#/components/headers/CacheControlRefusal'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimitLimit'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimitPolicy'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimitRemaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimitReset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RefusalEnvelope'
              examples:
                internal_error:
                  $ref: '#/components/examples/internal_error'
        '502':
          description: >-
            Request failed. `artifact_digest_mismatch`: The published data file
            failed its checksum check. `artifact_path_violation`: The published
            data file has an invalid path. `invalid_artifact`: The published
            data file could not be read as valid index data.
            `unknown_methodology`: The published data uses a methodology that is
            not available for this SKU.
          headers:
            Cache-Control:
              $ref: '#/components/headers/CacheControlRefusal'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimitLimit'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimitPolicy'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimitRemaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimitReset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RefusalEnvelope'
              examples:
                artifact_digest_mismatch:
                  $ref: '#/components/examples/artifact_digest_mismatch'
                artifact_path_violation:
                  $ref: '#/components/examples/artifact_path_violation'
                invalid_artifact:
                  $ref: '#/components/examples/invalid_artifact'
                unknown_methodology:
                  $ref: '#/components/examples/unknown_methodology'
        '503':
          description: >-
            Request failed. `upstream_unavailable`: The published data is
            temporarily unavailable.
          headers:
            Cache-Control:
              $ref: '#/components/headers/CacheControlRefusal'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimitLimit'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimitPolicy'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimitRemaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimitReset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RefusalEnvelope'
              examples:
                upstream_unavailable:
                  $ref: '#/components/examples/upstream_unavailable'
components:
  schemas:
    Identifier:
      type: string
      minLength: 1
      maxLength: 128
      pattern: ^[A-Za-z0-9][A-Za-z0-9._-]*$
      description: An identifier for a GPU SKU, provider or methodology.
    LatestIndexValueDataResponse:
      anyOf:
        - type: object
          properties:
            data:
              $ref: '#/components/schemas/AvailableLatestIndexValueData'
            meta:
              anyOf:
                - $ref: '#/components/schemas/ObservationPublicationMetaOk'
                - $ref: '#/components/schemas/ObservationPublicationMetaStale'
            license:
              $ref: '#/components/schemas/License'
          required:
            - data
            - meta
            - license
          additionalProperties: false
        - type: object
          properties:
            data:
              $ref: '#/components/schemas/NoPrintLatestIndexValueData'
            meta:
              $ref: '#/components/schemas/ObservationPublicationMetaNoPrint'
            license:
              $ref: '#/components/schemas/License'
          required:
            - data
            - meta
            - license
          additionalProperties: false
    IndexValueDataResponse:
      anyOf:
        - type: object
          properties:
            data:
              $ref: '#/components/schemas/AvailableIndexValueData'
            meta:
              anyOf:
                - $ref: '#/components/schemas/ObservationPublicationMetaOk'
                - $ref: '#/components/schemas/ObservationPublicationMetaStale'
            license:
              $ref: '#/components/schemas/License'
          required:
            - data
            - meta
            - license
          additionalProperties: false
        - type: object
          properties:
            data:
              $ref: '#/components/schemas/NoPrintIndexValueData'
            meta:
              $ref: '#/components/schemas/ObservationPublicationMetaNoPrint'
            license:
              $ref: '#/components/schemas/License'
          required:
            - data
            - meta
            - license
          additionalProperties: false
    RefusalEnvelope:
      type: object
      properties:
        error:
          $ref: '#/components/schemas/RefusalError'
        meta:
          $ref: '#/components/schemas/RefusalMeta'
        license:
          $ref: '#/components/schemas/License'
      required:
        - error
        - meta
        - license
      additionalProperties: false
      description: >-
        An error code and message, with the same license information as a
        successful response.
    Sha256:
      type: string
      pattern: ^[a-f0-9]{64}$
    AvailableLatestIndexValueData:
      type: object
      properties:
        sku:
          $ref: '#/components/schemas/Identifier'
        observed_at:
          $ref: '#/components/schemas/ObservationDateTimeString'
        value_usd_gpu_hr:
          $ref: '#/components/schemas/Price'
        stability_band_usd_gpu_hr:
          $ref: '#/components/schemas/StandardDeviation'
        unit:
          $ref: '#/components/schemas/Unit'
      required:
        - sku
        - observed_at
        - value_usd_gpu_hr
        - stability_band_usd_gpu_hr
        - unit
      additionalProperties: false
    ObservationPublicationMetaOk:
      type: object
      properties:
        scope:
          $ref: '#/components/schemas/ObservationScope'
        index_name:
          $ref: '#/components/schemas/IndexName'
        methodology_id:
          $ref: '#/components/schemas/Identifier'
        input_snapshot_sha256:
          $ref: '#/components/schemas/NullableSha256'
        as_of_observed_at:
          $ref: '#/components/schemas/ObservationDateTimeString'
        generated_at:
          $ref: '#/components/schemas/DateTimeString'
        coverage:
          $ref: '#/components/schemas/Coverage'
        status:
          type: string
          const: ok
        reason:
          type: 'null'
        freshness:
          type: string
          const: fresh
      required:
        - scope
        - index_name
        - methodology_id
        - input_snapshot_sha256
        - as_of_observed_at
        - generated_at
        - coverage
        - status
        - reason
        - freshness
      additionalProperties: false
      description: >-
        Publication time, methodology and source coverage for a fresh latest
        value.
    ObservationPublicationMetaStale:
      type: object
      properties:
        scope:
          $ref: '#/components/schemas/ObservationScope'
        index_name:
          $ref: '#/components/schemas/IndexName'
        methodology_id:
          $ref: '#/components/schemas/Identifier'
        input_snapshot_sha256:
          $ref: '#/components/schemas/NullableSha256'
        as_of_observed_at:
          $ref: '#/components/schemas/ObservationDateTimeString'
        generated_at:
          $ref: '#/components/schemas/DateTimeString'
        coverage:
          $ref: '#/components/schemas/Coverage'
        status:
          type: string
          const: stale
        reason:
          type: string
          const: artifact_stale
        freshness:
          type: string
          const: stale
      required:
        - scope
        - index_name
        - methodology_id
        - input_snapshot_sha256
        - as_of_observed_at
        - generated_at
        - coverage
        - status
        - reason
        - freshness
      additionalProperties: false
      description: >-
        Publication details for a latest value older than 4 publication
        intervals (60 minutes).
    License:
      type: object
      properties:
        spdx:
          type: string
          const: CC-BY-NC-4.0
        url:
          type: string
          const: https://creativecommons.org/licenses/by-nc/4.0/
        attribution:
          type: string
          minLength: 1
          pattern: \S
          maxLength: 512
      required:
        - spdx
        - url
        - attribution
      additionalProperties: false
    NoPrintLatestIndexValueData:
      type: object
      properties:
        sku:
          $ref: '#/components/schemas/Identifier'
        observed_at:
          $ref: '#/components/schemas/ObservationDateTimeString'
        value_usd_gpu_hr:
          type: 'null'
        stability_band_usd_gpu_hr:
          type: 'null'
        unit:
          $ref: '#/components/schemas/Unit'
      required:
        - sku
        - observed_at
        - value_usd_gpu_hr
        - stability_band_usd_gpu_hr
        - unit
      additionalProperties: false
    ObservationPublicationMetaNoPrint:
      type: object
      properties:
        scope:
          $ref: '#/components/schemas/ObservationScope'
        index_name:
          $ref: '#/components/schemas/IndexName'
        methodology_id:
          $ref: '#/components/schemas/Identifier'
        input_snapshot_sha256:
          $ref: '#/components/schemas/NullableSha256'
        as_of_observed_at:
          $ref: '#/components/schemas/ObservationDateTimeString'
        generated_at:
          $ref: '#/components/schemas/DateTimeString'
        coverage:
          $ref: '#/components/schemas/Coverage'
        status:
          type: string
          const: no_print
        reason:
          $ref: '#/components/schemas/NoPrintReason'
        freshness:
          $ref: '#/components/schemas/Freshness'
      required:
        - scope
        - index_name
        - methodology_id
        - input_snapshot_sha256
        - as_of_observed_at
        - generated_at
        - coverage
        - status
        - reason
        - freshness
      additionalProperties: false
      description: >-
        Publication details explaining why no price was published at the latest
        scheduled time.
    AvailableIndexValueData:
      type: object
      properties:
        sku:
          $ref: '#/components/schemas/Identifier'
        observed_at:
          $ref: '#/components/schemas/ObservationDateTimeString'
        value_usd_gpu_hr:
          $ref: '#/components/schemas/Price'
        stability_band_usd_gpu_hr:
          $ref: '#/components/schemas/StandardDeviation'
        unit:
          $ref: '#/components/schemas/Unit'
        receipts:
          $ref: '#/components/schemas/PublicReceipts'
      required:
        - sku
        - observed_at
        - value_usd_gpu_hr
        - stability_band_usd_gpu_hr
        - unit
        - receipts
      additionalProperties: false
    NoPrintIndexValueData:
      type: object
      properties:
        sku:
          $ref: '#/components/schemas/Identifier'
        observed_at:
          $ref: '#/components/schemas/ObservationDateTimeString'
        value_usd_gpu_hr:
          type: 'null'
        stability_band_usd_gpu_hr:
          type: 'null'
        unit:
          $ref: '#/components/schemas/Unit'
        receipts:
          $ref: '#/components/schemas/PublicReceipts'
      required:
        - sku
        - observed_at
        - value_usd_gpu_hr
        - stability_band_usd_gpu_hr
        - unit
        - receipts
      additionalProperties: false
    RefusalError:
      anyOf:
        - $ref: '#/components/schemas/StandardRefusalError'
        - $ref: '#/components/schemas/HistoryWindowExceededError'
    RefusalMeta:
      type: object
      properties:
        scope:
          type: string
          const: refusal
        index_name:
          $ref: '#/components/schemas/IndexName'
        methodology_id:
          type: 'null'
        input_snapshot_sha256:
          type: 'null'
        as_of_observed_at:
          type: 'null'
        generated_at:
          $ref: '#/components/schemas/DateTimeString'
        status:
          type: 'null'
        reason:
          type: 'null'
        freshness:
          type: 'null'
        coverage:
          type: 'null'
      required:
        - scope
        - index_name
        - methodology_id
        - input_snapshot_sha256
        - as_of_observed_at
        - generated_at
        - status
        - reason
        - freshness
        - coverage
      additionalProperties: false
    ObservationDateTimeString:
      type: string
      allOf:
        - pattern: >-
            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        - pattern: ^\d{4}-\d{2}-\d{2}T(?:[01]\d|2[0-3]):[0-5]\d:00\.000Z$
      description: >-
        Observation time in UTC on the 15-minute grid, e.g.
        `2026-09-01T00:00:00.000Z`.
      format: date-time
    Price:
      type: number
      exclusiveMinimum: 0
      description: A price in USD per GPU-hour. Always positive where present.
    StandardDeviation:
      type: number
      minimum: 0
      description: Price standard deviation in USD per GPU-hour. Zero or greater.
    Unit:
      type: string
      const: USD/GPU/hour
      description: USD per GPU-hour.
    ObservationScope:
      type: string
      const: observation
    IndexName:
      type: string
      minLength: 1
      pattern: \S
      maxLength: 256
    NullableSha256:
      anyOf:
        - $ref: '#/components/schemas/Sha256'
        - type: 'null'
    DateTimeString:
      type: string
      format: date-time
      pattern: >-
        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
    Coverage:
      type: object
      properties:
        n_sources:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        n_passing:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        frozen:
          $ref: '#/components/schemas/IdentifierSet'
        excluded:
          $ref: '#/components/schemas/IdentifierSet'
      required:
        - n_sources
        - n_passing
        - frozen
        - excluded
      additionalProperties: false
      description: >-
        Provider participation behind one observation. `n_passing` counts the
        providers that contributed to the value, so it is at most `n_sources`.
    NoPrintReason:
      type: string
      enum:
        - observation_missed
        - record_quarantined
        - insufficient_coverage
        - all_sources_filtered
        - no_eligible_sources
      description: Why an observation published no value.
    Freshness:
      type: string
      enum:
        - fresh
        - stale
      description: >-
        `stale` when the newest published observation is more than 4 publication
        intervals (60 minutes) old.
    PublicReceipts:
      type: array
      items:
        $ref: '#/components/schemas/PublicReceipt'
      uniqueItems: true
    StandardRefusalError:
      type: object
      properties:
        code:
          $ref: '#/components/schemas/StandardRefusalCode'
        message:
          type: string
          minLength: 1
          pattern: \S
          maxLength: 256
      required:
        - code
        - message
      additionalProperties: false
    HistoryWindowExceededError:
      type: object
      properties:
        code:
          type: string
          const: history_window_exceeded
        message:
          type: string
          minLength: 1
          pattern: \S
          maxLength: 256
        details:
          type: object
          properties:
            history_window_days:
              type: integer
              exclusiveMinimum: 0
              maximum: 9007199254740991
          required:
            - history_window_days
          additionalProperties: false
      required:
        - code
        - message
        - details
      additionalProperties: false
    IdentifierSet:
      type: array
      items:
        $ref: '#/components/schemas/Identifier'
      uniqueItems: true
    PublicReceipt:
      anyOf:
        - $ref: '#/components/schemas/ContributingReceipt'
        - $ref: '#/components/schemas/FilteredReceipt'
        - $ref: '#/components/schemas/ExcludedReceipt'
        - $ref: '#/components/schemas/UnavailableReceipt'
        - $ref: '#/components/schemas/WithheldReceipt'
      description: >-
        One provider’s price, weight and source URL. Prices are null for frozen
        or missing sources. When a price is withheld, `price_disclosure` is
        `withheld` and `price` and `sd` are null.
    StandardRefusalCode:
      type: string
      enum:
        - artifact_missing
        - artifact_digest_mismatch
        - artifact_path_violation
        - unknown_methodology
        - invalid_artifact
        - invalid_request
        - no_data
        - unknown_sku
        - rate_limited
        - upstream_unavailable
        - internal_error
    ContributingReceipt:
      propertyNames:
        anyOf:
          - enum:
              - attendance_factor
              - carry_basis
              - currency
              - filter_verdict
              - fx_rate
              - gpu_count_basis
              - gpu_variant
              - last_seen
              - liveness_score
              - no_price_excluded
              - no_price_streak
              - price
              - provider_class
              - region
              - sd
              - sku_identifier
              - source_id
              - source_url
              - status
              - upstream_status
              - vram_gb
              - weight
          - pattern: >-
              ^(?!(?:n_samples|q|price_disclosure)$)(?!(?:private|internal|raw|debug|reason|message|notes?|paths?|prefix|urls?|uris?|hosts?|hostnames?|accounts?|machines?|providers?|tenants?|ticket|issue|tokens?|secrets?|credentials?|keys?|ids?|identifiers?)(?:_|$))(?!.*_(?:private|internal|raw|debug|reason|message|notes?|paths?|prefix|urls?|uris?|hosts?|hostnames?|accounts?|machines?|providers?|tenants?|ticket|issue|tokens?|secrets?|credentials?|keys?|ids?|identifiers?)(?:_|$))[a-z][a-z0-9_]{0,63}$
      type: object
      properties:
        source_id:
          $ref: '#/components/schemas/Identifier'
        liveness_score:
          $ref: '#/components/schemas/NullableLivenessScore'
        upstream_status:
          $ref: '#/components/schemas/OptionalReceiptUpstreamStatus'
        gpu_count_basis:
          $ref: '#/components/schemas/NullableReceiptGpuCount'
        region:
          $ref: '#/components/schemas/NullableReceiptProviderLabel'
        currency:
          $ref: '#/components/schemas/NullableReceiptCurrency'
        fx_rate:
          $ref: '#/components/schemas/NullableReceiptFxRate'
        sku_identifier:
          $ref: '#/components/schemas/NullableReceiptProviderLabel'
        gpu_variant:
          $ref: '#/components/schemas/NullableReceiptGpuVariant'
        vram_gb:
          $ref: '#/components/schemas/NullableReceiptVramGb'
        provider_class:
          $ref: '#/components/schemas/NullableReceiptProviderClass'
        attendance_factor:
          $ref: '#/components/schemas/OptionalReceiptAttendanceFactorDisclosure'
        no_price_streak:
          $ref: '#/components/schemas/OptionalReceiptNoPriceStreakDisclosure'
        no_price_excluded:
          $ref: '#/components/schemas/OptionalReceiptNoPriceExcludedDisclosure'
        carry_basis:
          $ref: '#/components/schemas/OptionalReceiptCarryBasis'
        price:
          $ref: '#/components/schemas/Price'
        sd:
          $ref: '#/components/schemas/StandardDeviation'
        weight:
          $ref: '#/components/schemas/Weight'
        source_url:
          anyOf:
            - $ref: '#/components/schemas/HttpsUrl'
            - type: 'null'
        status:
          type: string
          const: ok
        filter_verdict:
          type: string
          const: accepted
        last_seen:
          $ref: '#/components/schemas/ObservationDateTimeString'
      required:
        - source_id
        - liveness_score
        - price
        - sd
        - weight
        - source_url
        - status
        - filter_verdict
        - last_seen
      additionalProperties:
        $ref: '#/components/schemas/AdditiveDisclosureScalar'
    FilteredReceipt:
      propertyNames:
        anyOf:
          - enum:
              - attendance_factor
              - carry_basis
              - currency
              - filter_verdict
              - fx_rate
              - gpu_count_basis
              - gpu_variant
              - last_seen
              - liveness_score
              - no_price_excluded
              - no_price_streak
              - price
              - provider_class
              - region
              - sd
              - sku_identifier
              - source_id
              - source_url
              - status
              - upstream_status
              - vram_gb
              - weight
          - pattern: >-
              ^(?!(?:n_samples|q|price_disclosure)$)(?!(?:private|internal|raw|debug|reason|message|notes?|paths?|prefix|urls?|uris?|hosts?|hostnames?|accounts?|machines?|providers?|tenants?|ticket|issue|tokens?|secrets?|credentials?|keys?|ids?|identifiers?)(?:_|$))(?!.*_(?:private|internal|raw|debug|reason|message|notes?|paths?|prefix|urls?|uris?|hosts?|hostnames?|accounts?|machines?|providers?|tenants?|ticket|issue|tokens?|secrets?|credentials?|keys?|ids?|identifiers?)(?:_|$))[a-z][a-z0-9_]{0,63}$
      type: object
      properties:
        source_id:
          $ref: '#/components/schemas/Identifier'
        liveness_score:
          $ref: '#/components/schemas/NullableLivenessScore'
        upstream_status:
          $ref: '#/components/schemas/OptionalReceiptUpstreamStatus'
        gpu_count_basis:
          $ref: '#/components/schemas/NullableReceiptGpuCount'
        region:
          $ref: '#/components/schemas/NullableReceiptProviderLabel'
        currency:
          $ref: '#/components/schemas/NullableReceiptCurrency'
        fx_rate:
          $ref: '#/components/schemas/NullableReceiptFxRate'
        sku_identifier:
          $ref: '#/components/schemas/NullableReceiptProviderLabel'
        gpu_variant:
          $ref: '#/components/schemas/NullableReceiptGpuVariant'
        vram_gb:
          $ref: '#/components/schemas/NullableReceiptVramGb'
        provider_class:
          $ref: '#/components/schemas/NullableReceiptProviderClass'
        attendance_factor:
          $ref: '#/components/schemas/OptionalReceiptAttendanceFactorDisclosure'
        no_price_streak:
          $ref: '#/components/schemas/OptionalReceiptNoPriceStreakDisclosure'
        no_price_excluded:
          $ref: '#/components/schemas/OptionalReceiptNoPriceExcludedDisclosure'
        carry_basis:
          $ref: '#/components/schemas/OptionalReceiptCarryBasis'
        price:
          $ref: '#/components/schemas/Price'
        sd:
          anyOf:
            - $ref: '#/components/schemas/StandardDeviation'
            - type: 'null'
        weight:
          anyOf:
            - $ref: '#/components/schemas/Weight'
            - type: 'null'
        source_url:
          $ref: '#/components/schemas/HttpsUrl'
        status:
          type: string
          const: ok
        filter_verdict:
          type: string
          enum:
            - rejected
            - not_evaluated
        last_seen:
          $ref: '#/components/schemas/ObservationDateTimeString'
      required:
        - source_id
        - liveness_score
        - price
        - sd
        - weight
        - source_url
        - status
        - filter_verdict
        - last_seen
      additionalProperties:
        $ref: '#/components/schemas/AdditiveDisclosureScalar'
    ExcludedReceipt:
      propertyNames:
        anyOf:
          - enum:
              - attendance_factor
              - carry_basis
              - currency
              - filter_verdict
              - fx_rate
              - gpu_count_basis
              - gpu_variant
              - last_seen
              - liveness_score
              - no_price_excluded
              - no_price_streak
              - price
              - provider_class
              - region
              - sd
              - sku_identifier
              - source_id
              - source_url
              - status
              - upstream_status
              - vram_gb
              - weight
          - pattern: >-
              ^(?!(?:n_samples|q|price_disclosure)$)(?!(?:private|internal|raw|debug|reason|message|notes?|paths?|prefix|urls?|uris?|hosts?|hostnames?|accounts?|machines?|providers?|tenants?|ticket|issue|tokens?|secrets?|credentials?|keys?|ids?|identifiers?)(?:_|$))(?!.*_(?:private|internal|raw|debug|reason|message|notes?|paths?|prefix|urls?|uris?|hosts?|hostnames?|accounts?|machines?|providers?|tenants?|ticket|issue|tokens?|secrets?|credentials?|keys?|ids?|identifiers?)(?:_|$))[a-z][a-z0-9_]{0,63}$
      type: object
      properties:
        source_id:
          $ref: '#/components/schemas/Identifier'
        liveness_score:
          $ref: '#/components/schemas/NullableLivenessScore'
        upstream_status:
          $ref: '#/components/schemas/OptionalReceiptUpstreamStatus'
        gpu_count_basis:
          $ref: '#/components/schemas/NullableReceiptGpuCount'
        region:
          $ref: '#/components/schemas/NullableReceiptProviderLabel'
        currency:
          $ref: '#/components/schemas/NullableReceiptCurrency'
        fx_rate:
          $ref: '#/components/schemas/NullableReceiptFxRate'
        sku_identifier:
          $ref: '#/components/schemas/NullableReceiptProviderLabel'
        gpu_variant:
          $ref: '#/components/schemas/NullableReceiptGpuVariant'
        vram_gb:
          $ref: '#/components/schemas/NullableReceiptVramGb'
        provider_class:
          $ref: '#/components/schemas/NullableReceiptProviderClass'
        attendance_factor:
          $ref: '#/components/schemas/OptionalReceiptAttendanceFactorDisclosure'
        no_price_streak:
          $ref: '#/components/schemas/OptionalReceiptNoPriceStreakDisclosure'
        no_price_excluded:
          $ref: '#/components/schemas/OptionalReceiptNoPriceExcludedDisclosure'
        carry_basis:
          $ref: '#/components/schemas/OptionalReceiptCarryBasis'
        price:
          anyOf:
            - $ref: '#/components/schemas/Price'
            - type: 'null'
        sd:
          anyOf:
            - $ref: '#/components/schemas/StandardDeviation'
            - type: 'null'
        weight:
          anyOf:
            - $ref: '#/components/schemas/Weight'
            - type: 'null'
        source_url:
          anyOf:
            - $ref: '#/components/schemas/HttpsUrl'
            - type: 'null'
        status:
          type: string
          const: excluded
        filter_verdict:
          $ref: '#/components/schemas/FilterVerdict'
        last_seen:
          anyOf:
            - $ref: '#/components/schemas/ObservationDateTimeString'
            - type: 'null'
      required:
        - source_id
        - liveness_score
        - price
        - sd
        - weight
        - source_url
        - status
        - filter_verdict
        - last_seen
      additionalProperties:
        $ref: '#/components/schemas/AdditiveDisclosureScalar'
    UnavailableReceipt:
      propertyNames:
        anyOf:
          - enum:
              - attendance_factor
              - carry_basis
              - currency
              - filter_verdict
              - fx_rate
              - gpu_count_basis
              - gpu_variant
              - last_seen
              - liveness_score
              - no_price_excluded
              - no_price_streak
              - price
              - provider_class
              - region
              - sd
              - sku_identifier
              - source_id
              - source_url
              - status
              - upstream_status
              - vram_gb
              - weight
          - pattern: >-
              ^(?!(?:n_samples|q|price_disclosure)$)(?!(?:private|internal|raw|debug|reason|message|notes?|paths?|prefix|urls?|uris?|hosts?|hostnames?|accounts?|machines?|providers?|tenants?|ticket|issue|tokens?|secrets?|credentials?|keys?|ids?|identifiers?)(?:_|$))(?!.*_(?:private|internal|raw|debug|reason|message|notes?|paths?|prefix|urls?|uris?|hosts?|hostnames?|accounts?|machines?|providers?|tenants?|ticket|issue|tokens?|secrets?|credentials?|keys?|ids?|identifiers?)(?:_|$))[a-z][a-z0-9_]{0,63}$
      type: object
      properties:
        source_id:
          $ref: '#/components/schemas/Identifier'
        liveness_score:
          $ref: '#/components/schemas/NullableLivenessScore'
        upstream_status:
          $ref: '#/components/schemas/OptionalReceiptUpstreamStatus'
        gpu_count_basis:
          $ref: '#/components/schemas/NullableReceiptGpuCount'
        region:
          $ref: '#/components/schemas/NullableReceiptProviderLabel'
        currency:
          $ref: '#/components/schemas/NullableReceiptCurrency'
        fx_rate:
          $ref: '#/components/schemas/NullableReceiptFxRate'
        sku_identifier:
          $ref: '#/components/schemas/NullableReceiptProviderLabel'
        gpu_variant:
          $ref: '#/components/schemas/NullableReceiptGpuVariant'
        vram_gb:
          $ref: '#/components/schemas/NullableReceiptVramGb'
        provider_class:
          $ref: '#/components/schemas/NullableReceiptProviderClass'
        attendance_factor:
          $ref: '#/components/schemas/OptionalReceiptAttendanceFactorDisclosure'
        no_price_streak:
          $ref: '#/components/schemas/OptionalReceiptNoPriceStreakDisclosure'
        no_price_excluded:
          $ref: '#/components/schemas/OptionalReceiptNoPriceExcludedDisclosure'
        carry_basis:
          $ref: '#/components/schemas/OptionalReceiptCarryBasis'
        price:
          type: 'null'
        sd:
          type: 'null'
        weight:
          type: 'null'
        source_url:
          anyOf:
            - $ref: '#/components/schemas/HttpsUrl'
            - type: 'null'
        status:
          type: string
          enum:
            - frozen
            - missing
        filter_verdict:
          $ref: '#/components/schemas/FilterVerdict'
        last_seen:
          anyOf:
            - $ref: '#/components/schemas/ObservationDateTimeString'
            - type: 'null'
      required:
        - source_id
        - liveness_score
        - price
        - sd
        - weight
        - source_url
        - status
        - filter_verdict
        - last_seen
      additionalProperties:
        $ref: '#/components/schemas/AdditiveDisclosureScalar'
    WithheldReceipt:
      propertyNames:
        anyOf:
          - enum:
              - attendance_factor
              - carry_basis
              - currency
              - filter_verdict
              - fx_rate
              - gpu_count_basis
              - gpu_variant
              - last_seen
              - liveness_score
              - no_price_excluded
              - no_price_streak
              - price
              - price_disclosure
              - provider_class
              - region
              - sd
              - sku_identifier
              - source_id
              - source_url
              - status
              - upstream_status
              - vram_gb
              - weight
          - pattern: >-
              ^(?!(?:n_samples|q)$)(?!(?:private|internal|raw|debug|reason|message|notes?|paths?|prefix|urls?|uris?|hosts?|hostnames?|accounts?|machines?|providers?|tenants?|ticket|issue|tokens?|secrets?|credentials?|keys?|ids?|identifiers?)(?:_|$))(?!.*_(?:private|internal|raw|debug|reason|message|notes?|paths?|prefix|urls?|uris?|hosts?|hostnames?|accounts?|machines?|providers?|tenants?|ticket|issue|tokens?|secrets?|credentials?|keys?|ids?|identifiers?)(?:_|$))[a-z][a-z0-9_]{0,63}$
      type: object
      properties:
        source_id:
          $ref: '#/components/schemas/Identifier'
        liveness_score:
          $ref: '#/components/schemas/NullableLivenessScore'
        upstream_status:
          $ref: '#/components/schemas/OptionalReceiptUpstreamStatus'
        gpu_count_basis:
          $ref: '#/components/schemas/NullableReceiptGpuCount'
        region:
          $ref: '#/components/schemas/NullableReceiptProviderLabel'
        currency:
          $ref: '#/components/schemas/NullableReceiptCurrency'
        fx_rate:
          $ref: '#/components/schemas/NullableReceiptFxRate'
        sku_identifier:
          $ref: '#/components/schemas/NullableReceiptProviderLabel'
        gpu_variant:
          $ref: '#/components/schemas/NullableReceiptGpuVariant'
        vram_gb:
          $ref: '#/components/schemas/NullableReceiptVramGb'
        provider_class:
          $ref: '#/components/schemas/NullableReceiptProviderClass'
        attendance_factor:
          $ref: '#/components/schemas/OptionalReceiptAttendanceFactorDisclosure'
        no_price_streak:
          $ref: '#/components/schemas/OptionalReceiptNoPriceStreakDisclosure'
        no_price_excluded:
          $ref: '#/components/schemas/OptionalReceiptNoPriceExcludedDisclosure'
        carry_basis:
          $ref: '#/components/schemas/OptionalReceiptCarryBasis'
        price:
          type: 'null'
        sd:
          type: 'null'
        weight:
          anyOf:
            - $ref: '#/components/schemas/Weight'
            - type: 'null'
        source_url:
          anyOf:
            - $ref: '#/components/schemas/HttpsUrl'
            - type: 'null'
        status:
          type: string
          enum:
            - ok
            - excluded
        filter_verdict:
          $ref: '#/components/schemas/FilterVerdict'
        last_seen:
          anyOf:
            - $ref: '#/components/schemas/ObservationDateTimeString'
            - type: 'null'
        price_disclosure:
          type: string
          const: withheld
      required:
        - source_id
        - liveness_score
        - price
        - sd
        - weight
        - source_url
        - status
        - filter_verdict
        - last_seen
        - price_disclosure
      additionalProperties:
        $ref: '#/components/schemas/AdditiveDisclosureScalar'
    NullableLivenessScore:
      anyOf:
        - $ref: '#/components/schemas/LivenessScore'
        - type: 'null'
    OptionalReceiptUpstreamStatus:
      $ref: '#/components/schemas/UpstreamSourceStatus'
    NullableReceiptGpuCount:
      anyOf:
        - $ref: '#/components/schemas/PositiveInteger'
        - type: 'null'
    NullableReceiptProviderLabel:
      anyOf:
        - $ref: '#/components/schemas/ReceiptProviderLabel'
        - type: 'null'
    NullableReceiptCurrency:
      anyOf:
        - $ref: '#/components/schemas/ReceiptCurrency'
        - type: 'null'
    NullableReceiptFxRate:
      anyOf:
        - $ref: '#/components/schemas/Price'
        - type: 'null'
    NullableReceiptGpuVariant:
      anyOf:
        - $ref: '#/components/schemas/GpuVariant'
        - type: 'null'
    NullableReceiptVramGb:
      anyOf:
        - $ref: '#/components/schemas/Price'
        - type: 'null'
    NullableReceiptProviderClass:
      anyOf:
        - $ref: '#/components/schemas/ProviderClass'
        - type: 'null'
    OptionalReceiptAttendanceFactorDisclosure:
      $ref: '#/components/schemas/AdditiveDisclosureScalar'
    OptionalReceiptNoPriceStreakDisclosure:
      $ref: '#/components/schemas/AdditiveDisclosureScalar'
    OptionalReceiptNoPriceExcludedDisclosure:
      $ref: '#/components/schemas/AdditiveDisclosureScalar'
    OptionalReceiptCarryBasis:
      $ref: '#/components/schemas/CarryBasis'
    Weight:
      type: number
      minimum: 0
      maximum: 1
      description: The provider's weight in the aggregation, in [0, 1].
    HttpsUrl:
      type: string
      maxLength: 2048
      pattern: >-
        ^https:\/\/(?:[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?)(?:\.(?:[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?))*(?:[/?#](?:[A-Za-z0-9\-._~!$&'()*+,;=:@/?#]|%[A-Fa-f0-9]{2})*)?$
      description: An absolute `https:` URL.
    AdditiveDisclosureScalar:
      anyOf:
        - type: number
        - $ref: '#/components/schemas/AdditiveDisclosureString'
        - type: boolean
        - type: 'null'
    FilterVerdict:
      type: string
      enum:
        - accepted
        - rejected
        - not_evaluated
    LivenessScore:
      type: number
      minimum: 0
      maximum: 1
      description: Provider availability score, from 0 to 1, when calculated.
    UpstreamSourceStatus:
      type: string
      minLength: 1
      maxLength: 128
      pattern: ^[A-Za-z0-9][A-Za-z0-9._-]*$
    PositiveInteger:
      type: integer
      exclusiveMinimum: 0
      maximum: 9007199254740991
    ReceiptProviderLabel:
      type: string
      minLength: 1
      allOf:
        - pattern: \S
        - pattern: ^[\x20-\x7e]+$
      maxLength: 256
    ReceiptCurrency:
      type: string
      pattern: ^[A-Z]{3}$
    GpuVariant:
      type: string
      enum:
        - SXM
        - PCIe
        - NVL
    ProviderClass:
      type: string
      enum:
        - direct_principal
        - direct_partnered
        - marketplace
        - reseller
        - aggregator
        - hyperscaler
        - neocloud
    CarryBasis:
      type: string
      minLength: 1
      maxLength: 128
      pattern: ^[A-Za-z0-9][A-Za-z0-9._-]*$
    AdditiveDisclosureString:
      type: string
      minLength: 1
      maxLength: 64
      pattern: ^(?![a-f0-9]{16,}$)(?![a-z0-9]{24,}$)[a-z][a-z0-9]*(?:_[a-z0-9]+)*$
  headers:
    CacheControlWindowed:
      description: >-
        Cache policy for latest values and history: `public, max-age=60,
        s-maxage=60, must-revalidate`.
      schema:
        type: string
        const: public, max-age=60, s-maxage=60, must-revalidate
    ETag:
      description: >-
        Strong entity tag over the response body. Send it back in
        `If-None-Match` for a `304`.
      schema:
        type: string
    IndexArtifact:
      description: The published data file used to produce this response.
      schema:
        type: string
    IndexArtifactSha256:
      description: SHA-256 checksum of the published data file used for this response.
      schema:
        $ref: '#/components/schemas/Sha256'
    RateLimitLimit:
      description: >-
        Requests allowed in the current window. Available on the Node server;
        not sent by the Cloudflare Worker.
      schema:
        type: integer
        minimum: 0
    RateLimitPolicy:
      description: >-
        The quota policy in force, as `<limit>;w=<window-seconds>`. Available on
        the Node server; not sent by the Cloudflare Worker.
      schema:
        type: string
    RateLimitRemaining:
      description: >-
        Requests left in the current window. Available on the Node server; not
        sent by the Cloudflare Worker.
      schema:
        type: integer
        minimum: 0
    RateLimitReset:
      description: >-
        Seconds until the current window resets. Available on the Node server;
        not sent by the Cloudflare Worker.
      schema:
        type: integer
        minimum: 0
    CacheControlRefusal:
      description: 'Errors are never cached: `no-store`.'
      schema:
        type: string
        const: no-store
    RetryAfter:
      description: >-
        Seconds to wait before retrying. Sent on `429` only; back off until it
        elapses. Available on the Node server; not sent by the Cloudflare
        Worker.
      schema:
        type: integer
        minimum: 0
  examples:
    history_window_exceeded:
      summary: '`history_window_exceeded` error'
      value:
        error:
          code: history_window_exceeded
          message: The requested window starts before the 90-day history.
          details:
            history_window_days: 90
        meta:
          scope: refusal
          index_name: Computable GPU Index
          methodology_id: null
          input_snapshot_sha256: null
          as_of_observed_at: null
          generated_at: '2026-08-27T07:52:16.640Z'
          status: null
          reason: null
          freshness: null
          coverage: null
        license:
          spdx: CC-BY-NC-4.0
          url: https://creativecommons.org/licenses/by-nc/4.0/
          attribution: Computable GPU Index by Computable — mcp.getcomputable.com
    invalid_request:
      summary: '`invalid_request` error'
      value:
        error:
          code: invalid_request
          message: A parameter is malformed or over the limit.
        meta:
          scope: refusal
          index_name: Computable GPU Index
          methodology_id: null
          input_snapshot_sha256: null
          as_of_observed_at: null
          generated_at: '2026-08-27T07:52:16.640Z'
          status: null
          reason: null
          freshness: null
          coverage: null
        license:
          spdx: CC-BY-NC-4.0
          url: https://creativecommons.org/licenses/by-nc/4.0/
          attribution: Computable GPU Index by Computable — mcp.getcomputable.com
    artifact_missing:
      summary: '`artifact_missing` error'
      value:
        error:
          code: artifact_missing
          message: The requested published data file is not available.
        meta:
          scope: refusal
          index_name: Computable GPU Index
          methodology_id: null
          input_snapshot_sha256: null
          as_of_observed_at: null
          generated_at: '2026-08-27T07:52:16.640Z'
          status: null
          reason: null
          freshness: null
          coverage: null
        license:
          spdx: CC-BY-NC-4.0
          url: https://creativecommons.org/licenses/by-nc/4.0/
          attribution: Computable GPU Index by Computable — mcp.getcomputable.com
    unknown_sku:
      summary: '`unknown_sku` error'
      value:
        error:
          code: unknown_sku
          message: The requested SKU is not published by this index.
        meta:
          scope: refusal
          index_name: Computable GPU Index
          methodology_id: null
          input_snapshot_sha256: null
          as_of_observed_at: null
          generated_at: '2026-08-27T07:52:16.640Z'
          status: null
          reason: null
          freshness: null
          coverage: null
        license:
          spdx: CC-BY-NC-4.0
          url: https://creativecommons.org/licenses/by-nc/4.0/
          attribution: Computable GPU Index by Computable — mcp.getcomputable.com
    rate_limited:
      summary: '`rate_limited` error'
      value:
        error:
          code: rate_limited
          message: The fair-use request limit has been reached.
        meta:
          scope: refusal
          index_name: Computable GPU Index
          methodology_id: null
          input_snapshot_sha256: null
          as_of_observed_at: null
          generated_at: '2026-08-27T07:52:16.640Z'
          status: null
          reason: null
          freshness: null
          coverage: null
        license:
          spdx: CC-BY-NC-4.0
          url: https://creativecommons.org/licenses/by-nc/4.0/
          attribution: Computable GPU Index by Computable — mcp.getcomputable.com
    internal_error:
      summary: '`internal_error` error'
      value:
        error:
          code: internal_error
          message: The request could not be completed.
        meta:
          scope: refusal
          index_name: Computable GPU Index
          methodology_id: null
          input_snapshot_sha256: null
          as_of_observed_at: null
          generated_at: '2026-08-27T07:52:16.640Z'
          status: null
          reason: null
          freshness: null
          coverage: null
        license:
          spdx: CC-BY-NC-4.0
          url: https://creativecommons.org/licenses/by-nc/4.0/
          attribution: Computable GPU Index by Computable — mcp.getcomputable.com
    artifact_digest_mismatch:
      summary: '`artifact_digest_mismatch` error'
      value:
        error:
          code: artifact_digest_mismatch
          message: The published data file failed its checksum check.
        meta:
          scope: refusal
          index_name: Computable GPU Index
          methodology_id: null
          input_snapshot_sha256: null
          as_of_observed_at: null
          generated_at: '2026-08-27T07:52:16.640Z'
          status: null
          reason: null
          freshness: null
          coverage: null
        license:
          spdx: CC-BY-NC-4.0
          url: https://creativecommons.org/licenses/by-nc/4.0/
          attribution: Computable GPU Index by Computable — mcp.getcomputable.com
    artifact_path_violation:
      summary: '`artifact_path_violation` error'
      value:
        error:
          code: artifact_path_violation
          message: The published data file has an invalid path.
        meta:
          scope: refusal
          index_name: Computable GPU Index
          methodology_id: null
          input_snapshot_sha256: null
          as_of_observed_at: null
          generated_at: '2026-08-27T07:52:16.640Z'
          status: null
          reason: null
          freshness: null
          coverage: null
        license:
          spdx: CC-BY-NC-4.0
          url: https://creativecommons.org/licenses/by-nc/4.0/
          attribution: Computable GPU Index by Computable — mcp.getcomputable.com
    invalid_artifact:
      summary: '`invalid_artifact` error'
      value:
        error:
          code: invalid_artifact
          message: The published data file could not be read as valid index data.
        meta:
          scope: refusal
          index_name: Computable GPU Index
          methodology_id: null
          input_snapshot_sha256: null
          as_of_observed_at: null
          generated_at: '2026-08-27T07:52:16.640Z'
          status: null
          reason: null
          freshness: null
          coverage: null
        license:
          spdx: CC-BY-NC-4.0
          url: https://creativecommons.org/licenses/by-nc/4.0/
          attribution: Computable GPU Index by Computable — mcp.getcomputable.com
    unknown_methodology:
      summary: '`unknown_methodology` error'
      value:
        error:
          code: unknown_methodology
          message: >-
            The published data uses a methodology that is not available for this
            SKU.
        meta:
          scope: refusal
          index_name: Computable GPU Index
          methodology_id: null
          input_snapshot_sha256: null
          as_of_observed_at: null
          generated_at: '2026-08-27T07:52:16.640Z'
          status: null
          reason: null
          freshness: null
          coverage: null
        license:
          spdx: CC-BY-NC-4.0
          url: https://creativecommons.org/licenses/by-nc/4.0/
          attribution: Computable GPU Index by Computable — mcp.getcomputable.com
    upstream_unavailable:
      summary: '`upstream_unavailable` error'
      value:
        error:
          code: upstream_unavailable
          message: The published data is temporarily unavailable.
        meta:
          scope: refusal
          index_name: Computable GPU Index
          methodology_id: null
          input_snapshot_sha256: null
          as_of_observed_at: null
          generated_at: '2026-08-27T07:52:16.640Z'
          status: null
          reason: null
          freshness: null
          coverage: null
        license:
          spdx: CC-BY-NC-4.0
          url: https://creativecommons.org/licenses/by-nc/4.0/
          attribution: Computable GPU Index by Computable — mcp.getcomputable.com

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.