--- title: 'SDK (TypeScript)' description: 'Use the bknd SDK in TypeScript' --- To start using the bknd API, start by creating a new API instance: ```ts import { Api } from "bknd"; const api = new Api({ host: "..." // point to your bknd instance }); ``` The `Api` class is the main entry point for interacting with the bknd API. It provides methods for all available modules described below. ## Data (`api.data`) Access the `Data` specific API methods at `api.data`. ### `data.readMany([entity], [query])` To retrieve a list of records from an entity, use the `readMany` method: ```ts const { data } = await api.data.readMany("posts"); ``` You can also add additional query instructions: ```ts const { data } = await api.data.readMany("posts", { limit: 10, offset: 0, select: ["id", "title", "views"], with: ["comments"], where: { title: "Hello, World!", views: { $gt: 100 } }, sort: { by: "views", order: "desc" } }); ``` The `with` property automatically adds the related entries to the response. ### `data.readOne([entity], [id])` To retrieve a single record from an entity, use the `readOne` method: ```ts const { data } = await api.data.readOne("posts", 1); ``` ### `data.createOne([entity], [data])` To create a single record of an entity, use the `createOne` method: ```ts const { data } = await api.data.createOne("posts", { title: "Hello, World!", content: "This is a test post.", views: 0 }); ``` ### `data.updateOne([entity], [id], [data])` To update a single record of an entity, use the `updateOne` method: ```ts const { data } = await api.data.updateOne("posts", 1, { views: 1 }); ``` ### `data.deleteOne([entity], [id])` To delete a single record of an entity, use the `deleteOne` method: ```ts const { data } = await api.data.deleteOne("posts", 1); ``` ## Auth (`api.auth`) Access the `Auth` specific API methods at `api.auth`. If there is successful authentication, the API will automatically save the token and use it for subsequent requests. ### `auth.loginWithPassword([input])` To log in with a password, use the `loginWithPassword` method: ```ts const { data } = await api.auth.loginWithPassword({ email: "...", password: "..." }); ``` ### `auth.registerWithPassword([input])` To register with a password, use the `registerWithPassword` method: ```ts const { data } = await api.auth.registerWithPassword({ email: "...", password: "..." }); ``` ### `auth.me()` To retrieve the current user, use the `me` method: ```ts const { data } = await api.auth.me(); ``` ### `auth.strategies()` To retrieve the available authentication strategies, use the `strategies` method: ```ts const { data } = await api.auth.strategies(); ```