Sites
Create hosted identities, attach buckets, and control public or private access.
| Method | Operation | Path |
|---|---|---|
GET |
List sites | /v0/sites |
POST |
Create a site | /v0/sites |
GET |
Get a site | /v0/sites/:siteId |
POST |
Update a site | /v0/sites/:siteId |
List sites
List sites in an account, newest updates first.
GET /v0/sites
- API key permission: Read-only or Read/write
Parameters
accountId— required account UUID.bucketId— optional exact bucket UUID.subdomain— optional exact subdomain.status— optionalACTIVEorARCHIVED.limitandoffset— standard pagination fields.
Request
curl \
"https://api.interfold.dev/v0/sites" \
-H "Authorization: Bearer $INTERFOLD_API_KEY"
Response
{
"sites": [{
"id": "<site-id>",
"name": "Docs",
"subdomain": "docs-example",
"access": "PUBLIC",
"status": "ACTIVE",
"bucketId": "<bucket-id>"
}],
"pagination": { "hasMore": false, "nextOffset": null }
}
Related interfaces
- CLI:
interfold sites list - MCP:
list_sites
See Errors for the standard error envelope and Authentication for API key handling.
Create a site
Create a site and attach new or existing storage.
POST /v0/sites
- API key permission: Read/write
Parameters
accountId— required account UUID.name— required string, 1–100 characters after trimming.subdomain— optional lowercase subdomain, 3–63 characters.access— optionalPUBLICorPRIVATE.bucketId— optional existing bucket UUID. Omit it to create storage automatically.
Request
curl -X POST \
"https://api.interfold.dev/v0/sites" \
-H "Authorization: Bearer $INTERFOLD_API_KEY" \
-H "Content-Type: application/json" \
--data '{ "accountId": "<account-id>", "name": "Docs", "subdomain": "docs-example", "access": "PUBLIC"}'
Response
{
"id": "<site-id>",
"name": "Docs",
"subdomain": "docs-example",
"access": "PUBLIC",
"status": "ACTIVE",
"bucketId": "<bucket-id>"
}
Behavior and errors
- A requested subdomain can return
409 Conflictwhen it is reserved or already taken. - Site limits return
422 Unprocessable Entity.
Related interfaces
- CLI:
interfold sites create --name "Docs" --access PUBLIC - MCP:
create_site
See Errors for the standard error envelope and Authentication for API key handling.
Get a site
Read site metadata, its attached bucket, and runtime reconciliation status.
GET /v0/sites/:siteId
- API key permission: Read-only or Read/write
Parameters
siteId— site UUID.
Request
curl \
"https://api.interfold.dev/v0/sites/<site-id>" \
-H "Authorization: Bearer $INTERFOLD_API_KEY"
Response
{
"id": "<site-id>",
"name": "Docs",
"subdomain": "docs-example",
"access": "PUBLIC",
"status": "ACTIVE",
"bucketId": "<bucket-id>"
}
Related interfaces
- CLI:
interfold sites get <site-id> - MCP:
get_site
See Errors for the standard error envelope and Authentication for API key handling.
Update a site
Change site metadata or retry runtime reconciliation.
POST /v0/sites/:siteId
- API key permission: Read/write
Parameters
siteId— site UUID.name— optional string, 1–100 characters.access— optionalPUBLICorPRIVATE.status— optionalACTIVEorARCHIVED.reconcile— optional literaltrueto retry runtime reconciliation.
Request
curl -X POST \
"https://api.interfold.dev/v0/sites/<site-id>" \
-H "Authorization: Bearer $INTERFOLD_API_KEY" \
-H "Content-Type: application/json" \
--data '{ "access": "PRIVATE"}'
Response
{
"id": "<site-id>",
"name": "Docs",
"subdomain": "docs-example",
"access": "PUBLIC",
"status": "ACTIVE",
"bucketId": "<bucket-id>"
}
Behavior and errors
- At least one update field is required.
- An archived site must be activated before its runtime sources can be reconciled.
Related interfaces
- CLI:
interfold sites update <site-id> --access PRIVATE - MCP:
update_site
See Errors for the standard error envelope and Authentication for API key handling.
Shared behavior
All operations use the API authentication, error, and rate-limit contracts. List operations use standard pagination unless the operation says otherwise.