APIEngine - Data Models
APIEngine gives you two powerful data model products — ready-to-use system models and fully customizable schemas — both accessible through the same deterministic APIs.
Data Models that Power Every API
Store, validate, and expose data through stable, deterministic APIs — without designing databases or rewriting backend code.
- ⚙️ Prebuilt / Standard Objects for platform needs
- 🧩 Custom Objects for your business data
- 🔒 Strict validation & predictable responses
- 🚀 Instant CRUD & bulk APIs
🧩 Two Products — One Platform
APIEngine gives you two powerful data model products — Standard and Custom — both unique in their offerings, use cases, and schemas.
| Capability | Standard Models | Custom Models |
|---|---|---|
| Schema Control | ❌ | ✅ |
| CRUD APIs | ✅ | ✅ |
| Bulk Operations | ✅ | ✅ |
| Validation Rules | Built-in | Configurable |
| Schema Evolution | Managed | Versioned |
| Indexed Fields | Optimized | Selectable |
| UI Auto-Generation | ✅ | ✅ |
| Primary Use Case | Platform Data | Business Data |
Standard Objects
Standard Objects are predefined, platform-managed schemas provided by APIEngine to cover the most common application use cases out of the box.
These Standard Objects are:
- Production-ready
- Strictly validated
- Optimized for querying and scale
- Guaranteed to remain backward compatible
You don’t design these schemas — you use them immediately via stable APIs.
Think of Standard Objects as the core building blocks every modern application needs.
What Makes Standard Objects Different?
- 🔒 Schema is controlled by APIEngine
- 📐 Fields are strictly typed and validated
- 🔄 Soft-deletion & lifecycle management built-in
- ⚡ Indexed for fast querying
- 🧠 Uniform behavior across all APIs
Every Standard Object:
- Uses a UUID-based primary identifier
- Supports soft delete
- Tracks creation metadata
- Exposes deterministic CRUD APIs
The 5 Standard Objects in APIEngine
These objects are intentionally chosen to cover users, commerce, operations, and support — without overfitting.
👤 Standard User
Represents end users or application-level users
What is it designed for?
- User directories
- Application accounts
- Ownership & attribution across records
Key Capabilities
- Enforced email uniqueness (active users only)
- Soft delete with recovery support
- Platform-owned vs user-created distinction
Model/Object Schema
| Field | Data Type | Required | Accepted Values / Examples |
|---|---|---|---|
| uuid | UUID | ✅ | Auto-generated UUID v4 (read-only) |
| first_name | String | ✅ |
Max 50 characters Example: John
|
| last_name | String | ✅ |
Max 50 characters Example: Doe
|
| ✅ |
Valid email format Example: user@example.comMust be unique among active users |
||
| is_active | Boolean | ❌ |
true or falseDefault: true
|
| created_at | Datetime | ✅ |
ISO-8601 timestamp Auto-generated (read-only) |
| created_by_username | String | ✅ |
Username of creator Returns platform if system-owned
|
🏢 Company
Represents organizations, businesses, or accounts
What is it designed for?
- B2B customer accounts
- Partner and vendor management
- Account-level data grouping
Key Capabilities
- Industry and geography-based filtering
- Soft deletion for compliance-safe retention
- Optimized for account-level analytics
Model/Object Schema
| Field | Data Type | Required | Accepted Values / Examples |
|---|---|---|---|
| uuid | UUID | ✅ | Auto-generated UUID v4 (read-only) |
| name | String | ✅ |
Max 100 characters Example: Acme Corporation
|
| industry | String | ✅ |
Industry classification Example: Technology
|
| country | String | ✅ |
Country name or ISO country name Example: India
|
| employee_count | Integer | ✅ |
Positive integer Example: 250
|
| created_at | Datetime | ✅ |
ISO-8601 timestamp Auto-generated (read-only) |
| created_by_username | String | ✅ |
Username of creator Returns platform if system-owned
|
📦 Product
Represents catalog items or sellable products
What is it designed for?
- Product catalogs
- Inventory-driven applications
- Pricing and availability APIs
Key Capabilities
- Currency-safe pricing
- Stock and availability tracking
- Filterable by category and rating
Model/Object Schema
| Field | Data Type | Required | Accepted Values / Examples |
|---|---|---|---|
| uuid | UUID | ✅ | Auto-generated UUID v4 (read-only) |
| name | String | ✅ |
Max 100 characters Example: Wireless Mouse
|
| category | String | ✅ |
Product category Example: Electronics
|
| price | Decimal | ✅ |
Monetary value with 2 decimal places Example: 1999.99
|
| currency | Picklist | ✅ |
Allowed values:INR,
USD,
EUR
|
| in_stock | Boolean | ❌ |
true or falseDefault: true
|
| stock_count | Integer | ✅ |
Positive integer Example: 150
|
| product_rating | Float | ✅ |
Rating scale (0.0 – 5.0) Example: 4.5
|
| created_at | Datetime | ✅ |
ISO-8601 timestamp Auto-generated (read-only) |
| created_by_username | String | ✅ |
Username of creator Returns platform if system-owned
|
🧾 Order
Represents transactional and payment-related records
What is it designed for?
- E-commerce transactions
- Payment and billing workflows
- Financial audit trails
Key Capabilities
- Multiple payment method support
- Clear lifecycle status tracking
- Audit-safe soft deletion
Model/Object Schema
| Field | Data Type | Required | Accepted Values / Examples |
|---|---|---|---|
| uuid | UUID | ✅ | Auto-generated UUID v4 (read-only) |
| order_number | String | ✅ |
Unique order identifier Example: ORD-2025-0001
|
| customer_email | ✅ |
Valid email format Example: buyer@example.com
|
|
| order_amount | Decimal | ✅ |
Total order value (2 decimal places) Example: 2499.00
|
| payment_method | Picklist | ✅ |
Allowed values:CARD,
UPI,
NET_BANKING
|
| payment_status | Picklist | ✅ |
Allowed values:SUCCESS,
FAILED,
PENDING
|
| transaction_reference | String | ✅ |
Payment gateway reference ID Example: TXN98347291
|
| is_refundable | Boolean | ❌ |
true or falseDefault: false
|
| order_date | Date | ✅ |
Order date (YYYY-MM-DD) Example: 2025-01-07
|
| discount_applied | Float | ✅ |
Percentage value (0–100) Example: 10.5
|
| status | Picklist | ✅ |
Allowed values:PENDING,
PAID,
CANCELLED
|
| created_at | Datetime | ✅ |
ISO-8601 timestamp Auto-generated (read-only) |
| created_by_username | String | ✅ |
Username of creator Returns platform if system-owned
|
🎫 Support Ticket
Represents customer or internal support requests
What is it designed for?
- Customer support workflows
- Internal issue tracking
- Priority-based escalation
Key Capabilities
- Clear ticket lifecycle states
- Priority-based querying
- Audit-safe soft deletion
Model/Object Schema
| Field | Data Type | Required | Accepted Values / Examples |
|---|---|---|---|
| uuid | UUID | ✅ | Auto-generated UUID v4 (read-only) |
| ticket_number | String | ✅ |
Unique support ticket identifier Example: TICKET-10245
|
| subject | String | ✅ |
Brief issue summary (max 200 characters) Example: Unable to reset password
|
| status | Picklist | ✅ |
Allowed values:OPEN,
IN_PROGRESS,
CLOSED
|
| priority | Picklist | ✅ |
Allowed values:LOW,
MEDIUM,
HIGH
|
| created_at | Datetime | ✅ |
ISO-8601 timestamp Auto-generated (read-only) |
| created_by_username | String | ✅ |
Username of ticket creator Returns platform if system-owned
|