Sites

Fetch a single site owned by the authenticated user

Returns the same row shape as one entry of GET /sites, but addressed directly by id so the dashboard detail page does not have to scan paginated list responses.

get/sites/{id}

Request

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

Path parameters

idstring required

Site UUID

Response

idstring required
subdomainstring required

Subdomain on the platform apex

status'awaiting_verification' | 'live' | 'inactive' | 'suspended' required

Lifecycle status. Sites mid-upload (pending) are excluded.

suspendedReason'billing' | 'abuse' | 'duplicate' | 'expired' nullable

Why a suspended site is offline: billing — the account holds more live sites than its plan allows, and it comes back when there is room (an upgrade, or a deleted site); abuse — taken down by staff; duplicate — held while a duplicate-account case is open; expired — a Free site its owner did not keep online, which comes back with one click until deletesAt. Null for every other status.

renewalDueAtstring date-time nullable

Free-site renewal (ADR 0064): when this live site next needs its owner to keep it online. Null when the site never expires — a paid plan, a site published before the renewal rule, or a site that is not live.

offlineAtstring date-time nullable

When this live Free site goes offline unless its owner keeps it online: seven days after the renewal email, and never less than 24 hours after the "goes offline tomorrow" reminder. Null when the site never expires.

deletesAtstring date-time nullable

When an expired site and its files are deleted: 30 days after it went offline, never less than seven days after the deletion warning or 24 hours after the "will be deleted tomorrow" notice. Null for every other site.

publicUrlstring required

Public URL where the site is reachable

createdAtstring date-time required
updatedAtstring date-time required
fileCountnumber nullable

Number of files in the most recent finalized version

totalBytesnumber nullable

Sum of file sizes in the most recent finalized version

lastPublishedAtstring date-time nullable

Timestamp of the most recent finalized upload (i.e. last successful publish)

versionCountnumber required

Number of times this site has been published (finalized batches)

recentPageviewsnumber required

Sample-corrected pageviews recorded for this site over the trailing 30 days. Zero when the site has no traffic or analytics are disabled.

recentBytesServednumber required

Total bytes served for this site over the trailing 30 days (HTML, assets and downloads). Recorded regardless of the analytics toggle.

recentViewsSeriesnumber[] required

Sample-corrected daily pageviews over the trailing 30 days, oldest first — exactly 30 UTC-day buckets, zero-filled. Powers the sites-list sparkline. All zeros when the site has no traffic or analytics are off.

downloadsPolicy'auto' | 'on' | 'off' required

Owner preference controlling whether the auto-generated directory listing offers ZIP / per-file downloads. auto falls back to a heuristic (sites with a root index.html get downloads off).

passwordProtectedboolean required

Whether the site is currently password-protected. The hash itself is never returned.

searchIndexableboolean required

When false, the worker advertises the site as non-indexable: synthesised /robots.txt, X-Robots-Tag: noindex, nofollow, and a <meta robots> tag injected into HTML responses. Defaults to true.

analyticsEnabledboolean required

When true, the worker injects the analytics script and records pageview/engagement beacons for the site. Defaults to true.

formCaptureEnabledboolean required

Whether Nippy saves replies sent through forms on this site. On by default; the per-form controls live under the site's forms endpoint.

metaTitlestring nullable

Owner-supplied <title> override. Null means no override — the source HTML's title is used.

metaDescriptionstring nullable

Owner-supplied <meta name="description"> override. Null means no override — the source HTML's description is used.

Example response

{
  "subdomain": "my-site",
  "publicUrl": "https://my-site.nippy.site",
  "recentViewsSeries": [
    0,
    0,
    3,
    5,
    2,
    0,
    8
  ]
}

Changes

No recorded changes to this operation across all 1 revision of this API.