Overview
The OpsHub NAV API provides programmatic access to all platform functionality. The API is organized into several categories:Agent API
Real-time AI agent communication via WebSocket
Data API
Portfolio, holdings, and transaction management
Validation API
ASIC RG94 validation rules and breach reporting
Workflow API
Temporal Cloud workflow orchestration
Base URL
Authentication
OpsHub uses JWT-based authentication via Supabase Auth.Getting an API Key
1
Sign in to OpsHub
Navigate to opshub.nomark.ai and sign in
2
Navigate to Settings
Go to Settings > API Keys
3
Generate New Key
Click Generate API Key and copy the key
4
Store Securely
Store your API key securely - it will only be shown once
Authentication Methods
- Bearer Token
- Service Role
- Supabase Client
Include your API key in the
Authorization header:Never expose your API key or service role key in client-side code. Use environment variables and backend proxies.
Rate Limiting
API requests are rate-limited to ensure fair usage:| Tier | Requests/Minute | Requests/Hour | Requests/Day |
|---|---|---|---|
| Free | 60 | 1,000 | 10,000 |
| Pro | 300 | 10,000 | 100,000 |
| Enterprise | Unlimited | Unlimited | Unlimited |
Response Format
All API responses use JSON format with consistent structure:Success Response
Error Response
Error Codes
| Code | HTTP Status | Description |
|---|---|---|
INVALID_REQUEST | 400 | Request parameters are invalid |
UNAUTHORIZED | 401 | Authentication credentials are missing or invalid |
FORBIDDEN | 403 | You don’t have permission to access this resource |
NOT_FOUND | 404 | The requested resource doesn’t exist |
CONFLICT | 409 | Request conflicts with existing resource |
VALIDATION_ERROR | 422 | Validation failed for one or more fields |
RATE_LIMIT_EXCEEDED | 429 | Too many requests, please slow down |
INTERNAL_ERROR | 500 | An internal server error occurred |
SERVICE_UNAVAILABLE | 503 | Service is temporarily unavailable |
Pagination
List endpoints support cursor-based pagination:limit- Number of items per page (default: 20, max: 100)cursor- Cursor from previous response for next page
Filtering & Sorting
Use query parameters to filter and sort results:eq- Equal to (default)neq- Not equal togt- Greater thangte- Greater than or equallt- Less thanlte- Less than or equallike- Pattern matchin- Value in list
Webhooks
Subscribe to real-time events via webhooks:1
Create Webhook Endpoint
Go to Settings > Webhooks and create a new endpoint
2
Choose Events
Select which events to receive:
portfolio.createdportfolio.updatedvalidation.breach_detectedworkflow.completednav.calculated
3
Verify Endpoint
OpsHub will send a verification request to your endpoint
4
Handle Events
Process webhook events in your application
Verify webhook signatures using the
X-OpsHub-Signature header to ensure requests are from OpsHub.