List epics
GET /api/v3/epics
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.
Number of records per page (default 25, max 200)
Opaque cursor from a previous response to fetch the next page
Fields
Choose fields to return, filter, or sort. 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.
Add and edit filters and sorting in field details. Examples illustrate the response shape, not matching records.
| Field | Type | Returned by default | Sortable | Supported filters |
|---|---|---|---|---|
Unique record ID. | integer | Yes | Yes | eqnot_eqgtgteltlteinnot_inbetweenemptynot_empty |
URL to view the record in Aha! | string | Yes | No | None |
API URL for the record. | string | Yes | No | None |
Name of the record. | string | Yes | Yes | eqnot_eqcontainsstarts_withinnot_inemptynot_empty |
Reference number of the record. | string | Yes | Yes | eqnot_eqcontainsstarts_withinnot_inemptynot_empty |
Date and time when the record was created. | date-time | No | Yes | eqgtgteltltebetweenemptynot_empty |
Date and time when the record was last updated. | date-time | No | Yes | eqgtgteltltebetweenemptynot_empty |
Start date of the record. | date | No | Yes | eqgtgteltltebetweenemptynot_empty |
End date of the record. | date | No | Yes | eqgtgteltltebetweenemptynot_empty |
Progress completed for the record. | number | No | Yes | eqnot_eqgtgteltlteinnot_inbetweenemptynot_empty |
Score assigned to the record. | number | No | Yes | eqnot_eqgtgteltlteinnot_inbetweenemptynot_empty |
Initial work estimate for the record. | number | No | Yes | eqnot_eqgtgteltlteinnot_inbetweenemptynot_empty |
Detailed work estimate for the record. | number | No | Yes | eqnot_eqgtgteltlteinnot_inbetweenemptynot_empty |
Remaining work estimate for the record. | number | No | Yes | eqnot_eqgtgteltlteinnot_inbetweenemptynot_empty |
Work completed for the record. | number | No | Yes | eqnot_eqgtgteltlteinnot_inbetweenemptynot_empty |
Position of the record relative to its siblings. | integer | No | Yes | eqnot_eqgtgteltlteinnot_inbetweenemptynot_empty |
How progress is calculated for the record. | string | No | No | eqnot_eqinnot_inemptynot_empty |
Allowed values: | ||||
How start and end dates are calculated for the record. | string | No | No | None |
Allowed values: | ||||
Whether estimates are entered on the record or calculated from its features. | string | No | Yes | eqnot_eqinnot_inemptynot_empty |
Allowed values: | ||||
Status assigned to the record. | Status | No | No | emptynot_empty |
Association filters apply to this field itself. Expand its subfields below to see their individual capabilities. | ||||
User assigned to the record. | AssignedToUser | No | No | emptynot_empty |
Association filters apply to this field itself. Expand its subfields below to see their individual capabilities. | ||||
User who created the record. | User | No | No | emptynot_empty |
Association filters apply to this field itself. Expand its subfields below to see their individual capabilities. | ||||
HTML description of the record. | Note | No | No | emptynot_empty |
Association filters apply to this field itself. Expand its subfields below to see their individual capabilities. | ||||
Workspace that contains the record. | Project | No | No | emptynot_empty |
Association filters apply to this field itself. Expand its subfields below to see their individual capabilities. | ||||
Release associated with the record. | Release | No | No | emptynot_empty |
Association filters apply to this field itself. Expand its subfields below to see their individual capabilities. | ||||
Release phase associated with the record. | ReleasePhase | No | No | emptynot_empty |
Association filters apply to this field itself. Expand its subfields below to see their individual capabilities. | ||||
Iteration associated with the record. | Iteration | No | No | emptynot_empty |
Association filters apply to this field itself. Expand its subfields below to see their individual capabilities. | ||||
Initiative associated with the record. | Initiative | No | No | emptynot_empty |
Association filters apply to this field itself. Expand its subfields below to see their individual capabilities. | ||||
Team assigned to the record. Availability depends on account settings. | Project | No | No | emptynot_empty |
Association filters apply to this field itself. Expand its subfields below to see their individual capabilities. | ||||
Team status assigned to the record. Availability depends on account settings. | Status | No | No | emptynot_empty |
Association filters apply to this field itself. Expand its subfields below to see their individual capabilities. | ||||
Program increment associated with the record. | ProgramIncrement | No | No | emptynot_empty |
Association filters apply to this field itself. Expand its subfields below to see their individual capabilities. | ||||
Time code assigned to the record. Only available when timesheets are enabled for the account. Availability depends on account settings. | TimeCode | No | No | emptynot_empty |
Association filters apply to this field itself. Expand its subfields below to see their individual capabilities. | ||||
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. | Collection | No | No | emptynot_empty |
Collection envelopeRecords use the associated fields below. Type: Required properties: records, has_more. urlType: has_moreType: next_urlType: Association filters apply to this field itself. Expand its subfields below to see their individual capabilities. | ||||
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. | Collection | No | No | emptynot_empty |
Collection envelopeRecords use the associated fields below. Type: Required properties: records, has_more. urlType: has_moreType: next_urlType: Association filters apply to this field itself. Expand its subfields below to see their individual capabilities. | ||||
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. | Collection | No | No | emptynot_empty |
Collection envelopeRecords use the associated fields below. Type: Required properties: records, has_more. urlType: has_moreType: next_urlType: Association filters apply to this field itself. Expand its subfields below to see their individual capabilities. | ||||
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. | Collection | No | No | emptynot_empty |
Collection envelopeRecords use the associated fields below. Type: Required properties: records, has_more. urlType: has_moreType: next_urlType: Association filters apply to this field itself. Expand its subfields below to see their individual capabilities. | ||||
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. | Collection | No | No | emptynot_empty |
Collection envelopeRecords use the associated fields below. Type: Required properties: records, has_more. urlType: has_moreType: next_urlType: Association filters apply to this field itself. Expand its subfields below to see their individual capabilities. | ||||
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. | object | No | No | By custom field type |
Custom field keys depend on your account. Request Filter with
Other custom field types cannot be filtered. Custom fields cannot be sorted. | ||||
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. | Collection | No | No | emptynot_empty |
Collection envelopeRecords use the associated fields below. Type: Required properties: records, has_more. urlType: has_moreType: next_urlType: Association filters apply to this field itself. Expand its subfields below to see their individual capabilities. | ||||
Search matches the start of a field path and includes matching associations’ subfields. Use a dotted path to search within a specific association.
Query syntax
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.
Filter with filter.{operator}[{field}]=value. Multiple filters combine with AND. Use comma-separated values for in and not_in, two inclusive bounds for between, and true for empty and not_empty.
Sort with sort.asc={field} or sort.desc={field}. Explicit sorting limits results to 1,000 records. Omit sorting to retrieve all results in descending ID order.
Set the page size with per_page. Follow pagination.next_url while pagination.has_more is true.
Filter operators
eq equals; not_eq does not equal; contains contains text; starts_with starts with text (both case-insensitive).
gt greater than; gte greater than or equal; lt less than; lte less than or equal.
in matches any listed value; not_in excludes listed values; between matches an inclusive range; empty and not_empty check for an absent or present value.
See field selection, filtering, and pagination and sorting limits for details.
Response statuses
Error shape for 400, 401, 403
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
Response envelope and pagination
records: array of records. Fields are documented above.
pagination
Type: object
Required properties: has_more.
has_more
Type: boolean
next_cursor
Type: string or null
next_url
Type: string or null (uri)
truncated
Type: boolean
truncated_message
Type: string