# RushDB Docs ## Docs - [Labels](https://docs.rushdb.com/concepts/labels): Labels in RushDB are an essential part of the database schema, providing a way to categorize and organize records. - [Properties](https://docs.rushdb.com/concepts/properties): The fundamental unit of meaningful data in RushDB is known as a Property. Properties are first-class citizens in the RushDB architecture and serve as critical links that interconnect diverse data within Records across the graph database. - [Records](https://docs.rushdb.com/concepts/records): In RushDB, Records are fundamental data structures that store meaningful key-value data. Each Record consists of individual properties (key-value pairs) and can be connected to other Records through relationships. - [Relationships](https://docs.rushdb.com/concepts/relationships): In RushDB, relationships are the connections that link Records together, creating a powerful graph structure that represents both the data itself and how different pieces of data relate to one another. These connections enable intuitive data modeling that aligns with how we naturally think about information and its associations. - [Aggregations](https://docs.rushdb.com/concepts/search/aggregations): SearchQuery provides powerful aggregation capabilities that allow you to perform calculations and collect data from your records and their relationships. - [Introduction](https://docs.rushdb.com/concepts/search/introduction): RushDB provides a powerful and flexible search system that allows you to efficiently query and traverse your graph data. The Search API is a cornerstone of RushDB, enabling you to find records, filter by conditions, navigate relationships, aggregate results, and format the returned data exactly as needed. - [Labels](https://docs.rushdb.com/concepts/search/labels): The labels property in SearchQuery allows you to filter records by their label types. Labels in RushDB are categories or classifications assigned to records that help organize and identify different types of data. - [Pagination and Order](https://docs.rushdb.com/concepts/search/pagination-order): SearchQuery provides flexible pagination and ordering capabilities to control the volume of returned data and the sequence in which records are presented. - [Where](https://docs.rushdb.com/concepts/search/where): The where clause in SearchQuery is a powerful mechanism to filter records based on property values and relationships. It's one of the key elements that make RushDB queries flexible and expressive. - [Storage](https://docs.rushdb.com/concepts/storage): RushDB leverages Neo4j (version 5.25.1 or higher) as its underlying storage engine, enhanced with the APOC (Awesome Procedures On Cypher) and GDS (Graph Data Science) plugins to perform efficient vector similarity searches and advanced graph operations. - [Transactions](https://docs.rushdb.com/concepts/transactions): In RushDB, Transactions provide a mechanism to group multiple database operations into a single atomic unit of work. They ensure data consistency by guaranteeing that either all operations within the transaction succeed, or none of them do. - [Get API Key](https://docs.rushdb.com/get-started/get-api-key): Learn how to get your RushDB API token - [Quick Tutorial](https://docs.rushdb.com/get-started/quick-tutorial): Get started with RushDB in minutes - [Introduction](https://docs.rushdb.com/index): RushDB Logo - [Introduction](https://docs.rushdb.com/python-sdk/introduction): The RushDB Python SDK provides a powerful, intuitive interface for interacting with RushDB from Python applications. Whether you're building data science pipelines, web applications, or AI-driven services, this SDK offers a clean, Pythonic way to work with your graph data. - [Labels](https://docs.rushdb.com/python-sdk/labels): In RushDB, labels are used to categorize records and define their types. The Python SDK provides methods for managing labels, finding records by labels, and working with label hierarchies. - [Properties](https://docs.rushdb.com/python-sdk/properties): The PropertiesAPI class provides methods for managing and querying properties in RushDB. - [Record](https://docs.rushdb.com/python-sdk/python-reference/record): The Record class represents a record in RushDB and provides methods for manipulating individual records, including updates, relationships, and deletions. - [SearchResult](https://docs.rushdb.com/python-sdk/python-reference/search-result): The SearchResult class is a container for search results that follows Python SDK best practices. It provides both list-like access and iteration support, along with metadata about the search operation including total count and pagination information. - [Transaction](https://docs.rushdb.com/python-sdk/python-reference/transaction): The Transaction class represents a record in RushDB and provides methods for manipulating individual records, including updates, relationships, and deletions. - [Raw Queries](https://docs.rushdb.com/python-sdk/raw-queries): Important (cloud-only): This endpoint is available only on the RushDB managed cloud service or when your project is connected to a custom database through RushDB Cloud. It is not available for self-hosted or local-only deployments — attempting to use it against a non-cloud instance will fail. - [Create Records](https://docs.rushdb.com/python-sdk/records/create-records): RushDB Python SDK provides flexible methods for creating records. You can create single records or multiple records at once, with automatic data type inference and relationship handling. - [Delete Records](https://docs.rushdb.com/python-sdk/records/delete-records): RushDB Python SDK provides methods for deleting records from your database. You can delete individual records by ID or delete multiple records matching specific criteria. - [Get Records](https://docs.rushdb.com/python-sdk/records/get-records): The Search API is one of the most powerful features of RushDB, allowing you to find records, navigate relationships, and transform results to exactly match your application's needs. This guide demonstrates how to effectively use the Python SDK to search and query data in your RushDB database. - [Import Data](https://docs.rushdb.com/python-sdk/records/import-data): The RushDB Python SDK provides powerful methods for importing data into your database. You can import data from various formats including JSON and CSV, with options to customize how the data is processed and stored. - [Update Records](https://docs.rushdb.com/python-sdk/records/update-records): RushDB Python SDK provides two main methods for updating records: update() for partial updates and set() for complete replacement of record data. - [Relationships](https://docs.rushdb.com/python-sdk/relationships): Relationships in RushDB connect records to form a rich, interconnected network of data. The Python SDK provides powerful methods for creating, managing, and traversing relationships between records. - [Transactions](https://docs.rushdb.com/python-sdk/transactions): Transactions in RushDB ensure data consistency by grouping multiple operations into a single atomic unit. The Python SDK provides a simple and powerful way to work with transactions, allowing you to perform multiple related operations with guaranteed consistency. - [Introduction](https://docs.rushdb.com/rest-api/introduction): Welcome to the RushDB REST API documentation! The RushDB REST API provides a modern, flexible interface for managing your data, relationships, and metadata in RushDB. Whether you are building applications, automating workflows, or integrating with other systems, the API gives you full control over your graph data with simple HTTP requests. - [Labels API](https://docs.rushdb.com/rest-api/labels): RushDB provides a Labels API that allows you to retrieve information about the labels used in your records. Labels are a powerful way to categorize and organize records in your database. - [Properties API](https://docs.rushdb.com/rest-api/properties): RushDB provides a powerful Properties API that enables you to manage the properties associated with your records. This API allows you to find, retrieve, create, update, and delete properties, as well as manage property values. - [Raw Queries](https://docs.rushdb.com/rest-api/raw-queries): Important (cloud-only): This endpoint is available only on the RushDB managed cloud service or when your project is connected to a custom database through RushDB Cloud. It is not available for self-hosted or local-only deployments — attempting to use it against a non-cloud instance will fail. - [Create Records](https://docs.rushdb.com/rest-api/records/create-records): RushDB provides multiple ways to create records via its REST API. You can create single records, control how your data is processed, and work with transactions for data consistency. - [Delete Records](https://docs.rushdb.com/rest-api/records/delete-records): RushDB provides efficient APIs for deleting records from your database. This capability allows you to remove individual records by ID or delete multiple records at once using search query filters. - [Export Data](https://docs.rushdb.com/rest-api/records/export-data): RushDB provides efficient APIs for exporting your database records in different formats. This capability allows you to retrieve and analyze your data externally or integrate it with other systems. - [Get Records](https://docs.rushdb.com/rest-api/records/get-records): RushDB provides flexible APIs for retrieving records from your database. This capability allows you to access individual records by ID or retrieve multiple records using powerful search queries. - [Import Data](https://docs.rushdb.com/rest-api/records/import-data): RushDB provides powerful and flexible APIs for importing data into your database. You can import data in various formats including JSON and CSV, with options to customize how the data is processed and stored. - [Update Records](https://docs.rushdb.com/rest-api/records/update-records): RushDB offers powerful methods to update existing records in your database. You can update record properties and labels through the REST API. - [Relationships API](https://docs.rushdb.com/rest-api/relationships): RushDB provides a powerful Relationships API that enables you to manage connections between records. This API allows you to create, retrieve, update, and delete relationships between any records in your database. - [Transactions API](https://docs.rushdb.com/rest-api/transactions): RushDB provides a powerful Transactions API that allows you to perform multiple database operations atomically. This ensures data consistency by either committing all operations or rolling back all changes if an error occurs. - [Get API Key](https://docs.rushdb.com/tutorials/configuring-dashboard): In this section, we'll walk through the process of registering for RushDB and generating an API token necessary for using the RushDB SDK. This token is essential for authenticating your application's requests to the RushDB backend. - [Deployment](https://docs.rushdb.com/tutorials/deployment): Learn how to deploy RushDB - [Importing data from external sources](https://docs.rushdb.com/tutorials/importing-data): Learn how to import your data to RushDB - [Local Setup](https://docs.rushdb.com/tutorials/local-setup): This guide will help you set up a local development environment for RushDB using Docker, without needing to clone the repository. This is ideal for developers who want to work with RushDB in a containerized environment. - [Reusable SearchQuery](https://docs.rushdb.com/tutorials/reusable-search-query): Harness the power of RushDB's fractal API architecture through its reusable SearchQuery pattern - [Introduction](https://docs.rushdb.com/typescript-sdk/introduction): Welcome to the comprehensive guide on working with the RushDB SDK. This SDK provides a modern, flexible interface for managing your data, relationships, and metadata in RushDB through JavaScript and TypeScript applications. - [Labels](https://docs.rushdb.com/typescript-sdk/labels): The RushDB TypeScript SDK provides a simple interface for working with labels in your database. Labels in RushDB help categorize and organize records, functioning similarly to table names in relational databases but with the flexibility of graph databases. - [Models](https://docs.rushdb.com/typescript-sdk/models): In this section, we focus on how to define models using the RushDB SDK. Defining models accurately is crucial as it not only aids in validating the fields according to the schema but also enhances the developer experience with features like autocomplete and field name suggestions. - [Properties](https://docs.rushdb.com/typescript-sdk/properties): Properties are the individual key-value pairs that make up the data within a record in RushDB. This guide covers how to work with properties using the TypeScript SDK, including finding, retrieving, and managing property values. - [Raw Queries](https://docs.rushdb.com/typescript-sdk/raw-queries): Important (cloud-only): This endpoint is available only on the RushDB managed cloud service or when your project is connected to a custom database through RushDB Cloud. It is not available for self-hosted or local-only deployments — attempting to use it against a non-cloud instance will fail. - [Create Records](https://docs.rushdb.com/typescript-sdk/records/create-records): Creating records is a fundamental operation when working with any data-driven application. RushDB provides multiple ways to create records, from direct API calls to Model-based abstractions. - [Delete Records](https://docs.rushdb.com/typescript-sdk/records/delete-records): RushDB provides flexible APIs for deleting records from your database. This capability lets you remove individual records by ID or delete multiple records at once using search query filters. - [Get Records](https://docs.rushdb.com/typescript-sdk/records/get-records): RushDB provides flexible TypeScript SDK methods for retrieving records from your database. The Search API is one of the most powerful features of RushDB, allowing you to find records, navigate relationships, and transform results to exactly match your application's needs. - [Import Data](https://docs.rushdb.com/typescript-sdk/records/import-data): When working with RushDB SDK, creating models like Author, Post, and Blog repositories allows us to define clear TypeScript contracts, ensuring type safety and better development experience. However, in many scenarios, you might need to quickly import data from external sources, such as JSON files, without going through the process of registering models. - [Update Records](https://docs.rushdb.com/typescript-sdk/records/update-records): Updating records is a crucial operation for maintaining and modifying data within your application. RushDB provides multiple ways to update records, from direct API calls to Model-based abstractions. - [Relationships](https://docs.rushdb.com/typescript-sdk/relationships): Relationships in RushDB connect records to form a rich, interconnected network of data. The TypeScript SDK provides powerful methods for creating, managing, and traversing relationships between records. - [Transactions](https://docs.rushdb.com/typescript-sdk/transactions): The RushDB TypeScript SDK provides a simple but powerful interface for working with database transactions. Transactions allow you to perform multiple database operations atomically, ensuring that either all operations succeed or none do, which helps maintain data consistency. - [DBRecord](https://docs.rushdb.com/typescript-sdk/typescript-reference/DBRecord): DBRecord is a type representing a database record in RushDB. It combines internal system properties with schema-defined data properties. - [DBRecordInstance](https://docs.rushdb.com/typescript-sdk/typescript-reference/DBRecordInstance): DBRecordInstance is a class that wraps a DBRecord and provides methods for manipulating it. This class serves as an interface for working with individual records in the database. It allows for updating properties and managing relationships. - [DBRecordsArrayInstance](https://docs.rushdb.com/typescript-sdk/typescript-reference/DBRecordsArrayInstance): DBRecordsArrayInstance is a class that manages an array of DBRecordInstance objects. It typically represents the result of a search query that returns multiple records. - [DBRecordTarget](https://docs.rushdb.com/typescript-sdk/typescript-reference/DBRecordTarget): DBRecordTarget is a type that represents a target record for operations like set, update, attach, detach, and delete. It is commonly used when working with relationships and property updates. - [Model](https://docs.rushdb.com/typescript-sdk/typescript-reference/Model): The Model class represents a schema-defined entity in RushDB. It provides methods to perform CRUD operations and manage relationships between records. Models are identified by labels in the database. - [RelationTarget](https://docs.rushdb.com/typescript-sdk/typescript-reference/RelationTarget): RelationTarget is a type that represents the target(s) for relationship operations like attach and detach. - [RushDB](https://docs.rushdb.com/typescript-sdk/typescript-reference/RushDB): The RushDB class is the main entry point for interacting with the RushDB database. It manages API connections and model registration. It provides access to records, labels, and transactions. - [SearchQuery](https://docs.rushdb.com/typescript-sdk/typescript-reference/SearchQuery): SearchQuery is a type that defines the structure for querying records in RushDB. It provides a flexible way to filter, sort, paginate, and aggregate data. For more information on search concepts, see the search documentation. - [Transaction](https://docs.rushdb.com/typescript-sdk/typescript-reference/Transaction): The Transaction class represents an active database transaction in RushDB. It provides methods for committing or rolling back the transaction and includes the unique transaction identifier.