Query & Filtering
The authoritative reference for dot operators and filtering across the 7G Registry Platform API
Advanced Server-Side Filtering
The 7G Registry Platform implements sophisticated server-side filtering using typed filter parameters with dot operators, enabling precise queries across investor entities, transactions, and compliance data without complex client-side processing.
Type-Safe Filtering
Strongly typed filter parameters ensure query validity and optimal performance.
Server Optimization
Database-level filtering reduces bandwidth and processing overhead.
Complex Queries
Combine multiple typed filters for comprehensive data retrieval.
The 7G Filter Type System
Three Core Filter Types
Every filterable parameter in the 7G API uses one of three strongly typed filter classes that determine available operators and validation rules.
Complete Filter Type Reference
The definitive guide to all filter types and their operators
FilterOfInt32 / FilterOfInt64
NUMERICSupported Operators
.Equal
Exact match (default, can be omitted).NotEqual
Exclude specific value.In
Match any value in comma-separated list.NotIn
Exclude any value in comma-separated list.GreaterThan
Values greater than specified.LessThan
Values less than specified.GreaterThanOrEqual
Values greater than or equal to.LessThanOrEqual
Values less than or equal toCommon Parameters
BizEntityID
- Entity identifiers (FilterOfInt32)BizEntityTypeID
- Entity type classification (FilterOfInt32)AccountID
- Account identifiers (FilterOfInt32)PersonID
- Person identifiers (FilterOfInt32)BizTransactionID
- Transaction identifiers (FilterOfInt64)BizEventID
- Event identifiers (FilterOfInt64)
Examples
BizEntityTypeID=4 # SMSF entities (default .Equal)
BizEntityTypeID.In=1,2,4 # Individual, Company, SMSF
BizEntityTypeID.NotIn=3,5 # Exclude Trust and Partnership
AccountID.GreaterThan=1000 # Accounts after ID 1000
BizTransactionID.NotEqual=0 # Exclude cancelled transactions
StringFilter
TEXTSupported Operators
Includes ALL FilterOfInt32 operators PLUS:
.Contains
Case-insensitive substring match.BeginsWith
Case-insensitive prefix match (optimized).EndsWith
Case-insensitive suffix match.Equal, .NotEqual, .In, .NotIn
Exact string matching.GreaterThan, .LessThan
Alphabetical comparisonCommon Parameters
AccountNumber
- Account number patternsExternalBizEntityId
- External entity referencesExternalAccountId
- External account referencesExternalPersonId
- External person referencesName
- Entity names (where supported)
Examples
AccountNumber.Contains=SMSF # Accounts with SMSF in number
ExternalBizEntityId.BeginsWith=EXT- # External IDs with prefix
ExternalAccountId.EndsWith=-2024 # External IDs ending with year
AccountNumber.In=ACC-001,ACC-002 # Specific account numbers
ExternalBizEntityId.NotIn=OLD-001,OLD-002 # Exclude legacy IDs
FilterOfDateTime / FilterOfDateOnly
DATE/TIMESupported Operators
.Equal
Exact date/time match.NotEqual
Exclude specific date/time.In
Match any date in list.NotIn
Exclude any date in list.GreaterThan
After specified date/time.LessThan
Before specified date/time.GreaterThanOrEqual
On or after date/time.LessThanOrEqual
On or before date/timeCommon Parameters
CreatedDate
- Entity creation timestamp (FilterOfDateTime)UpdatedDate
- Last entity update (FilterOfDateTime)UpdatedDateFull
- Includes related entity changes (FilterOfDateTime)TransactionDate
- Transaction date only (FilterOfDateOnly)
Format Requirements
YYYY-MM-DDTHH:MM:SSZ
FilterOfDateOnly: Date only format
YYYY-MM-DD
Examples
CreatedDate.GreaterThan=2024-01-01T00:00:00Z # After Jan 1, 2024
UpdatedDateFull.GreaterThan=2024-12-01T00:00:00Z # Recent changes
TransactionDate.LessThanOrEqual=2024-12-31 # Year-end cutoff
CreatedDate.In=2024-01-01T00:00:00Z,2024-02-01T00:00:00Z
TransactionDate.NotIn=2024-01-01,2024-12-25 # Exclude holidays
Pro Tip: UpdatedDateFull for Comprehensive Change Tracking
UpdatedDateFull
is a special FilterOfDateTime parameter that tracks changes not just to the primary entity,
but also to all related entities (addresses, communications, payment details). Use this for complete change detection
in compliance reporting and data synchronization scenarios.
Endpoints with Filter Support
Complete list of GET endpoints and their filterable parameters
GET /BizEntity
6 filtersFilterOfInt32 Parameters
- BizEntityTypeID
- AccountID
StringFilter Parameters
- AccountNumber
- ExternalAccountId
FilterOfDateTime Parameters
- CreatedDate
- UpdatedDate
GET /BizEntity/Account/Holdings
5 filtersFilterOfInt32 Parameters
- AccountID
- InvestmentID
StringFilter Parameters
- ExternalAccountId
- AccountNumber
- ExternalInvestmentId
GET /BizTransaction
9 filtersFilterOfInt64 Parameters
- BizTransactionID
FilterOfInt32 Parameters
- InvestmentID
- BizTransactionTypeID
- AccountID
StringFilter Parameters
- AccountNumber
- ExternalInvestmentId
- ExternalBizTransactionId
- ExternalAccountId
FilterOfDateOnly Parameters
- TransactionDate
GET /BizEvent
5 filtersFilterOfInt64 Parameters
- BizEventID
FilterOfInt32 Parameters
- BizEventTypeID
- AccountID
StringFilter Parameters
- AccountNumber
- ExternalAccountId
Other Endpoints
PaginationMany endpoints support pagination parameters (PageNumber, PageSize). Read Pagination & Limits to learn more.
Advanced Query Patterns
Real-world examples for Australian financial services
# Comprehensive SMSF Entity Analysis
# All SMSF entities updated in the last quarter with active accounts
GET /BizEntity?BizEntityTypeID=4&UpdatedDateFull.GreaterThan=2024-10-01T00:00:00Z&BizEntityStatusID=1&PageSize=500&PageNumber=1
# SMSF entities with specific account number patterns
GET /BizEntity?BizEntityTypeID=4&AccountNumber.BeginsWith=7G-SMSF-&PageSize=100&PageNumber=1
# Recently created SMSFs with external references
GET /BizEntity?BizEntityTypeID=4&CreatedDate.GreaterThan=2024-01-01T00:00:00Z&ExternalBizEntityId.BeginsWith=SMSF-&PageSize=250&PageNumber=1
Performance & Best Practices
Optimize queries for production workloads
Performance Guidelines
Critical Performance Note
.Contains
performs full text scans without index support. For prefix matching, use .BeginsWith
for 10-100x faster query performance with full index optimization.
- Use Native IDs: Prefer BizEntityID over ExternalBizEntityId for fastest queries
- Filter Early: Apply most restrictive filters first to reduce dataset size
- BeginsWith > Contains: Prefix matching is more efficient than substring search
- Combine with Pagination: Always use PageSize (max 1,000) to limit results
- Date Boundaries: Use bounded date ranges instead of open-ended queries
- Index-Friendly: Equal, In, and range operators utilize database indexes
Validation Rules
- Type Matching: Operators must match the parameter's filter type
- Date Formats: ISO 8601 for FilterOfDateTime, YYYY-MM-DD for FilterOfDateOnly
- Case Sensitivity: String operators are case-insensitive
- List Format: .In and .NotIn operators use comma-separated values without spaces
- Default Operator: .Equal is assumed if no operator is specified
- Error Handling: Invalid operators return 400 Bad Request with details
Operator Performance Matrix
Operator | Performance | Index Usage | Best For |
---|---|---|---|
.Equal | Fastest | Full index | Direct lookups, primary keys |
.In | Fastest | Full index | Multiple specific values |
.NotIn | Good | Partial index | Exclude multiple specific values |
.BeginsWith | Fast | Prefix index | Code/ID prefixes |
.GreaterThan, .LessThan | Good | Range scan | Date ranges, numeric ranges |
.NotEqual | Moderate | Partial | Exclusions with other filters |
.Contains | Slower | Limited | Text search with other filters |
.EndsWith | Slower | None | Suffix matching (use sparingly) |
Quick Reference
Filter Type Summary
Filter Type | Data Types | Unique Operators |
---|---|---|
FilterOfInt32 | integer (32-bit) | 8 comparison operators |
FilterOfInt64 | integer (64-bit) | 8 comparison operators |
StringFilter | string (max 50) | 8 + 3 text operators |
FilterOfDateTime | ISO 8601 datetime | 8 temporal operators |
FilterOfDateOnly | YYYY-MM-DD date | 8 temporal operators |
Critical Implementation Notes
Query parameters use PascalCase (BizEntityID), JSON uses camelCase (bizEntityID)
Always include PageSize for large datasets (default: 25, max: 1000)
Multiple filters are combined with AND logic, not OR
Invalid filter types or operators return 400 Bad Request