List pages

Every hosted login page in the organization.

GET /organizations/{org}/pages

Lists the org’s hosted login pages, {slug}.loginwith.page, each with its kit’s branding embedded. Not paginated.

Authorization

Any member of the org. A non-member gets 404, the same as for an org that does not exist.

Path parameters

NameTypeDescription
orgstringThe organization: its id (org_…) or its slug. It has to be an org your token can manage (see Who can call it)

Response

200 OK with an array of pages, each shaped as below.

{
  "id": "pge_65f1c2a9e4b0d3f7a1c8e904",
  "slug": "acme",
  "name": "Acme",
  "type": "draft",
  "customDomain": null,
  "clientId": "cli_65f1c2a9e4b0d3f7a1c8e905",
  "kitId": "kit_65f1c2a9e4b0d3f7a1c8e906",
  "branding": {
    "favicon": "https://ui-avatars.com/api/?name=Acme&size=32",
    "logo": "https://ui-avatars.com/api/?name=Acme&size=128",
    "og_image": "https://placehold.co/1200x630",
    "og_image_width": 1200,
    "og_image_height": 630,
    "primary_color_light": "#4f46e5",
    "primary_color_dark": "#818cf8",
    "tagline": "",
    "description": ""
  },
  "login_methods": { "password": false, "magic_link": false, "sso": [] },
  "allow_registration": false,
  "whitelabel": false,
  "locales": ["en-US"],
  "legal": {
    "privacy_policy": "https://acme.loginwith.page/privacy",
    "terms_of_service": "https://acme.loginwith.page/terms",
    "cookie_policy": "https://acme.loginwith.page/cookies",
    "legal_notice": "https://acme.loginwith.page/legal"
  }
}
FieldTypeDescription
idstringpge_…
slugstringThe page is served at {slug}.loginwith.page
namestring
typelive | draft | unclaimed
customDomainstring | nullA verified hostname of this org
clientIdstringThe client the page signs people in to
kitIdstringThe kit the page wears
brandingobjectThat kit’s branding, embedded. See Kits. To change it, edit the kit
login_methodsobject{ password, magic_link, sso }
allow_registrationboolean
whitelabelboolean
localesstring[]
legalobject{ privacy_policy, terms_of_service, cookie_policy, legal_notice }

Some of these field names are camelCase on the wire (customDomain, clientId, kitId). Send them exactly as written.

Errors

StatuserrorWhen
404not_foundThe org does not exist, or your token cannot manage it

Example

curl https://loginwith.loginwith.dev/organizations/acme/pages \
  -H "Authorization: Bearer $TOKEN"