Skip to main content

Worked request and response samples

Copy a request body as written, substitute your own ids, and compare the response envelope. Errors follow Devotel Orbit’s { error, meta } envelope, shown once below under Error envelope.
Auto-winner governance. POST /campaigns/{id}/variants accepts three optional knobs that gate the automatic winner-promotion scheduler: ab_auto_promote (boolean | null — false keeps every promotion behind the manual POST /campaigns/{id}/ab-select-winner call, null resets to the default true), ab_min_sample_size (integer | null — deliveries the leading variant must reach before an automatic verdict, 10–1,000,000, null resets to the default 30), and ab_confidence_threshold (number | null — Bayesian posterior confidence required to promote, 0.500–0.999, null resets to the default 0.950). GET /campaigns/{id}/ab-results echoes those settings together with a live auto_winner_progress snapshot — the gate values the evaluator currently applies, the current leader, and whether it would already lock — so a dashboard can render real progress toward an automatic verdict. See the A/B testing guide.
Cross-channel governance in one call. GET /campaigns/{id}/governance-summary aggregates the four governance primitives a campaign’s settings panel previously issued four separate calls for: the A/B(n) experiment config plus auto-winner governance, the control hold-out cohort, the resolved quiet-hours window (with campaign / org_default / platform_default source attribution), and the effective frequency-cap rules — global rules folded in alongside channel-scoped rules, each labelled applies: true|false so the dashboard can place the badge without re-admitting the org-wide caps list client-side. Use this ONE round-trip when you render the “rules in effect” card; the individual sources stay available if you only want one.

Create a campaign

POST /api/v1/campaigns/
Request

Check for overlapping schedules

POST /api/v1/campaigns/check-schedule-conflicts
Request

Launch the campaign

POST /api/v1/campaigns/{id}/send

Error envelope

422