API Documentation
Build with the
Master Brain
Complete API reference for LMNIC autonomous decision engine.
001 — Getting Started
API Overview
The LMNIC API enables integration of the autonomous decision engine directly into your enterprise systems. A single REST endpoint handles multi-source data compression, latent reasoning, and execution intent delivery.
Designed for silent operation—no verbose chain-of-thought, no progress indicators. Submit context and data, receive decisions. Real-time processing with webhook callbacks for asynchronous workflows.
Real-Time Decisions
Sub-second response for time-critical execution. Latent reasoning processes in milliseconds, not minutes.
Batch Processing
Submit multiple decision requests in a single call. Parallel processing with aggregated response.
Webhooks & Events
Async notifications when decisions complete. No polling required. Silent, event-driven architecture.
Multi-Tenant Isolation
Complete data isolation per API key. Enterprise-grade separation with dedicated processing pipelines.
002 — Security First
Authentication
Bearer Token Authentication
All LMNIC API requests require authentication using Bearer tokens. Include your API key in the Authorization header of every request.
API Key (Bearer Token) — Recommended for server-to-server integration
OAuth 2.0 — For user-delegated access flows
Service Account Keys — For headless autonomous agents
Getting Your API Key
-
01
Log into LMNIC dashboard
-
02
Navigate to Settings → API Keys
-
03
Click "Generate New Key"
-
04
Copy key and store securely (shown only once)
# Authentication header example
Authorization: Bearer lmnic_sk_prod_1a2b3c4d5e6f7g8h
# Request example with curl
curl -X POST https://api.lmnic.com/v1/decisions \
-H "Authorization: Bearer lmnic_sk_prod_..." \
-H "Content-Type: application/json" \
-d '{{
"context": "capital structure optimization",
"data": {{...}}
}}'
003 — Core Endpoints
Endpoints Reference
Create Decision Request
https://api.lmnic.com/v1/decisions
Submit a new request for autonomous decision making. Returns decision ID for polling or webhook callback.
Request Parameters
← Swipe to see full table →
| Parameter | Type | Description |
|---|---|---|
| context | string (required) | Business context or use case for decision |
| data | object (required) | Multi-source data object for analysis |
| timeout | integer (optional) | Max processing time in seconds (default: 30) |
| callback_url | string (optional) | Webhook URL for async notification |
Response Example
{{
"id": "req_1a2b3c4d5e",
"status": "processing",
"context": "capital structure optimization",
"decision": {{
"recommendation": "Restructure allocation across 3 tiers",
"confidence": 0.947,
"reasoning_summary": "Multi-source compression analysis..."
}},
"metadata": {{
"processing_time_ms": 2340,
"signal_strength": 0.982,
"created_at": "2024-01-15T10:30:45Z"
}}
}}
Get Decision Status
https://api.lmnic.com/v1/decisions/{id}
Retrieve status and results of a submitted decision request.
Path Parameters
← Swipe to see full table →
| Parameter | Type | Description |
|---|---|---|
| id | string (required) | Decision request ID returned from POST /decisions |
Response Example
{{
"id": "req_1a2b3c4d5e",
"status": "completed",
"decision": {{
"recommendation": "Restructure allocation across 3 tiers",
"confidence": 0.947,
"execution_intent": "autonomous"
}},
"metadata": {{
"processing_time_ms": 2340,
"completed_at": "2024-01-15T10:30:47Z"
}}
}}
List Recent Decisions
https://api.lmnic.com/v1/decisions?limit=20&offset=0
Retrieve a paginated list of recent decision requests for the authenticated API key.
Query Parameters
← Swipe to see full table →
| Parameter | Type | Description |
|---|---|---|
| limit | integer (optional) | Number of results per page (default: 20, max: 100) |
| offset | integer (optional) | Number of results to skip for pagination |
| status | string (optional) | Filter by status: processing, completed, failed |
004 — Implementation Guide
Code Examples
Python SDK
import lmnic
# Initialize client
client = lmnic.Client(api_key="lmnic_sk_prod_...")
# Create decision request
decision = client.decisions.create(
context="capital structure optimization",
data={{
"current_allocation": {{...}},
"market_data": {{...}},
"risk_profile": "moderate"
}}
)
# Poll for result
while decision.status == "processing":
decision.refresh()
time.sleep(0.5)
print(decision.recommendation)
print(f"Confidence: {{decision.confidence}}")
JavaScript / Node.js
const lmnic = require('@lmnic/sdk');
const client = new lmnic.Client({{
apiKey: 'lmnic_sk_prod_...'
}});
async function makeDecision() {{
const decision = await client.decisions.create({{
context: 'capital structure optimization',
data: {{
currentAllocation: {{...}},
marketData: {{...}}
}}
}});
const result = await decision.waitForCompletion();
console.log(result.recommendation);
}}
cURL
curl -X POST https://api.lmnic.com/v1/decisions \
-H "Authorization: Bearer lmnic_sk_prod_..." \
-H "Content-Type: application/json" \
-d '{{
"context": "capital structure optimization",
"data": {{
"current_allocation": {{...}},
"market_data": {{...}}
}},
"callback_url": "https://your-app.com/webhooks/lmnic"
}}'
005 — Error Management
Error Responses
LMNIC API returns standard HTTP status codes and detailed error messages in JSON format. Every error includes a request ID for troubleshooting.
← Swipe to see full table →
| Code | Status | Description |
|---|---|---|
| 401 | Unauthorized | Invalid or missing API key |
| 400 | Bad Request | Malformed request or invalid parameters |
| 429 | Rate Limited | Too many requests, retry after delay |
| 500 | Server Error | Internal server error, contact support |
Error Response Format
{{
"error": {{
"code": "invalid_context",
"message": "Context field is required",
"details": {{
"field": "context",
"reason": "missing_required_field"
}}
}},
"request_id": "req_xyz"
}}
006 — Rate Limits
Rate Limiting
LMNIC enforces rate limits per API key to ensure fair usage and system stability. Limits vary by plan tier and reset on a rolling window.
← Swipe to see full table →
| Plan | Per Minute | Per Day |
|---|---|---|
| Starter | 100 requests | 10,000 requests |
| Professional | 1,000 requests | 1,000,000 requests |
| Enterprise | Custom | Custom |
Rate Limit Headers
Every API response includes headers indicating current rate limit status.
# Response headers
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 947
X-RateLimit-Reset: 1705312200
# Python: Parse rate limit headers
remaining = response.headers["X-RateLimit-Remaining"]
reset_time = response.headers["X-RateLimit-Reset"]
if int(remaining) < 100:
print("Approaching rate limit")
— Reference
The API is not a tool. It is a decision already made—delivered to your system in silence.