canonical: https://jentic.com/apis/aha.io/aha

# Aha! API

Jentic publishes the only available OpenAPI specification for Aha! API, keeping it validated and agent-ready. Aha! is a product roadmap and idea management platform; the API exposes 47 endpoints for managing the full product hierarchy - products, releases, features, requirements, ideas, goals, initiatives, epics, to-dos, pages, and users - along with comments, tags, and workflows. Hosts are subdomain-scoped to a workspace, and authentication uses an OAuth2-style bearer token with a documented limit of 300 requests per minute and 20 per second per account.

## For AI agents

Manage products, features, releases, ideas, goals, and initiatives in an Aha! workspace - full CRUD across the product hierarchy plus comments, tags, and workflow state.

## Scope

Does not handle source control, CI builds, or customer support tickets - use for product, roadmap, and idea management within an Aha! workspace only.

## Capabilities

- Create and update features, releases, and requirements within a product
- Promote ideas into features and link them to releases or initiatives
- Track goals and initiatives across products with progress and status
- Manage epics that group features across releases
- Read and write comments and to-dos against any object in the hierarchy
- Apply tags and move objects through workflows for status reporting
- List and update users within the Aha! workspace

## Use cases

### Idea Triage and Promotion

Product managers triage incoming ideas and convert the strongest into features against a target release. The API exposes the full create/update lifecycle for ideas at /api/v1/products/{product_id}/ideas and lets the same agent promote an idea into a feature with one further call. Tagging and commenting endpoints round out the triage workflow.

Example prompt: GET /api/v1/products/{product_id}/ideas filtered by tag 'enterprise', then PUT each idea status to 'reviewed'

### Roadmap Build-Out

Product teams script the creation of features, requirements, and dependencies for an upcoming release rather than clicking through the UI. POST /api/v1/products/{product_id}/features creates a feature, while requirements, to-dos, and tags can be attached in follow-up calls. The endpoints accept the company subdomain via the {company}.aha.io host so multi-tenant integrations work cleanly.

Example prompt: POST /api/v1/products/{product_id}/features for each backlog item, then PUT release_id on each to schedule

### Goal and Initiative Tracking

Engineering and PMO teams keep an external dashboard in sync with Aha! by polling the goals and initiatives endpoints. /api/v1/products/{product_id}/goals returns the goals associated with a product and /api/v1/products/{product_id}/initiatives returns the strategic initiatives, both of which can be updated through the matching PUT endpoints to reflect progress.

Example prompt: GET /api/v1/products/{product_id}/initiatives and PUT progress=75 for initiative INIT-3

### AI Agent Product Operations via Jentic

An agent built on Jentic can maintain Aha! state in response to natural language - 'add a feature for SSO support to our July release' - by chaining product lookup, feature creation, release assignment, and tag application. Jentic injects the bearer token from the vault, and the documented 300/min limit is applied per account so an agent can run many concurrent operations safely.

Example prompt: Use Jentic to search 'create a feature in Aha', load the schema, and create a feature with name and release_id

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /api/v1/products | List all products |
| POST | /api/v1/products/{product_id}/features | Create a feature |
| PUT | /api/v1/features/{feature_id} | Update a feature |
| POST | /api/v1/products/{product_id}/releases | Create a release |
| POST | /api/v1/products/{product_id}/ideas | Create an idea |
| POST | /api/v1/products/{product_id}/goals | Create a goal |
| POST | /api/v1/products/{product_id}/initiatives | Create an initiative |
| GET | /api/v1/releases/{release_id}/features | List features in a release |

## Key resources

- **Products** — Top-level product workspaces
- **Features** — Feature records with status, release, and requirements
- **Releases** — Release containers with scheduled features
- **Ideas** — Ideas captured for triage and promotion
- **Goals** — Product goals with status and progress
- **Initiatives** — Strategic initiatives spanning products and releases
- **Epics** — Epics grouping features across releases
- **Requirements** — Detailed requirements attached to features
- **To-dos** — Tasks assigned to users on any object
- **Comments** — Threaded comments on any record
- **Tags** — Labels applied to records for filtering and triage
- **Users** — Users in the Aha! workspace
- **Workflows** — Workflow definitions for record state transitions
- **Pages** — Notes pages for documentation

## Why Jentic

- **Setup:** Wiring the Aha! API by hand means managing its bearer token, resolving the company subdomain in the base URL, and coding your own logic across products, features, and releases. Through Jentic you install once, import the Aha! API from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** Aha! puts the product id and feature id in the URL path (/products/{product_id}/..., /features/{feature_id}), so a rule can pin the agent to one product. You choose which operations it may call, such as reading products or creating features, so anything you leave out is not reachable.
- **Credential handling:** Your Aha! bearer token is stored once, encrypted, by your own Jentic One instance and attached at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'create a feature in Aha', and Jentic returns the matching operation with its path parameters and body fields, including the company subdomain, so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Linear** — Issue tracker with cycles, projects, and roadmap view for engineering-led teams
- **Asana** — Work management platform with projects, tasks, and goals
- **ClickUp** — All-in-one work platform with hierarchical spaces, lists, and tasks
- **monday.com** — Customisable work OS with boards, items, and automations
- **GitHub** — Source control and project boards that often pair with Aha! for engineering execution

## FAQ

### Why is there no official OpenAPI spec for Aha! API?

Aha! does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call the Aha! API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Aha! API use?

The API uses a bearer token in the Authorization header. Tokens can be generated as personal API keys or via OAuth2 in the Aha! account. Jentic stores the token in its vault and injects it on each request, so the secret never enters agent context.

### What are the rate limits for the Aha! API?

The Aha! API is limited to 300 requests per minute and 20 requests per second per account. Plan batched workloads with backoff; 429 responses include retry guidance and should be honoured before retrying the call.

### How do I create a feature in a release through the Aha! API?

POST /api/v1/products/{product_id}/features with the feature name, status, and an initial assigned_to_user. To attach the new feature to a release, follow up with PUT /api/v1/features/{feature_id} setting the release_id field.

### How do I promote an idea to a feature through Jentic?

Search Jentic for 'promote an Aha idea to a feature'. Load the matching POST schema, supply the idea_id and target release_id, and execute. Jentic adds the bearer token before the call and returns the new feature record.

### Can I list all goals and initiatives across products?

Yes, but the listing endpoints are scoped per product - call GET /api/v1/products/{product_id}/goals and /api/v1/products/{product_id}/initiatives for each product, then aggregate. Use the fields query parameter to keep responses small if you only need name and status.

### Can I limit what my agent is allowed to do with the Aha! API?

Yes. Because you run Jentic One yourself, your own rules decide which Aha! operations and credentials the agent may use, and anything you leave out stays unreachable. You can grant only the calls you intend, such as reading products with GET /api/v1/products or creating features with POST /api/v1/products/{product_id}/features, while withholding write operations you do not want. Since Aha! carries the product id and feature id in the URL path (/products/{product_id}/..., /features/{feature_id}), a rule can also pin the agent to a single product so it never touches others.
