Telegram Bot API types
Code-generated and Auto-published Telegram Bot API types
Versioning
7.7.x types is for 7.7 Telegram Bot API
Usage as an NPM package
ts
import type { APIMethods, APIMethodReturn } from "@gramio/types";
type SendMessageReturn = Awaited<ReturnType<APIMethods["sendMessage"]>>;
type GetMeReturn = APIMethodReturn<"getMe">;
Auto-update package
This library is updated automatically to the latest version of the Telegram Bot API in case of changes thanks to CI CD! If the github action failed, there are no changes in the bot api
Imports
index
- exports everything in the sectionmethods
- exportsAPIMethods
which describes the api functionsobjects
- exports objects with theTelegram
prefix (for example Update)params
- exports params that are used inmethods
Write you own type-safe Telegram Bot API wrapper
ts
import type {
APIMethods,
APIMethodParams,
TelegramAPIResponse,
} from "@gramio/types";
const TBA_BASE_URL = "https://api.telegram.org/bot";
const TOKEN = "";
const api = new Proxy({} as APIMethods, {
get:
<T extends keyof APIMethods>(_target: APIMethods, method: T) =>
async (params: APIMethodParams<T>) => {
const response = await fetch(`${TBA_BASE_URL}${TOKEN}/${method}`, {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(params),
});
const data = (await response.json()) as TelegramAPIResponse;
if (!data.ok) throw new Error(`Some error occurred in ${method}`);
return data.result;
},
});
api.sendMessage({
chat_id: 1,
text: "message",
});
Usage with @gramio/keyboards
typescript
import { Keyboard } from "@gramio/keyboards";
// the code from the example above
api.sendMessage({
chat_id: 1,
text: "message with keyboard",
reply_markup: new Keyboard().text("button text"),
});
With file upload support
See files/usage-without-gramio
Generate types manually
Prerequire - rust
- Clone this repo and open it
bash
git clone https://github.com/gramiojs/types.git
- Clone repo with Telegram Bot API schema generator
bash
git clone https://github.com/ark0f/tg-bot-api.git
- Run the JSON schema generator in the
cloned
folder
bash
cd tg-bot-api && cargo run --package gh-pages-generator --bin gh-pages-generator -- dev && cd ..
- Run types code-generation from the
root
of the project
bash
bun generate
or, if you don't use bun
, use tsx
bash
npx tsx src/index.ts
- Profit! Check out the types of Telegram Bot API in
out
folder!