@texonom/nclient
v1.5.8
Published
Robust TypeScript client for the unofficial Notion API.
Readme
nclient
Robust TypeScript client for the unofficial Notion API, featuring a search API and backlink helpers.
Features
- Works in Node.js, Deno and Cloudflare Workers
- Fetch pages, collections and search results
- Backlink API for discovering references
- Supports signed URLs for hosted assets
Install
pnpm i @texonom/nclientThis package is compatible with server-side V8 contexts such as Node.js, Deno and Cloudflare Workers.
Usage
import { NotionAPI } from '@texonom/nclient'
// you can optionally pass an authToken to access private pages
const api = new NotionAPI({ authToken: process.env.NOTION_TOKEN })
// fetch a page's content, including collection data and signed urls
const page = await api.getPage('067dd719-a912-471e-a9a3-ac10710e7fdf')// fetch user and workspace info
const users = await api.getUsers(['user-id'])
const spaces = await api.getSpaces(['space-id'])Backlinks
const backlinks = await api.getBacklinks({ block: { id: 'page-id', spaceId: 'space-id' } })Fetch collection data
const data = await api.getCollectionData('collection-id', 'collection-view-id')Search
const results = await api.search({
query: 'Texonom',
spaceId: '0bf522c6-2468-4c71-99e3-68f5a25d4225',
filters: {
ancestors: ['04089c8ae3534bf79512fc495944b321'],
isDeletedOnly: false,
excludeTemplates: true,
navigableBlockContentOnly: true,
requireEditPermissions: false
}
})Get blocks
const res = await api.getBlocks(['3f9e0d86-c643-4672-aa0c-78d63fa80598'])Signed file URLs
const signed = await api.getSignedFileUrls(['https://prod-files.example/notion.png'])See the full docs for more examples.
API
The NotionAPI class exposes the following methods:
getPage(id, opts?)fetchCollections(blockIds, recordMap, pageId?, opts?)addSignedUrls({ recordMap, contentBlockIds })getPageRaw(id, opts?)getCollectionData(collectionId, viewId, opts?)getUsers(ids)getSpaces(ids)getBlocks(ids)syncRecords(records)getSignedFileUrls(urls)search(params)getBacklinks(params)
Types such as SignedUrlRequest and FetchOption are also exported.
\n## Difference from the official API\n\nThis client mirrors the format of the unofficial API and exposes additional helpers like search and getBacklinks.
