---
title: "POST /v1/{+parent}/studies"
method: POST
path: "/v1/{+parent}/studies"
tags: ["projects"]
---

# POST /v1/{+parent}/studies

`POST /v1/{+parent}/studies`

Creates a study.

## Path parameters

- `parent` string, required

## Query parameters

- `studyId` string

## Request body

- GoogleCloudMlV1Study — A message representing a Study.
  - `studyConfig` GoogleCloudMlV1StudyConfig — Represents configuration of a study.
    - `algorithm` 'ALGORITHM_UNSPECIFIED' | 'GAUSSIAN_PROCESS_BANDIT' | 'GRID_SEARCH' | 'RANDOM_SEARCH' — The search algorithm specified for the study.
    - `automatedStoppingConfig` GoogleCloudMlV1AutomatedStoppingConfig — Configuration for Automated Early Stopping of Trials. If no implementation_config is set, automated early stopping will not be run.
      - `decayCurveStoppingConfig` GoogleCloudMlV1AutomatedStoppingConfigDecayCurveAutomatedStoppingConfig
        - `useElapsedTime` boolean — If true, measurement.elapsed_time is used as the x-axis of each Trials Decay Curve. Otherwise, Measurement.steps will be used as the x-axis.
      - `medianAutomatedStoppingConfig` GoogleCloudMlV1AutomatedStoppingConfigMedianAutomatedStoppingConfig — The median automated stopping rule stops a pending trial if the trial's best objective_value is strictly below the median 'performance' of all completed trials reported up to the trial's last measurement. Currently, 'performance' refers to the running average of the objective values reported by the trial in each measurement.
        - `useElapsedTime` boolean — If true, the median automated stopping rule applies to measurement.use_elapsed_time, which means the elapsed_time field of the current trial's latest measurement is used to compute the median objective value for each completed trial.
    - `metrics` GoogleCloudMlV1StudyConfigMetricSpec[] — Metric specs for the study.
      - `goal` 'GOAL_TYPE_UNSPECIFIED' | 'MAXIMIZE' | 'MINIMIZE' — Required. The optimization goal of the metric.
      - `metric` string — Required. The name of the metric.
    - `parameters` GoogleCloudMlV1StudyConfigParameterSpec[] — Required. The set of parameters to tune.
      - `discreteValueSpec` GoogleCloudMlV1StudyConfigParameterSpecDiscreteValueSpec
        - `values` number[] — Must be specified if type is `DISCRETE`. A list of feasible points. The list should be in strictly increasing order. For instance, this parameter might have possible settings of 1.5, 2.5, and 4.0. This list should not contain more than 1,000 values.
      - `scaleType` 'SCALE_TYPE_UNSPECIFIED' | 'UNIT_LINEAR_SCALE' | 'UNIT_LOG_SCALE' | 'UNIT_REVERSE_LOG_SCALE' — How the parameter should be scaled. Leave unset for categorical parameters.
      - `parentIntValues` GoogleCloudMlV1StudyConfigParameterSpecMatchingParentIntValueSpec — Represents the spec to match integer values from parent parameter.
        - `values` string[] — Matches values of the parent parameter with type 'INTEGER'. All values must lie in `integer_value_spec` of parent parameter.
      - `doubleValueSpec` GoogleCloudMlV1StudyConfigParameterSpecDoubleValueSpec
        - `minValue` number, double — Must be specified if type is `DOUBLE`. Minimum value of the parameter.
        - `maxValue` number, double — Must be specified if type is `DOUBLE`. Maximum value of the parameter.
      - `childParameterSpecs` GoogleCloudMlV1StudyConfigParameterSpec[] — A child node is active if the parameter's value matches the child node's matching_parent_values. If two items in child_parameter_specs have the same name, they must have disjoint matching_parent_values.
      - `type` 'PARAMETER_TYPE_UNSPECIFIED' | 'DOUBLE' | 'INTEGER' | 'CATEGORICAL' | 'DISCRETE' — Required. The type of the parameter.
      - `categoricalValueSpec` GoogleCloudMlV1StudyConfigParameterSpecCategoricalValueSpec
        - `values` string[] — Must be specified if type is `CATEGORICAL`. The list of possible categories.
      - `parameter` string — Required. The parameter name must be unique amongst all ParameterSpecs.
      - `integerValueSpec` GoogleCloudMlV1StudyConfigParameterSpecIntegerValueSpec
        - `maxValue` string, int64 — Must be specified if type is `INTEGER`. Maximum value of the parameter.
        - `minValue` string, int64 — Must be specified if type is `INTEGER`. Minimum value of the parameter.
      - `parentCategoricalValues` GoogleCloudMlV1StudyConfigParameterSpecMatchingParentCategoricalValueSpec — Represents the spec to match categorical values from parent parameter.
        - `values` string[] — Matches values of the parent parameter with type 'CATEGORICAL'. All values must exist in `categorical_value_spec` of parent parameter.
      - `parentDiscreteValues` GoogleCloudMlV1StudyConfigParameterSpecMatchingParentDiscreteValueSpec — Represents the spec to match discrete values from parent parameter.
        - `values` number[] — Matches values of the parent parameter with type 'DISCRETE'. All values must exist in `discrete_value_spec` of parent parameter.
  - `inactiveReason` string — Output only. A human readable reason why the Study is inactive. This should be empty if a study is ACTIVE or COMPLETED.
  - `state` 'STATE_UNSPECIFIED' | 'ACTIVE' | 'INACTIVE' | 'COMPLETED' — Output only. The detailed state of a study.
  - `createTime` string, google-datetime — Output only. Time at which the study was created.
  - `name` string — Output only. The name of a study.

## Response `200`

Successful response

---

[API](https://skmtc.net/google/apis/ml.md) · [All operations](https://skmtc.net/google/apis/ml/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/google/ml/versions/2135f4d5ddf1/schema)
