---
title: "Keep one of your Free sites online"
method: POST
path: "/site-renewal/sites/{id}"
tags: ["Site renewal"]
---

# Keep one of your Free sites online

`POST /site-renewal/sites/{id}`

## Request

- Base URL: `https://api.nippy.host`
- URL: `https://api.nippy.host/site-renewal/sites/{id}`
- Auth: `bearer` (a scheme the document does not define)

The dashboard’s keep-online button: the same action as the link in the renewal email, for a signed-in owner.

## Path parameters

- `id` string, required

## Response `200`

- APISiteRenewal
  - `siteId` string, uuid, required
  - `subdomain` string, required
  - `publicUrl` string, required
  - `state` 'online' | 'expired' | 'no_renewal_needed' | 'unavailable', required
  - `renewalDueAt` string, date-time, nullable: When the site next needs keeping online. Set only for `online`.
  - `offlineAt` string, date-time, nullable: When the site goes offline without a click: seven days after the renewal email, and never less than 24 hours after the "goes offline tomorrow" reminder. Set only for `online`.
  - `deletesAt` string, date-time, nullable: When an `expired` site and its files are deleted: never less than seven days after the deletion warning or 24 hours after the "will be deleted tomorrow" notice.

## Other responses

- `403`: You do not own this site
- `404`: Site not found
- `409`: The site is offline for a reason this cannot change

---

[API](https://skmtc.dev/nippy/apis/nippy-backend-api.md) · [All operations](https://skmtc.dev/nippy/apis/nippy-backend-api/llms.txt) · [OpenAPI document](https://skmtc.dev/nippy/apis/nippy-backend-api/revisions/7ab23f040a55?raw)
