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
| Name | Type | Description |
|---|---|---|
org | string | The 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"
}
}
| Field | Type | Description |
|---|---|---|
id | string | pge_… |
slug | string | The page is served at {slug}.loginwith.page |
name | string | |
type | live | draft | unclaimed | |
customDomain | string | null | A verified hostname of this org |
clientId | string | The client the page signs people in to |
kitId | string | The kit the page wears |
branding | object | That kit’s branding, embedded. See Kits. To change it, edit the kit |
login_methods | object | { password, magic_link, sso } |
allow_registration | boolean | |
whitelabel | boolean | |
locales | string[] | |
legal | object | { 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
| Status | error | When |
|---|---|---|
404 | not_found | The org does not exist, or your token cannot manage it |
Example
curl https://loginwith.loginwith.dev/organizations/acme/pages \
-H "Authorization: Bearer $TOKEN"