Create a private site from an uploaded archive. Private sites are stored only by the wisp hosting service and are never written to the owner's PDS, because atproto repo records and blobs are publicly readable and broadcast over the firehose. Access is granted to the owner's authenticated account and to any share links they create.
Input
multipart/form-dataAccepts raw binary data
Output
application/jsoncreatedAt
stringdatetime
Required
An RFC 3339 formatted timestamp.
expiresAt
stringdatetime
Optional
Absent when the site never expires.
fileCount
integer
Required
No description available.
name
string
Required
Display name. Not an identifier.
siteId
stringrecord-key
Required
Stable identifier for this private site. Record-key syntax so it can become a permissioned-space key in v2.
totalBytes
integer
Required
No description available.
url
string
Required
Owner-facing URL. Requires an authenticated session.
Errors
AuthenticationRequired
InvalidRequest
PayloadTooLarge
Try It
Requests are sent directly from your browser. Some servers may block requests due to CORS.
View raw schema
{
"description": "Create a private site from an uploaded archive. Private sites are stored only by the wisp hosting service and are never written to the owner's PDS, because atproto repo records and blobs are publicly readable and broadcast over the firehose. Access is granted to the owner's authenticated account and to any share links they create.",
"errors": [
{
"name": "AuthenticationRequired"
},
{
"name": "InvalidRequest"
},
{
"name": "PayloadTooLarge"
}
],
"input": {
"encoding": "multipart/form-data"
},
"output": {
"encoding": "application/json",
"schema": {
"properties": {
"createdAt": {
"format": "datetime",
"type": "string"
},
"expiresAt": {
"description": "Absent when the site never expires.",
"format": "datetime",
"type": "string"
},
"fileCount": {
"type": "integer"
},
"name": {
"description": "Display name. Not an identifier.",
"type": "string"
},
"siteId": {
"description": "Stable identifier for this private site. Record-key syntax so it can become a permissioned-space key in v2.",
"format": "record-key",
"type": "string"
},
"totalBytes": {
"type": "integer"
},
"url": {
"description": "Owner-facing URL. Requires an authenticated session.",
"type": "string"
}
},
"required": [
"siteId",
"name",
"fileCount",
"totalBytes",
"createdAt",
"url"
],
"type": "object"
}
},
"type": "procedure"
}