List my organization suggestions

GET /fapi/v1/me/organization-suggestions · called from the environment's sign-in host

Lists the organizations the authenticated user is invited to join because of the domain of one of their verified email addresses. An organization is suggested when it is active, has verified that domain with domain capture set to suggest, and the user has no membership in it (a removed or left membership also counts, so it is never suggested again). One item is returned per organization, in slug order, at most 20. An organization the user dismissed three times is not listed. If the environment's default member role cannot be granted by domain capture (an admin role, a privileged role, or a role with system permissions beyond reading the organization and its members), the list is empty. Reading changes nothing and does not require a recently verified session. Requires the authenticated user's __Host-idp_session cookie; if the cookie is missing, expired, or revoked, returns 401 unauthenticated. A first-party app on another origin can instead send its front API access token (Authorization: DPoP <token> with a DPoP proof; see Front API access token).

With @keenauth/js: await keenauth.organizations.suggestions().

Request

Headers:

Header Required Description
Idp-Client yes SDK identifier.

No query parameters. No body.

Response

200 OK with {"data": [...]}. The response is not cached (Cache-Control: no-store).

Each item: id (odm_…, the verified domain record; use it to join or dismiss), domain (the email domain that matched), and organization with id (org_…), slug and name (display name with control and bidirectional characters removed; the slug when the organization has no name; render it as plain text).

Errors

Status Code When
401 unauthenticated No valid session cookie or front API access token.
503 temporarily_unavailable The membership directory did not answer; retry later.

Example

curl https://example.keenauth.app/fapi/v1/me/organization-suggestions \
  -H "Idp-Client: my-app/1.0.0 (node/22.0.0)" \
  -b cookies.txt
{
  "data": [
    {
      "id": "odm_01j9a5c4000000000000000001",
      "domain": "acme.example",
      "organization": {
        "id": "org_01j9xxxxxxxxxxxxxxxxxxxxxx",
        "slug": "acme",
        "name": "Acme"
      }
    }
  ]
}

Personal data

This endpoint carries personal data: organization memberships and invitations. Personal data in the KeenAuth APIs describes what is stored, how long it is kept and how it is deleted. Do not send special categories of personal data (health, biometric data, religion, political opinions, sexual orientation) in any field.