Director
POST/api/v1/director/policies
Authorization
bearer_token In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Create (or version) a pacing policy. Admin only.
Response Body
application/json
curl -X POST "https://example.com/api/v1/director/policies" \ -H "Content-Type: application/json" \ -d '{ "budgets": { "ease_off_min_seconds": 0.1, "event_budget_per_cycle": 0, "min_seconds_between_peaks": 0.1, "spawn_budget_per_cycle": 0 }, "estimator": { "clamp": [ 0.1 ], "decay_half_life_seconds": 0.1 }, "id": "string", "signal_weights": { "property1": 0.1, "property2": 0.1 }, "target_curve": { "cycle_seconds": 0.1, "floor_intensity": 0.1, "peak_intensity": 0.1, "tolerance_band": 0.1 } }'{ "created_at": "2019-08-24T14:15:22Z", "policy_id": "string", "version": 0}GET/api/v1/director/policies/{policy_id}
Authorization
bearer_token In: header
Path Parameters
Response Body
application/json
curl -X GET "https://example.com/api/v1/director/policies/string"{ "policy": { "budgets": { "ease_off_min_seconds": 0.1, "event_budget_per_cycle": 0, "min_seconds_between_peaks": 0.1, "spawn_budget_per_cycle": 0 }, "created_at": "2019-08-24T14:15:22Z", "created_by": "string", "deterministic": { "per_session_seed": true }, "estimator": { "clamp": [ 0.1 ], "decay_half_life_seconds": 0.1 }, "id": "string", "signal_weights": { "property1": 0.1, "property2": 0.1 }, "target_curve": { "cycle_seconds": 0.1, "floor_intensity": 0.1, "peak_intensity": 0.1, "shape": "sawtooth_relax", "tolerance_band": 0.1 }, "updated_at": "2019-08-24T14:15:22Z", "variant_split": { "arms": [ { "label": "string", "weight": 0 } ], "control_label": "string", "gate_flag_key": "string" }, "version": 0 }}GET/api/v1/director/policies/{policy_id}/analytics
Authorization
bearer_token In: header
Path Parameters
Query Parameters
When true, break metrics down by A/B variant.
Response Body
application/json
curl -X GET "https://example.com/api/v1/director/policies/string/analytics"{ "overall": { "completion_rate": 0.1, "mean_realized_intensity": 0.1, "mean_target_intensity": 0.1, "outcomes": { "abandon": 0, "completion": 0, "rage_quit": 0 }, "peak_count": 0, "rage_quit_rate": 0.1, "sessions": 0, "time_in_band_ratio": 0.1, "variant": "string" }, "policy_id": "string", "total_sessions": 0, "variants": [ { "completion_rate": 0.1, "mean_realized_intensity": 0.1, "mean_target_intensity": 0.1, "outcomes": { "abandon": 0, "completion": 0, "rage_quit": 0 }, "peak_count": 0, "rage_quit_rate": 0.1, "sessions": 0, "time_in_band_ratio": 0.1, "variant": "string" } ]}GET/api/v1/director/policies/{policy_id}/versions
Authorization
bearer_token In: header
Path Parameters
Response Body
application/json
curl -X GET "https://example.com/api/v1/director/policies/string/versions"{ "current_version": 0, "policy_id": "string", "versions": [ 0 ]}POST/api/v1/director/sessions
Authorization
bearer_token In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Start a director session bound to a policy.
Response Body
application/json
curl -X POST "https://example.com/api/v1/director/sessions" \ -H "Content-Type: application/json" \ -d '{ "policy_id": "string" }'{ "policy_id": "string", "policy_version": 0, "scope": "per_session", "seed": 0, "session_id": "string", "started_at": "2019-08-24T14:15:22Z", "variant": "string"}GET/api/v1/director/sessions/{session_id}
Authorization
bearer_token In: header
Path Parameters
Response Body
application/json
curl -X GET "https://example.com/api/v1/director/sessions/string"{ "budgets_remaining": { "event": 0, "spawn": 0 }, "estimate": { "as_of": "2019-08-24T14:15:22Z", "intensity": 0.1 }, "last_peak_at": "2019-08-24T14:15:22Z", "policy_id": "string", "policy_version": 0, "scope": "per_session", "seed": 0, "session_id": "string", "started_at": "2019-08-24T14:15:22Z", "variant": "string", "world_context": { "use_virtual_time": true, "world_id": "string" }}GET/api/v1/director/sessions/{session_id}/curve
Authorization
bearer_token In: header
Path Parameters
Response Body
application/json
curl -X GET "https://example.com/api/v1/director/sessions/string/curve"{ "decisions": [ { "action": { "cooldown_seconds": 0.1, "cost": 0, "size": 0, "type": "spawn_wave" }, "at": "2019-08-24T14:15:22Z", "current_intensity": 0.1, "decision_index": 0, "phase": "build_up", "rationale": "string", "seed_draw": 0.1, "session_id": "string", "target_intensity": 0.1 } ], "session_id": "string", "target_curve": { "cycle_seconds": 0.1, "floor_intensity": 0.1, "peak_intensity": 0.1, "shape": "sawtooth_relax", "tolerance_band": 0.1 }, "trajectory": [ { "at": "2019-08-24T14:15:22Z", "phase": "build_up", "realized_intensity": 0.1, "target_intensity": 0.1 } ]}GET/api/v1/director/sessions/{session_id}/decision
Authorization
bearer_token In: header
Path Parameters
Response Body
application/json
curl -X GET "https://example.com/api/v1/director/sessions/string/decision"{ "budgets_remaining": { "event": 0, "spawn": 0 }, "decision": { "action": { "cooldown_seconds": 0.1, "cost": 0, "size": 0, "type": "spawn_wave" }, "at": "2019-08-24T14:15:22Z", "current_intensity": 0.1, "decision_index": 0, "phase": "build_up", "rationale": "string", "seed_draw": 0.1, "session_id": "string", "target_intensity": 0.1 }}POST/api/v1/director/sessions/{session_id}/outcome
Authorization
bearer_token In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Record an outcome signal for a session, closing the tuning loop.
Response Body
application/json
curl -X POST "https://example.com/api/v1/director/sessions/string/outcome" \ -H "Content-Type: application/json" \ -d '{ "outcome": "completion" }'{ "count": 0, "session_id": "string", "variant": "string"}POST/api/v1/director/sessions/{session_id}/signal
Authorization
bearer_token In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Report one or more weighted intensity signals for a session.
Response Body
application/json
curl -X POST "https://example.com/api/v1/director/sessions/string/signal" \ -H "Content-Type: application/json" \ -d '{ "signals": [ { "magnitude": 0.1, "type": "string" } ] }'{ "accepted": 0, "budgets_remaining": { "event": 0, "spawn": 0 }, "decision": null, "estimate": { "as_of": "2019-08-24T14:15:22Z", "intensity": 0.1 }, "session_id": "string"}POST/api/v1/director/sessions/{session_id}/subscribe
Authorization
bearer_token In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Provision push delivery of decisions for a session.
Response Body
application/json
curl -X POST "https://example.com/api/v1/director/sessions/string/subscribe" \ -H "Content-Type: application/json" \ -d '{ "channel": "pubsub", "target": "string" }'{ "message": "string", "subscription": { "channel": "pubsub", "created_at": "2019-08-24T14:15:22Z", "created_by": "string", "session_id": "string", "target": "string", "webhook_id": "string" }}