Docs / Hosts

Stable

Route users to host-owned account pages

Publish a host service record so Atmosphere can send users to the account page where their PDS host manages account controls.

Hosts declare their PDS service endpoint in account.atmosphere.host.service.Atmosphere derives /account from the PDS service endpoint; hosts can declare accountManagementUrl as a custom-route override.The PDS account page owns devices, OAuth grants, passwords, recovery, backups, and migration.Atmosphere does not implement those account-management tools; it links to the host that does.Optional manifests are compatibility metadata, not the primary account surface and not a delegation of account authority.

Boundary

Hosts remain the account authority

Atmosphere standardizes discovery and routing. The PDS account page owns grants, devices, passwords, keys, backups, restore, migration, account deletion, and account security.

01Atmosphere account router

Shows where the account is hosted, explains the host in plain language, and links to the PDS account page.

02Host service record

The host declares its PDS endpoint and an optional custom account-page override.

03PDS account page

The user manages grants, devices, passwords, keys, backups, recovery, deletion, and migration at the host.

04Optional metadata

A manifest can describe support later, but it is not required for routing.

Service record

Publish the host service

Hosts publish account.atmosphere.host.service from the Atmosphere account that represents the host. The serviceEndpoint is the canonical PDS origin, and Atmosphere derives its /account page. Set accountManagementUrl only as an override for a custom account-management route. Never point it at a marketing homepage.

JSON
{
  "host": "host.example",
  "displayName": "Example Host",
  "serviceEndpoint": "https://pds.host.example",
  "accountManagementUrl": "https://pds.host.example/account",
  "signup": {
    "status": "account.atmosphere.host.defs#signupOpen",
    "url": "https://host.example/signup"
  },
  "createdAt": "2026-06-26T00:00:00.000Z"
}
Optional manifest

Hosts may still publish /.well-known/atmosphere-host-dashboard.json to describe detailed compatibility. The name is legacy; Atmosphere treats it as optional metadata and does not duplicate or operate account controls from it.

Profile record

Publish the host profile

The host profile is the friendly public card: name, description, avatar or logo, banner, links, contact, and the services it represents. Keep public copy understandable for people choosing where to host their account.

JSON
{
  "name": "Example Host",
  "description": "A friendly account host for builders and small communities.",
  "avatar": {
    "ref": { "$link": "bafk..." },
    "mimeType": "image/png"
  },
  "links": [
    { "uri": "https://host.example", "label": "Website" },
    { "uri": "https://host.example/support", "label": "Support" }
  ],
  "createdAt": "2026-06-26T00:00:00.000Z"
}

Connect a claimed host listing

After a host is claimed in the Atmosphere host directory, the claiming Atmosphere account can open the host’s manage page, save the PDS service endpoint, and optionally validate compatibility metadata.

Directory policy

Claiming proves the host account can manage the listing. Atmosphere links to /account on the declared PDS endpoint unless the host publishes a custom override; richer compatibility badges still require validated metadata.

GET/hosts/{host}/manage

Owner-only page for saving the PDS service endpoint, account page URL override, signup/support links, and optional compatibility manifest after the host has been claimed through OAuth.

Optional capability metadata

Do not mirror PDS controls

These keys are compatibility metadata for hosts and directories. Atmosphere should not render a parallel device, grant, password, backup, recovery, deletion, or migration control panel from them.

StateMeaning
supportedThe host supports a standardized route or module.
host_ownedThe host owns the workflow, but it is not standardized yet.
plannedExpected later; Atmosphere should not show it as available.
unknownStatus is unknown or intentionally undisclosed.
CapabilityPurpose
accountOverviewProfile, handle, DID, and host summary.
connectedAppsOAuth grants and app permissions managed by the host.
devicesActive sessions, devices, and saved sign-in keys.
passwordPassword changes, reset, and auth methods.
accountDeletionAccount deactivation and deletion.
rotationKeysRecovery and rotation-key status.
repoExportSigned repository export.
blobExportMedia/blob export and coverage checks.
backupStatusBackup health and restore readiness.
restoreHost-owned restore workflows.
migrationMove readiness and destination-host handoff.
supportHelp, terms, privacy, and contact routes.
On this page

Next steps

Keep building