Skip to main content

API Endpoints

The Nimbus API provides backend services for model management and analytics. Note: Inference is performed locally by NimbusSDK.jl, not via API calls.

Start Here

Cloud API Authentication

Set up API keys, license checks, and secure access patterns.

Cloud API Reference

Review API scope, base URL, and service architecture.

Julia SDK Quickstart

Run authenticated setup and load your first pre-trained model.

Base URL

Model Registry

GET /v1/models/list

List available pre-trained models based on your license tier. Authentication: Required (API key) Query Parameters:
The model registry is used by the Julia SDK and currently includes NimbusLDA, NimbusQDA, and NimbusProbit.
NimbusSTS / Bayesian STS is Python SDK only and does not appear in the model registry.
Request:
Response:
Response Fields:
  • name (string): Unique model identifier
  • version (string): Model version
  • type (string): Model type (NimbusLDA, NimbusQDA, or NimbusProbit)
  • paradigm (string): BCI paradigm (motor_imagery, p300, ssvep, etc.)
  • n_features (number): Expected number of input features
  • n_classes (number): Number of output classes
  • size_mb (number): Model file size in megabytes
  • download_url (string): Direct download URL for model file
  • checksum (string): SHA-256 checksum for verification
  • requires_license (string): Minimum license tier required
  • metadata (object): Additional model information
Filtering Examples:

Using in Julia SDK

Use this endpoint through list_available_models() to discover model names that your license can access:

Analytics & Logging

POST /v1/analytics/log

Log inference events and usage metrics (optional, for analytics tracking). Authentication: Required (API key) Request:
Request Fields: Response:
cURL Example:
Analytics logging is optional. The SDK works without sending analytics data. Use this endpoint if you want to track usage patterns and performance metrics.

Health Check

GET /api/health

Check API status and availability. Authentication: Not required Request:
Response:
Response Fields:
  • status (string): API status - "healthy" or "unhealthy"
  • timestamp (string): Current server timestamp (ISO 8601)
  • version (string): API version
  • database (string): Database connection status - "connected" or "disconnected"
Unhealthy Response:

Error Responses

All endpoints return consistent error responses:
Common Error Codes:

Rate Limits

All API endpoints implement rate limiting to ensure fair usage and system stability. Rate Limit Headers: When you make an API request, the response includes rate limit information in the headers:
  • X-RateLimit-Limit: Maximum requests allowed per minute
  • X-RateLimit-Remaining: Requests remaining in current window
  • X-RateLimit-Reset: Unix timestamp when the limit resets
Exceeding Limits: If you exceed the rate limit, you’ll receive a 429 Too Many Requests response with a Retry-After header indicating when you can retry.

Usage Examples

Complete Workflow in Julia

List All Available Models

Check Model Availability

License Requirements

Different models require different license tiers:
Your API key’s license tier determines which models you can access. Attempting to load a model above your tier will return a 403 Forbidden error.

Important Notes

Inference is Local

The Nimbus API does NOT perform inference. Inference happens locally via NimbusSDK.jl using RxInfer.jl. This approach provides: Privacy: Your EEG data never leaves your machine
Speed: No network latency
Reliability: Works offline after initial setup
Scalability: No API server bottlenecks
The API only provides:
  • Authentication and licensing
  • Pre-trained model distribution
  • Optional analytics collection

Model Loading

load_model() loads bundled models or local .jld2 files by name/path:
Use /v1/models/list or list_available_models() to discover the model catalog before loading an available model.

Endpoints FAQ

No. Inference runs locally in NimbusSDK.jl. The API is used for authentication, model registry access, installation flows, and optional analytics logging.
Start with authentication (/v1/auth/validate via SDK setup), then use /v1/models/list to discover available models for your license tier.
load_model(...) reads bundled or local .jld2 model files, so inference setup avoids network latency after SDK installation and authentication.

Next Read

Authentication

API key setup and management

Julia SDK

Complete SDK reference

Training Models

Train custom models

Code Examples

Working examples

Support

For API questions or model requests: