# POST /api/v1/hosts/machines/{id}/offer

Publish versioned future offer (host owner)

Operation: `publishOffer`.

Publish versioned future offer (host owner)

Aggregate rate, included limits, available_from/available_until, optional maintenance window, expected_version. Versioned future offer only; never alters a running price.

## Endpoint

`POST https://amplerun-api.spiry.org/api/v1/hosts/machines/{id}/offer`

## Authentication

Use the credential and scope required by this operation. For programmatic renter/host calls: `Authorization: Bearer $AMPLERUN_API_KEY`. A host-agent signature or other specialized proof is required where the description specifies it.

## Parameters

| Name | Location | Presence | Type | Description |
| --- | --- | --- | --- | --- |
| `id` | path | Required | UUID |  |
| `Idempotency-Key` | header | Required | UUID | UUID scoped to authenticated principal, route and canonical request hash. |

## Request body

Required body. 

### `application/json`

| Field | Type | Presence | Description |
| --- | --- | --- | --- |
| `rate_micro_per_hour` | MicroAmount | Required |  |
| `included_quotas` | object | Required |  |
| `available_from` | Rfc3339Utc | Required |  |
| `available_until` | Rfc3339Utc | Required |  |
| `maintenance_windows` | array of object | Optional |  |
| `expected_version` | DecimalString | Required |  |

```json
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "rate_micro_per_hour",
    "included_quotas",
    "available_from",
    "available_until",
    "expected_version"
  ],
  "properties": {
    "rate_micro_per_hour": {
      "$ref": "#/components/schemas/MicroAmount"
    },
    "included_quotas": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "included_disk_gib",
        "included_egress_gib"
      ],
      "properties": {
        "included_disk_gib": {
          "type": "integer",
          "minimum": 0
        },
        "included_egress_gib": {
          "type": "integer",
          "minimum": 0
        }
      }
    },
    "available_from": {
      "$ref": "#/components/schemas/Rfc3339Utc"
    },
    "available_until": {
      "$ref": "#/components/schemas/Rfc3339Utc"
    },
    "maintenance_windows": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "starts_at",
          "ends_at",
          "reason"
        ],
        "properties": {
          "starts_at": {
            "$ref": "#/components/schemas/Rfc3339Utc"
          },
          "ends_at": {
            "$ref": "#/components/schemas/Rfc3339Utc"
          },
          "reason": {
            "type": "string"
          }
        }
      }
    },
    "expected_version": {
      "$ref": "#/components/schemas/DecimalString"
    }
  }
}
```

## Responses

### `202`

Offer version committed with new offer_version.

### `default`

Error envelope. 401 unauthenticated, 403/404 forbidden, 409 conflict, 422 invalid input, 429 rate limited (code UNAVAILABLE, retryable:true, no Retry-After header), 503 unavailable money/provider state with retryable:true.

`application/json`
| Field | Type | Presence | Description |
| --- | --- | --- | --- |
| `error` | object | Required |  |

```json
{
  "$ref": "#/components/schemas/ErrorEnvelope"
}
```

## Static request outline

Replace path/query placeholders and provide the required JSON body, headers and credential from the sections above. This is a request outline, not a command that chooses an amount or starts a rental for you.

```sh
curl --request POST 'https://amplerun-api.spiry.org/api/v1/hosts/machines/{id}/offer' \
  --header "Authorization: Bearer $AMPLERUN_API_KEY"
```

[Schema definitions](https://docs.amplerun.com/reference/schemas.md) · [Download OpenAPI](/openapi.json) · [Authentication](https://docs.amplerun.com/agents/authentication.md) · [Errors and recovery](https://docs.amplerun.com/reference/errors.md)

---
Generated from the AmpleRun API contract.
Canonical: https://docs.amplerun.com/reference/api/publish-offer/
