Getting Started with ScientistCloud Data Portal

This guide covers the website first, then the API for automated uploads.

Prerequisites

  • A ScientistCloud account (for upload, sharing, and private data)
  • Optional, for API examples: curl, jq, and Python 3.7+ with requests

Using the Website

Public Portal

Open https://scientistcloud.com/portal/public/ to browse public datasets. Select a dataset in the sidebar and pick a dashboard from the toolbar. No account is required.

Account Portal

  • Open https://scientistcloud.com/portal/index.php
  • Sign in with Auth0 (Google, email/password, or another configured method)
  • Use Upload to add local files, a folder, a zip, Google Drive, S3, or a remote URL
  • Watch progress under Jobs
  • Click the dataset in the sidebar to open it in a dashboard
See Dashboards, Inspect S3, Sharing and Teams, and Folders.

Using the API

Website login (Auth0) is separate from API tokens. Scripts use /api/auth/login with your ScientistCloud account email.

Step 1: Get a Token

TOKEN=$(curl -s -X POST "https://scientistcloud.com/api/auth/login" \
     -H "Content-Type: application/json" \
     -d '{"email": "your@email.com"}' | \
     jq -r '.data.access_token')

echo "Token: ${TOKEN:0:20}..."

Response

{
  "success": true,
  "message": "Login successful",
  "data": {
    "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
    "expires_in": 86400,
    "token_type": "Bearer",
    "user": {
      "email": "your@email.com",
      "name": "Your Name"
    }
  }
}

Verify Authentication

curl -H "Authorization: Bearer $TOKEN" \
     "https://scientistcloud.com/api/auth/status"

Step 2: Upload Your First Dataset

Required form fields: file, user_email, dataset_name, and sensor.

curl -X POST "https://scientistcloud.com/api/upload/upload" \
     -H "Authorization: Bearer $TOKEN" \
     -F "file=@/path/to/your/file.nxs" \
     -F "user_email=your@email.com" \
     -F "dataset_name=My First Dataset" \
     -F "sensor=4D_NEXUS" \
     -F "convert=true" \
     -F "is_public=false"

Upload Parameters

ParameterRequiredDescriptionExample
fileYesFile to upload@/path/to/file.nxs
user_emailYesOwner email"your@email.com"
dataset_nameYesName for the dataset"My Dataset"
sensorYesSensor typeIDX, 4D_NEXUS, TIFF, TIFF RGB, NETCDF, HDF5, RGB, MAPIR, ORNL_CHESS_STRAIN, OTHER. Contact us if your sensor is not in the list
convertNoConvert to IDX formattrue or false
is_publicNoMake dataset publictrue or false
folderNoFolder name for organization"CHESS_4D"
team_uuidNoTeam UUID for sharing"team-uuid-here"
tagsNoComma-separated tags"tag1,tag2,tag3"

Upload Response

{
  "job_id": "550e8400-e29b-41d4-a716-446655440000",
  "status": "queued",
  "message": "Upload initiated",
  "dataset_uuid": "550e8400-e29b-41d4-a716-446655440000"
}

Step 3: Check Upload Status

curl -H "Authorization: Bearer $TOKEN" \
     "https://scientistcloud.com/api/upload/status/JOB_ID" | jq

Status Response

{
  "job_id": "550e8400-e29b-41d4-a716-446655440000",
  "status": "processing",
  "progress_percentage": 45,
  "message": "Converting dataset..."
}

Step 4: List Your Datasets

curl -s "https://scientistcloud.com/api/v1/datasets/by-user?user_email=your@email.com" \
     -H "Authorization: Bearer $TOKEN" | jq

Response includes datasets.my, datasets.shared, datasets.team, and counts.

Step 5: Access Your Dataset

Once uploaded and processed, you can:

  • View in Portal: Open https://scientistcloud.com/portal/ and select your dataset
  • Access via API: Use the dataset UUID with the Datasets API
  • Share: Use the portal Share button or the sharing API (see Sharing and Teams)

Using Ready-Made Scripts

See Curl Scripts and Python Examples.

./curl_for_chess.sh -u your@email.com -f /path/to/file.nxs -n "Dataset Name"

Next Steps

Troubleshooting

Authentication Failed

# Check if the auth service is running (trailing slash required)
curl https://scientistcloud.com/api/health/

# Confirm login for your account email curl -X POST "https://scientistcloud.com/api/auth/login" \ -H "Content-Type: application/json" \ -d '{"email": "your@email.com"}'

The website uses Auth0. If the portal login page fails, use Sign In on https://scientistcloud.com/portal/index.php rather than the API token flow.

Upload Failed

# Check upload service health (trailing slash required)
curl https://scientistcloud.com/api/upload-health/

# Check file exists and is readable ls -lh /path/to/your/file.nxs

# Check size limits curl https://scientistcloud.com/api/upload/limits

Token Expired

Access tokens expire after 24 hours. Log in again:

TOKEN=$(curl -s -X POST "https://scientistcloud.com/api/auth/login" \
     -H "Content-Type: application/json" \
     -d '{"email": "your@email.com"}' | \
     jq -r '.data.access_token')

Support