Reservations

Get Availability

get

Get availability information for reservations.

This endpoint supports three different modes for querying availability:

Mode: latest_end_time (default)

Get the latest possible end time for a reservation given a start time and quantity.

Required parameters:

  • start_time: Desired start time for the reservation

  • quantity: Number of instances needed

  • project: Project FID

  • instance_type: Instance type FID

  • region: Region name

Returns: Latest possible end time and availability status

Example:

GET /reservation/availability?
    start_time=2024-01-01T00:00:00Z&
    quantity=4&
    project=proj_01h8x2k9m3n4p5q6r7s8t9u0v&
    instance_type=it_01h8x2k9m3n4p5q6r7s8t9u0v&
    region=us-central1-a

Mode: slots

Get all available slots in a time range.

Required parameters:

  • earliest_start_time: Start of the time range to search

  • latest_end_time: End of the time range to search

  • project: Project FID

  • instance_type: Instance type FID

  • region: Region name

Returns: List of available time slots with quantities

Example:

GET /reservation/availability?
    mode=slots&
    earliest_start_time=2024-01-01T00:00:00Z&
    latest_end_time=2024-01-02T00:00:00Z&
    project=proj_01h8x2k9m3n4p5q6r7s8t9u0v&
    instance_type=it_01h8x2k9m3n4p5q6r7s8t9u0v&
    region=us-central1-a

Mode: check

Check if a specific time slot is available for reservation.

Required parameters:

  • start_time: Start of the desired time slot

  • end_time: End of the desired time slot

  • quantity: Number of instances needed

  • project: Project FID

  • instance_type: Instance type FID

  • region: Region name

Returns: Boolean indicating if the slot is available

Example:

GET /reservation/availability?
    mode=check&
    start_time=2024-01-01T00:00:00Z&
    end_time=2024-01-01T12:00:00Z&
    quantity=4&
    project=proj_01h8x2k9m3n4p5q6r7s8t9u0v&
    instance_type=it_01h8x2k9m3n4p5q6r7s8t9u0v&
    region=us-central1-a

Common Parameters

All modes require these parameters:

  • project: Project FID

  • instance_type: Instance type FID

  • region: Region name

Authentication

Requires authentication and user must be a member of the specified project.

Authorizations
Query parameters
projectstringRequired
instance_typestringRequired
regionstringRequired
modestring · enumOptionalDefault: latest_end_timePossible values:
earliest_start_timeany ofOptional
anyOptionalExample: 2024-01-01T00:00:00Z
or
nullOptional
latest_end_timeany ofOptional
anyOptionalExample: 2024-01-01T00:00:00Z
or
nullOptional
start_timeany ofOptional
anyOptionalExample: 2024-01-01T00:00:00Z
or
nullOptional
end_timeany ofOptional
anyOptionalExample: 2024-01-01T00:00:00Z
or
nullOptional
quantityany ofOptional
integerOptional
or
nullOptional
Responses
200

Successful Response

application/json
Responseany of
or
or
get
GET /v2/reservation/availability HTTP/1.1
Host: api.mithril.ai
Authorization: Bearer fkey_<key>
Accept: */*
[
  {
    "start_time": "2024-01-01T00:00:00Z",
    "end_time": "2024-01-01T00:00:00Z",
    "quantity": 1
  }
]

Get Reservations

get

Get all reservations for a project

Authorizations
Query parameters
next_cursorany ofOptional
anyOptional
or
nullOptional
sort_bystring · enum | nullableOptionalPossible values:
sort_dirstring · enum | nullableOptionalPossible values:
projectstringRequired
instance_typestring | nullableOptionalExample: it_abc123456
regionstring | nullableOptionalExample: us-central1-a
statusstring · enum | nullableOptionalPossible values:
limitinteger | nullableOptional
Responses
200

Successful Response

application/json
get
GET /v2/reservation HTTP/1.1
Host: api.mithril.ai
Authorization: Bearer fkey_<key>
Accept: */*
{
  "data": [
    {
      "fid": "res_abc123456",
      "name": "text",
      "project": "proj_abc123456",
      "created_by": "user_abc123456",
      "created_at": "2024-01-01T00:00:00Z",
      "deactivated_at": "2024-01-01T00:00:00Z",
      "instance_quantity": 4,
      "instance_type": "it_abc123456",
      "region": "us-central1-a",
      "instances": [
        "inst_abc123456"
      ],
      "launch_specification": {
        "volumes": [
          "vol_1234567890",
          "vol_1234567891"
        ],
        "ssh_keys": [
          "sshkey_1234567890",
          "sshkey_1234567891"
        ],
        "startup_script": "text",
        "kubernetes_cluster": "clust_abc123456",
        "image_version": "text"
      },
      "status": "Pending",
      "start_time": "2024-01-01T00:00:00Z",
      "end_time": "2024-01-01T00:00:00Z",
      "total_price": "$47.76",
      "unit_price": "$1.99"
    }
  ],
  "next_cursor": "text"
}

Create Reservation

post

Create a new reservation

Authorizations
Body
projectstringRequiredExample: proj_abc123456
instance_typestringRequiredExample: it_abc123456
regionstringRequiredExample: us-central1-a
start_timeanyRequiredExample: 2024-01-01T00:00:00Z
end_timeanyRequiredExample: 2024-01-01T00:00:00Z
instance_quantityintegerRequiredExample: 4
namestringRequired
Responses
201

Successful Response

application/json
post
POST /v2/reservation HTTP/1.1
Host: api.mithril.ai
Authorization: Bearer fkey_<key>
Content-Type: application/json
Accept: */*
Content-Length: 400

{
  "project": "proj_abc123456",
  "instance_type": "it_abc123456",
  "region": "us-central1-a",
  "start_time": "2024-01-01T00:00:00Z",
  "end_time": "2024-01-01T00:00:00Z",
  "instance_quantity": 4,
  "name": "text",
  "launch_specification": {
    "volumes": [
      "vol_1234567890",
      "vol_1234567891"
    ],
    "ssh_keys": [
      "sshkey_1234567890",
      "sshkey_1234567891"
    ],
    "startup_script": "text",
    "kubernetes_cluster": "clust_abc123456",
    "image_version": "text"
  }
}
{
  "fid": "res_abc123456",
  "name": "text",
  "project": "proj_abc123456",
  "created_by": "user_abc123456",
  "created_at": "2024-01-01T00:00:00Z",
  "deactivated_at": "2024-01-01T00:00:00Z",
  "instance_quantity": 4,
  "instance_type": "it_abc123456",
  "region": "us-central1-a",
  "instances": [
    "inst_abc123456"
  ],
  "launch_specification": {
    "volumes": [
      "vol_1234567890",
      "vol_1234567891"
    ],
    "ssh_keys": [
      "sshkey_1234567890",
      "sshkey_1234567891"
    ],
    "startup_script": "text",
    "kubernetes_cluster": "clust_abc123456",
    "image_version": "text"
  },
  "status": "Pending",
  "start_time": "2024-01-01T00:00:00Z",
  "end_time": "2024-01-01T00:00:00Z",
  "total_price": "$47.76",
  "unit_price": "$1.99"
}

Get Extension Availability

get

Get extension availability for a reservation

Authorizations
Path parameters
reservation_fidstringRequiredExample: res_abc123456
Responses
200

Successful Response

application/json
get
GET /v2/reservation/{reservation_fid}/extension-availability HTTP/1.1
Host: api.mithril.ai
Authorization: Bearer fkey_<key>
Accept: */*
{
  "latest_extension_time": "2024-01-01T00:00:00Z",
  "available": true
}

Extend Reservation

post

Extend a reservation to the requested time.

Authorizations
Path parameters
reservation_fidstringRequiredExample: res_abc123456
Body
end_timeanyRequiredExample: 2024-01-01T00:00:00Z
Responses
200

Successful Response

application/json
post
POST /v2/reservation/{reservation_fid}/extend HTTP/1.1
Host: api.mithril.ai
Authorization: Bearer fkey_<key>
Content-Type: application/json
Accept: */*
Content-Length: 35

{
  "end_time": "2024-01-01T00:00:00Z"
}
{
  "fid": "res_abc123456",
  "name": "text",
  "project": "proj_abc123456",
  "created_by": "user_abc123456",
  "created_at": "2024-01-01T00:00:00Z",
  "deactivated_at": "2024-01-01T00:00:00Z",
  "instance_quantity": 4,
  "instance_type": "it_abc123456",
  "region": "us-central1-a",
  "instances": [
    "inst_abc123456"
  ],
  "launch_specification": {
    "volumes": [
      "vol_1234567890",
      "vol_1234567891"
    ],
    "ssh_keys": [
      "sshkey_1234567890",
      "sshkey_1234567891"
    ],
    "startup_script": "text",
    "kubernetes_cluster": "clust_abc123456",
    "image_version": "text"
  },
  "status": "Pending",
  "start_time": "2024-01-01T00:00:00Z",
  "end_time": "2024-01-01T00:00:00Z",
  "total_price": "$47.76",
  "unit_price": "$1.99"
}