# Shortcut

Shortcut aligns product development work with company objectives so teams can execute with a shared purpose.

- **Category:** project management
- **Auth:** API_KEY
- **Tools:** 122
- **Triggers:** 0
- **Slug:** `SHORTCUT`
- **Version:** 20260211_00

## Tools

### Create category

**Slug:** `SHORTCUT_CREATE_CATEGORY`

Create Category allows you to create a new Category in Shortcut.

### Create entity template

**Slug:** `SHORTCUT_CREATE_ENTITY_TEMPLATE`

Create a new entity template for the Workspace.

### Create epic

**Slug:** `SHORTCUT_CREATE_EPIC`

Create Epic allows you to create a new Epic in Shortcut.

### Create epic comment

**Slug:** `SHORTCUT_CREATE_EPIC_COMMENT`

This endpoint allows you to create a threaded Comment on an Epic.

### Create epic comment comment

**Slug:** `SHORTCUT_CREATE_EPIC_COMMENT_COMMENT`

This endpoint allows you to create a nested Comment reply to an existing Epic Comment.

### Create group

**Slug:** `SHORTCUT_CREATE_GROUP`

Creates a new group in the Shortcut system with customizable properties. This endpoint allows you to set up a group with a unique mention name, display name, optional description, and various customization options. Use this when you need to establish a new team, department, or any other collective within your Shortcut workspace. The created group can include members, associated workflows, and visual customizations like color and icon. This endpoint is particularly useful for organizing your Shortcut workspace structure, facilitating team collaboration, and streamlining workflow management. Note that while member and workflow associations can be set during creation, they can also be modified later using separate endpoints.

### Create iteration

**Slug:** `SHORTCUT_CREATE_ITERATION`

The CreateIteration endpoint allows you to create a new Iteration in Shortcut, which represents a time-boxed period for completing a set of stories or tasks. This endpoint is crucial for teams using Agile methodologies, enabling them to plan and track progress over specific time periods. Use this endpoint when setting up sprint cycles, planning releases, or organizing work into manageable timeframes. The endpoint requires essential information such as the Iteration's name and date range, while also offering options to add followers, associate groups, and attach labels for better organization and tracking. It's important to note that while multiple groups can be added via the API, the current web UI only displays one Group association. This endpoint should not be used for modifying existing Iterations; instead, use the dedicated update endpoint for such changes.

### Create label

**Slug:** `SHORTCUT_CREATE_LABEL`

Create Label allows you to create a new Label in Shortcut.

### Create linked file

**Slug:** `SHORTCUT_CREATE_LINKED_FILE`

Create Linked File allows you to create a new Linked File in Shortcut.

### Create milestone

**Slug:** `SHORTCUT_CREATE_MILESTONE`

(Deprecated: Use 'Create Objective') Create Milestone allows you to create a new Milestone in Shortcut.

### Create multiple stories

**Slug:** `SHORTCUT_CREATE_MULTIPLE_STORIES`

Create Multiple Stories allows you to create multiple stories in a single request using the same syntax as [Create Story](https://developer.shortcut.com/api/rest/v3#create-story).

### Create objective

**Slug:** `SHORTCUT_CREATE_OBJECTIVE`

Create Objective allows you to create a new Objective in Shortcut.

### Create project

**Slug:** `SHORTCUT_CREATE_PROJECT`

Create Project is used to create a new Shortcut Project.

### Create story

**Slug:** `SHORTCUT_CREATE_STORY`

Create Story is used to add a new story to your Shortcut Workspace. This endpoint requires that either **workflow_state_id** or **project_id** be provided, but will reject the request if both or neither are specified. The workflow_state_id has been marked as required and is the recommended field to specify because we are in the process of sunsetting Projects in Shortcut.

### Create story comment

**Slug:** `SHORTCUT_CREATE_STORY_COMMENT`

Create Comment allows you to create a Comment on any Story.

### Create story from template

**Slug:** `SHORTCUT_CREATE_STORY_FROM_TEMPLATE`

Create Story From Template is used to add a new story derived from a template to your Shortcut Workspace.

### Create story link

**Slug:** `SHORTCUT_CREATE_STORY_LINK`

Story Links (called Story Relationships in the UI) allow you create semantic relationships between two stories. The parameters read like an active voice grammatical sentence: subject -> verb -> object. The subject story acts on the object Story; the object story is the direct object of the sentence. The subject story "blocks", "duplicates", or "relates to" the object story. Examples: - "story 5 blocks story 6” -- story 6 is now "blocked" until story 5 is moved to a Done workflow state. - "story 2 duplicates story 1” -- Story 2 represents the same body of work as Story 1 (and should probably be archived). - "story 7 relates to story 3”

### Create story reaction

**Slug:** `SHORTCUT_CREATE_STORY_REACTION`

Create a reaction to a story comment.

### Create task

**Slug:** `SHORTCUT_CREATE_TASK`

Create Task is used to create a new task in a Story.

### Delete category

**Slug:** `SHORTCUT_DELETE_CATEGORY`

Delete Category can be used to delete any Category.

### Delete custom field

**Slug:** `SHORTCUT_DELETE_CUSTOM_FIELD`

Deletes a specific custom field from the Shortcut system using its unique public identifier. This endpoint should be used when you need to permanently remove a custom field that is no longer required in your workflows or project structure. It's important to note that this operation is irreversible, and once a custom field is deleted, all data associated with it will be lost. Use this endpoint with caution, ensuring that the custom field is no longer needed and that its deletion won't negatively impact any existing processes or data integrity within your Shortcut instance.

### Delete entity template

**Slug:** `SHORTCUT_DELETE_ENTITY_TEMPLATE`

Deletes a specific entity template from the Shortcut API. This endpoint should be used when you need to permanently remove a template that is no longer needed or is obsolete. It's important to note that this operation cannot be undone, so it should be used with caution. The deletion is performed on a single template identified by its public ID, adhering to the best practice of controlling deletion on a per-resource basis. This endpoint is part of the API v3, which may include enhanced features or changes compared to previous versions.

### Delete epic

**Slug:** `SHORTCUT_DELETE_EPIC`

Delete Epic can be used to delete the Epic. The only required parameter is Epic ID.

### Delete epic comment

**Slug:** `SHORTCUT_DELETE_EPIC_COMMENT`

This endpoint allows you to delete a Comment from an Epic.

### Delete file

**Slug:** `SHORTCUT_DELETE_FILE`

Delete File deletes a previously uploaded file.

### Delete iteration

**Slug:** `SHORTCUT_DELETE_ITERATION`

Deletes a specific iteration from the Shortcut project management system. This endpoint should be used when you need to permanently remove an iteration and all its associated data from your project workflow. It's particularly useful for cleaning up completed or cancelled iterations that are no longer needed. Be cautious when using this endpoint, as the deletion is irreversible and will remove all data associated with the specified iteration. Ensure you have the correct iteration ID before proceeding with the deletion to avoid unintended data loss.

### Delete label

**Slug:** `SHORTCUT_DELETE_LABEL`

Delete Label can be used to delete any Label.

### Delete linked file

**Slug:** `SHORTCUT_DELETE_LINKED_FILE`

Delete Linked File can be used to delete any previously attached Linked-File.

### Delete milestone

**Slug:** `SHORTCUT_DELETE_MILESTONE`

(Deprecated: Use 'Delete Objective') Delete Milestone can be used to delete any Milestone.

### Delete multiple stories

**Slug:** `SHORTCUT_DELETE_MULTIPLE_STORIES`

Delete Multiple Stories allows you to delete multiple archived stories at once.

### Delete objective

**Slug:** `SHORTCUT_DELETE_OBJECTIVE`

Delete Objective can be used to delete any Objective.

### Delete project

**Slug:** `SHORTCUT_DELETE_PROJECT`

Delete Project can be used to delete a Project. Projects can only be deleted if all associated Stories are moved or deleted. In the case that the Project cannot be deleted, you will receive a 422 response.

### Delete story

**Slug:** `SHORTCUT_DELETE_STORY`

Delete Story can be used to delete any Story.

### Delete story comment

**Slug:** `SHORTCUT_DELETE_STORY_COMMENT`

Delete a Comment from any story.

### Delete story link

**Slug:** `SHORTCUT_DELETE_STORY_LINK`

Removes the relationship between the stories for the given Story Link.

### Delete story reaction

**Slug:** `SHORTCUT_DELETE_STORY_REACTION`

Delete a reaction from any story comment.

### Delete task

**Slug:** `SHORTCUT_DELETE_TASK`

Delete Task can be used to delete any previously created Task on a Story.

### Disable iterations

**Slug:** `SHORTCUT_DISABLE_ITERATIONS`

Disables Iterations for the current workspace

### Disable story templates

**Slug:** `SHORTCUT_DISABLE_STORY_TEMPLATES`

Disables the Story Template feature for the Workspace.

### Enable iterations

**Slug:** `SHORTCUT_ENABLE_ITERATIONS`

Enables Iterations for the current workspace

### Enable story templates

**Slug:** `SHORTCUT_ENABLE_STORY_TEMPLATES`

Enables the Story Template feature for the Workspace.

### Get category

**Slug:** `SHORTCUT_GET_CATEGORY`

Get Category returns information about the selected Category.

### Get current member info

**Slug:** `SHORTCUT_GET_CURRENT_MEMBER_INFO`

Returns information about the authenticated member.

### Get custom field

**Slug:** `SHORTCUT_GET_CUSTOM_FIELD`

Retrieves detailed information about a specific custom field in Shortcut using its unique public identifier. This endpoint allows developers to fetch the properties and configuration of a custom field, which can include its name, type, possible values, and any other associated metadata. It's particularly useful when you need to inspect or validate a custom field's settings programmatically, or when integrating custom field data into external systems. The endpoint should be used when detailed information about a single custom field is required, rather than for bulk operations or listing all custom fields. Note that this endpoint only provides read access to custom field data and cannot be used to modify the custom field.

### Get entity template

**Slug:** `SHORTCUT_GET_ENTITY_TEMPLATE`

Get Entity Template returns information about a given entity template.

### Get epic

**Slug:** `SHORTCUT_GET_EPIC`

Get Epic returns information about the selected Epic.

### Get epic comment

**Slug:** `SHORTCUT_GET_EPIC_COMMENT`

This endpoint returns information about the selected Epic Comment.

### Get epic workflow

**Slug:** `SHORTCUT_GET_EPIC_WORKFLOW`

Returns the Epic Workflow for the Workspace.

### Get external link stories

**Slug:** `SHORTCUT_GET_EXTERNAL_LINK_STORIES`

Get Stories which have a given External Link associated with them.

### Get file

**Slug:** `SHORTCUT_GET_FILE`

Get File returns information about the selected UploadedFile.

### Get group

**Slug:** `SHORTCUT_GET_GROUP`

Retrieves detailed information about a specific group in the Shortcut workspace using its unique public identifier. This endpoint allows developers to fetch comprehensive data about a group, including its name, type, and associated metadata. It's particularly useful when you need to access or verify group details programmatically, such as during workflow automations or when building integrations that involve group management. The endpoint provides more granular control and information compared to what's available through the web application, making it valuable for advanced group-related operations and data analysis within your Shortcut projects.

### Get iteration

**Slug:** `SHORTCUT_GET_ITERATION`

Retrieves detailed information about a specific iteration in the Shortcut project management system. This endpoint allows users to fetch comprehensive data about a single iteration, including its name, status, start and end dates, associated stories, and progress metrics. It should be used when detailed information about a particular iteration is needed, such as during sprint planning, progress tracking, or retrospective analysis. The endpoint provides a snapshot of the iteration at the time of the request and does not include real-time updates. It's particularly useful for project managers, scrum masters, and team members who need to review or report on iteration-specific data. Note that this endpoint only retrieves information and does not allow for modification of the iteration details.

### Get key result

**Slug:** `SHORTCUT_GET_KEY_RESULT`

Get Key Result returns information about a chosen Key Result.

### Get label

**Slug:** `SHORTCUT_GET_LABEL`

Get Label returns information about the selected Label.

### Get linked file

**Slug:** `SHORTCUT_GET_LINKED_FILE`

Get File returns information about the selected Linked File.

### Get member

**Slug:** `SHORTCUT_GET_MEMBER`

Returns information about a Member.

### Get milestone

**Slug:** `SHORTCUT_GET_MILESTONE`

(Deprecated: Use 'Get Objective') Get Milestone returns information about a chosen Milestone.

### Get objective

**Slug:** `SHORTCUT_GET_OBJECTIVE`

Get Objective returns information about a chosen Objective.

### Get project

**Slug:** `SHORTCUT_GET_PROJECT`

Get Project returns information about the selected Project.

### Get repository

**Slug:** `SHORTCUT_GET_REPOSITORY`

Get Repository returns information about the selected Repository.

### Get story

**Slug:** `SHORTCUT_GET_STORY`

Get Story returns information about a chosen Story.

### Get story comment

**Slug:** `SHORTCUT_GET_STORY_COMMENT`

Get Comment is used to get Comment information.

### Get story link

**Slug:** `SHORTCUT_GET_STORY_LINK`

Returns the stories and their relationship for the given Story Link.

### Get task

**Slug:** `SHORTCUT_GET_TASK`

Returns information about a chosen Task.

### Get workflow

**Slug:** `SHORTCUT_GET_WORKFLOW`

Get Workflow returns information about a chosen Workflow.

### List categories

**Slug:** `SHORTCUT_LIST_CATEGORIES`

List Categories returns a list of all Categories and their attributes.

### List category milestones

**Slug:** `SHORTCUT_LIST_CATEGORY_MILESTONES`

List Category Milestones returns a list of all Milestones with the Category.

### List category objectives

**Slug:** `SHORTCUT_LIST_CATEGORY_OBJECTIVES`

Returns a list of all Objectives with the Category.

### List custom fields

**Slug:** `SHORTCUT_LIST_CUSTOM_FIELDS`

Retrieves a list of all custom fields defined in the Shortcut API. This endpoint allows developers to fetch information about user-defined fields that have been added to extend the functionality of standard fields in integrations. It's particularly useful when you need to understand the structure and types of custom data being used across the system. The endpoint returns details about each custom field, which may include their identifiers, names, types, and any associated metadata. Use this endpoint when you need to inventory existing custom fields, prepare for data migrations, or dynamically adjust your application's data model to accommodate custom fields. Note that this endpoint does not create, modify, or delete custom fields; it's purely for retrieval of existing custom field definitions.

### List entity templates

**Slug:** `SHORTCUT_LIST_ENTITY_TEMPLATES`

List all the entity templates for the Workspace.

### List epic comments

**Slug:** `SHORTCUT_LIST_EPIC_COMMENTS`

Get a list of all Comments on an Epic.

### List epics

**Slug:** `SHORTCUT_LIST_EPICS`

List Epics returns a list of all Epics and their attributes.

### List epic stories

**Slug:** `SHORTCUT_LIST_EPIC_STORIES`

Get a list of all Stories in an Epic.

### List files

**Slug:** `SHORTCUT_LIST_FILES`

List Files returns a list of all UploadedFiles in the workspace.

### List groups

**Slug:** `SHORTCUT_LIST_GROUPS`

A group in our API maps to a "Team" within the Shortcut Product. A Team is a collection of Users that can be associated to Stories, Epics, and Iterations within Shortcut.

### List group stories

**Slug:** `SHORTCUT_LIST_GROUP_STORIES`

List the Stories assigned to the Group. (By default, limited to 1,000).

### List iterations

**Slug:** `SHORTCUT_LIST_ITERATIONS`

Retrieves a list of all iterations in the Shortcut project management system. Iterations represent specific time periods for planning and tracking work, allowing teams to organize their development cycles. This endpoint provides comprehensive information about each iteration, including its name, start and end dates, status, and associated stories or tasks. Use this endpoint when you need an overview of all iterations for project planning, progress tracking, or reporting purposes. It's particularly useful for analyzing past performance, planning future sprints, or getting a high-level view of the project timeline. Note that the response may be paginated for projects with a large number of iterations, and you might need to make multiple requests to retrieve the full dataset.

### List iteration stories

**Slug:** `SHORTCUT_LIST_ITERATION_STORIES`

Get a list of all Stories in an Iteration.

### List label epics

**Slug:** `SHORTCUT_LIST_LABEL_EPICS`

List all of the Epics with the Label.

### List labels

**Slug:** `SHORTCUT_LIST_LABELS`

List Labels returns a list of all Labels and their attributes.

### List label stories

**Slug:** `SHORTCUT_LIST_LABEL_STORIES`

List all of the Stories with the Label.

### List linked files

**Slug:** `SHORTCUT_LIST_LINKED_FILES`

List Linked Files returns a list of all Linked-Files and their attributes.

### List members

**Slug:** `SHORTCUT_LIST_MEMBERS`

Returns information about members of the Workspace.

### List milestone epics

**Slug:** `SHORTCUT_LIST_MILESTONE_EPICS`

(Deprecated: Use 'List Objective Epics') List all of the Epics within the Milestone.

### List milestones

**Slug:** `SHORTCUT_LIST_MILESTONES`

(Deprecated: Use 'List Objectives') List Milestones returns a list of all Milestones and their attributes.

### List objective epics

**Slug:** `SHORTCUT_LIST_OBJECTIVE_EPICS`

List all of the Epics within the Objective.

### List objectives

**Slug:** `SHORTCUT_LIST_OBJECTIVES`

List Objectives returns a list of all Objectives and their attributes.

### List projects

**Slug:** `SHORTCUT_LIST_PROJECTS`

List Projects returns a list of all Projects and their attributes.

### List repositories

**Slug:** `SHORTCUT_LIST_REPOSITORIES`

List Repositories returns a list of all Repositories and their attributes.

### List stories

**Slug:** `SHORTCUT_LIST_STORIES`

List Stories returns a list of all Stories in a selected Project and their attributes.

### List story comment

**Slug:** `SHORTCUT_LIST_STORY_COMMENT`

Lists Comments associated with a Story

### List workflows

**Slug:** `SHORTCUT_LIST_WORKFLOWS`

Returns a list of all Workflows in the Workspace.

### Search

**Slug:** `SHORTCUT_SEARCH`

Search lets you search Epics and Stories based on desired parameters. Since ordering of the results can change over time (due to search ranking decay, new Epics and Stories being created), the `next` value from the previous response can be used as the path and query string for the next page to ensure stable ordering.

### Search epics

**Slug:** `SHORTCUT_SEARCH_EPICS`

Search Epics lets you search Epics based on desired parameters. Since ordering of stories can change over time (due to search ranking decay, new Epics being created), the `next` value from the previous response can be used as the path and query string for the next page to ensure stable ordering.

### Search iterations

**Slug:** `SHORTCUT_SEARCH_ITERATIONS`

Search Iterations lets you search Iterations based on desired parameters. Since ordering of results can change over time (due to search ranking decay, new Iterations being created), the `next` value from the previous response can be used as the path and query string for the next page to ensure stable ordering.

### Search milestones

**Slug:** `SHORTCUT_SEARCH_MILESTONES`

Search Milestones lets you search Milestones based on desired parameters. Since ordering of results can change over time (due to search ranking decay, new Milestones being created), the `next` value from the previous response can be used as the path and query string for the next page to ensure stable ordering.

### Search objectives

**Slug:** `SHORTCUT_SEARCH_OBJECTIVES`

Search Objectives lets you search Objectives based on desired parameters. Since ordering of results can change over time (due to search ranking decay, new Objectives being created), the `next` value from the previous response can be used as the path and query string for the next page to ensure stable ordering.

### Search stories

**Slug:** `SHORTCUT_SEARCH_STORIES`

Search Stories lets you search Stories based on desired parameters. Since ordering of stories can change over time (due to search ranking decay, new stories being created), the `next` value from the previous response can be used as the path and query string for the next page to ensure stable ordering.

### Search stories old

**Slug:** `SHORTCUT_SEARCH_STORIES_OLD`

Search Stories lets you search Stories based on desired parameters.

### Story history

**Slug:** `SHORTCUT_STORY_HISTORY`

Retrieves the complete history of changes for a specific story in the Shortcut project management system. This endpoint allows users to track all modifications, updates, and revisions made to a story over time, providing a comprehensive timeline of its evolution. It's particularly useful for project managers, team members, and stakeholders who need to understand how a story has changed, who made the changes, and when they occurred. The endpoint returns a chronological list of all events and modifications associated with the specified story, helping teams maintain transparency and accountability in their project workflows. Note that this endpoint focuses solely on the history of a single story and does not provide information about related stories or overall project status.

### Unlink comment thread from slack

**Slug:** `SHORTCUT_UNLINK_COMMENT_THREAD_FROM_SLACK`

Unlinks a Comment from its linked Slack thread (Comment replies and Slack replies will no longer be synced)

### Unlink productboard from epic

**Slug:** `SHORTCUT_UNLINK_PRODUCTBOARD_FROM_EPIC`

This endpoint allows you to unlink a productboard epic.

### Update category

**Slug:** `SHORTCUT_UPDATE_CATEGORY`

Update Category allows you to replace a Category name with another name. If you try to name a Category something that already exists, you will receive a 422 response.

### Update custom field

**Slug:** `SHORTCUT_UPDATE_CUSTOM_FIELD`

Update Custom Field can be used to update the definition of a Custom Field. The order of items in the 'values' collection is interpreted to be their ascending sort order.To delete an existing enum value, simply omit it from the 'values' collection. New enum values may be created inline by including an object in the 'values' collection having a 'value' entry with no 'id' (eg. {'value': 'myNewValue', 'color_key': 'green'}).

### Update entity template

**Slug:** `SHORTCUT_UPDATE_ENTITY_TEMPLATE`

Update an entity template's name or its contents.

### Update epic

**Slug:** `SHORTCUT_UPDATE_EPIC`

Update Epic can be used to update numerous fields in the Epic. The only required parameter is Epic ID, which can be found in the Shortcut UI.

### Update epic comment

**Slug:** `SHORTCUT_UPDATE_EPIC_COMMENT`

This endpoint allows you to update a threaded Comment on an Epic.

### Update file

**Slug:** `SHORTCUT_UPDATE_FILE`

Update File updates the properties of an UploadedFile (but not its content).

### Update group

**Slug:** `SHORTCUT_UPDATE_GROUP`

Updates an existing group in the Shortcut workspace. This endpoint allows you to modify various properties of a group, including its name, description, color, members, and associated workflows. Use this when you need to change group details, add or remove members, or update the group's visual representation. It's particularly useful for team reorganizations, project changes, or general maintenance of your Shortcut workspace structure. Note that while many fields are optional, you should include any fields you wish to modify; omitted fields will retain their current values.

### Update iteration

**Slug:** `SHORTCUT_UPDATE_ITERATION`

This endpoint allows you to update an existing iteration in Shortcut. It provides comprehensive control over various aspects of an iteration, including its metadata, associated members and groups, labels, and timeframe. Use this endpoint when you need to modify any details of an ongoing or upcoming iteration, such as adjusting dates, adding followers, or updating labels. The endpoint is particularly useful for project managers or team leads who need to refine iteration details as the project progresses. Note that while you can update multiple aspects of an iteration in a single call, only the fields you include in the request will be modified; omitted fields will retain their current values.

### Update key result

**Slug:** `SHORTCUT_UPDATE_KEY_RESULT`

Update Key Result allows updating a Key Result's name or initial, observed, or target values.

### Update label

**Slug:** `SHORTCUT_UPDATE_LABEL`

Update Label allows you to replace a Label name with another name. If you try to name a Label something that already exists, you will receive a 422 response.

### Update linked file

**Slug:** `SHORTCUT_UPDATE_LINKED_FILE`

Updated Linked File allows you to update properties of a previously attached Linked-File.

### Update milestone

**Slug:** `SHORTCUT_UPDATE_MILESTONE`

(Deprecated: Use 'Update Objective') Update Milestone can be used to update Milestone properties.

### Update multiple stories

**Slug:** `SHORTCUT_UPDATE_MULTIPLE_STORIES`

Update Multiple Stories allows you to make changes to numerous stories at once.

### Update objective

**Slug:** `SHORTCUT_UPDATE_OBJECTIVE`

Update Objective can be used to update Objective properties.

### Update project

**Slug:** `SHORTCUT_UPDATE_PROJECT`

Update Project can be used to change properties of a Project.

### Update story

**Slug:** `SHORTCUT_UPDATE_STORY`

Update Story can be used to update Story properties.

### Update story comment

**Slug:** `SHORTCUT_UPDATE_STORY_COMMENT`

Update Comment replaces the text of the existing Comment.

### Update story link

**Slug:** `SHORTCUT_UPDATE_STORY_LINK`

Updates the stories and/or the relationship for the given Story Link.

### Update task

**Slug:** `SHORTCUT_UPDATE_TASK`

Update Task can be used to update Task properties.

### Upload files

**Slug:** `SHORTCUT_UPLOAD_FILES`

Upload Files uploads one or many files and optionally associates them with a story. Use the multipart/form-data content-type to upload. Each `file` key should contain a separate file. Each UploadedFile's name comes from the Content-Disposition header "filename" directive for that field.
