experiments
GET
https://lucida.15-204-158-166.sslip.io /v1/experiment-assets/{project_id}/{name} Parameters
project_idstringpathrequirednamestringpathrequired{uuid}.{png|jpg|gif|webp} from the uploadCode samples
cURL
curl -X GET "https://lucida.15-204-158-166.sslip.io/v1/experiment-assets/{project_id}/{name}"TypeScript
Python
Go
PHP
Ruby
Java
Responses
200 the image (public, immutable)
404
GET
https://lucida.15-204-158-166.sslip.io /v1/projects/{project_id}/experiment-defaults Parameters
project_idstringpathrequiredCode samples
cURL
curl -X GET "https://lucida.15-204-158-166.sslip.io/v1/projects/{project_id}/experiment-defaults"TypeScript
Python
Go
PHP
Ruby
Java
Responses
200 partial stats config applied to new experiments
404
PUT
https://lucida.15-204-158-166.sslip.io /v1/projects/{project_id}/experiment-defaults Parameters
project_idstringpathrequiredRequest body
application/json
partial stats config, for example {"cuped": true}
{}Code samples
cURL
curl -X PUT "https://lucida.15-204-158-166.sslip.io/v1/projects/{project_id}/experiment-defaults" \
-H "Content-Type: application/json" \
-d '{}'TypeScript
Python
Go
PHP
Ruby
Java
Responses
200 the stored defaults
400
404
GET
https://lucida.15-204-158-166.sslip.io /v1/projects/{project_id}/experiment-ideas Parameters
project_idstringpathrequiredstagestringquerylimitintegerquerycursorstringqueryCode samples
cURL
curl -X GET "https://lucida.15-204-158-166.sslip.io/v1/projects/{project_id}/experiment-ideas"TypeScript
Python
Go
PHP
Ruby
Java
Responses
200 Page of Idea, newest first
404
POST
https://lucida.15-204-158-166.sslip.io /v1/projects/{project_id}/experiment-ideas Parameters
project_idstringpathrequiredRequest body
application/json
evidencearray[{kind: replay|heatmap|funnel_step|insight|friction, ref, label?, step?}]hypothesisstring"If we <change>, then <metric> improves because <reason>".
scoreobject{model: ice|pie, impact|potential, confidence|importance, ease}, each 1 to 10.sourcestringmanual (default) or ai for a kept suggestion.tagsarraytitlestringrequired{
"evidence": [
{}
],
"hypothesis": "string",
"score": {},
"source": "string",
"tags": [
"string"
],
"title": "string"
}Code samples
cURL
curl -X POST "https://lucida.15-204-158-166.sslip.io/v1/projects/{project_id}/experiment-ideas" \
-H "Content-Type: application/json" \
-d '{"evidence":[{}],"hypothesis":"string","score":{},"source":"string","tags":["string"],"title":"string"}'TypeScript
Python
Go
PHP
Ruby
Java
Responses
201
Example
{
"created_at": "2024-01-01T00:00:00Z",
"created_by": "string",
"evidence": [
{}
],
"experiment_id": "string",
"experiment_status": "string",
"hypothesis": "string",
"id": "string",
"score": {},
"source": "string",
"stage": "string",
"tags": [
"string"
],
"title": "string",
"updated_at": "2024-01-01T00:00:00Z"
}Schema
created_atstringrequiredcreated_bystringevidenceobject[]required[{kind, ref, label?, step?}]experiment_idstringexperiment_statusstringStatus of the promoted experiment, when there is one.
hypothesisstringrequiredidstringrequiredscoreobject{model: ice|pie, <factors>, total}sourcestringrequiredmanual | aistagestringrequiredStored stage:
idea | scored | ready | running | done | dropped.tagsstring[]requiredtitlestringrequiredupdated_atstringrequired400
403
404
GET
https://lucida.15-204-158-166.sslip.io /v1/projects/{project_id}/experiment-ideas/{id} Parameters
project_idstringpathrequiredidstringpathrequiredCode samples
cURL
curl -X GET "https://lucida.15-204-158-166.sslip.io/v1/projects/{project_id}/experiment-ideas/{id}"TypeScript
Python
Go
PHP
Ruby
Java
DELETE
https://lucida.15-204-158-166.sslip.io /v1/projects/{project_id}/experiment-ideas/{id} Parameters
project_idstringpathrequiredidstringpathrequiredCode samples
cURL
curl -X DELETE "https://lucida.15-204-158-166.sslip.io/v1/projects/{project_id}/experiment-ideas/{id}"TypeScript
Python
Go
PHP
Ruby
Java
Responses
204
403
404
PATCH
https://lucida.15-204-158-166.sslip.io /v1/projects/{project_id}/experiment-ideas/{id} Parameters
project_idstringpathrequiredidstringpathrequiredRequest body
application/json
evidencearrayhypothesisstringscoreobjectstagestringidea | scored | ready | droppedtagsarraytitlestring{
"evidence": [
{}
],
"hypothesis": "string",
"score": {},
"stage": "string",
"tags": [
"string"
],
"title": "string"
}Code samples
cURL
curl -X PATCH "https://lucida.15-204-158-166.sslip.io/v1/projects/{project_id}/experiment-ideas/{id}" \
-H "Content-Type: application/json" \
-d '{"evidence":[{}],"hypothesis":"string","score":{},"stage":"string","tags":["string"],"title":"string"}'TypeScript
Python
Go
PHP
Ruby
Java
POST
https://lucida.15-204-158-166.sslip.io /v1/projects/{project_id}/experiment-ideas/{id}/promote Create an experiment draft (control / test, 50/50, the idea's hypothesis) through the normal create path, then link it. The board then follows that experiment (running, done).
Parameters
project_idstringpathrequiredidstringpathrequiredRequest body
application/json
flag_keystringFlag key (default: from the name).
namestringExperiment name (default: the idea title).
{
"flag_key": "string",
"name": "string"
}Code samples
cURL
curl -X POST "https://lucida.15-204-158-166.sslip.io/v1/projects/{project_id}/experiment-ideas/{id}/promote" \
-H "Content-Type: application/json" \
-d '{"flag_key":"string","name":"string"}'TypeScript
Python
Go
PHP
Ruby
Java
Responses
201
Example
{
"experiment": {
"audience": {},
"conclusion": "string",
"created_at": "2024-01-01T00:00:00Z",
"created_by": "string",
"ended_at": "2024-01-01T00:00:00Z",
"exposure": {},
"flag_id": "string",
"guardrail_state": {},
"holdout_id": "string",
"hypothesis": "string",
"id": "string",
"kind": "string",
"metrics": {},
"name": "string",
"namespace_id": "string",
"project_id": "string",
"requires_approval": true,
"schedule": {},
"shipped_at": "2024-01-01T00:00:00Z",
"snapshot": {},
"started_at": "2024-01-01T00:00:00Z",
"stats_config": {},
"status": "string",
"traffic_pct": 0,
"updated_at": "2024-01-01T00:00:00Z",
"variants": {},
"winner": "string"
},
"idea": {
"created_at": "2024-01-01T00:00:00Z",
"created_by": "string",
"evidence": [
{}
],
"experiment_id": "string",
"experiment_status": "string",
"hypothesis": "string",
"id": "string",
"score": {},
"source": "string",
"stage": "string",
"tags": [
"string"
],
"title": "string",
"updated_at": "2024-01-01T00:00:00Z"
}
}Schema
experimentobjectrequiredShow child parameters
audienceobjectrequiredconclusionstringcreated_atstringrequiredcreated_bystringended_atstringexposureobjectrequiredflag_idstringrequiredguardrail_stateobjectrequiredholdout_idstringhypothesisstringrequiredidstringrequiredkindstringrequiredmetricsobjectrequired{primary: [metric id], secondary: [...], guardrail: [{metric, direction?}]}.namestringrequirednamespace_idstringproject_idstringrequiredrequires_approvalbooleanrequiredscheduleobjectrequiredshipped_atstringsnapshotobjectstarted_atstringstats_configobjectrequiredstatusstringrequiredtraffic_pctnumberrequiredupdated_atstringrequiredvariantsobjectrequiredwinnerstringideaobjectrequiredShow child parameters
created_atstringrequiredcreated_bystringevidenceobject[]required[{kind, ref, label?, step?}]experiment_idstringexperiment_statusstringStatus of the promoted experiment, when there is one.
hypothesisstringrequiredidstringrequiredscoreobject{model: ice|pie, <factors>, total}sourcestringrequiredmanual | aistagestringrequiredStored stage:
idea | scored | ready | running | done | dropped.tagsstring[]requiredtitlestringrequiredupdated_atstringrequired400
403
404
409
Updated