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.
X-API-Key. Workspace administration and authenticated
user flows use Authorization: Bearer ... with
X-Tenant-ID.
X-API-Key: dl_live_... Authorization: Bearer eyJ... X-Tenant-ID: tenant_123 Content-Type: application/json
1. System
/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 /health HTTP/1.1 Host: api.decisionslayer.com
2. Auth
/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/signup HTTP/1.1
Host: api.decisionslayer.com
Content-Type: application/json
{ ... }
/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/login HTTP/1.1
Host: api.decisionslayer.com
Content-Type: application/json
{ ... }
/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/refresh HTTP/1.1
Host: api.decisionslayer.com
Content-Type: application/json
{ ... }
/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/logout HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json
{ ... }
/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/me HTTP/1.1 Host: api.decisionslayer.com Authorization: Bearer <token> X-Tenant-ID: <tenant_id>
/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/me HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json
{ ... }
/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/workspaces HTTP/1.1 Host: api.decisionslayer.com Authorization: Bearer <token> X-Tenant-ID: <tenant_id>
/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-password HTTP/1.1
Host: api.decisionslayer.com
Content-Type: application/json
{ ... }
/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-password HTTP/1.1
Host: api.decisionslayer.com
Content-Type: application/json
{ ... }
/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-email HTTP/1.1
Host: api.decisionslayer.com
Content-Type: application/json
{ ... }
/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/accept HTTP/1.1
Host: api.decisionslayer.com
Content-Type: application/json
{ ... }
3. Tenant and Workspace Settings
/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/settings HTTP/1.1 Host: api.decisionslayer.com Authorization: Bearer <token> X-Tenant-ID: <tenant_id>
/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/settings HTTP/1.1 Host: api.decisionslayer.com Authorization: Bearer <token> X-Tenant-ID: <tenant_id>
/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/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
/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/decisions HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json
{ ... }
/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/decisions HTTP/1.1 Host: api.decisionslayer.com Authorization: Bearer <token> X-Tenant-ID: <tenant_id>
/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/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
/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}/quality HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
/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}/outcomes HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json
{ ... }
/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-suggestions HTTP/1.1 Host: api.decisionslayer.com Authorization: Bearer <token> X-Tenant-ID: <tenant_id>
/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}/timeline HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
5. Analytics and Observability
/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/dashboard HTTP/1.1 Host: api.decisionslayer.com Authorization: Bearer <token> X-Tenant-ID: <tenant_id>
/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/effectiveness HTTP/1.1 Host: api.decisionslayer.com Authorization: Bearer <token> X-Tenant-ID: <tenant_id>
/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/summary HTTP/1.1 Host: api.decisionslayer.com Authorization: Bearer <token> X-Tenant-ID: <tenant_id>
/api/v1/observability/trends
Returns trend series for 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/trends HTTP/1.1 Host: api.decisionslayer.com Authorization: Bearer <token> X-Tenant-ID: <tenant_id>
/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/evidence HTTP/1.1 Host: api.decisionslayer.com Authorization: Bearer <token> X-Tenant-ID: <tenant_id>
/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/actors HTTP/1.1 Host: api.decisionslayer.com Authorization: Bearer <token> X-Tenant-ID: <tenant_id>
/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/latency HTTP/1.1 Host: api.decisionslayer.com Authorization: Bearer <token> X-Tenant-ID: <tenant_id>
6. Anomalies
/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/anomalies HTTP/1.1 Host: api.decisionslayer.com Authorization: Bearer <token> X-Tenant-ID: <tenant_id>
/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/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
/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}/acknowledge HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json
{ ... }
/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}/resolve HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json
{ ... }
7. Alerts
/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-rules HTTP/1.1 Host: api.decisionslayer.com Authorization: Bearer <token> X-Tenant-ID: <tenant_id>
/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-rules HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json
{ ... }
/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/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json
{ ... }
/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}/disable HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json
{ ... }
/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}/enable HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json
{ ... }
/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-events HTTP/1.1 Host: api.decisionslayer.com Authorization: Bearer <token> X-Tenant-ID: <tenant_id>
/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/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
/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}/acknowledge HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json
{ ... }
/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}/resolve HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json
{ ... }
8. Intelligence
/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-rules HTTP/1.1 Host: api.decisionslayer.com Authorization: Bearer <token> X-Tenant-ID: <tenant_id>
/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-rules HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json
{ ... }
/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/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json
{ ... }
/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}/disable HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json
{ ... }
/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}/enable HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json
{ ... }
/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-summary HTTP/1.1 Host: api.decisionslayer.com Authorization: Bearer <token> X-Tenant-ID: <tenant_id>
/api/v1/intelligence/quality-trends
Returns quality trend series.
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-trends HTTP/1.1 Host: api.decisionslayer.com Authorization: Bearer <token> X-Tenant-ID: <tenant_id>
/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-options HTTP/1.1 Host: api.decisionslayer.com Authorization: Bearer <token> X-Tenant-ID: <tenant_id>
/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-correlation HTTP/1.1 Host: api.decisionslayer.com Authorization: Bearer <token> X-Tenant-ID: <tenant_id>
/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/actors HTTP/1.1 Host: api.decisionslayer.com Authorization: Bearer <token> X-Tenant-ID: <tenant_id>
/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/patterns HTTP/1.1 Host: api.decisionslayer.com Authorization: Bearer <token> X-Tenant-ID: <tenant_id>
/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/segments HTTP/1.1 Host: api.decisionslayer.com Authorization: Bearer <token> X-Tenant-ID: <tenant_id>
/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/segments HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json
{ ... }
/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/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json
{ ... }
/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/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
/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-drift HTTP/1.1 Host: api.decisionslayer.com Authorization: Bearer <token> X-Tenant-ID: <tenant_id>
/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/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
/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}/acknowledge HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json
{ ... }
/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}/resolve HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json
{ ... }
9. Optimization
/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/opportunities HTTP/1.1 Host: api.decisionslayer.com Authorization: Bearer <token> X-Tenant-ID: <tenant_id>
/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/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
/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/recommendations HTTP/1.1 Host: api.decisionslayer.com Authorization: Bearer <token> X-Tenant-ID: <tenant_id>
/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/recommendations HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json
{ ... }
/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/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
/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/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json
{ ... }
/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}/review HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json
{ ... }
/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}/approve HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json
{ ... }
/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}/reject HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json
{ ... }
/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}/archive HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json
{ ... }
/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/simulations HTTP/1.1 Host: api.decisionslayer.com Authorization: Bearer <token> X-Tenant-ID: <tenant_id>
/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/simulations HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json
{ ... }
/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/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
/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/experiments HTTP/1.1 Host: api.decisionslayer.com Authorization: Bearer <token> X-Tenant-ID: <tenant_id>
/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/experiments HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json
{ ... }
/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/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
/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/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json
{ ... }
/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}/approve HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json
{ ... }
/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}/start HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json
{ ... }
/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}/pause HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json
{ ... }
/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}/stop HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json
{ ... }
/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}/complete HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json
{ ... }
/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}/snapshots HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
/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-decisions HTTP/1.1 Host: api.decisionslayer.com Authorization: Bearer <token> X-Tenant-ID: <tenant_id>
/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-decisions HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json
{ ... }
/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/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
/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/impact HTTP/1.1 Host: api.decisionslayer.com Authorization: Bearer <token> X-Tenant-ID: <tenant_id>
/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/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
/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/audit HTTP/1.1 Host: api.decisionslayer.com Authorization: Bearer <token> X-Tenant-ID: <tenant_id>
10. Workspace Administration
/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/users HTTP/1.1 Host: api.decisionslayer.com Authorization: Bearer <token> X-Tenant-ID: <tenant_id>
/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}/role HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json
{ ... }
/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}/deactivate HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json
{ ... }
/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/invitations HTTP/1.1 Host: api.decisionslayer.com Authorization: Bearer <token> X-Tenant-ID: <tenant_id>
/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/invitations HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json
{ ... }
/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}/resend HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json
{ ... }
/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}/revoke HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json
{ ... }
/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/roles HTTP/1.1 Host: api.decisionslayer.com Authorization: Bearer <token> X-Tenant-ID: <tenant_id>
/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/roles HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json
{ ... }
/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/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json
{ ... }
/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/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
/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-keys HTTP/1.1 Host: api.decisionslayer.com Authorization: Bearer <token> X-Tenant-ID: <tenant_id>
/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-keys HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json
{ ... }
/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}/revoke HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json
{ ... }
/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}/rotate HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json
{ ... }
/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/audit HTTP/1.1 Host: api.decisionslayer.com Authorization: Bearer <token> X-Tenant-ID: <tenant_id>
11. Workspace Decision Configuration
/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-config HTTP/1.1 Host: api.decisionslayer.com Authorization: Bearer <token> X-Tenant-ID: <tenant_id>
/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-config HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json
{ ... }
/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/defaults HTTP/1.1 Host: api.decisionslayer.com Authorization: Bearer <token> X-Tenant-ID: <tenant_id>
/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/validate HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json
{ ... }
/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-quality HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json
{ ... }
/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-simulation HTTP/1.1
Host: api.decisionslayer.com
Authorization: Bearer <token>
X-Tenant-ID: <tenant_id>
Content-Type: application/json
{ ... }
/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/coverage HTTP/1.1 Host: api.decisionslayer.com Authorization: Bearer <token> X-Tenant-ID: <tenant_id>