DealSleek API · Marketing
PreviewCreate Experiment
Create an A/B experiment on a campaign.
/api/v1/marketing/dispatchHeaders
AuthorizationstringRequiredAccess token of the signed-in user, as a Bearer token. It identifies the user, their role and the workspace.
X-CQRS-ActionstringRequiredNames the command to run. Must be
CREATE_EXPERIMENTfor this endpoint.Content-TypestringRequiredAlways
application/json.X-Idempotency-KeystringOptionalA key you choose that is unique to this attempt. A command repeated with the same key is not applied a second time.
X-Correlation-IdstringOptionalYour own identifier for the request. Returned in the
x-correlation-idresponse header; generated when you leave it out.
Request body
campaign_iduuidRequiredNo description yet.
namestringRequiredNo description yet.
- minimum length 1
tenant_iduuidRequiredNo description yet.
variantsarray of objectRequired2+ variants; allocations sum to 100.
4 child fields
kindenumRequiredWhich arm of the experiment a variant represents.
- Allowed values
- CONTROL
- TREATMENT
namestringRequiredNo description yet.
- minimum length 1
traffic_allocation_pctintegerRequiredInteger percentage 0..=100. Across the variants of one experiment, this MUST sum to 100. Validated in execute_create_experiment.
contentobject or nullOptionalWhat's being tested. Optional individual fields keep the wire shape flexible — email A/B tests use headline+body, ad A/B tests use headline+image_url, SMS uses just body, etc. The narrator's "winning headline" answer reads these.
5 child fields
bodystring or nullOptionalNo description yet.
ctaTextstring or nullOptionalNo description yet.
headlinestring or nullOptionalNo description yet.
imageUrlstring or nullOptionalNo description yet.
templateIduuid or nullOptionalNo description yet.
alphanumber or nullOptionalNo description yet.
min_detectable_effectnumber or nullOptional0..1, absolute lift in primary_metric units. Hidden under the Advanced toggle like statistical_test/power/alpha, so it's Optional with the same unwrap_or default pattern — the collapsed-Advanced flow omits it.
powernumber or nullOptionalNo description yet.
primary_metricstringOptionalNo description yet.
statistical_testenum or nullOptionalNo description yet.
- Allowed values
- WELCH
- BAYESIAN
- CHI_SQUARED
Response
Status 202. The command was applied. The body reports the outcome and, where the command changes a record, that record's new state.
successbooleanRequiredtruewhen the command was applied.error_messagestringRequiredEmpty when the command was applied.
projected_stateobjectOptionalThe record as it stands after the command.
event_payloadobjectOptionalThe event the command recorded.
insightsarray of objectOptionalAdvisory notes about the result. Each has a
code, amessageand animpactnumber.
Errors
Every error carries an HTTP status. Where it also carries a code, branch on the code, not on the message.
- 400
X-CQRS-Actionis missing or names a command this route does not accept. SendCREATE_EXPERIMENT. - 400
DOMAIN_ROUTINGThe body is not a valid command. Check the required fields and their types. - 401The access token is missing, expired or not valid.
- 401
L1_AUTHThe caller's role is belowmanageror the caller has no access to this record. - 403
L1_POLICYA business rule refused the command. The message names the rule. - 409
L1_IDEMPOTENCYA command with this idempotency key was already applied. - 409
CONFLICTThe command would duplicate a record that must be unique. - 500
L3_COMMITThe command was valid but could not be saved.