Skip to content

Quickstart

This guide will get you all set up and ready to use the Schedule Intelligence APIs. We'll cover authentication headers and your first schedule health analysis request over HTTPS.

Health & Analysis — Stable Forensics — Stable Risk & Simulation — Planned

Prerequisites

  • An API key (x-api-key). Use the Playground for a free ephemeral key, or create a key from your account.
  • OpenAPI contract: /openapi.json (generate a client in your stack if you prefer typed bindings).
# cURL is most likely already installed
curl --version

Making your first API request

Call POST /api/v1/health/score with a small task list. The same pattern works from any HTTP client (cURL, fetch, requests, etc.).

curl -X POST "https://api.bellatorsi.com/api/v1/health/score" \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{
    "tasks": [
      {"id": "T1", "duration_days": 5, "predecessors": []},
      {"id": "T2", "duration_days": 10, "predecessors": ["T1"]},
      {"id": "T3", "duration_days": 5, "predecessors": ["T2"]}
    ]
  }'
import requests

response = requests.post(
    "https://api.bellatorsi.com/api/v1/health/score",
    headers={
        "Content-Type": "application/json",
        "x-api-key": "YOUR_API_KEY",
    },
    json={
        "tasks": [
            {"id": "T1", "duration_days": 5, "predecessors": []},
            {"id": "T2", "duration_days": 10, "predecessors": ["T1"]},
            {"id": "T3", "duration_days": 5, "predecessors": ["T2"]},
        ]
    },
    timeout=30,
)
response.raise_for_status()
payload = response.json()
print(f"Health Score: {payload.get('score')}/100")
print(f"Grade: {payload.get('grade')}")
const response = await fetch('https://api.bellatorsi.com/api/v1/health/score', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'x-api-key': 'YOUR_API_KEY',
  },
  body: JSON.stringify({
    tasks: [
      { id: 'T1', duration_days: 5, predecessors: [] },
      { id: 'T2', duration_days: 10, predecessors: ['T1'] },
      { id: 'T3', duration_days: 5, predecessors: ['T2'] },
    ],
  }),
})

if (!response.ok) {
  throw new Error(`HTTP ${response.status}`)
}

const payload = await response.json()
console.log(`Health Score: ${payload.score}/100`)
console.log(`Grade: ${payload.grade}`)

Understanding the response

All analysis endpoints return a BellatorResponse envelope with a consistent structure:

  • status (pass / warning / fail / info): High-level outcome of the analysis
  • score (0–100): Composite score based on DCMA, GAO, and AACE standards
  • grade (A–F): Letter grade derived from the score (A ≥ 90, B ≥ 80, C ≥ 70, D ≥ 60, F < 60)
  • summary: Plain-language description of the result
  • breakdown: Weighted sub-scores for each component of the analysis
  • findings: List of specific issues found, each with a stable code, severity (critical / high / medium / low / info), title, and description
  • recommendations: Prioritized actions to address findings
  • data: Endpoint-specific detail (e.g., full CPM result, DCMA check results)
  • metadata: Task count, processing time, API version, and endpoint

See the full response schema in the API Reference.

Run a DCMA 14-Point Assessment (Health)

With a Starter plan, you can run the full DCMA PAM 200.1 14-point compliance check — the same audit a government schedule reviewer would run. Pass your schedule with baseline dates and a status date:

curl -X POST "https://api.bellatorsi.com/api/v1/health/dcma-14-point" \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{
    "tasks": [
      {
        "id": "T1", "name": "Requirements", "duration_days": 10,
        "predecessors": [],
        "planned_start": "2026-01-05", "planned_finish": "2026-01-16",
        "baseline_start": "2026-01-05", "baseline_finish": "2026-01-16",
        "percent_complete": 100, "resources": ["BA Team"]
      },
      {
        "id": "T2", "name": "Design", "duration_days": 15,
        "predecessors": ["T1"],
        "planned_start": "2026-01-19", "planned_finish": "2026-02-06",
        "baseline_start": "2026-01-19", "baseline_finish": "2026-02-06",
        "percent_complete": 60, "resources": ["Arch Team"]
      },
      {
        "id": "T3", "name": "Development", "duration_days": 30,
        "predecessors": ["T2"],
        "planned_start": "2026-02-09", "planned_finish": "2026-03-20",
        "baseline_start": "2026-02-09", "baseline_finish": "2026-03-13",
        "percent_complete": 0, "resources": ["Dev Team"]
      }
    ],
    "start_task_ids": ["T1"],
    "finish_task_ids": ["T3"],
    "status_date": "2026-02-15"
  }'

The response includes pass/fail scores for all 14 checks with task-level detail — ready to drop into a QA report or compliance dashboard.

Bring your own key (embed)

If you embed BellatorSI in a PM tool, your app should accept the customer’s x-api-key — not ship yours in the browser. Prefer a server-side proxy, or store the customer’s key in their workspace settings and send it only from your backend.

# Customer key from workspace settings / secrets — never hardcode in the client
API_KEY="${BELLATOR_CUSTOMER_API_KEY}"

curl -X POST "https://api.bellatorsi.com/api/v1/health/score" \
  -H "Content-Type: application/json" \
  -H "x-api-key: ${API_KEY}" \
  -d '{"tasks":[{"id":"T1","duration_days":5,"predecessors":[]}]}'

See Authentication for key tiers and Pricing for Free vs Starter limits when customers need DCMA, import, or larger schedules.

What's next?

Was this page helpful?

Your feedback helps us improve docs, reference pages, and Playground flows.

Topic: Quickstart · Page: /docs/quickstart

TermsPrivacyContact

Schedule analysis guidance. Not legal advice. You remain responsible for contract and agency compliance.