Ideas API

When creating an idea where the creator is an idea user we strongly suggest to provide the submitted_idea_portal_id attribute to the idea to ensure that the idea is created in the correct ideas portal and the user gets access to the portal.

If you don't want the idea to be submitted to any portal, you can skip this by setting skip_portal: true in the request body.

Create an idea with watchers

POST /api/v1/products/:product_id/ideas

product_id *

Numeric ID or key of the product


Numeric ID of the ideas portal. We strongly suggest you set this if the creator is an idea user.

name *

Name of the idea


Description of the idea — may include HTML formatting.


Status of the idea — must be a valid status for the selected product.


Tags to add to the idea. Multiple tags must be separated by commas.


Names of any existing categories the idea should be assigned to. Multiple categories must be separated by commas.

created_by *

Email address of user who created the idea — does not need to be an Aha! user email.


Email address of user that is assigned the idea.


Feature ID of the feature that the idea was promoted to


Initiative ID of the initiative that the idea was promoted to


Epic ID of the epic that the idea was promoted to


Idea ID for an idea which this idea duplicates. Setting this value will merge this idea into the provided idea ID; setting it to a null or blank value will unmerge this idea. Note that in the API response, this attribute is called duplicate_of.


Number of votes to seed the vote count with when importing from other systems


Initial visibility of the idea (aha, creator, employee, employee_or_creator, creator_organization, or public - aha is the default)


Date of idea creation. In UTC timezone with format YYYY-MM-DD or YYYY-MM-DD HH:MM:SS.


Whether the idea is considered spam. Must be 'true' or 'false'

Example request

POST /api/v1/products/PRJ1/ideas

Example CURL command

curl "" -d '{"fields":"*,watchers","idea":{"name":"New idea","watchers":"689956296,16338845"}}' -X POST \
	-H "Authorization: Bearer 15b60d42d4bc417284a246ced6877b0bf13fb4aca415f7b55f7006bc3694a8ab" \
	-H "Content-Type: application/json" \
	-H "Accept: application/json"


authorization: Bearer 15b60d42d4bc417284a246ced6877b0bf13fb4aca415f7b55f7006bc3694a8ab
contentType: application/json
accept: application/json

Request body


Status: 200 OK
contentType: application/json; charset=utf-8

Response body