Get started

9in documentation

Hosted login, OAuth 2.1 and OpenID Connect for your apps: what 9in is, how it works and where to start.

View .md llms.txt

9in signs your users in. Your app sends people to a sign-in page that 9in hosts on your domain; they sign in with a password, a one-time code, Google, their company's identity provider or a single-use login link; and your app gets standard OpenID Connect tokens back. Your API checks those tokens. That's the whole integration.

Your app ──redirect──▶ https://acme.9in.io/oauth/authorize ──▶ hosted sign-in page
   ▲                                                                  │
   └────────── code ◀───────────── redirect back to your app ◀────────┘
   │
   └──▶ POST /oauth/token  →  ID token (who signed in) + access token (for your API)

Because 9in is a standard OpenID Connect provider (OAuth 2.1), any certified OIDC library works. The 9in SDKs make the common cases shorter.

#Start here

  • Quickstart: sign users in to a web app and call your API, in five minutes.
  • Concepts: tenants, environments, applications, APIs and connections.
  • Build with AI: give your AI assistant everything it needs, in one link.

#Pick your app type

You are buildingReadFlow
A React, Vue, Svelte or plain JS appSingle-page appsAuthorization code + PKCE in the browser
Next.js, Express, Rails, Django, any serverServer-rendered appsAuthorization code with a client secret
PHP or LaravelPHP and LaravelAuthorization code with a client secret
iOS, Android, React Native, Flutter, desktopMobile and desktop appsAuthorization code + PKCE in the system browser
A service, cron job or scriptMachine to machineClient credentials
A TV app or a CLITVs, CLIs and devicesDevice authorization (RFC 8628)
An API that receives tokensProtecting your APIVerify JWTs or introspect

#What else is in the box

  • Sign-in methods: passwords, passwordless codes by email or SMS, authenticator-app two-factor, 14 social providers, enterprise SSO with any OIDC provider, and single-use login links.
  • Your users, your way: users live in 9in, in your own database, or move over from Auth0, Firebase, Cognito, Supabase, Clerk, Keycloak or Okta with their passwords (importing users).
  • Your brand: themes you edit by clicking the preview, every text in every language, custom domains and branded emails.
  • Operations: webhooks, the Management API, live token revocation, an activity log, and a sandbox for every tenant.

#Machine-readable docs

Every page is also plain Markdown (add .md to the URL, or use Copy page as Markdown at the top). /llms.txt indexes all pages for language models, /llms-full.txt has all of them in one file, /openapi.json describes the Management API, and /schemas/ has JSON Schemas for webhooks, the adapter protocol and theme manifests.

Get started

Build your app

Sign-in

Users

Branding

Reference