The Co-operative Bank Experiment API
The Experiment API from The Co-operative Bank — 15 operation(s) for experiment.
The Experiment API from The Co-operative Bank — 15 operation(s) for experiment.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/co-operative-bank:co-operative-bank-experiment-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: dotCMS REST Experiment API
version: '3'
servers:
- url: /
description: dotCMS Server
tags:
- name: Experiment
paths:
/api/v1/experiments/{experimentId}/variants:
post:
tags:
- Experiment
operationId: addVariant
parameters:
- name: experimentId
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AddVariantForm'
responses:
default:
description: default response
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseEntitySingleExperimentView'
application/javascript:
schema:
$ref: '#/components/schemas/ResponseEntitySingleExperimentView'
summary: Add variant
x-summary-source: derived
/api/v1/experiments/{experimentId}/_archive:
put:
tags:
- Experiment
operationId: archive
parameters:
- name: experimentId
in: path
required: true
schema:
type: string
responses:
default:
description: default response
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseEntityExperimentView'
application/javascript:
schema:
$ref: '#/components/schemas/ResponseEntityExperimentView'
summary: Archive
x-summary-source: derived
/api/v1/experiments/scheduled/{experimentId}/_cancel:
post:
tags:
- Experiment
operationId: cancel
parameters:
- name: experimentId
in: path
required: true
schema:
type: string
responses:
default:
description: default response
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseEntitySingleExperimentView'
application/javascript:
schema:
$ref: '#/components/schemas/ResponseEntitySingleExperimentView'
summary: Cancel
x-summary-source: derived
/api/v1/experiments:
get:
tags:
- Experiment
operationId: list
parameters:
- name: pageId
in: query
schema:
type: string
- name: name
in: query
schema:
type: string
- name: status
in: query
schema:
uniqueItems: true
type: array
items:
type: string
enum:
- RUNNING
- SCHEDULED
- ENDED
- DRAFT
- ARCHIVED
responses:
default:
description: default response
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseEntityExperimentView'
application/javascript:
schema:
$ref: '#/components/schemas/ResponseEntityExperimentView'
summary: List
x-summary-source: derived
post:
tags:
- Experiment
operationId: create_2
requestBody:
content:
'*/*':
schema:
$ref: '#/components/schemas/ExperimentForm'
responses:
default:
description: default response
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseEntitySingleExperimentView'
application/javascript:
schema:
$ref: '#/components/schemas/ResponseEntitySingleExperimentView'
summary: Create 2
x-summary-source: derived
/api/v1/experiments/{experimentId}:
delete:
tags:
- Experiment
operationId: delete_6
parameters:
- name: experimentId
in: path
required: true
schema:
type: string
responses:
default:
description: default response
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseEntityViewString'
application/javascript:
schema:
$ref: '#/components/schemas/ResponseEntityViewString'
summary: Delete 6
x-summary-source: derived
patch:
tags:
- Experiment
operationId: update_2
parameters:
- name: experimentId
in: path
required: true
schema:
type: string
requestBody:
content:
'*/*':
schema:
$ref: '#/components/schemas/ExperimentForm'
responses:
default:
description: default response
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseEntitySingleExperimentView'
application/javascript:
schema:
$ref: '#/components/schemas/ResponseEntitySingleExperimentView'
summary: Update 2
x-summary-source: derived
/api/v1/experiments/{experimentId}/goals/primary:
delete:
tags:
- Experiment
operationId: deleteGoal
parameters:
- name: experimentId
in: path
required: true
schema:
type: string
responses:
default:
description: default response
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseEntitySingleExperimentView'
application/javascript:
schema:
$ref: '#/components/schemas/ResponseEntitySingleExperimentView'
summary: Delete goal
x-summary-source: derived
/api/v1/experiments/{experimentId}/targetingConditions/{id}:
delete:
tags:
- Experiment
operationId: deleteTargetingCondition
parameters:
- name: experimentId
in: path
required: true
schema:
type: string
- name: id
in: path
required: true
schema:
type: string
responses:
default:
description: default response
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseEntitySingleExperimentView'
application/javascript:
schema:
$ref: '#/components/schemas/ResponseEntitySingleExperimentView'
summary: Delete targeting condition
x-summary-source: derived
/api/v1/experiments/{experimentId}/variants/{name}:
put:
tags:
- Experiment
operationId: updateVariant
parameters:
- name: experimentId
in: path
required: true
schema:
type: string
- name: name
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ExperimentVariantForm'
application/javascript:
schema:
$ref: '#/components/schemas/ExperimentVariantForm'
responses:
default:
description: default response
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseEntitySingleExperimentView'
application/javascript:
schema:
$ref: '#/components/schemas/ResponseEntitySingleExperimentView'
summary: Update variant
x-summary-source: derived
delete:
tags:
- Experiment
operationId: deleteVariant
parameters:
- name: experimentId
in: path
required: true
schema:
type: string
- name: name
in: path
required: true
schema:
type: string
responses:
default:
description: default response
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseEntitySingleExperimentView'
application/javascript:
schema:
$ref: '#/components/schemas/ResponseEntitySingleExperimentView'
summary: Delete variant
x-summary-source: derived
/api/v1/experiments/{experimentId}/_end:
post:
tags:
- Experiment
operationId: end
parameters:
- name: experimentId
in: path
required: true
schema:
type: string
responses:
default:
description: default response
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseEntitySingleExperimentView'
application/javascript:
schema:
$ref: '#/components/schemas/ResponseEntitySingleExperimentView'
summary: End
x-summary-source: derived
/api/v1/experiments/{id}:
get:
tags:
- Experiment
operationId: get_3
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
default:
description: default response
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseEntitySingleExperimentView'
application/javascript:
schema:
$ref: '#/components/schemas/ResponseEntitySingleExperimentView'
summary: Get 3
x-summary-source: derived
/api/v1/experiments/{id}/results:
get:
tags:
- Experiment
operationId: getResult
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
default:
description: default response
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseEntityExperimentResults'
application/javascript:
schema:
$ref: '#/components/schemas/ResponseEntityExperimentResults'
summary: Get result
x-summary-source: derived
/api/v1/experiments/health:
get:
tags:
- Experiment
operationId: healthcheck
responses:
default:
description: default response
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseEntityViewMapStringHealth'
application/javascript:
schema:
$ref: '#/components/schemas/ResponseEntityViewMapStringHealth'
summary: Healthcheck
x-summary-source: derived
/api/v1/experiments/isUserIncluded:
post:
tags:
- Experiment
operationId: isUserIncluded
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ExcludedExperimentListForm'
responses:
default:
description: default response
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseEntityExperimentSelectedView'
summary: Is user included
x-summary-source: derived
/api/v1/experiments/{experimentId}/variants/{name}/_promote:
put:
tags:
- Experiment
operationId: promoteVariant
parameters:
- name: experimentId
in: path
required: true
schema:
type: string
- name: name
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ExperimentVariantForm'
application/javascript:
schema:
$ref: '#/components/schemas/ExperimentVariantForm'
responses:
default:
description: default response
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseEntitySingleExperimentView'
application/javascript:
schema:
$ref: '#/components/schemas/ResponseEntitySingleExperimentView'
summary: Promote variant
x-summary-source: derived
/api/v1/experiments/{experimentId}/_start:
post:
tags:
- Experiment
operationId: start
parameters:
- name: experimentId
in: path
required: true
schema:
type: string
responses:
default:
description: default response
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseEntitySingleExperimentView'
application/javascript:
schema:
$ref: '#/components/schemas/ResponseEntitySingleExperimentView'
summary: Start
x-summary-source: derived
components:
schemas:
ExperimentVariant:
type: object
properties:
id:
type: string
name:
type: string
weight:
type: number
format: float
url:
type: string
promoted:
type: boolean
ExperimentView:
type: object
properties:
name:
type: string
description:
type: string
id:
type: string
status:
type: string
enum:
- RUNNING
- SCHEDULED
- ENDED
- DRAFT
- ARCHIVED
trafficProportion:
$ref: '#/components/schemas/TrafficProportion'
scheduling:
$ref: '#/components/schemas/Scheduling'
trafficAllocation:
type: number
format: float
creationDate:
type: string
format: date-time
modDate:
type: string
format: date-time
pageId:
type: string
createdBy:
type: string
lastModifiedBy:
type: string
goals:
$ref: '#/components/schemas/Goals'
targetingConditions:
type: array
items:
$ref: '#/components/schemas/TargetingCondition'
lookBackWindowExpireTime:
type: integer
format: int64
runningIds:
$ref: '#/components/schemas/RunningIds'
createdByUserName:
type: string
description: Display name of the user who created the experiment. Reports "System" for the system user and "unknown" when the user cannot be resolved or has no name set, so the value is never empty.
example: Admin User
SelectedExperiment:
type: object
properties:
name:
type: string
id:
type: string
runningId:
type: string
pageUrl:
type: string
variant:
$ref: '#/components/schemas/SelectedVariant'
lookBackWindow:
$ref: '#/components/schemas/LookBackWindow'
regexs:
type: object
additionalProperties:
type: string
SampleData:
type: object
properties:
x:
type: number
format: double
y:
type: number
format: double
ResponseEntityExperimentView:
type: object
properties:
errors:
type: array
items:
$ref: '#/components/schemas/ErrorEntity'
entity:
type: array
items:
$ref: '#/components/schemas/ExperimentView'
messages:
type: array
items:
$ref: '#/components/schemas/MessageEntity'
i18nMessagesMap:
type: object
additionalProperties:
type: string
permissions:
type: array
items:
type: string
pagination:
$ref: '#/components/schemas/Pagination'
TrafficProportion:
type: object
properties:
type:
type: string
enum:
- SPLIT_EVENLY
- CUSTOM_PERCENTAGES
variants:
uniqueItems: true
type: array
items:
$ref: '#/components/schemas/ExperimentVariant'
ExperimentResults:
type: object
properties:
sessions:
$ref: '#/components/schemas/TotalSession'
goals:
type: object
additionalProperties:
$ref: '#/components/schemas/GoalResults'
bayesianResult:
$ref: '#/components/schemas/BayesianResult'
ResponseEntityViewMapStringHealth:
type: object
properties:
errors:
type: array
items:
$ref: '#/components/schemas/ErrorEntity'
entity:
type: object
additionalProperties:
type: string
enum:
- OK
- NOT_CONFIGURED
- CONFIGURATION_ERROR
messages:
type: array
items:
$ref: '#/components/schemas/MessageEntity'
i18nMessagesMap:
type: object
additionalProperties:
type: string
permissions:
type: array
items:
type: string
pagination:
$ref: '#/components/schemas/Pagination'
CredibilityInterval:
type: object
properties:
lower:
type: number
format: double
upper:
type: number
format: double
ExperimentVariantForm:
type: object
properties:
description:
type: string
ErrorEntity:
type: object
properties:
errorCode:
type: string
message:
type: string
fieldName:
type: string
Pagination:
type: object
properties:
currentPage:
type: integer
format: int32
perPage:
type: integer
format: int32
totalEntries:
type: integer
format: int64
TotalSession:
type: object
properties:
total:
type: integer
format: int64
variants:
type: object
additionalProperties:
type: integer
format: int64
SampleGroup:
type: object
properties:
samples:
type: object
properties:
empty:
type: boolean
additionalProperties:
type: array
items:
$ref: '#/components/schemas/SampleData'
UniqueBySessionResume:
type: object
properties:
count:
type: integer
format: int64
conversionRate:
type: number
format: float
ResponseEntitySingleExperimentView:
type: object
properties:
errors:
type: array
items:
$ref: '#/components/schemas/ErrorEntity'
entity:
$ref: '#/components/schemas/ExperimentView'
messages:
type: array
items:
$ref: '#/components/schemas/MessageEntity'
i18nMessagesMap:
type: object
additionalProperties:
type: string
permissions:
type: array
items:
type: string
pagination:
$ref: '#/components/schemas/Pagination'
SelectedVariant:
type: object
properties:
name:
type: string
url:
type: string
VariantResults:
type: object
properties:
weight:
type: number
format: float
variantName:
type: string
variantDescription:
type: string
uniqueBySession:
$ref: '#/components/schemas/UniqueBySessionResume'
details:
type: object
additionalProperties:
$ref: '#/components/schemas/ResultResumeItem'
Scheduling:
type: object
properties:
startDate:
type: string
format: date-time
endDate:
type: string
format: date-time
VariantResult:
type: object
properties:
variant:
type: string
conversionRate:
type: number
format: double
probability:
type: number
format: double
expectedLoss:
type: number
format: double
risk:
type: number
format: double
medianGrowth:
type: number
format: double
credibilityInterval:
$ref: '#/components/schemas/CredibilityInterval'
isControl:
type: boolean
Goals:
type: object
properties:
primary:
$ref: '#/components/schemas/Goal'
ResponseEntityViewString:
type: object
properties:
errors:
type: array
items:
$ref: '#/components/schemas/ErrorEntity'
entity:
type: string
messages:
type: array
items:
$ref: '#/components/schemas/MessageEntity'
i18nMessagesMap:
type: object
additionalProperties:
type: string
permissions:
type: array
items:
type: string
pagination:
$ref: '#/components/schemas/Pagination'
ExcludedExperimentListForm:
type: object
properties:
exclude:
type: array
items:
type: string
GoalResults:
type: object
properties:
goal:
$ref: '#/components/schemas/Goal'
variants:
type: object
additionalProperties:
$ref: '#/components/schemas/VariantResults'
BayesianResult:
type: object
properties:
value:
type: number
format: double
results:
type: array
properties:
empty:
type: boolean
first:
$ref: '#/components/schemas/VariantResult'
last:
$ref: '#/components/schemas/VariantResult'
items:
$ref: '#/components/schemas/VariantResult'
distributionPdfs:
$ref: '#/components/schemas/SampleGroup'
differenceData:
$ref: '#/components/schemas/DifferenceData'
quantiles:
type: object
properties:
empty:
type: boolean
additionalProperties:
$ref: '#/components/schemas/QuantilePair'
suggestedWinner:
type: string
Goal:
type: object
properties:
metric:
$ref: '#/components/schemas/Metric'
type:
type: string
writeOnly: true
enum:
- MINIMIZE
- MAXIMIZE
AddVariantForm:
type: object
properties:
description:
type: string
ResultResumeItem:
type: object
properties:
uniqueBySession:
type: integer
format: int64
totalSessions:
type: integer
format: int64
conversionRate:
type: number
format: float
MessageEntity:
type: object
properties:
message:
type: string
QuantilePair:
type: object
properties:
quantile:
type: number
format: double
formatted:
type: number
format: double
ExperimentForm:
type: object
properties:
name:
type: string
description:
type: string
pageId:
type: string
trafficAllocation:
type: number
format: float
trafficProportion:
$ref: '#/components/schemas/TrafficProportion'
scheduling:
$ref: '#/components/schemas/Scheduling'
goals:
$ref: '#/components/schemas/Goals'
targetingConditions:
type: array
items:
$ref: '#/components/schemas/TargetingCondition'
lookbackWindow:
type: integer
format: int32
Metric:
type: object
properties:
name:
type: string
description:
type: string
category:
type: string
enum:
- DIFFERENTIATING_FEATURES
- PAID_FEATURES
- PLATFORM_SPECIFIC_CUSTOMIZATION
- SOPHISTICATED_CONTENT_ARCHITECTURE
- POSITIVE_USER_EXPERIENCE
- PLATFORM_SPECIFIC_DEVELOPMENT
- RECENT_ACTIVITY
- HISTORY_LEGACY_DEPRECATED_FEATURES
feature:
type: string
enum:
- CONTENTLETS
- LANGUAGES
- CONTENT_TYPES
- SITES
- URL_MAPS
- WORKFLOW
- USERS
- SITE_SEARCH
- IMAGE_API
- LAYOUT
- CONTENT_TYPE_FIELDS
- AI
- EXPERIMENTS
LookBackWindow:
type: object
properties:
value:
type: string
expireMillis:
type: integer
format: int64
ResponseEntityExperimentResults:
type: object
properties:
errors:
type: array
items:
$ref: '#/components/schemas/ErrorEntity'
entity:
$ref: '#/components/schemas/ExperimentResults'
messages:
type: array
items:
$ref: '#/components/schemas/MessageEntity'
i18nMessagesMap:
type: object
additionalProperties:
type: string
permissions:
type: array
items:
type: string
pagination:
$ref: '#/components/schemas/Pagination'
SelectedExperiments:
type: object
properties:
experiments:
type: array
items:
$ref: '#/components/schemas/SelectedExperiment'
includedExperimentIds:
type: array
items:
type: string
excludedExperimentIds:
type: array
items:
type: string
excludedExperimentIdsEnded:
type: array
items:
type: string
RunningIds:
type: object
properties:
ids:
type: array
items:
$ref: '#/components/schemas/RunningId'
ResponseEntityExperimentSelectedView:
type: object
properties:
errors:
type: array
items:
$ref: '#/components/schemas/ErrorEntity'
entity:
$ref: '#/components/schemas/SelectedExperiments'
messages:
type: array
items:
$ref: '#/components/schemas/MessageEntity'
i18nMessagesMap:
type: object
additionalProperties:
type: string
permissions:
type: array
items:
type: string
pagination:
$ref: '#/components/schemas/Pagination'
DifferenceData:
type: object
properties:
controlData:
type: array
items:
type: number
format: double
testData:
type: array
items:
type: number
format: double
differences:
type: array
items:
type: number
format: double
relativeDifference:
type: number
format: double
RunningId:
type: object
properties:
id:
type: string
startDate:
type: string
format: date-time
endDate:
type: string
format: date-time
TargetingCondition:
type: object
properties:
id:
type: string
conditionKey:
type: string
values:
type: object
properties:
empty:
type: boolean
additionalProperties:
type: string
operator:
type: string
enum:
- AND
- OR
x-provenance:
method: harvested
publisher: The Co-operative Bank
source: https://www.developer.co-operativebank.co.uk/api/openapi.json
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)