Create custom field definition
POST /api/v3/custom_field_definitions
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.
Request fields
Send fields for the new record inside a JSON record object.
Only writable fields for this endpoint are listed. Required flags reflect the endpoint schema; record and workspace validation also applies.
| Field | Type | Response field |
|---|---|---|
Name of the custom field definition. | string | name |
Accepted value shape and constraintsType: | ||
Key of the custom field definition. Must be unique per record type and only use lowercase letters, numbers and underscores. | string | key |
Accepted value shape and constraintsType: | ||
Type of the custom field definition. | string | type |
Accepted value shape and constraintsType: Allowed values: "text", "note", "number", "date", "url", "checkbox", "attachment", "predefined_choice_list", "editable_choice_list", "predefined_tags", "tags", "conditional_choice", "scorecard", "worksheet", "many_to_many_relationship", "many_to_one_relationship", "one_to_many_relationship", "users", "workspaces", "goals", "initiatives", "key_results", "releases", "epics", "features", "ideas", "idea_categories", "organizations", "idea_created_by", "competitors", "personas", "creative_briefs" Allowed values: | ||
Record type the custom field definition belongs to. Custom table fields use custom_table. | string | record_type |
Accepted value shape and constraintsType: Allowed values: "project", "feature", "epic", "requirement", "release", "release_phase", "initiative", "goal", "key_result", "idea", "idea_endorsement", "idea_organization", "idea_user", "creative_brief", "persona", "competitor", "capacity_investment", "team", "program_increment", "task", "document", "study", "interview", "custom_table" Allowed values: | ||
Internal name of the custom field definition, shown only to administrators. | string | internal_name |
Accepted value shape and constraintsType: | ||
HTML description of the record. | string | description |
Accepted value shape and constraintsType: | ||
Layouts the custom field definition appears on. Not settable for account-level or custom table fields, which have no layouts to choose. 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. | array | layouts |
Accepted value shape and constraintsType: Array item shapeType: idType: _destroyType: | ||
Text shown before the value of a number field. Null for other types. | string | prefix |
Accepted value shape and constraintsType: | ||
Text shown after the value of a number field. Null for other types. | string | suffix |
Accepted value shape and constraintsType: | ||
Whether a number field shows thousands separators. Always false for other types. | boolean | use_delimiters |
Accepted value shape and constraintsType: | ||
Label shown next to a checkbox field. Null for other types. | string | label |
Accepted value shape and constraintsType: | ||
How a predefined or editable choice list field shows its value. Null for other types. | string | display |
Accepted value shape and constraintsType: Allowed values: "plain_text", "colored_labels" Allowed values: | ||
Which records a records field offers as values: all in the account, those in the record's workspace line or workspace, or those related to the record. The scopes available depend on the field type and record type. Null for other types. | string | scope |
Accepted value shape and constraintsType: Allowed values: "account", "project_line", "project", "related" Allowed values: | ||
File extensions an attachment field accepts, from: csv, doc, docx, eml, gif, jpeg, mov, mp4, msg, pdf, png, ppt, pptx, tiff, txt, xls, xlsx. Null or empty allows every file type. Null for other types. | array | supported_file_types |
Accepted value shape and constraintsType: Array item shapeType: | ||
ID of the custom table a relationship field links to; set on create only and null for other types. | string | linked_custom_table |
Accepted value shape and constraintsType: Submit | ||
Which custom table records a many to many or many to one relationship field offers: all in the account, or those in the record's workspace and its parent lines. Idea organization fields only support account. Null for other types. | string | project_scope |
Accepted value shape and constraintsType: Allowed values: "account", "project" Allowed values: | ||
ID of the account scorecard a scorecard field uses; required for scorecard fields and null for other types. | string | scoring_system |
Accepted value shape and constraintsType: Submit | ||
Rows of a worksheet field. Send a row's id to update the fields you provide, omit the id to add a row at the end, or set _destroy to true to remove a row. Rows you don't send remain unchanged. | array | worksheet_rows |
Accepted value shape and constraintsType: Array item shapeType: idType: typeType: Allowed values: "field", "section" nameType: equationType: formatType: Allowed values: "string", "number", "percent", "currency", "date", "boolean" precisionType: show_thousand_separatorType: currencyType: Allowed values: "us_dollar", "euro", "pound", "yen" date_formatType: Allowed values: "american", "standard", "computer", "month", "full_text_month_year", "abbrev_text_month_year" _destroyType: | ||
ID of the custom table the custom field definition belongs to if record_type is custom_table. | string | custom_table |
Accepted value shape and constraintsType: Submit | ||
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.
| Field | Type | Returned by default |
|---|---|---|
Unique record ID. | integer | Yes |
Name of the custom field definition. | string | Yes |
Internal name of the custom field definition, shown only to administrators. | string | No |
Key of the custom field definition. Must be unique per record type and only use lowercase letters, numbers and underscores. | string | Yes |
Type of the custom field definition. | string | Yes |
Allowed values: | ||
Record type the custom field definition belongs to. Custom table fields use custom_table. | string | No |
Allowed values: | ||
Custom table the custom field definition belongs to if record_type is custom_table. | CustomObjectDefinition | No |
Expand this association to browse its response fields. | ||
HTML description of the record. | Note | No |
Expand this association to browse its response fields. | ||
Layouts the custom field definition appears on. Not settable for account-level or custom table fields, which have no layouts to choose. Omitted by default. Request the field for inline records with default sub-fields, or choose sub-fields (e.g., ?fields=layouts[default]). Capped at 25 records. Only available on the top-level resource. | Collection | No |
Collection envelopeRecords use the associated fields below. Type: Required properties: records, has_more. urlType: has_moreType: next_urlType: Expand this association to browse its response fields. | ||
Options of a choice custom field definition, including hidden options. Null for other types. Omitted by default. Request the field for inline records with default sub-fields, or choose sub-fields (e.g., ?fields=options[default]). Capped at 25 records. Only available on the top-level resource. | Collection | No |
Collection envelopeRecords use the associated fields below. Type: Required properties: records, has_more. urlType: has_moreType: next_urlType: Expand this association to browse its response fields. | ||
Text shown before the value of a number field. Null for other types. | string | No |
Text shown after the value of a number field. Null for other types. | string | No |
Whether a number field shows thousands separators. Always false for other types. | boolean | No |
Label shown next to a checkbox field. Null for other types. | string | No |
How a predefined or editable choice list field shows its value. Null for other types. | string | No |
Allowed values: | ||
Which records a records field offers as values: all in the account, those in the record's workspace line or workspace, or those related to the record. The scopes available depend on the field type and record type. Null for other types. | string | No |
Allowed values: | ||
File extensions an attachment field accepts, from: csv, doc, docx, eml, gif, jpeg, mov, mp4, msg, pdf, png, ppt, pptx, tiff, txt, xls, xlsx. Null or empty allows every file type. Null for other types. | array | No |
Custom table a relationship field links to; set on create only and null for other types. | CustomObjectDefinition | No |
Expand this association to browse its response fields. | ||
Which custom table records a many to many or many to one relationship field offers: all in the account, or those in the record's workspace and its parent lines. Idea organization fields only support account. Null for other types. | string | No |
Allowed values: | ||
Account scorecard a scorecard field uses; required for scorecard fields and null for other types. | ScoringSystem | No |
Expand this association to browse its response fields. | ||
Rows of a worksheet field, in display order. Null for other types. Omitted by default. Request the field for inline records with default sub-fields, or choose sub-fields (e.g., ?fields=worksheet_rows[default]). Capped at 25 records. Only available on the top-level resource. | Collection | No |
Collection envelopeRecords use the associated fields below. Type: Required properties: records, has_more. urlType: has_moreType: next_urlType: Expand this association to browse its response fields. | ||
Date and time when the record was created. | date-time | No |
Date and time when the record was last updated. | date-time | No |
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.