17 releases
new 1.0.0-alpha.17 | Dec 1, 2024 |
---|---|
1.0.0-alpha.15 | Nov 28, 2024 |
1.0.0-alpha.10 | Oct 28, 2024 |
#82 in HTTP client
580 downloads per month
485KB
10K
SLoC
Notion API Client for Rust
Status: Alpha Release! (Under Construction) 🚧
This project is currently under active development and is not yet ready for production use. Features and API stability may change without notice. Contributions and feedback are welcome!
- ♻ Release Notes
- 💡 User Guide | Documentation (Under Construction)
- 🛠️ API Reference (docs.rs)
Features currently released
As part of the alpha release, the following features are available. Please note that API changes may occur before the official release.
- Blocks
- Append block children
- Retrieve a block
- Retrieve block children
- Update a block
- Delete a block
- Databases
- Create a database
- Query a database
- Retrieve a database
- Update a database
- Pages
- Create a page
- Retrieve a page property item
- Retrieve a page
- Update page properties
- Users
- List all users
- Retrieve a user
- Retrieve your token's bot user
- Search
- Search by title
Basic Usage
Below is a basic example. (More detailed documentation is coming soon, so please stay tuned!)
use notionrs::{
block::{Block, ParagraphBlock},
error::Error,
Client, RichText,
};
#[tokio::main]
async fn main() -> Result<(), Error> {
dotenvy::dotenv().ok();
let client = Client::new();
// Here, we're retrieving the ID from an environment variable,
// but you can change the method of retrieval to suit your needs.
let block_id = std::env::var("NOTION_PAGE_ID").unwrap();
let block = Block::Paragraph {
paragraph: ParagraphBlock::new()
.rich_text(vec![RichText::from("Time to start with Notion in Rust")]),
};
let request = client
.append_block_children()
.block_id(block_id.clone())
.children(vec![block]);
let response = request.send().await?;
println!("{:?}", response);
Ok(())
}
Dependencies
~5–20MB
~308K SLoC