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.

FieldTypeReturned by defaultSortableSupported filters

Unique record ID.

integerYesYes
eqnot_eqgtgteltlteinnot_inbetweenemptynot_empty

URL to view the record in Aha!

stringYesNoNone

API URL for the record.

stringYesNoNone

Name of the record.

stringYesYes
eqnot_eqcontainsstarts_withinnot_inemptynot_empty

Reference number of the record.

stringYesYes
eqnot_eqcontainsstarts_withinnot_inemptynot_empty

Date and time when the record was created.

date-timeNoYes
eqgtgteltltebetweenemptynot_empty

Date and time when the record was last updated.

date-timeNoYes
eqgtgteltltebetweenemptynot_empty

Start date of the record.

dateNoYes
eqgtgteltltebetweenemptynot_empty

End date of the record.

dateNoYes
eqgtgteltltebetweenemptynot_empty

Progress completed for the record.

numberNoYes
eqnot_eqgtgteltlteinnot_inbetweenemptynot_empty

Score assigned to the record.

numberNoYes
eqnot_eqgtgteltlteinnot_inbetweenemptynot_empty

Initial work estimate for the record.

numberNoYes
eqnot_eqgtgteltlteinnot_inbetweenemptynot_empty

Detailed work estimate for the record.

numberNoYes
eqnot_eqgtgteltlteinnot_inbetweenemptynot_empty

Remaining work estimate for the record.

numberNoYes
eqnot_eqgtgteltlteinnot_inbetweenemptynot_empty

Work completed for the record.

numberNoYes
eqnot_eqgtgteltlteinnot_inbetweenemptynot_empty

Position of the record relative to its siblings.

integerNoYes
eqnot_eqgtgteltlteinnot_inbetweenemptynot_empty

How progress is calculated for the record.

stringNoNo
eqnot_eqinnot_inemptynot_empty

How start and end dates are calculated for the record.

stringNoNoNone

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

stringNoYes
eqnot_eqinnot_inemptynot_empty

Status assigned to the record.

StatusNoNo
emptynot_empty

User assigned to the record.

AssignedToUserNoNo
emptynot_empty

User who created the record.

UserNoNo
emptynot_empty

HTML description of the record.

NoteNoNo
emptynot_empty

Workspace that contains the record.

ProjectNoNo
emptynot_empty

Release associated with the record.

ReleaseNoNo
emptynot_empty

Release phase associated with the record.

ReleasePhaseNoNo
emptynot_empty

Iteration associated with the record.

IterationNoNo
emptynot_empty

Initiative associated with the record.

InitiativeNoNo
emptynot_empty

Team assigned to the record.

Availability depends on account settings.
ProjectNoNo
emptynot_empty

Team status assigned to the record.

Availability depends on account settings.
StatusNoNo
emptynot_empty

Program increment associated with the record.

ProgramIncrementNoNo
emptynot_empty

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

Availability depends on account settings.
TimeCodeNoNo
emptynot_empty

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.

CollectionNoNo
emptynot_empty

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.

CollectionNoNo
emptynot_empty

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.

CollectionNoNo
emptynot_empty

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.
CollectionNoNo
emptynot_empty

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.

CollectionNoNo
emptynot_empty

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.

objectNoNoBy custom field type

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.

CollectionNoNo
emptynot_empty

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

Download the complete OpenAPI specification