Creator websites

Retrieve a website page

One page of a creator website, with its document. Needs content: read.

This is how an agent that has lost its local copy reads a page back. html is exactly what was written, byte for byte: Commune stores it unchanged and injects search metadata when it serves the page rather than when it keeps it.

get/website-pages/{page}

Request

  • Base URL: https://api.usecommune.com
  • URL: https://api.usecommune.com/website-pages/{page}
  • Auth: one of:
    • HTTP bearer
    • OAuth 2 (authorization code, authorization URL https://usecommune.com/api/oauth/authorize, token URL https://usecommune.com/api/oauth/token, scopes: content:read)

Query parameters

expandstring

Comma-separated list of relationship paths to inline in the response. Unexpanded relationships are returned as a reference object carrying only id and object. Each operation documents the paths it accepts, and an unknown path answers 400. Nested paths use a dot, for example article.newsletter.

fieldsstring

Comma-separated allow-list of top level properties to return on each object, so a client can trim a response it does not need in full. id and object are always returned. An unknown property name answers 400. Properties omitted by an operation, such as content on any article list, cannot be brought back with fields.

Response

The page.

object'site_page' required

Always site_page.

idstring uuid required

Stable identifier.

kind'page' | 'newsletter' | 'article' required

What a website page is for, which also decides what its path means.

page is a fixed path and anything the creator wants. newsletter is the article list, at most one per newsletter, and its path is where Commune points the newsletter's name and avatar. article is a URL pattern containing :article that renders every article, so its path is a pattern rather than an address.

pathstring required

Where the page answers: an absolute path for a page or a newsletter page, and a URL pattern for an article one.

status'draft' | 'published' required

Whether a page has a public address. A draft is reachable only through its signed preview_url; an edit to a published page is live on commit, because a creator website has no deploy step.

blockedboolean required

Whether Commune has taken this page down. A blocked page answers a refusal to visitors, stays out of the sitemap, keeps its address reserved so nothing else can claim it, and cannot be changed or deleted through this API.

metaobject required

Metadata Commune injects into the page's <head> when it serves it: a title, a description, a social image.

byte_sizeinteger required

How large the document is, in bytes rather than characters, against a limit of 2097152.

urlstring uri nullable required

Where the page is served, or null. Null for a draft, for a page Commune has taken down, for an article page, which is a pattern rather than one address, and for a newsletter whose website hostname is not live yet.

preview_urlstring uri nullable required

A signed link that opens this one draft, or null. It names this page and this newsletter, expires after a week, and opens nothing else. Null for a published page and when Commune holds no signing key on this deployment.

published_atstring date-time nullable

When the page first went live. It records the first publication rather than the current state, so unpublishing deliberately leaves it.

created_atstring date-time required

When the page was written.

updated_atstring date-time required

When it last changed.

htmlstring required

The whole document, with its CSS and JavaScript inline or linked. At most 2097152 bytes.

Example response

{
  "newsletter": {
    "object": "newsletter",
    "id": "9a4c1c6e-0f2b-4f47-9d3f-6d1b1a2c3d4e"
  },
  "path": "/about"
}

Changes

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