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.
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 analysisscore(0–100): Composite score based on DCMA, GAO, and AACE standardsgrade(A–F): Letter grade derived from the score (A ≥ 90, B ≥ 80, C ≥ 70, D ≥ 60, F < 60)summary: Plain-language description of the resultbreakdown: Weighted sub-scores for each component of the analysisfindings: List of specific issues found, each with a stablecode,severity(critical/high/medium/low/info),title, anddescriptionrecommendations: Prioritized actions to address findingsdata: 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.