A Rust client library for the Notion API. Supports (almost) all endpoints — everything except authentication, for now!
⚡️ The only Rust crate that is actively maintained and always up-to-date with the latest Notion API version.
- ✨ Supports the latest API version 2026-03-11
- ✅ Supports databases, pages, blocks, users, comments, and search endpoints
- 🔒 Thread-safe client
- 🧰 Builder pattern support
- 📝 Rich set of examples
- 🚀 Actively maintained and growing!
- 🔄 Always in sync with the latest Notion API updates
Corresponding Notion API: Query a database
use notion_client::endpoints::{
databases::query::request::{QueryDatabaseRequest, Sort, SortDirection, Timestamp},
Client,
};
const NOTION_DB_ID: &str = ""; // ⚠️ Set your DB id which can be accessible from API
const NOTION_TOKEN: &str = ""; // ⚠️ Set your notion token
#[tokio::main]
async fn main() {
// Initialize client
let client = Client::new(NOTION_TOKEN.to_string(), None);
let Ok(client) = client else {
panic!("error");
};
// Set up request parameters
let request = QueryDatabaseRequest {
sorts: Some(vec![Sort::Timestamp {
timestamp: Timestamp::CreatedTime,
direction: SortDirection::Ascending,
}]),
..Default::default()
};
// Send request
let res = client
.databases
.query_a_database(NOTION_DB_ID, request)
.await;
// See result
print!("{:#?}", res);
}👉 See more examples
- Thread-safe support
- More examples
- Support blocks endpoint
- Support pages endpoint
- Support databases endpoint
- Support users endpoint
- Support comments endpoint
- Support search endpoint
- Support authentication endpoint
- Add tests to blocks endpoint
- Add tests to pages endpoint
- Add tests to databases endpoint
- Add tests to users endpoint
- Add tests to comments endpoint
- Add tests to search endpoint
- Support builder pattern
Feel free to suggest new features or improvements! 🙌
Contributions are welcome and appreciated! ❤️
If you have an idea:
- Please open an issue first to discuss it. This ensures no effort is wasted.
- If there’s already an open issue, feel free to grab it and start contributing!
Here’s our Contributing Guide.
Let’s make this library even better together!
A huge thank you to everyone who has helped build this project! ✨
Made with contrib.rocks.
This project is licensed under the MIT License.
Q: Is authentication supported? A: Not yet — it's on our roadmap!
Q: Is this an official Notion SDK? A: No, this is a community-driven open-source library.
Q: How is this different from other crates? A: This is the only Rust crate actively maintained and updated to match the latest Notion API versions. If you want up-to-date support, you’re in the right place!
If you find this library useful:
- ⭐ Star this repository
- 📢 Share it with fellow Rustaceans
- 🤝 Contribute back!