Take a portal offline now
const url = 'http://localhost:3000/api/v1/sites/example/close';const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url http://localhost:3000/api/v1/sites/example/close \ --header 'Authorization: Bearer <token>'It closes as a portal past its expiresAt does. PATCH expiresAt: null opens it again, as it was.
Scope: write.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Portal id
Responses
Section titled “Responses”The portal
object
object
Portal: managed by Artbucket; external: hosted elsewhere, what it uses recorded by artbucket site scan; the others are static files deployed to it
An external site’s own address
object
object
object
Markdown
object
A URL or mailto:
Quick grab: pinned links in the header
object
With page: a brand the portal carries; the first when left out
Markdown readers accept once before their first download
Search engines may index it; public portals only
object
The brand whose releases call it, by slug; null once that brand is gone
The hook’s host; the URL itself is never shown
What it answered: an HTTP status, or why there was none
Where visitors go: its domain once verified, else {slug}.PORTAL_DOMAIN when the server has one (not for a members portal), else /p/{slug}
Access requests waiting
Example
{ "data": { "kind": "portal", "access": "public", "presets": [ "web" ], "theme": { "logo": null, "accent": null, "background": null }, "domain": { "record": { "type": "TXT" }, "cname": { "type": "CNAME" } } }}default
Section titled “default”An error
object
object
Examplegenerated
{ "error": { "code": "example", "message": "example", "detail": "example" }}