Skip to content

Management API

The Management API provides programmatic access to all compliance management features.

Base URL: https://api.glacis.io/api/v1

Organizations

Get Organization

GET /orgs/{orgId}
Terminal window
curl https://api.glacis.io/api/v1/orgs/org_xyz \
-H "Authorization: Bearer glc_live_..."

Controls

List All Controls

Returns the complete ISO 42001 control library.

GET /controls

Query Parameters:

ParameterTypeDescription
domainstringFilter by domain (e.g., “A.4”)
searchstringFull-text search
Terminal window
curl "https://api.glacis.io/api/v1/controls?domain=A.4" \
-H "Authorization: Bearer glc_live_..."

Get Organization’s Control Status

Returns controls with organization-specific status and evidence.

GET /orgs/{orgId}/controls

Query Parameters:

ParameterTypeDescription
statusstringFilter by status: not_started, in_progress, implemented
applicablebooleanFilter by applicability
Terminal window
curl "https://api.glacis.io/api/v1/orgs/org_xyz/controls?status=in_progress" \
-H "Authorization: Bearer glc_live_..."

Update Control Applicability

PUT /orgs/{orgId}/controls/{controlId}/applicability
Terminal window
curl -X PUT "https://api.glacis.io/api/v1/orgs/org_xyz/controls/ctrl_a101/applicability" \
-H "Authorization: Bearer glc_live_..." \
-H "Content-Type: application/json" \
-d '{
"applicable": false,
"justification": "Organization does not use third-party AI vendors",
"reviewer": "user_abc"
}'

Evidence

List Evidence for Control

GET /orgs/{orgId}/controls/{controlId}/evidence

Query Parameters:

ParameterTypeDescription
typestringFilter by type: attestation, document, link
limitnumberMax results (default: 50)
offsetnumberPagination offset
Terminal window
curl "https://api.glacis.io/api/v1/orgs/org_xyz/controls/ctrl_a626/evidence?type=attestation&limit=10" \
-H "Authorization: Bearer glc_live_..."

Add Evidence

POST /orgs/{orgId}/controls/{controlId}/evidence
Terminal window
curl -X POST "https://api.glacis.io/api/v1/orgs/org_xyz/controls/ctrl_a21/evidence" \
-H "Authorization: Bearer glc_live_..." \
-H "Content-Type: application/json" \
-d '{
"type": "document",
"title": "AI Governance Policy",
"description": "Board-approved AI governance policy document",
"fileUrl": "https://storage.glacis.io/docs/ai-policy.pdf"
}'

Compliance Scoring

Get Current Compliance Score

GET /orgs/{orgId}/compliance
Terminal window
curl "https://api.glacis.io/api/v1/orgs/org_xyz/compliance" \
-H "Authorization: Bearer glc_live_..."

Get Compliance History

GET /orgs/{orgId}/compliance/history

Query Parameters:

ParameterTypeDescription
fromstringStart date (ISO 8601)
tostringEnd date (ISO 8601)
intervalstringAggregation: daily, weekly, monthly
Terminal window
curl "https://api.glacis.io/api/v1/orgs/org_xyz/compliance/history?from=2024-01-01&interval=weekly" \
-H "Authorization: Bearer glc_live_..."

Create Compliance Snapshot

POST /orgs/{orgId}/compliance/snapshot

Creates a point-in-time snapshot for auditing purposes.

Terminal window
curl -X POST "https://api.glacis.io/api/v1/orgs/org_xyz/compliance/snapshot" \
-H "Authorization: Bearer glc_live_..." \
-H "Content-Type: application/json" \
-d '{
"label": "Q1 2024 Audit",
"notes": "Snapshot for external audit"
}'

Attestations

List Attestations

GET /orgs/{orgId}/attestations

Query Parameters:

ParameterTypeDescription
levelstringFilter by level: L0, L2
epochIdstringFilter by epoch
fromstringStart timestamp
tostringEnd timestamp
limitnumberMax results
Terminal window
curl "https://api.glacis.io/api/v1/orgs/org_xyz/attestations?level=L2&limit=10" \
-H "Authorization: Bearer glc_live_..."

Get Single Attestation

GET /orgs/{orgId}/attestations/{attestationId}

Ingest Attestation (from sidecar)

POST /orgs/{orgId}/attestations

AI Systems

List AI Systems

GET /orgs/{orgId}/ai-systems
Terminal window
curl "https://api.glacis.io/api/v1/orgs/org_xyz/ai-systems" \
-H "Authorization: Bearer glc_live_..."

Create AI System

POST /orgs/{orgId}/ai-systems

Update AI System

PUT /orgs/{orgId}/ai-systems/{systemId}

Delete AI System

DELETE /orgs/{orgId}/ai-systems/{systemId}

Export

Export as OSCAL

GET /orgs/{orgId}/export/oscal

Returns a NIST OSCAL-formatted compliance package.

Export Statement of Applicability

GET /orgs/{orgId}/export/soa

Returns an ISO 42001-formatted Statement of Applicability.

Query Parameters:

ParameterTypeDescription
formatstringOutput format: json, csv, markdown

Error Responses

All errors follow a consistent format:

{
"error": {
"code": "RESOURCE_NOT_FOUND",
"message": "Control not found",
"details": {
"controlId": "ctrl_invalid"
}
}
}
StatusCodeDescription
400BAD_REQUESTInvalid request parameters
401UNAUTHORIZEDInvalid or missing authentication
403FORBIDDENInsufficient permissions
404NOT_FOUNDResource not found
409CONFLICTResource conflict
429RATE_LIMITEDToo many requests
500INTERNAL_ERRORServer error