Documentation

REST API Reference

Complete endpoint-by-endpoint DecisionsLayer REST API documentation for production integrations.

REST API reference

Base URL: https://api.decisionslayer.com. All request and response bodies are JSON unless noted otherwise. Endpoint cards below document auth mode, path and query parameters, request body keys, allowed values, and response shape.

Auth modes. Machine ingestion and read paths use X-API-Key. Workspace administration and authenticated user flows use Authorization: Bearer ... with X-Tenant-ID.
headers.httphttp
X-API-Key: dl_live_...
Authorization: Bearer eyJ...
X-Tenant-ID: tenant_123
Content-Type: application/json

1. System

GET/health

Checks whether the service is reachable.

Auth. None.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /healthhttp
GET /health HTTP/1.1
Host: api.decisionslayer.com

2. Auth

POST/auth/signup

Creates a user and initial workspace.

Auth. None.

Request body

Key Type Required Values / format Description
name string Yes 1-120 chars User display name.
email string Yes Valid email Login email.
password string Yes Password policy compliant User password.
workspace_name string Yes 1-120 chars Initial workspace name.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

POST /auth/signuphttp
POST /auth/signup HTTP/1.1
Host: api.decisionslayer.com
Content-Type: application/json

{ ... }
POST/auth/login

Creates an authenticated session.

Auth. None.

Request body

Key Type Required Values / format Description
email string Yes Valid email Login email.
password string Yes Password User password.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

POST /auth/loginhttp
POST /auth/login HTTP/1.1
Host: api.decisionslayer.com
Content-Type: application/json

{ ... }
POST/auth/refresh

Refreshes an access token.

Auth. None.

Request body

Key Type Required Values / format Description
refresh_token string Yes Refresh token Refresh credential.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

POST /auth/refreshhttp
POST /auth/refresh HTTP/1.1
Host: api.decisionslayer.com
Content-Type: application/json

{ ... }
POST/auth/logout

Ends the current session.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

POST /auth/logouthttp
POST /auth/logout HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json

{ ... }
GET/auth/me

Returns the current user profile.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /auth/mehttp
GET /auth/me HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
PATCH/auth/me

Updates the current user profile.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

PATCH /auth/mehttp
PATCH /auth/me HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json

{ ... }
GET/auth/workspaces

Lists workspaces available to the current user.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /auth/workspaceshttp
GET /auth/workspaces HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
POST/auth/forgot-password

Starts a password reset flow.

Auth. None.

Request body

Key Type Required Values / format Description
email string Yes Valid email Account email.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

POST /auth/forgot-passwordhttp
POST /auth/forgot-password HTTP/1.1
Host: api.decisionslayer.com
Content-Type: application/json

{ ... }
POST/auth/reset-password

Completes a password reset flow.

Auth. None.

Request body

Key Type Required Values / format Description
token string Yes Reset token Password reset token.
password string Yes Password policy compliant New password.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

POST /auth/reset-passwordhttp
POST /auth/reset-password HTTP/1.1
Host: api.decisionslayer.com
Content-Type: application/json

{ ... }
POST/auth/verify-email

Verifies a user email address.

Auth. None.

Request body

Key Type Required Values / format Description
token string Yes Verification token Email verification token.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

POST /auth/verify-emailhttp
POST /auth/verify-email HTTP/1.1
Host: api.decisionslayer.com
Content-Type: application/json

{ ... }
POST/auth/invitations/accept

Accepts a workspace invitation.

Auth. None.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

POST /auth/invitations/accepthttp
POST /auth/invitations/accept HTTP/1.1
Host: api.decisionslayer.com
Content-Type: application/json

{ ... }

3. Tenant and Workspace Settings

GET/api/v1/tenant/settings

Returns tenant-level settings for the active workspace context.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /api/v1/tenant/settingshttp
GET /api/v1/tenant/settings HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
GET/api/v1/workspace/settings

Returns workspace settings.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /api/v1/workspace/settingshttp
GET /api/v1/workspace/settings HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
PATCH/api/v1/workspace/settings

Updates workspace settings.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Request body

Key Type Required Values / format Description
workspace_name string No 1-120 characters Human-readable workspace name.
default_timezone string No IANA timezone such as UTC, America/New_York, Asia/Kathmandu Default timezone used for reporting windows.
data_retention_days number No Plan-dependent positive integer Retention period for workspace records.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

PATCH /api/v1/workspace/settingshttp
PATCH /api/v1/workspace/settings HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json

{ ... }

4. Decisions, Outcomes, and Subject Timelines

POST/api/v1/decisions

Logs a decision. Reusing the same

Auth. X-API-Key for read/ingestion paths; bearer is accepted where workspace policy requires user context.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
subject_type string No Subject type Filter by subject type.
subject_id string No Subject ID Filter by subject.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.
cursor string No Opaque cursor Pagination cursor.

Request body

Key Type Required Values / format Description
external_decision_id string No Unique per tenant when supplied Your stable decision identifier. Used for idempotent replay detection.
decision_type string Yes Workspace taxonomy such as transaction_review, kyc_check, claim_review Groups decisions for analytics and configuration.
subject.type string Yes Customer-defined type such as transaction, customer, claim, listing The entity class the decision is about.
subject.id string Yes Stable subject identifier The entity identifier in your system.
decision.action string Yes Workspace configured action such as allow, approve, deny, reject, review, escalate The action taken by the decision system.
decision.status string Yes draft, pending, final, superseded Lifecycle status for the decision record.
actors[] array<object> No type, id, version, role Models, rules, services, or people involved in the decision.
evidence[] array<object> No type, key, name, value, weight, source Signals, scores, rules, policy references, or provider results that influenced the decision.
context object No JSON object Operational context such as channel, region, queue, source system, or experiment.
inputs object No JSON object Input values used by the decision system.
metadata object No JSON object Additional customer-defined metadata.
occurred_at string Yes ISO 8601 timestamp When the decision happened.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

POST /api/v1/decisionshttp
POST /api/v1/decisions HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json

{ ... }
GET/api/v1/decisions

Lists decisions. Query parameters can filter by fields such as decision type, subject, actor, date range, and pagination.

Auth. X-API-Key for read/ingestion paths; bearer is accepted where workspace policy requires user context.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
subject_type string No Subject type Filter by subject type.
subject_id string No Subject ID Filter by subject.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.
cursor string No Opaque cursor Pagination cursor.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /api/v1/decisionshttp
GET /api/v1/decisions HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
GET/api/v1/decisions/{id}

Gets one decision by ID.

Auth. X-API-Key for read/ingestion paths; bearer is accepted where workspace policy requires user context.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
subject_type string No Subject type Filter by subject type.
subject_id string No Subject ID Filter by subject.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.
cursor string No Opaque cursor Pagination cursor.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /api/v1/decisions/{id}http
GET /api/v1/decisions/{id} HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
GET/api/v1/decisions/{id}/quality

Returns quality details for one decision.

Auth. X-API-Key for read/ingestion paths; bearer is accepted where workspace policy requires user context.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
subject_type string No Subject type Filter by subject type.
subject_id string No Subject ID Filter by subject.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.
cursor string No Opaque cursor Pagination cursor.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /api/v1/decisions/{id}/qualityhttp
GET /api/v1/decisions/{id}/quality HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
POST/api/v1/decisions/{id}/outcomes

Attaches an outcome to a decision.

Auth. X-API-Key for read/ingestion paths; bearer is accepted where workspace policy requires user context.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
subject_type string No Subject type Filter by subject type.
subject_id string No Subject ID Filter by subject.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.
cursor string No Opaque cursor Pagination cursor.

Request body

Key Type Required Values / format Description
outcome_type string Yes Workspace taxonomy such as review_result, fraud_resolution, conversion, chargeback The kind of downstream result being attached.
outcome_value string Yes Customer-defined value such as approved, rejected, true_positive, false_positive, converted The observed result value.
payload object No JSON object Supporting details about the outcome.
metadata object No JSON object Additional outcome metadata.
occurred_at string No ISO 8601 timestamp When the outcome happened. Defaults to server receive time if omitted.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

POST /api/v1/decisions/{id}/outcomeshttp
POST /api/v1/decisions/{id}/outcomes HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json

{ ... }
GET/api/v1/workspace/label-suggestions

Returns label suggestions for workspace configuration and decision metadata.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Query parameters

Key Type Required Values / format Description
q string No Search text Suggestion search query.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /api/v1/workspace/label-suggestionshttp
GET /api/v1/workspace/label-suggestions HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
GET/api/v1/subjects/{subjectType}/{subjectId}/timeline

Returns all decisions and outcomes for a subject.

Auth. X-API-Key for read/ingestion paths; bearer is accepted where workspace policy requires user context.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /api/v1/subjects/{subjectType}/{subjectId}/timelinehttp
GET /api/v1/subjects/{subjectType}/{subjectId}/timeline HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>

5. Analytics and Observability

GET/api/v1/analytics/dashboard

Returns high-level dashboard metrics.

Auth. X-API-Key for read/ingestion paths; bearer is accepted where workspace policy requires user context.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
segment_id string No Segment UUID Filter by segment.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /api/v1/analytics/dashboardhttp
GET /api/v1/analytics/dashboard HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
GET/api/v1/analytics/effectiveness

Returns effectiveness metrics by decision type and outcome.

Auth. X-API-Key for read/ingestion paths; bearer is accepted where workspace policy requires user context.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
segment_id string No Segment UUID Filter by segment.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /api/v1/analytics/effectivenesshttp
GET /api/v1/analytics/effectiveness HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
GET/api/v1/observability/summary

Returns current observability summary metrics.

Auth. X-API-Key for read/ingestion paths; bearer is accepted where workspace policy requires user context.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
segment_id string No Segment UUID Filter by segment.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /api/v1/observability/summaryhttp
GET /api/v1/observability/summary HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
GET/api/v1/observability/evidence

Returns evidence usage and quality information.

Auth. X-API-Key for read/ingestion paths; bearer is accepted where workspace policy requires user context.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
segment_id string No Segment UUID Filter by segment.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /api/v1/observability/evidencehttp
GET /api/v1/observability/evidence HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
GET/api/v1/observability/actors

Returns actor-level observability metrics.

Auth. X-API-Key for read/ingestion paths; bearer is accepted where workspace policy requires user context.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
segment_id string No Segment UUID Filter by segment.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /api/v1/observability/actorshttp
GET /api/v1/observability/actors HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
GET/api/v1/observability/latency

Returns latency metrics for decision ingestion and processing.

Auth. X-API-Key for read/ingestion paths; bearer is accepted where workspace policy requires user context.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
segment_id string No Segment UUID Filter by segment.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /api/v1/observability/latencyhttp
GET /api/v1/observability/latency HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>

6. Anomalies

GET/api/v1/anomalies

Lists detected anomalies.

Auth. X-API-Key for read/ingestion paths; bearer is accepted where workspace policy requires user context.

Query parameters

Key Type Required Values / format Description
status string No open, acknowledged, resolved Lifecycle status.
limit number No 1-100 Page size.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /api/v1/anomalieshttp
GET /api/v1/anomalies HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
GET/api/v1/anomalies/{id}

Gets one anomaly.

Auth. X-API-Key for read/ingestion paths; bearer is accepted where workspace policy requires user context.

Query parameters

Key Type Required Values / format Description
status string No open, acknowledged, resolved Lifecycle status.
limit number No 1-100 Page size.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /api/v1/anomalies/{id}http
GET /api/v1/anomalies/{id} HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
POST/api/v1/anomalies/{id}/acknowledge

Acknowledges an anomaly.

Auth. X-API-Key for read/ingestion paths; bearer is accepted where workspace policy requires user context.

Query parameters

Key Type Required Values / format Description
status string No open, acknowledged, resolved Lifecycle status.
limit number No 1-100 Page size.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

POST /api/v1/anomalies/{id}/acknowledgehttp
POST /api/v1/anomalies/{id}/acknowledge HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json

{ ... }
POST/api/v1/anomalies/{id}/resolve

Resolves an anomaly.

Auth. X-API-Key for read/ingestion paths; bearer is accepted where workspace policy requires user context.

Query parameters

Key Type Required Values / format Description
status string No open, acknowledged, resolved Lifecycle status.
limit number No 1-100 Page size.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

POST /api/v1/anomalies/{id}/resolvehttp
POST /api/v1/anomalies/{id}/resolve HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json

{ ... }

7. Alerts

GET/api/v1/alert-rules

Lists alert rules.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /api/v1/alert-ruleshttp
GET /api/v1/alert-rules HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
POST/api/v1/alert-rules

Creates an alert rule.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Request body

Key Type Required Values / format Description
name string Yes 1-120 characters Alert rule display name.
metric_name string Yes restrictive_action_rate, review_rate, anomaly_count, latency_p95, quality_score Metric evaluated by the rule.
threshold number Yes Numeric threshold Value compared against the metric.
comparison string Yes gt, gte, lt, lte, eq Comparison operator.
window string Yes 5m, 15m, 1h, 6h, 24h, 7d Rolling evaluation window.
enabled boolean No true, false Whether the rule should evaluate immediately.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

POST /api/v1/alert-ruleshttp
POST /api/v1/alert-rules HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json

{ ... }
PATCH/api/v1/alert-rules/{id}

Updates an alert rule.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Request body

Key Type Required Values / format Description
name string Yes 1-120 characters Alert rule display name.
metric_name string Yes restrictive_action_rate, review_rate, anomaly_count, latency_p95, quality_score Metric evaluated by the rule.
threshold number Yes Numeric threshold Value compared against the metric.
comparison string Yes gt, gte, lt, lte, eq Comparison operator.
window string Yes 5m, 15m, 1h, 6h, 24h, 7d Rolling evaluation window.
enabled boolean No true, false Whether the rule should evaluate immediately.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

PATCH /api/v1/alert-rules/{id}http
PATCH /api/v1/alert-rules/{id} HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json

{ ... }
POST/api/v1/alert-rules/{id}/disable

Disables an alert rule.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Request body

Key Type Required Values / format Description
name string Yes 1-120 characters Alert rule display name.
metric_name string Yes restrictive_action_rate, review_rate, anomaly_count, latency_p95, quality_score Metric evaluated by the rule.
threshold number Yes Numeric threshold Value compared against the metric.
comparison string Yes gt, gte, lt, lte, eq Comparison operator.
window string Yes 5m, 15m, 1h, 6h, 24h, 7d Rolling evaluation window.
enabled boolean No true, false Whether the rule should evaluate immediately.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

POST /api/v1/alert-rules/{id}/disablehttp
POST /api/v1/alert-rules/{id}/disable HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json

{ ... }
POST/api/v1/alert-rules/{id}/enable

Enables an alert rule.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Request body

Key Type Required Values / format Description
name string Yes 1-120 characters Alert rule display name.
metric_name string Yes restrictive_action_rate, review_rate, anomaly_count, latency_p95, quality_score Metric evaluated by the rule.
threshold number Yes Numeric threshold Value compared against the metric.
comparison string Yes gt, gte, lt, lte, eq Comparison operator.
window string Yes 5m, 15m, 1h, 6h, 24h, 7d Rolling evaluation window.
enabled boolean No true, false Whether the rule should evaluate immediately.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

POST /api/v1/alert-rules/{id}/enablehttp
POST /api/v1/alert-rules/{id}/enable HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json

{ ... }
GET/api/v1/alert-events

Lists alert events.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Query parameters

Key Type Required Values / format Description
status string No open, acknowledged, resolved Lifecycle status.
limit number No 1-100 Page size.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /api/v1/alert-eventshttp
GET /api/v1/alert-events HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
GET/api/v1/alert-events/{id}

Gets one alert event.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Query parameters

Key Type Required Values / format Description
status string No open, acknowledged, resolved Lifecycle status.
limit number No 1-100 Page size.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /api/v1/alert-events/{id}http
GET /api/v1/alert-events/{id} HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
POST/api/v1/alert-events/{id}/acknowledge

Acknowledges an alert event.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Query parameters

Key Type Required Values / format Description
status string No open, acknowledged, resolved Lifecycle status.
limit number No 1-100 Page size.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

POST /api/v1/alert-events/{id}/acknowledgehttp
POST /api/v1/alert-events/{id}/acknowledge HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json

{ ... }
POST/api/v1/alert-events/{id}/resolve

Resolves an alert event.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Query parameters

Key Type Required Values / format Description
status string No open, acknowledged, resolved Lifecycle status.
limit number No 1-100 Page size.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

POST /api/v1/alert-events/{id}/resolvehttp
POST /api/v1/alert-events/{id}/resolve HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json

{ ... }

8. Intelligence

GET/api/v1/outcome-interpretation-rules

Lists outcome interpretation rules.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /api/v1/outcome-interpretation-ruleshttp
GET /api/v1/outcome-interpretation-rules HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
POST/api/v1/outcome-interpretation-rules

Creates an outcome interpretation rule.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Request body

Key Type Required Values / format Description
outcome_type string Yes Outcome type Outcome taxonomy.
outcome_value string Yes Outcome value Outcome value.
interpretation_bucket string Yes positive_resolution, negative_resolution, neutral, unresolved Semantic bucket.
quality_impact string Yes strongly_positive, positive, neutral, negative, strongly_negative Quality impact.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

POST /api/v1/outcome-interpretation-ruleshttp
POST /api/v1/outcome-interpretation-rules HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json

{ ... }
PATCH/api/v1/outcome-interpretation-rules/{id}

Updates an outcome interpretation rule.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Request body

Key Type Required Values / format Description
outcome_type string Yes Outcome type Outcome taxonomy.
outcome_value string Yes Outcome value Outcome value.
interpretation_bucket string Yes positive_resolution, negative_resolution, neutral, unresolved Semantic bucket.
quality_impact string Yes strongly_positive, positive, neutral, negative, strongly_negative Quality impact.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

PATCH /api/v1/outcome-interpretation-rules/{id}http
PATCH /api/v1/outcome-interpretation-rules/{id} HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json

{ ... }
POST/api/v1/outcome-interpretation-rules/{id}/disable

Disables an outcome interpretation rule.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Request body

Key Type Required Values / format Description
outcome_type string Yes Outcome type Outcome taxonomy.
outcome_value string Yes Outcome value Outcome value.
interpretation_bucket string Yes positive_resolution, negative_resolution, neutral, unresolved Semantic bucket.
quality_impact string Yes strongly_positive, positive, neutral, negative, strongly_negative Quality impact.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

POST /api/v1/outcome-interpretation-rules/{id}/disablehttp
POST /api/v1/outcome-interpretation-rules/{id}/disable HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json

{ ... }
POST/api/v1/outcome-interpretation-rules/{id}/enable

Enables an outcome interpretation rule.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Request body

Key Type Required Values / format Description
outcome_type string Yes Outcome type Outcome taxonomy.
outcome_value string Yes Outcome value Outcome value.
interpretation_bucket string Yes positive_resolution, negative_resolution, neutral, unresolved Semantic bucket.
quality_impact string Yes strongly_positive, positive, neutral, negative, strongly_negative Quality impact.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

POST /api/v1/outcome-interpretation-rules/{id}/enablehttp
POST /api/v1/outcome-interpretation-rules/{id}/enable HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json

{ ... }
GET/api/v1/intelligence/quality-summary

Returns quality summary metrics.

Auth. X-API-Key for read/ingestion paths; bearer is accepted where workspace policy requires user context.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
segment_id string No Segment UUID Filter by segment.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /api/v1/intelligence/quality-summaryhttp
GET /api/v1/intelligence/quality-summary HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
GET/api/v1/intelligence/quality-scope-options

Returns valid scopes for quality analysis filters.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
segment_id string No Segment UUID Filter by segment.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /api/v1/intelligence/quality-scope-optionshttp
GET /api/v1/intelligence/quality-scope-options HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
GET/api/v1/intelligence/evidence-correlation

Returns correlations between evidence and outcomes.

Auth. X-API-Key for read/ingestion paths; bearer is accepted where workspace policy requires user context.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
segment_id string No Segment UUID Filter by segment.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /api/v1/intelligence/evidence-correlationhttp
GET /api/v1/intelligence/evidence-correlation HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
GET/api/v1/intelligence/compare/actors

Compares decision actors.

Auth. X-API-Key for read/ingestion paths; bearer is accepted where workspace policy requires user context.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
segment_id string No Segment UUID Filter by segment.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /api/v1/intelligence/compare/actorshttp
GET /api/v1/intelligence/compare/actors HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
GET/api/v1/intelligence/patterns

Returns detected decision and quality patterns.

Auth. X-API-Key for read/ingestion paths; bearer is accepted where workspace policy requires user context.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
segment_id string No Segment UUID Filter by segment.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /api/v1/intelligence/patternshttp
GET /api/v1/intelligence/patterns HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
GET/api/v1/intelligence/segments

Lists configured intelligence segments.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
segment_id string No Segment UUID Filter by segment.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /api/v1/intelligence/segmentshttp
GET /api/v1/intelligence/segments HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
POST/api/v1/intelligence/segments

Creates an intelligence segment.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
segment_id string No Segment UUID Filter by segment.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.

Request body

Key Type Required Values / format Description
name string Yes 1-120 characters Segment display name.
filter object Yes JSON filter over decision, subject, actor, context, evidence, outcome fields Criteria that define the segment.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

POST /api/v1/intelligence/segmentshttp
POST /api/v1/intelligence/segments HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json

{ ... }
PATCH/api/v1/intelligence/segments/{id}

Updates an intelligence segment.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
segment_id string No Segment UUID Filter by segment.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.

Request body

Key Type Required Values / format Description
name string Yes 1-120 characters Segment display name.
filter object Yes JSON filter over decision, subject, actor, context, evidence, outcome fields Criteria that define the segment.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

PATCH /api/v1/intelligence/segments/{id}http
PATCH /api/v1/intelligence/segments/{id} HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json

{ ... }
GET/api/v1/intelligence/segments/{id}

Gets one intelligence segment.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
segment_id string No Segment UUID Filter by segment.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /api/v1/intelligence/segments/{id}http
GET /api/v1/intelligence/segments/{id} HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
GET/api/v1/intelligence/quality-drift

Lists quality drift events.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
segment_id string No Segment UUID Filter by segment.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /api/v1/intelligence/quality-drifthttp
GET /api/v1/intelligence/quality-drift HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
GET/api/v1/intelligence/quality-drift/{id}

Gets one quality drift event.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
segment_id string No Segment UUID Filter by segment.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /api/v1/intelligence/quality-drift/{id}http
GET /api/v1/intelligence/quality-drift/{id} HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
POST/api/v1/intelligence/quality-drift/{id}/acknowledge

Acknowledges a quality drift event.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
segment_id string No Segment UUID Filter by segment.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

POST /api/v1/intelligence/quality-drift/{id}/acknowledgehttp
POST /api/v1/intelligence/quality-drift/{id}/acknowledge HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json

{ ... }
POST/api/v1/intelligence/quality-drift/{id}/resolve

Resolves a quality drift event.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
segment_id string No Segment UUID Filter by segment.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

POST /api/v1/intelligence/quality-drift/{id}/resolvehttp
POST /api/v1/intelligence/quality-drift/{id}/resolve HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json

{ ... }

9. Optimization

GET/api/v1/optimization/opportunities

Lists optimization opportunities.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
segment_id string No Segment UUID Filter by segment.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /api/v1/optimization/opportunitieshttp
GET /api/v1/optimization/opportunities HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
GET/api/v1/optimization/opportunities/{id}

Gets one optimization opportunity.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
segment_id string No Segment UUID Filter by segment.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /api/v1/optimization/opportunities/{id}http
GET /api/v1/optimization/opportunities/{id} HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
GET/api/v1/optimization/recommendations

Lists recommendations.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
segment_id string No Segment UUID Filter by segment.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /api/v1/optimization/recommendationshttp
GET /api/v1/optimization/recommendations HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
POST/api/v1/optimization/recommendations

Creates a recommendation.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
segment_id string No Segment UUID Filter by segment.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.

Request body

Key Type Required Values / format Description
opportunity_id string No Optimization opportunity ID Opportunity this recommendation responds to.
recommendation_type string Yes threshold_increase, threshold_decrease, routing_change, evidence_addition, policy_change, experiment The optimization action being proposed.
target_scope object Yes { type, key } Decision type, segment, actor, or policy area affected.
proposed_change object Yes JSON object Candidate change to test or roll out.
status string No draft, reviewing, approved, rejected, archived Review lifecycle status.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

POST /api/v1/optimization/recommendationshttp
POST /api/v1/optimization/recommendations HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json

{ ... }
GET/api/v1/optimization/recommendations/{id}

Gets one recommendation.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
segment_id string No Segment UUID Filter by segment.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /api/v1/optimization/recommendations/{id}http
GET /api/v1/optimization/recommendations/{id} HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
PATCH/api/v1/optimization/recommendations/{id}

Updates a recommendation.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
segment_id string No Segment UUID Filter by segment.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.

Request body

Key Type Required Values / format Description
opportunity_id string No Optimization opportunity ID Opportunity this recommendation responds to.
recommendation_type string Yes threshold_increase, threshold_decrease, routing_change, evidence_addition, policy_change, experiment The optimization action being proposed.
target_scope object Yes { type, key } Decision type, segment, actor, or policy area affected.
proposed_change object Yes JSON object Candidate change to test or roll out.
status string No draft, reviewing, approved, rejected, archived Review lifecycle status.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

PATCH /api/v1/optimization/recommendations/{id}http
PATCH /api/v1/optimization/recommendations/{id} HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json

{ ... }
POST/api/v1/optimization/recommendations/{id}/review

Marks a recommendation as reviewed.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
segment_id string No Segment UUID Filter by segment.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.

Request body

Key Type Required Values / format Description
opportunity_id string No Optimization opportunity ID Opportunity this recommendation responds to.
recommendation_type string Yes threshold_increase, threshold_decrease, routing_change, evidence_addition, policy_change, experiment The optimization action being proposed.
target_scope object Yes { type, key } Decision type, segment, actor, or policy area affected.
proposed_change object Yes JSON object Candidate change to test or roll out.
status string No draft, reviewing, approved, rejected, archived Review lifecycle status.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

POST /api/v1/optimization/recommendations/{id}/reviewhttp
POST /api/v1/optimization/recommendations/{id}/review HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json

{ ... }
POST/api/v1/optimization/recommendations/{id}/approve

Approves a recommendation.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
segment_id string No Segment UUID Filter by segment.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.

Request body

Key Type Required Values / format Description
opportunity_id string No Optimization opportunity ID Opportunity this recommendation responds to.
recommendation_type string Yes threshold_increase, threshold_decrease, routing_change, evidence_addition, policy_change, experiment The optimization action being proposed.
target_scope object Yes { type, key } Decision type, segment, actor, or policy area affected.
proposed_change object Yes JSON object Candidate change to test or roll out.
status string No draft, reviewing, approved, rejected, archived Review lifecycle status.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

POST /api/v1/optimization/recommendations/{id}/approvehttp
POST /api/v1/optimization/recommendations/{id}/approve HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json

{ ... }
POST/api/v1/optimization/recommendations/{id}/reject

Rejects a recommendation.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
segment_id string No Segment UUID Filter by segment.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.

Request body

Key Type Required Values / format Description
opportunity_id string No Optimization opportunity ID Opportunity this recommendation responds to.
recommendation_type string Yes threshold_increase, threshold_decrease, routing_change, evidence_addition, policy_change, experiment The optimization action being proposed.
target_scope object Yes { type, key } Decision type, segment, actor, or policy area affected.
proposed_change object Yes JSON object Candidate change to test or roll out.
status string No draft, reviewing, approved, rejected, archived Review lifecycle status.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

POST /api/v1/optimization/recommendations/{id}/rejecthttp
POST /api/v1/optimization/recommendations/{id}/reject HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json

{ ... }
POST/api/v1/optimization/recommendations/{id}/archive

Archives a recommendation.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
segment_id string No Segment UUID Filter by segment.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.

Request body

Key Type Required Values / format Description
opportunity_id string No Optimization opportunity ID Opportunity this recommendation responds to.
recommendation_type string Yes threshold_increase, threshold_decrease, routing_change, evidence_addition, policy_change, experiment The optimization action being proposed.
target_scope object Yes { type, key } Decision type, segment, actor, or policy area affected.
proposed_change object Yes JSON object Candidate change to test or roll out.
status string No draft, reviewing, approved, rejected, archived Review lifecycle status.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

POST /api/v1/optimization/recommendations/{id}/archivehttp
POST /api/v1/optimization/recommendations/{id}/archive HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json

{ ... }
GET/api/v1/optimization/simulations

Lists simulations.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
segment_id string No Segment UUID Filter by segment.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /api/v1/optimization/simulationshttp
GET /api/v1/optimization/simulations HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
POST/api/v1/optimization/simulations

Creates an optimization simulation.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
segment_id string No Segment UUID Filter by segment.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.

Request body

Key Type Required Values / format Description
recommendation_id string No Recommendation ID Recommendation being simulated.
simulation_type string Yes threshold_shift, routing_change, policy_change, holdout_replay Simulation strategy.
candidate_definition object Yes JSON object Candidate settings to evaluate.
sample_decision_ids array<string> No Decision IDs Optional explicit replay sample.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

POST /api/v1/optimization/simulationshttp
POST /api/v1/optimization/simulations HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json

{ ... }
GET/api/v1/optimization/simulations/{id}

Gets one simulation.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
segment_id string No Segment UUID Filter by segment.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /api/v1/optimization/simulations/{id}http
GET /api/v1/optimization/simulations/{id} HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
GET/api/v1/optimization/experiments

Lists experiments.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
segment_id string No Segment UUID Filter by segment.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /api/v1/optimization/experimentshttp
GET /api/v1/optimization/experiments HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
POST/api/v1/optimization/experiments

Creates an experiment.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
segment_id string No Segment UUID Filter by segment.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.

Request body

Key Type Required Values / format Description
recommendation_id string No Recommendation ID Recommendation being tested.
simulation_id string No Simulation ID Simulation supporting the experiment.
name string Yes 1-120 characters Experiment name.
traffic_percentage number No 0-100 Traffic allocated to candidate behavior.
guardrails object No JSON object Quality, latency, and business constraints.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

POST /api/v1/optimization/experimentshttp
POST /api/v1/optimization/experiments HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json

{ ... }
GET/api/v1/optimization/experiments/{id}

Gets one experiment.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
segment_id string No Segment UUID Filter by segment.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /api/v1/optimization/experiments/{id}http
GET /api/v1/optimization/experiments/{id} HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
PATCH/api/v1/optimization/experiments/{id}

Updates an experiment.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
segment_id string No Segment UUID Filter by segment.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.

Request body

Key Type Required Values / format Description
recommendation_id string No Recommendation ID Recommendation being tested.
simulation_id string No Simulation ID Simulation supporting the experiment.
name string Yes 1-120 characters Experiment name.
traffic_percentage number No 0-100 Traffic allocated to candidate behavior.
guardrails object No JSON object Quality, latency, and business constraints.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

PATCH /api/v1/optimization/experiments/{id}http
PATCH /api/v1/optimization/experiments/{id} HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json

{ ... }
POST/api/v1/optimization/experiments/{id}/approve

Approves an experiment.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
segment_id string No Segment UUID Filter by segment.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.

Request body

Key Type Required Values / format Description
recommendation_id string No Recommendation ID Recommendation being tested.
simulation_id string No Simulation ID Simulation supporting the experiment.
name string Yes 1-120 characters Experiment name.
traffic_percentage number No 0-100 Traffic allocated to candidate behavior.
guardrails object No JSON object Quality, latency, and business constraints.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

POST /api/v1/optimization/experiments/{id}/approvehttp
POST /api/v1/optimization/experiments/{id}/approve HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json

{ ... }
POST/api/v1/optimization/experiments/{id}/start

Starts an experiment.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
segment_id string No Segment UUID Filter by segment.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.

Request body

Key Type Required Values / format Description
recommendation_id string No Recommendation ID Recommendation being tested.
simulation_id string No Simulation ID Simulation supporting the experiment.
name string Yes 1-120 characters Experiment name.
traffic_percentage number No 0-100 Traffic allocated to candidate behavior.
guardrails object No JSON object Quality, latency, and business constraints.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

POST /api/v1/optimization/experiments/{id}/starthttp
POST /api/v1/optimization/experiments/{id}/start HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json

{ ... }
POST/api/v1/optimization/experiments/{id}/pause

Pauses an experiment.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
segment_id string No Segment UUID Filter by segment.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.

Request body

Key Type Required Values / format Description
recommendation_id string No Recommendation ID Recommendation being tested.
simulation_id string No Simulation ID Simulation supporting the experiment.
name string Yes 1-120 characters Experiment name.
traffic_percentage number No 0-100 Traffic allocated to candidate behavior.
guardrails object No JSON object Quality, latency, and business constraints.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

POST /api/v1/optimization/experiments/{id}/pausehttp
POST /api/v1/optimization/experiments/{id}/pause HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json

{ ... }
POST/api/v1/optimization/experiments/{id}/stop

Stops an experiment.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
segment_id string No Segment UUID Filter by segment.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.

Request body

Key Type Required Values / format Description
recommendation_id string No Recommendation ID Recommendation being tested.
simulation_id string No Simulation ID Simulation supporting the experiment.
name string Yes 1-120 characters Experiment name.
traffic_percentage number No 0-100 Traffic allocated to candidate behavior.
guardrails object No JSON object Quality, latency, and business constraints.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

POST /api/v1/optimization/experiments/{id}/stophttp
POST /api/v1/optimization/experiments/{id}/stop HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json

{ ... }
POST/api/v1/optimization/experiments/{id}/complete

Completes an experiment.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
segment_id string No Segment UUID Filter by segment.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.

Request body

Key Type Required Values / format Description
recommendation_id string No Recommendation ID Recommendation being tested.
simulation_id string No Simulation ID Simulation supporting the experiment.
name string Yes 1-120 characters Experiment name.
traffic_percentage number No 0-100 Traffic allocated to candidate behavior.
guardrails object No JSON object Quality, latency, and business constraints.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

POST /api/v1/optimization/experiments/{id}/completehttp
POST /api/v1/optimization/experiments/{id}/complete HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json

{ ... }
GET/api/v1/optimization/experiments/{id}/snapshots

Lists experiment snapshots.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
segment_id string No Segment UUID Filter by segment.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /api/v1/optimization/experiments/{id}/snapshotshttp
GET /api/v1/optimization/experiments/{id}/snapshots HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
GET/api/v1/optimization/rollout-decisions

Lists rollout decisions.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
segment_id string No Segment UUID Filter by segment.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /api/v1/optimization/rollout-decisionshttp
GET /api/v1/optimization/rollout-decisions HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
POST/api/v1/optimization/rollout-decisions

Creates a rollout decision.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
segment_id string No Segment UUID Filter by segment.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.

Request body

Key Type Required Values / format Description
experiment_id string No Experiment ID Experiment informing the rollout decision.
decision string Yes rollout, hold, rollback, continue_experiment Rollout action.
reason string No Free text Reviewer rationale.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

POST /api/v1/optimization/rollout-decisionshttp
POST /api/v1/optimization/rollout-decisions HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json

{ ... }
GET/api/v1/optimization/rollout-decisions/{id}

Gets one rollout decision.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
segment_id string No Segment UUID Filter by segment.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /api/v1/optimization/rollout-decisions/{id}http
GET /api/v1/optimization/rollout-decisions/{id} HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
GET/api/v1/optimization/impact

Returns impact summaries.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
segment_id string No Segment UUID Filter by segment.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /api/v1/optimization/impacthttp
GET /api/v1/optimization/impact HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
GET/api/v1/optimization/impact/{entityType}/{entityId}

Returns impact for a specific entity.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
segment_id string No Segment UUID Filter by segment.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /api/v1/optimization/impact/{entityType}/{entityId}http
GET /api/v1/optimization/impact/{entityType}/{entityId} HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
GET/api/v1/optimization/audit

Returns optimization audit events.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Query parameters

Key Type Required Values / format Description
decision_type string No Workspace decision type Filter by decision type.
segment_id string No Segment UUID Filter by segment.
from/to string No ISO 8601 Time range.
limit number No 1-100 Page size.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /api/v1/optimization/audithttp
GET /api/v1/optimization/audit HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>

10. Workspace Administration

GET/api/v1/workspace/users

Lists workspace users.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /api/v1/workspace/usershttp
GET /api/v1/workspace/users HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
PATCH/api/v1/workspace/users/{userID}/role

Changes a user's workspace role.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

PATCH /api/v1/workspace/users/{userID}/rolehttp
PATCH /api/v1/workspace/users/{userID}/role HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json

{ ... }
POST/api/v1/workspace/users/{userID}/deactivate

Deactivates a workspace user.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

POST /api/v1/workspace/users/{userID}/deactivatehttp
POST /api/v1/workspace/users/{userID}/deactivate HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json

{ ... }
GET/api/v1/workspace/invitations

Lists workspace invitations.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /api/v1/workspace/invitationshttp
GET /api/v1/workspace/invitations HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
POST/api/v1/workspace/invitations

Creates a workspace invitation.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Request body

Key Type Required Values / format Description
email string Yes Valid email Invitee email.
role_id string Yes Role UUID Assigned role.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

POST /api/v1/workspace/invitationshttp
POST /api/v1/workspace/invitations HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json

{ ... }
POST/api/v1/workspace/invitations/{id}/resend

Resends a workspace invitation.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Request body

Key Type Required Values / format Description
email string Yes Valid email Invitee email.
role_id string Yes Role UUID Assigned role.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

POST /api/v1/workspace/invitations/{id}/resendhttp
POST /api/v1/workspace/invitations/{id}/resend HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json

{ ... }
POST/api/v1/workspace/invitations/{id}/revoke

Revokes a workspace invitation.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Request body

Key Type Required Values / format Description
email string Yes Valid email Invitee email.
role_id string Yes Role UUID Assigned role.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

POST /api/v1/workspace/invitations/{id}/revokehttp
POST /api/v1/workspace/invitations/{id}/revoke HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json

{ ... }
GET/api/v1/workspace/roles

Lists workspace roles.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /api/v1/workspace/roleshttp
GET /api/v1/workspace/roles HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
POST/api/v1/workspace/roles

Creates a workspace role.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Request body

Key Type Required Values / format Description
name string Yes 1-120 chars Role name.
permissions array<string> Yes decisions:read, decisions:write, analytics:read, alerts:write, workspace:admin, optimization:read, optimization:write Role permissions.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

POST /api/v1/workspace/roleshttp
POST /api/v1/workspace/roles HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json

{ ... }
PATCH/api/v1/workspace/roles/{id}

Updates a workspace role.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Request body

Key Type Required Values / format Description
name string Yes 1-120 chars Role name.
permissions array<string> Yes decisions:read, decisions:write, analytics:read, alerts:write, workspace:admin, optimization:read, optimization:write Role permissions.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

PATCH /api/v1/workspace/roles/{id}http
PATCH /api/v1/workspace/roles/{id} HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json

{ ... }
DELETE/api/v1/workspace/roles/{id}

Deletes a workspace role.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

DELETE /api/v1/workspace/roles/{id}http
DELETE /api/v1/workspace/roles/{id} HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
GET/api/v1/workspace/api-keys

Lists workspace API keys.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /api/v1/workspace/api-keyshttp
GET /api/v1/workspace/api-keys HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
POST/api/v1/workspace/api-keys

Creates a workspace API key.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Request body

Key Type Required Values / format Description
name string Yes 1-120 chars Key name.
scopes array<string> Yes decisions:write, decisions:read, analytics:read, observability:read, intelligence:read API key scopes.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

POST /api/v1/workspace/api-keyshttp
POST /api/v1/workspace/api-keys HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json

{ ... }
POST/api/v1/workspace/api-keys/{id}/revoke

Revokes an API key.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Request body

Key Type Required Values / format Description
name string Yes 1-120 chars Key name.
scopes array<string> Yes decisions:write, decisions:read, analytics:read, observability:read, intelligence:read API key scopes.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

POST /api/v1/workspace/api-keys/{id}/revokehttp
POST /api/v1/workspace/api-keys/{id}/revoke HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json

{ ... }
POST/api/v1/workspace/api-keys/{id}/rotate

Rotates an API key.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Request body

Key Type Required Values / format Description
name string Yes 1-120 chars Key name.
scopes array<string> Yes decisions:write, decisions:read, analytics:read, observability:read, intelligence:read API key scopes.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

POST /api/v1/workspace/api-keys/{id}/rotatehttp
POST /api/v1/workspace/api-keys/{id}/rotate HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json

{ ... }
GET/api/v1/workspace/audit

Returns workspace audit events.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /api/v1/workspace/audithttp
GET /api/v1/workspace/audit HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>

11. Workspace Decision Configuration

GET/api/v1/workspace/decision-config

Returns the active workspace decision configuration.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /api/v1/workspace/decision-confighttp
GET /api/v1/workspace/decision-config HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
PUT/api/v1/workspace/decision-config

Replaces the workspace decision configuration.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Request body

Key Type Required Values / format Description
config.actions.permissive array<string> No Workspace actions such as allow, approve Actions interpreted as permissive.
config.actions.restrictive array<string> No Workspace actions such as deny, reject, block Actions interpreted as restrictive.
config.actions.review array<string> No Workspace actions such as review, escalate Actions interpreted as manual or deferred review.
config.outcome_mappings object No positive, neutral, negative buckets Maps downstream outcome values into quality semantics.
config.quality_policy object No score weights and windows Controls quality score calculations.
config.observability_thresholds object No metric thresholds Controls dashboard and alert thresholds.
config.optimization_guardrails object No limits and safety constraints Controls recommendation and experiment safety bounds.
completed boolean No true, false Marks configuration onboarding as complete.
change_summary string No Free text Audit summary for the configuration change.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

PUT /api/v1/workspace/decision-confighttp
PUT /api/v1/workspace/decision-config HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json

{ ... }
GET/api/v1/workspace/decision-config/defaults

Returns default decision configuration values.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /api/v1/workspace/decision-config/defaultshttp
GET /api/v1/workspace/decision-config/defaults HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
POST/api/v1/workspace/decision-config/validate

Validates a proposed decision configuration.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Request body

Key Type Required Values / format Description
config.actions.permissive array<string> No Workspace actions such as allow, approve Actions interpreted as permissive.
config.actions.restrictive array<string> No Workspace actions such as deny, reject, block Actions interpreted as restrictive.
config.actions.review array<string> No Workspace actions such as review, escalate Actions interpreted as manual or deferred review.
config.outcome_mappings object No positive, neutral, negative buckets Maps downstream outcome values into quality semantics.
config.quality_policy object No score weights and windows Controls quality score calculations.
config.observability_thresholds object No metric thresholds Controls dashboard and alert thresholds.
config.optimization_guardrails object No limits and safety constraints Controls recommendation and experiment safety bounds.
completed boolean No true, false Marks configuration onboarding as complete.
change_summary string No Free text Audit summary for the configuration change.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

POST /api/v1/workspace/decision-config/validatehttp
POST /api/v1/workspace/decision-config/validate HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json

{ ... }
POST/api/v1/workspace/decision-config/preview-quality

Previews quality calculations for a proposed configuration.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Request body

Key Type Required Values / format Description
config.actions.permissive array<string> No Workspace actions such as allow, approve Actions interpreted as permissive.
config.actions.restrictive array<string> No Workspace actions such as deny, reject, block Actions interpreted as restrictive.
config.actions.review array<string> No Workspace actions such as review, escalate Actions interpreted as manual or deferred review.
config.outcome_mappings object No positive, neutral, negative buckets Maps downstream outcome values into quality semantics.
config.quality_policy object No score weights and windows Controls quality score calculations.
config.observability_thresholds object No metric thresholds Controls dashboard and alert thresholds.
config.optimization_guardrails object No limits and safety constraints Controls recommendation and experiment safety bounds.
completed boolean No true, false Marks configuration onboarding as complete.
change_summary string No Free text Audit summary for the configuration change.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

POST /api/v1/workspace/decision-config/preview-qualityhttp
POST /api/v1/workspace/decision-config/preview-quality HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json

{ ... }
POST/api/v1/workspace/decision-config/preview-simulation

Previews optimization simulation behavior for a proposed configuration.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Request body

Key Type Required Values / format Description
config.actions.permissive array<string> No Workspace actions such as allow, approve Actions interpreted as permissive.
config.actions.restrictive array<string> No Workspace actions such as deny, reject, block Actions interpreted as restrictive.
config.actions.review array<string> No Workspace actions such as review, escalate Actions interpreted as manual or deferred review.
config.outcome_mappings object No positive, neutral, negative buckets Maps downstream outcome values into quality semantics.
config.quality_policy object No score weights and windows Controls quality score calculations.
config.observability_thresholds object No metric thresholds Controls dashboard and alert thresholds.
config.optimization_guardrails object No limits and safety constraints Controls recommendation and experiment safety bounds.
completed boolean No true, false Marks configuration onboarding as complete.
change_summary string No Free text Audit summary for the configuration change.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

POST /api/v1/workspace/decision-config/preview-simulationhttp
POST /api/v1/workspace/decision-config/preview-simulation HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json

{ ... }
GET/api/v1/workspace/decision-config/coverage

Returns configuration coverage across observed decisions, actions, outcomes, actors, and evidence labels.

Auth. Authorization: Bearer access token plus X-Tenant-ID.

Returns. JSON response containing the requested resource, list, status update, or validation result. Error responses use the standard error envelope with code, message, details, request_id, and correlation_id.

GET /api/v1/workspace/decision-config/coveragehttp
GET /api/v1/workspace/decision-config/coverage HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>