ExoBengal API Access

Access ExoBengal's machine learning models deployed on Cerebrium Cloud Platform. Use Random Forest, CNN, KNN, and Decision Tree models to predict exoplanet characteristics and calculate Earth Similarity Index with auto-scaling and high availability.

Quick Start

1. Simple Authentication

Include Content-Type and Accept headers in your requests for proper API communication

2. Make Requests

Use RESTful endpoints to predict exoplanet characteristics using ML models

3. Build Apps

Create visualizations, analysis tools, or educational applications

API Endpoints

Base URL: https://api.aws.us-east-1.cerebrium.ai/v4/p-e08fc93f/exobengal-api/

POST/health_check

Health check endpoint to verify API status and deployment health

POST/get_model_info

Information about available models, input parameters, and deployment configuration

POST/predict

Single exoplanet prediction using ML models with Earth Similarity Index calculation

Parameters:

periodpradteqsradslog_gsteffimpactdurationdepthmodels

Note: Request body must include an 'item' object with all parameters

POST/init

Manual model initialization for faster subsequent requests

Code Examples

python

import requests

url = "https://api.aws.us-east-1.cerebrium.ai/v4/p-e08fc93f/exobengal-api/predict"
headers = {
    "Content-Type": "application/json",
    "Accept": "application/json"
}
data = {
    "item": {
        "period": 365.0,
        "prad": 1.0,
        "teq": 288.0,
        "srad": 1.0,
        "slog_g": 4.44,
        "steff": 5778.0,
        "impact": 0.1,
        "duration": 5.0,
        "depth": 100.0,
        "models": ["random_forest", "cnn"]
    }
}

response = requests.post(url, json=data, headers=headers)
result = response.json()
print(f"Run ID: {result['run_id']}")
print(f"ESI: {result['result']['esi']}")
print(f"Predictions: {result['result']['predictions']}")

curl

curl -X POST https://api.aws.us-east-1.cerebrium.ai/v4/p-e08fc93f/exobengal-api/predict \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "item": {
      "period": 365.0,
      "prad": 1.0,
      "teq": 288.0,
      "srad": 1.0,
      "slog_g": 4.44,
      "steff": 5778.0,
      "impact": 0.1,
      "duration": 5.0,
      "depth": 100.0
    }
  }'

javascript

const response = await fetch('https://api.aws.us-east-1.cerebrium.ai/v4/p-e08fc93f/exobengal-api/predict', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Accept': 'application/json'
  },
  body: JSON.stringify({
    item: {
      period: 365.0,
      prad: 1.0,
      teq: 288.0,
      srad: 1.0,
      slog_g: 4.44,
      steff: 5778,
      impact: 0.1,
      duration: 5.0,
      depth: 100.0,
      models: ["random_forest", "cnn"]
    }
  })
});

const data = await response.json();
console.log('Run ID:', data.run_id);
console.log('Predictions:', data.result.predictions);

Response Format

Cerebrium API Response Structure

{
  "run_id": "c514a61a-34f4-9cb7-bba8-a11679c5e2d5",
  "result": {
    "predictions": {
      "random_forest": {
        "prediction": {
          "prediction": "Not a Planet",
          "probability": 0.452
        },
        "model_type": "Random Forest"
      },
      "knn": {
        "prediction": {
          "prediction": "Planet",
          "probability": 1,
          "ESI": 0.021
        },
        "model_type": "Knn"
      }
    },
    "esi": 1,
    "input_data": {...},
    "models_executed": ["random_forest", "decision_tree", "knn", "cnn"],
    "status": "success"
  },
  "run_time_ms": 7866.67
}

The API returns a run_id for tracking, a result object with predictions from each model, calculated Earth Similarity Index (ESI), and execution time in milliseconds.

Error Handling

Missing Parameters

{
  "error": "Missing required fields: ['period', 'prad']",
  "status": "error"
}

Invalid Model

{
  "error": "Invalid model(s): ['invalid_model']. Available models: ['random_forest', 'decision_tree', 'knn', 'cnn']",
  "status": "error"
}

Model Execution Error

{
  "predictions": {
    "random_forest": {
      "error": "Model execution failed: [error details]",
      "model_type": "Random Forest"
    }
  },
  "status": "success"
}

Available Models

Random Forest

Ensemble learning method using multiple decision trees

Decision Tree

Tree-based learning algorithm for classification

K-Nearest Neighbors (KNN)

Instance-based learning algorithm

Convolutional Neural Network (CNN)

Deep learning model for pattern recognition

Input Parameters

ParameterTypeDescriptionExample
periodfloatOrbital period (days)365.25
pradfloatPlanet radius (Earth radii)1.0
teqfloatEquilibrium temperature (Kelvin)288.0
sradfloatStellar radius (solar radii)1.0
slog_gfloatStellar surface gravity (log scale)4.44
stefffloatStellar effective temperature (Kelvin)5778
impactfloatImpact parameter0.0
durationfloatTransit duration (hours)13.0
depthfloatTransit depth (parts per million)84.0

Deployment Configuration

Hardware Specifications

  • CPU: 2.0 cores
  • Memory: 4.0 GB
  • Compute: CPU (AWS)
  • Python: 3.10
  • Base Image: python:3.10-bookworm

Auto-scaling Settings

  • Min Replicas: 0 (scales to zero when idle)
  • Max Replicas: 3
  • Cooldown: 10 seconds
  • Concurrency: 1 request per replica
  • Metric: Concurrency utilization

Model Files

random_forest_classifier.pkl
decision_tree_classifier.pkl
cnn_model.h5
knn_model.pkl
scaler.pkl
imputer.pkl

Performance

~10-15s

Cold Start

Model loading time for idle replicas

~100-500ms

Warm Response

Response time for active replicas

99.9%

Availability

Uptime on Cerebrium platform

3

Concurrent Requests

Maximum concurrent requests

API Features

  • • Multiple ML Models (Random Forest, Decision Tree, KNN, CNN)
  • • Earth Similarity Index (ESI) calculation
  • • Batch processing support
  • • Model selection options
  • • Automatic OpenAPI documentation
Interstellar
Background Music
30%