Update epic

PUT /api/v3/epics/{id}

Request conventions

API key or OAuth2 access token. See Authentication.

Use your account domain and token in copied requests. Request values and conditional fields must satisfy your account’s validation rules.

URL settings

The part before .aha.io. Leave blank to use the example domain.

ID or reference number of the epic

Request fields

Send only the fields you want to change inside a JSON record object. This applies to both PUT and PATCH.

Only writable fields for this endpoint are listed. Required flags reflect the endpoint schema; record and workspace validation also applies.

FieldTypeResponse field

Name of the record.

stringname

Start date of the record.

datestart_date

End date of the record.

dateend_date

Progress completed for the record.

numberprogress

Score assigned to the record.

numberscore

Initial work estimate for the record.

numberinitial_estimate

Detailed work estimate for the record.

numberdetailed_estimate

Remaining work estimate for the record.

numberremaining_estimate

Work completed for the record.

numberwork_done

Position of the record relative to its siblings.

integerposition

How progress is calculated for the record.

stringprogress_source

How start and end dates are calculated for the record.

stringduration_source

Whether estimates are entered on the record or calculated from its features.

stringestimate_source

ID of the status assigned to the record.

stringstatus

ID of the user assigned to the record.

stringassigned_to_user

ID of the user who created the record.

stringcreated_by_user

HTML description of the record.

stringdescription

ID of the release associated with the record.

stringrelease

ID of the release phase associated with the record.

stringrelease_phase

ID of the iteration associated with the record.

stringiteration

ID of the initiative associated with the record.

stringinitiative

ID of the team assigned to the record.

Availability depends on account settings.
stringteam

ID of the team status assigned to the record.

Availability depends on account settings.
stringteam_status

ID of the program increment associated with the record.

stringprogram_increment

ID of the time code assigned to the record. only available when timesheets are enabled for the account.

Availability depends on account settings.
stringtime_code

Tags associated with the epic. Items are merged into the existing collection: each item adds a record, or removes it with `_destroy: true`. Records not listed are left unchanged, and an empty array changes nothing.

arraytags

Goals associated with the epic. Items are merged into the existing collection: each item adds a record, or removes it with `_destroy: true`. Records not listed are left unchanged, and an empty array changes nothing.

arraygoals

Key results associated with the epic. Only available when key results are enabled for the account. Items are merged into the existing collection: each item adds a record, or removes it with `_destroy: true`. Records not listed are left unchanged, and an empty array changes nothing.

Availability depends on account settings.
arraykey_results

Individual metric values for the epic's scorecards. Items are merged into the existing collection: each item adds a record, or removes it with `_destroy: true`. Records not listed are left unchanged, and an empty array changes nothing.

arrayscore_facts

Custom field values to set. Property names are custom field definition keys, and each value is one of the supported input formats below, depending on the field type. Attachment fields are read-only and can't be set.

objectcustom_fields

Users watching the record for update notifications. Items are merged into the existing collection: each item adds a record, or removes it with `_destroy: true`. Records not listed are left unchanged, and an empty array changes nothing.

arraywatchers

Response fields

Choose which fields to include in the response. Expand a field for examples and associated fields. Collections can only be returned on the top-level resource, not inside an associated resource.

Default response fields are returned until you select specific fields.

FieldTypeReturned by default

Unique record ID.

integerYes

URL to view the record in Aha!

stringYes

API URL for the record.

stringYes

Name of the record.

stringYes

Reference number of the record.

stringYes

Date and time when the record was created.

date-timeNo

Date and time when the record was last updated.

date-timeNo

Start date of the record.

dateNo

End date of the record.

dateNo

Progress completed for the record.

numberNo

Score assigned to the record.

numberNo

Initial work estimate for the record.

numberNo

Detailed work estimate for the record.

numberNo

Remaining work estimate for the record.

numberNo

Work completed for the record.

numberNo

Position of the record relative to its siblings.

integerNo

How progress is calculated for the record.

stringNo

How start and end dates are calculated for the record.

stringNo

Whether estimates are entered on the record or calculated from its features.

stringNo

Status assigned to the record.

StatusNo

User assigned to the record.

AssignedToUserNo

User who created the record.

UserNo

HTML description of the record.

NoteNo

Workspace that contains the record.

ProjectNo

Release associated with the record.

ReleaseNo

Release phase associated with the record.

ReleasePhaseNo

Iteration associated with the record.

IterationNo

Initiative associated with the record.

InitiativeNo

Team assigned to the record.

Availability depends on account settings.
ProjectNo

Team status assigned to the record.

Availability depends on account settings.
StatusNo

Program increment associated with the record.

ProgramIncrementNo

Time code assigned to the record. Only available when timesheets are enabled for the account.

Availability depends on account settings.
TimeCodeNo

Tags associated with the epic. Omitted by default. Request the field for inline records with default sub-fields, or choose sub-fields (e.g., ?fields=tags[default]). Capped at 25 records. Only available on the top-level resource.

CollectionNo

Features associated with the epic. Omitted by default. Request the field for inline records with default sub-fields, or choose sub-fields (e.g., ?fields=features[default]). Capped at 25 records. Only available on the top-level resource.

CollectionNo

Goals associated with the epic. Omitted by default. Request the field for inline records with default sub-fields, or choose sub-fields (e.g., ?fields=goals[default]). Capped at 25 records. Only available on the top-level resource.

CollectionNo

Key results associated with the epic. Only available when key results are enabled for the account. Omitted by default. Request the field for inline records with default sub-fields, or choose sub-fields (e.g., ?fields=key_results[default]). Capped at 25 records. Only available on the top-level resource.

Availability depends on account settings.
CollectionNo

Individual metric values for the epic's scorecards. Omitted by default. Request the field for inline records with default sub-fields, or choose sub-fields (e.g., ?fields=score_facts[default]). Capped at 25 records. Only available on the top-level resource.

CollectionNo

Custom field values. Property names are custom field definition keys, and each value is one of the supported formats below, depending on the field type. Omitted unless requested with the fields parameter or submitted in the request. Fields with no stored value are omitted.

objectNo

Users watching the record for update notifications. Omitted by default. Request the field for inline records with default sub-fields, or choose sub-fields (e.g., ?fields=watchers[default]). Capped at 25 records. Only available on the top-level resource.

CollectionNo

Search matches the start of a field path and includes matching associations’ subfields. Use a dotted path to search within a specific association.

Response field selection

Create and update responses also include fields submitted in the record body. Submitted association IDs return their associated response fields.

Return selected fields with a comma-separated fields parameter, or add a field to the defaults with fields=default,{field}. Expand an association above for its supported subfields and selection examples.

See field selection for details.

Response statuses

Error shape for 400, 401, 403, 404, 409

Type: object

error

Type: object

Required properties: status, code, message, request_id.

status

Type: integer

code

Type: string

message

Type: string

request_id

Type: string

Error shape for 422

Type: object

error

Type: object

Required properties: status, code, message, details, request_id.

status

Type: integer

Allowed values: 422

code

Type: string

Allowed values: "record.validation_failed", "record.cannot_delete"

message

Type: string

details

Type: array

Array item shape

Type: object

field

Type: string

message

Type: string

code

Type: string

request_id

Type: string

Response envelope and pagination

record: a single record. Fields are documented above.

Download the complete OpenAPI specification