Hierarchical Organization
Intuitive data structure that mirrors how you think about organizing information - from projects down to individual records.
OstrichDB is a hierarchical NoSQL database that organizes data in an intuitive tree structure: Projects → Collections → Clusters → Records. Built with security, performance, and developer experience in mind.
Hierarchical Organization
Intuitive data structure that mirrors how you think about organizing information - from projects down to individual records.
Rich Data Types
Support for strings, numbers, booleans, dates, UUIDs, arrays, and encrypted credentials with automatic type validation.
Security First
End-to-end encryption, JWT authentication, multi-tenant isolation, and secure operations built into every layer.
RESTful API
Complete REST API with advanced filtering, search, sorting, and pagination capabilities for all operations.
Get up and running with OstrichDB in minutes:
Installation
Install the Odin compiler, clone the repository, and run the build script to get started. Installation Guide →
Quick Start
Learn the basics with hands-on examples of creating projects, collections, clusters, and records. Quick Start Guide →
API Reference
Complete documentation of all REST API endpoints with examples and response formats. API Documentation →
System Overview
Understand OstrichDB’s modular architecture, core components, and design principles. Architecture Overview →
Data Structure
Learn how data is organized, stored, and accessed in the hierarchical structure. Data Structure →
Security Model
Explore authentication, encryption, access control, and multi-tenant isolation features. Security Features →
# Create a projectcurl -X POST http://localhost:8042/api/v1/projects/my-app
# Create a collectioncurl -X POST http://localhost:8042/api/v1/projects/my-app/collections/users
# Create a clustercurl -X POST http://localhost:8042/api/v1/projects/my-app/collections/users/clusters/active
# Add records with different typescurl -X POST "http://localhost:8042/api/v1/projects/my-app/collections/users/clusters/active/records/username?type=STRING&value=john_doe"curl -X POST "http://localhost:8042/api/v1/projects/my-app/collections/users/clusters/active/records/age?type=INTEGER&value=25"curl -X POST "http://localhost:8042/api/v1/projects/my-app/collections/users/clusters/active/records/active?type=BOOLEAN&value=true"
# Query records with filteringcurl "http://localhost:8042/api/v1/projects/my-app/collections/users/clusters/active/records?type=STRING&sortBy=name"
Ready to dive in? Start with the Introduction to learn more about OstrichDB’s capabilities and use cases.