---
title: "Register a custom disk provider"
method: POST
path: "/marketplace/providers/disks"
deprecated: true
---

# Register a custom disk provider

`POST /marketplace/providers/disks`

## Request

- Base URL: `https://pricing.baselinehq.cloud`
- URL: `https://pricing.baselinehq.cloud/marketplace/providers/disks`
- Auth: one of:
  - API key in header `X-API-Key`
  - API key in header `Authorization`
- TypeScript: <https://skmtc.dev/baselinehq/apis/costgraph-pricing-api/docs/marketplace/providers/disks/post.ts> (a function with typed inputs; its response is checked against the schema)

> **Deprecated.**

Register your own storage rates, priced per GB hour with optional IOPS and throughput components and the capacity band they apply to.
An entry is upserted on its natural key (provider, service, region, availability zone, disk type, usage type and period billing hours), so re-posting with a new cost keeps its id; changing a key field mints a new one.
Capacity, IOPS and throughput bands are not part of that key, so a second band for the same disk type replaces the first: give each band its own usage type.
The returned id is what you attach with the `costgraph.ai/pricing-id.storage` label or tag.
Superseded by POST /v1/marketplace/disks, which returns RFC 9457 problem responses on failure.

## Request body

- DiskPricesRequest
  - `entries` DiskPrice[], required
    - `availability_zone` string
    - `cost_per_gb_hour` number
    - `cost_per_iops_hour` number
    - `cost_per_throughput_mbps_hour` number
    - `created_at` string
    - `currency` string: Currency the provider published this price in. Cost columns are always normalized USD.
    - `id` string
    - `max_capacity_gb` number: Provisioning upper bound the disk type supports at this price (validation range), not an actual disk size.
    - `max_iops` number
    - `max_throughput_mbps` number
    - `min_capacity_gb` number: Provisioning lower bound the disk type supports at this price (validation range), not an actual disk size.
    - `min_iops` number
    - `min_throughput_mbps` number
    - `native_cost_per_gb_hour` number
    - `native_cost_per_iops_hour` number
    - `native_cost_per_throughput_mbps_hour` number
    - `period_billing_hours` number
    - `provider` string
    - `raw_pricing_data` object
    - `region` string
    - `service` string
    - `tags` object
    - `type` string
    - `updated_at` string
    - `usage_type` string

## Response `200`

Pricing response for a custom disk provider

- RegisteredDiskPrices
  - `entries` DiskPrice[]
    - `availability_zone` string
    - `cost_per_gb_hour` number
    - `cost_per_iops_hour` number
    - `cost_per_throughput_mbps_hour` number
    - `created_at` string
    - `currency` string: Currency the provider published this price in. Cost columns are always normalized USD.
    - `id` string
    - `max_capacity_gb` number: Provisioning upper bound the disk type supports at this price (validation range), not an actual disk size.
    - `max_iops` number
    - `max_throughput_mbps` number
    - `min_capacity_gb` number: Provisioning lower bound the disk type supports at this price (validation range), not an actual disk size.
    - `min_iops` number
    - `min_throughput_mbps` number
    - `native_cost_per_gb_hour` number
    - `native_cost_per_iops_hour` number
    - `native_cost_per_throughput_mbps_hour` number
    - `period_billing_hours` number
    - `provider` string
    - `raw_pricing_data` object
    - `region` string
    - `service` string
    - `tags` object
    - `type` string
    - `updated_at` string
    - `usage_type` string
  - `status` 'Registered' | 'Deleted'

## Other responses

- `400`: Invalid request body
- `401`: Provider and organization do not match
- `403`: Credential lacks the pricing:write scope or admin role
- `500`: Internal server error

## Changes

- **2026-10-05** `a60168add03d`: 1 info
  - added the non-success response with the status `403`
- **2026-09-03** `2b7d1ae74be1`: 1 info
  - endpoint deprecated
- **2026-08-13** `f07bdc0e3d36`: 8 info
  - added the new optional request property `entries/items/currency`
  - added the new optional request property `entries/items/native_cost_per_gb_hour`
  - added the new optional request property `entries/items/native_cost_per_iops_hour`
  - added the new optional request property `entries/items/native_cost_per_throughput_mbps_hour`
  - …4 more
- **2026-05-24** `2806a49483a0`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/baselinehq/apis/costgraph-pricing-api/changes/marketplace/providers/disks/post.md)

---

[API](https://skmtc.dev/baselinehq/apis/costgraph-pricing-api.md) - [All operations](https://skmtc.dev/baselinehq/apis/costgraph-pricing-api/llms.txt) - [OpenAPI document](https://skmtc.dev/baselinehq/apis/costgraph-pricing-api/revisions/506d14bb78ca?raw)
