---
title: "Create Workout"
method: POST
path: "/workouts"
tags: ["Workout"]
---

# Create Workout

`POST /workouts`

Create a new Workout.

## Headers

- `x-api-key` string, required

## Request body

- RequestWorkoutPost — Data to create a Workout
  - `program_id` integer, required — Id of the Program for the Workout
  - `date` string, date, required — Date of the Workout
  - `name` string — Name of the Workout. If no value is provided, the Workout name will be Program name and Date.
  - `locations` integer[], required — List of Locations the Workout is available for
  - `tags` string[] — List of tags for the workout
  - `notes` string — Notes for the Workout
  - `is_workout_visible_to_all_athletes` boolean — Defaults to the Programs secure programming setting. Can only be changed from the default value of the program if Membership Enforcement is enabled.
  - `should_publish_to_blog` boolean — Indicates if the Workout should be published externally. Only applicable if a Wordpress site is already linked, or an API is already set up.
  - `internal_publish_time` string — Time the Workout should be published in Wodify. If no value is provided, will use the current date time.
  - `internal_publish_date` string, date — Date the Workout should be published in Wodify. If no value is provided, will use the current date time.
  - `blog_publish_date` string, date — Date the Workout should be published in to external blogs. Only applicable if IsPublishExternally is true. If publishing externally and no datetime is provided, the current datetime will be used.
  - `blog_publish_time` string — Time the Workout should be published in to external blogs. Only applicable if IsPublishExternally is true. If publishing externally and no datetime is provided, the current datetime will be used.

## Response `200`

Data for the created workout

- WorkoutAPI — data for single Workout of the Day (WOD)
  - `id` integer, required — WOD (Header) ID
  - `name` string — Workout Name
  - `date` string, date — Date the Workout applies to
  - `internal_publish_date` string, date — Date the Workout should be published in Wodify. If no value is provided, will use the current date time.
  - `internal_publish_time` string, time — Time the Workout should be published in Wodify. If no value is provided, will use the current date time.
  - `should_publish_to_blog` boolean — Previously &#39;ShouldPublish&#39;
  - `blog_publish_date` string, date — Date the Workout should be published in to external blogs. Only applicable if IsPublishExternally is true. If publishing externally and no datetime is provided, the current datetime will be used.
  - `blog_publish_time` string, time — Time the Workout should be published in to external blogs. Only applicable if IsPublishExternally is true. If publishing externally and no datetime is provided, the current datetime will be used.
  - `comment` string — WODHeader&#39;s Comments
  - `linkified_comment` string — Linkified WODHeader Comments
  - `ownership_level_id` integer — Identifies the Ownership Level of the WOD Header record
  - `ownership_level` string — Ownership Level of the WOD Header record
  - `program_id` integer — Program Id
  - `program` string — Program name
  - `copied_from_workout_id` integer — Identifies the Workout record this record was copied from, if this record was copied from another Workout
  - `copied_from_workout` string — name the Workout record this record was copied from, if this record was copied from another Workout
  - `secure_programming_enabled` boolean — Flag to control whether or not &#39;secure programming&#39; is enabled for the WOD or not (default value = false).
  - `created` Created — Record creation data.
    - `created_by_id` integer — Unique ID of the user that created the record.
    - `created_by` string — Name of the user that created the record.
    - `created_on_datetime` string, date-time — Datetime on which the record was created.
  - `updated` Updated — Update info
    - `updated_by_id` integer — Unique ID of the user that last updated the record.
    - `updated_by` string — Name of the user that most recently updated the record.
    - `updated_on_datetime` string, date-time — Datetime on which the record was last updated.
  - `notes` string — notes
  - `tags` string[] — Tags
  - `locations` LocationAPI[] — Locations Workout is applied to
    - `location_id` integer — Location Id
    - `location` string — Location name
  - `workout_components` WorkoutComponentAPI[] — Workout Components
    - `id` integer, required — WOD Component ID
    - `name` string — Name
    - `order` integer — WOD Component Order
    - `description` string — Component Description
    - `prefix_text` string — Prefix Text
    - `comment` string, required — Comment
    - `linkified_comment` string — Linkified Comment
    - `component_id` integer — Component Id
    - `component` string — Component
    - `component_system_comment` string — Component System Comment
    - `component_type_id` integer — Component Type
    - `component_type` string — Component Type
    - `result_type_id` integer, required — ResultType tied to Component
    - `result_type` string, required — ResultType tied to Component
    - `each_round_type_id` integer — Component Each Round Type Id
    - `each_round_type` string — Component Each Round Type
    - `rounds` integer — Component rounds
    - `scaling_id` integer — Component Scaling. 1 - No Scaling 2 - Scaled / RX 3 - Scaled / RX / RX+
    - `scaling` string — Component Scaling
    - `sets` integer — Measure Sets
    - `reps` integer — Measure Reps
    - `is_max_effort` boolean — Measure Is Max Effort
    - `rep_scheme` string — Rep Scheme
    - `uom_weight_id` integer — Units of Measurement
    - `uom_weight` string — Uom Weight Label
    - `uom_distance_id` integer — Measure UOMDistance
    - `uom_distance` string — Uom Distance Label
    - `file_storage_id` integer — FileStorage Identifier. Used when VideoURL is empty
    - `is_section` boolean, required — Indicates if it is a Workout Section
    - `section_id` integer — section id
    - `is_benchmark` boolean — Is Benchmark
    - `is_video_url` boolean, required — Indicates if the component is a VideoURL
    - `video_name` string — Video Name
    - `video_url` string, required — When the component is a Video URL, the url is saved here
    - `video_url_comment` string, required — A Comment related with the Video URL
    - `is_image` boolean, required — Indicates if the component is an image
    - `image_id` integer — WOD Image ID
    - `image_url` string, required — When the component is an Im URL, the url is saved here
    - `image_file_name` string, required — Image File Name
    - `image_comment` string, required — Caption that can be inserted on the image
    - `created` Created — Record creation data.
      - `created_by_id` integer — Unique ID of the user that created the record.
      - `created_by` string — Name of the user that created the record.
      - `created_on_datetime` string, date-time — Datetime on which the record was created.
    - `updated` Updated — Update info
      - `updated_by_id` integer — Unique ID of the user that last updated the record.
      - `updated_by` string — Name of the user that most recently updated the record.
      - `updated_on_datetime` string, date-time — Datetime on which the record was last updated.
    - `videos` WODComponentMediaAPI[] — list of videos in this Workout Component
      - `id` integer, required — Id
      - `name` string — Media Name
      - `url` string — This is filled when FileStorageId is empty
      - `file_storage_id` integer — FileStorage Identifier. Used when MediaURL is empty
      - `comment` string — Comment
      - `created` Created — Record creation data.
        - `created_by_id` integer — Unique ID of the user that created the record.
        - `created_by` string — Name of the user that created the record.
        - `created_on_datetime` string, date-time — Datetime on which the record was created.
      - `updated` Updated — Update info
        - `updated_by_id` integer — Unique ID of the user that last updated the record.
        - `updated_by` string — Name of the user that most recently updated the record.
        - `updated_on_datetime` string, date-time — Datetime on which the record was last updated.
    - `images` WODComponentMediaAPI[] — list of Images in this Workout Component
      - `id` integer, required — Id
      - `name` string — Media Name
      - `url` string — This is filled when FileStorageId is empty
      - `file_storage_id` integer — FileStorage Identifier. Used when MediaURL is empty
      - `comment` string — Comment
      - `created` Created — Record creation data.
        - `created_by_id` integer — Unique ID of the user that created the record.
        - `created_by` string — Name of the user that created the record.
        - `created_on_datetime` string, date-time — Datetime on which the record was created.
      - `updated` Updated — Update info
        - `updated_by_id` integer — Unique ID of the user that last updated the record.
        - `updated_by` string — Name of the user that most recently updated the record.
        - `updated_on_datetime` string, date-time — Datetime on which the record was last updated.
    - `child_components` string[] — if is TotalWeightLifting, return child components as a text list
  - `wodify_validation_result` string — The purpose of this attribute is to save any UserException message, that is, and user friendly message that should be shown to the end user.

---

[API](https://skmtc.net/wodify/apis/leads.md) · [All operations](https://skmtc.net/wodify/apis/leads/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/wodify/leads/revisions/974500ca0714/schema)
