
Security News
npm Adopts OIDC for Trusted Publishing in CI/CD Workflows
npm now supports Trusted Publishing with OIDC, enabling secure package publishing directly from CI/CD workflows without relying on long-lived tokens.
Python library for programmatic Notion workspace management - databases, pages, and content with advanced Markdown support
pip install notionary
.env
file.NOTION_SECRET=YOUR_INTEGRATION_KEY
from notionary import NotionPage
async def main():
# Simpy find an existing page by its title
page = await NotionPage.from_page_name("My Test Page")
# Add rich content with custom Markdown
content = """
# 🚀 Generated with Notionary
!> [💡] This page was created programmatically!
## Features
- **Rich** Markdown support
- Database integration
- AI-ready content generation
+++ Click to see more details
| Notionary makes it easy to create beautiful Notion pages
| directly from Python code with intuitive Markdown syntax.
"""
await page.replace_content(content)
print(f"✅ Page updated: {page.url}")
asyncio.run(main())
import asyncio
from notionary import NotionDatabase
async def main():
# Connect to database by name (fuzzy matching)
db = await NotionDatabase.from_database_name("Projects")
# Create a new page with properties
page = await db.create_blank_page()
await page.set_title("🆕 New Project Entry")
await page.set_property_value_by_name("Status", "In Progress")
await page.set_property_value_by_name("Priority", "High")
# find pages created in the last 7 days
count = 0
async for page in db.iter_pages_with_filter(
db.create_filter().with_created_last_n_days(7)
):
count += 1
print(f"{count:2d}. {page.emoji_icon or '📄'} {page.title}")
asyncio.run(main())
Notionary extends standard Markdown with special syntax to support Notion-specific features:
**bold**
, *italic*
, ~~strikethrough~~
, `code`
[text](url)
> This is a quote
---
!> [💡] This is a default callout with the light bulb emoji
!> [🔔] This is a notification with a bell emoji
!> [⚠️] Warning: This is an important note
+++ How to use Notionary
| 1. Initialize with NotionPage
| 2. Update metadata with set_title(), set_emoji_icon(), etc.
| 3. Add content with replace_content() or append_markdown()
::: columns
::: column
## Left Column
- Item 1
- Item 2
- Item 3
:::
::: column
## Right Column
This text appears in the second column. Multi-column layouts are perfect for:
- Comparing features
- Creating side-by-side content
- Improving readability of wide content
:::
:::
def hello_world():
print("Hello from Notionary!")
- [ ] Define project scope
- [x] Create timeline
- [ ] Assign resources
| Feature | Status | Priority |
| --------------- | ----------- | -------- |
| API Integration | Complete | High |
| Documentation | In Progress | Medium |

@[Caption](https://youtube.com/watch?v=...)
[bookmark](https://example.com "Title" "Description")
Explore the examples/
directory for comprehensive guides:
Each example is self-contained and demonstrates specific features with practical use cases.
Contributions welcome — feel free to submit a pull request!
FAQs
Python library for programmatic Notion workspace management - databases, pages, and content with advanced Markdown support
We found that notionary demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
npm now supports Trusted Publishing with OIDC, enabling secure package publishing directly from CI/CD workflows without relying on long-lived tokens.
Research
/Security News
A RubyGems malware campaign used 60 malicious packages posing as automation tools to steal credentials from social media and marketing tool users.
Security News
The CNA Scorecard ranks CVE issuers by data completeness, revealing major gaps in patch info and software identifiers across thousands of vulnerabilities.