> For the complete documentation index, see [llms.txt](https://docs.january.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.january.ai/client-sdks/web-sdk/overview.md).

# Overview

<mark style="background-color:orange;">**Beta**</mark> TypeScript SDK for browser apps: food search, restaurants, food analysis, food, water, and weight logs, glucose prediction, and in-browser voice capture. Code that holds your `sk-…` API key runs on your server, for example with the Node.js SDK, `@januaryai/server`.

## Start here

1. Check where your January calls can run. A browser can call January only from origins January has enabled: [Runtime and security boundaries](/client-sdks/web-sdk/concepts/runtime-boundaries.md).
2. [Install the SDK](/client-sdks/web-sdk/getting-started/installation.md).
3. Add a [backend token endpoint](/client-sdks/web-sdk/getting-started/backend-token-endpoint.md), or run the token relay until you have one.
4. [Connect the client](/client-sdks/web-sdk/getting-started/authentication.md) and make the [first request](/client-sdks/web-sdk/getting-started/quick-start.md).
5. Load foods and servings: [Food discovery and servings](/client-sdks/web-sdk/concepts/food-lifecycle.md).

## How authentication works

Your browser code gets a short-lived client token (`ct-…`) from an endpoint on your backend, and the SDK sends it to January. The SDK caches the token in memory and asks for a new one before it expires. The SDK always calls January's production API; you supply only the function that fetches the token. See [How authentication works](/docs/authentication.md#client-tokens).

Supported runtimes and browsers are listed in [Compatibility](/client-sdks/web-sdk/reference/compatibility.md).
