Validate experiment (A/A placebo or drift check)
Before the test starts: an A/A placebo — the pre period is split in half and the exact inference runs with the second half as a fake post. A placebo lift significant in EITHER direction (aa_pass: false, abs(z) ≥ 1.96) means the market pairing is invalid; market_match_quality is the synthetic-control fit R². While running: an interim read — lift so far (labeled peeking: true), and drift_detected when outlier days appear inside the test window. control_shift_z is reported but is informational only: control regions are held out, so their level shift vs pre is the intended treatment contrast, not drift.
curl -X GET "https://mythic-analytics.gulp.workers.dev/client/v1/incrementality/experiments/123e4567-e89b-12d3-a456-426614174000/validate" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN"
import requests
import json
url = "https://mythic-analytics.gulp.workers.dev/client/v1/incrementality/experiments/123e4567-e89b-12d3-a456-426614174000/validate"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN"
}
response = requests.get(url, headers=headers)
print(response.json())
const response = await fetch("https://mythic-analytics.gulp.workers.dev/client/v1/incrementality/experiments/123e4567-e89b-12d3-a456-426614174000/validate", {
method: "GET",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN"
}
});
const data = await response.json();
console.log(data);
package main
import (
"fmt"
"net/http"
)
func main() {
req, err := http.NewRequest("GET", "https://mythic-analytics.gulp.workers.dev/client/v1/incrementality/experiments/123e4567-e89b-12d3-a456-426614174000/validate", nil)
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Bearer YOUR_API_TOKEN")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("Response Status:", resp.Status)
}
require 'net/http'
require 'json'
uri = URI('https://mythic-analytics.gulp.workers.dev/client/v1/incrementality/experiments/123e4567-e89b-12d3-a456-426614174000/validate')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Get.new(uri)
request['Content-Type'] = 'application/json'
request['Authorization'] = 'Bearer YOUR_API_TOKEN'
response = http.request(request)
puts response.body
{
"success": true,
"data": {
"mode": "aa",
"phase": "example_string",
"aa_pass": true,
"market_match_quality": 3.14,
"drift_detected": true,
"drift_outlier_days": [
"2024-12-25"
],
"peeking": true
}
}
{
"error": "Not Found",
"message": "The requested resource was not found",
"code": 404
}
{
"error": "Unprocessable Entity",
"message": "The request was well-formed but contains semantic errors",
"code": 422,
"details": [
{
"field": "password",
"message": "Password must be at least 8 characters long"
}
]
}
{
"error": "Too Many Requests",
"message": "Rate limit exceeded. Please try again later",
"code": 429,
"retryAfter": 3600
}
{
"error": "Error",
"message": "Upstream data store returned an error.",
"code": 502
}
/client/v1/incrementality/experiments/{id}/validateTarget server for requests. Edit to use your own host.
Client key as bearer token. Use an agency key (Bearer ak_...) for read-write access or a location secret key (Bearer sk_...) for read-only access. Scoped keys (mcp_) are accepted too and need incrementality:read or incrementality:write. See Using an mcp_ key over HTTP.
Bearer ak_...) for read-write access or a location secret key (Bearer sk_...) for read-only access. Scoped keys (mcp_) are accepted too and need incrementality:read or incrementality:write. See Using an mcp_ key over HTTP.
Experiment identifier.
Request Preview
Response
Response will appear here after sending the request
Authentication
Bearer token. Client key as bearer token. Use an agency key (Bearer ak_...) for read-write access or a location secret key (Bearer sk_...) for read-only access. Scoped keys (mcp_) are accepted too and need incrementality:read or incrementality:write. See Using an mcp_ key over HTTP.
Path Parameters
Experiment identifier.
Responses
Mode-specific verdict fields plus the full inference detail (same fields as ExperimentResult, without spend ratios).