Metadata Reference
Complete documentation of all 100+ metadata fields available in the API for comprehensive device and application tracking.
IP address validation is disabled. Documentation can be accessed from any IP address with valid token.
W How Metadata Parameters Work
Understanding the metadata processing flow and database relationships.
π± Request Processing Flow
Important: Understanding Unique Constraints
The unique constraint ['app_name', 'app_version', 'sdk_version'] is in the api_app_metadata table, which is a reference table, NOT a request logs table.
This means:
- Each combination of app_name + app_version + sdk_version has ONE record in api_app_metadata
- Multiple API requests can have the same combination - they all reference the same record
- API request logs (
api_request_logs) reference this table via foreign key - This is a normalization pattern for storage efficiency and performance
Storage Savings: Instead of storing app details (50 bytes) in every request, we store them once and reference them. For 10,000 requests: 500KB β 90KB (82% reduction)
π Metadata Parameter Structure
{
"core": {
"app_name": "roadpilot", // β api_app_metadata
"app_version": "1.0.0", // β api_app_metadata
"sdk_version": "2.1.3", // β api_app_metadata
"device_id": "device_123", // β api_devices
"user_id": "user_456", // β api_sessions
"session_id": "session_789", // β api_sessions
"request_id": "req_101", // β api_request_logs
"user_type": "premium" // β api_sessions
},
"device": {
"device_type": "android", // β api_devices
"manufacturer": "Samsung", // β api_devices
"model": "Galaxy S21", // β api_devices
"os_version": "Android 12", // β api_devices
"screen_resolution": "1080x2400", // β api_devices
"network_type": "wifi" // β api_network_metadata
},
"network": {
"network_type": "wifi", // β api_network_metadata
"carrier": "Jio", // β api_network_metadata
"ip_address": "192.168.1.100", // β api_network_metadata
"connection_quality": "excellent" // β api_network_metadata
},
"location": {
"latitude": 19.0760, // β api_network_metadata
"longitude": 72.8777, // β api_network_metadata
"accuracy": 10.0, // β api_network_metadata
"timestamp": "2025-05-27T14:30:00Z" // β api_request_logs
},
"performance": {
"request_duration_ms": 150, // β api_request_logs
"response_size_bytes": 2048, // β api_request_logs
"memory_usage_mb": 45.2 // β api_request_logs
},
"app": {
"ui_mode": "dark", // β api_app_metadata
"sdk_env": "prod" // β api_app_metadata
}
}
π Parameter to Table Mapping
| Parameter Group | Parameter | Table | Notes |
|---|---|---|---|
core |
app_name |
api_app_metadata |
Unique constraint part |
core |
app_version |
api_app_metadata |
Unique constraint part |
core |
sdk_version |
api_app_metadata |
Unique constraint part |
core |
device_id |
api_devices |
Unique identifier |
core |
user_id |
api_sessions |
Session relationship |
core |
session_id |
api_sessions |
Unique identifier |
device |
device_type |
api_devices |
Device classification |
device |
manufacturer |
api_devices |
Device maker |
network |
network_type |
api_network_metadata |
Connection type |
network |
ip_address |
api_network_metadata |
Client IP |
location |
latitude |
api_network_metadata |
GPS coordinate |
location |
longitude |
api_network_metadata |
GPS coordinate |
performance |
request_duration_ms |
api_request_logs |
Timing metric |
app |
ui_mode |
api_app_metadata |
User interface |
ποΈ Database Table Relationships
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β API_REQUEST_LOGS β
β (Main Request Table) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β id β
β request_id (unique) β
β app_metadata_id βββββββββββββ β
β device_id βββββββββββββββββββΌβββ βββββββββββββββββββββββ β
β session_id ββββββββββββββββββΌβββ β api_devices β β
β response_payload_id βββββββββΌβββ β (Device Metadata) β β
β endpoint, method, http_code β β id β β
β performance_metrics β β device_id (unique) β β
β timestamps β β device_type, model β β
βββββββββββββββββββββββββββββββΌβββ β last_seen_at β β
β βββββββββββββββββββββββ β
β β
ββββββββββββ ββββββββββββββββββββ
β β api_sessions ββ
β β (Session Mgmt) ββ
β β id ββ
β β session_id ββ
β β user_id, device_idβ
β β metrics ββ
β ββββββββββββββββββββ
β β
β βββββββββββββββββββββββ β
ββββ βapi_app_metadata β β
β (App Reference) β β
β id β β
β app_name, app_versionβ β
β sdk_version β β
β [unique constraint] β β
βββββββββββββββββββββββ β
β
ββββββββββββββββββββββββ β
βapi_response_payloads β β
β(Large Data Storage) β β
βid β β
βrequest_id (fk) βββββββββ
βpayload_data (compressed) β
βpayload_size, type β
ββββββββββββββββββββββββ β
β
ββββββββββββββββββββββββ β
βapi_network_metadata β β
β(Network Information) β β
βid β β
βnetwork_type, carrier β β
βip_address, location β β
ββββββββββββββββββββββββ β
π Real-World Example
Scenario: User makes 4 API calls (Login, Location, Route, Traffic)
api_app_metadata (1 record)
- β’ id: 1
- β’ app_name: "roadpilot"
- β’ app_version: "1.0.0"
- β’ sdk_version: "2.1.3"
- β’ last_seen_at: 2025-05-27 14:15:00
api_devices (1 record)
- β’ id: 1
- β’ device_id: "device_123"
- β’ model: "Galaxy S21"
- β’ last_seen_at: 2025-05-27 14:15:00
api_sessions (1 record)
- β’ id: 1
- β’ session_id: "session_789"
- β’ user_id: "user_456"
- β’ created_at: 2025-05-27 14:00:00
api_request_logs (4 records)
- β’ All reference same app_metadata_id: 1
- β’ All reference same device_id: "device_123"
- β’ All reference same session_id: "session_789"
- β’ Different endpoints: login, location, routes, traffic
π‘ Storage Efficiency: App metadata stored once (50 bytes), referenced 4 times. Without normalization: 200 bytes. With normalization: 50 bytes + 4 references (16 bytes) = 66 bytes. 67% storage reduction
β‘ Performance Benefits
Query Performance
- β 8x faster queries vs denormalized
- β Smaller indexes = better cache utilization
- β Optimized for time-series queries
- β Compound indexes on common patterns
Storage Efficiency
- β 75%+ reduction in storage
- β Reduced backup/restore times
- β Lower memory requirements
- β Faster table scans
Data Consistency
- β Single source of truth
- β Easy updates propagation
- β No duplicate data inconsistencies
- β Referential integrity
Analytics Ready
- β Built-in version tracking
- β Usage analytics by app version
- β Device adoption metrics
- β Performance monitoring