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

# Availability Reminders

> Get notified by email or webhook when a GPU profile becomes available

When the hardware you want is out of stock, you can ask Lyceum Cloud to notify you the moment it comes back. Set a reminder for a hardware profile and we email you (and optionally POST to a webhook) as soon as that capacity is live.

This is the right tool when the GPU you want shows no availability and you would rather be told than keep refreshing the launch page.

## Setting a reminder from the dashboard

On the [Launch Instance](https://dashboard.lyceum.technology/vms/launch) page, any profile that is currently out of stock shows a **Notify when available** button. Open it, optionally paste a webhook URL, and confirm. We record the reminder against your account and email you when the profile is available.

## Setting a reminder via the API

```bash theme={null}
curl -X POST https://api.lyceum.technology/api/v2/external/infra/hardware-reminders \
  -H "Authorization: Bearer $LYCEUM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "hardware_profile": "h100",
    "gpu_count": 8,
    "webhook_url": "https://hooks.slack.com/services/T000/B000/XXXX"
  }'
```

Fields:

* `hardware_profile` (required): the GPU profile to watch, for example `h100` or `b200`. A `gpu.` prefix is stripped and the value is lowercased.
* `gpu_count` (optional): only notify when this exact count is available. `8` means "notify me when 8x is free", not "1x or more". Omit it to match any available count.
* `webhook_url` (optional): an HTTPS URL notified alongside the email. See below.
* `hardware_label`, `company`, `use_case` (optional): free text stored with the reminder.

The reminder is tied to your account. Setting a reminder for a profile you already have a pending reminder on updates it rather than creating a duplicate.

## Webhooks

If you pass `webhook_url`, Lyceum POSTs to it when the profile becomes available, at the same time as the email. The payload depends on the host.

A Slack incoming webhook (`hooks.slack.com`) receives Slack's own message shape, so it renders directly in the channel:

```json theme={null}
{ "text": "H100 is now available on Lyceum, launch an instance: https://dashboard.lyceum.technology/vms/launch" }
```

Any other HTTPS host receives a generic JSON event you can route yourself:

```json theme={null}
{
  "event": "hardware.available",
  "hardware_profile": "h100",
  "hardware_label": "H100",
  "gpu_counts": [1, 8],
  "launch_url": "https://dashboard.lyceum.technology/vms/launch"
}
```

### Requirements

The webhook URL must be an `https://` URL with a public hostname. URLs that point at `localhost`, a raw IP address, or a hostname that resolves to a private, loopback, or link-local address are rejected with a `422`. This keeps the notifier from being pointed at internal services.

### Getting a Slack webhook URL

In Slack, create an app (or use an existing one), enable **Incoming Webhooks**, add a webhook to the channel you want, and copy the `https://hooks.slack.com/services/...` URL. Paste that as `webhook_url`.

## One notification per reminder

A reminder fires once. When the profile becomes available and we notify you, the reminder is marked done and will not fire again. Set a new reminder if you want to be told the next time capacity comes online.

Delivery is best effort. If your webhook endpoint is down when the profile becomes available, the email still goes out, but the webhook is not retried.
