canonical: https://jentic.com/apis/habitify.me/habitify

# Habitify API

Jentic publishes the only available OpenAPI specification for Habitify API, keeping it validated and agent-ready. Habitify is a habit-tracking app for iOS, Android, web, and watch platforms. The API exposes endpoints to read habits, log completions, and manage notes attached to each habit. Agents can pull a user's habit list, mark a habit complete for a given date, and append free-text notes to track context, mood, or progress.

## For AI agents

Read a user's Habitify habits, log completions for a given date, and attach notes about progress or context.

## Scope

Does not handle gamification rewards, social challenges, or calendar scheduling - use for personal habit, log, and note management in Habitify only.

## Capabilities

- List all habits configured in a Habitify account
- Retrieve a single habit by id with its schedule and metadata
- Log a habit as completed, skipped, or failed for a specified date
- Update or delete an existing habit log entry
- Attach text notes to a habit and read note history
- Update or delete notes by note id

## Use cases

### Voice-Driven Habit Logging

Build a voice agent that logs habits as the user speaks them out loud. The agent maps an utterance like 'I just meditated' to the matching habit id and posts a log entry to `/logs/{habit_id}` with today's date and a completed status. Habitify handles streaks, scheduling, and multi-device sync. Setup runs in under an hour with a Habitify API key.

Example prompt: Find the habit named 'Meditation' and POST a log to `/logs/{habit_id}` with status 'completed' and today's date.

### Contextual Note Capture

Capture context for each habit completion - mood, location, or a quick reflection - by writing to the habit's notes endpoint. The agent observes a completion event and posts a note via `/notes/{habit_id}` so the user later sees rich context in their Habitify journal. Useful for therapy support agents, journaling workflows, and ADHD coaches.

Example prompt: POST a note to `/notes/{habit_id}` for the 'morning-walk' habit with the text 'Walked along the river, mood improved noticeably.'

### Cross-App Habit Sync

Mirror habits between Habitify and another tracker by listing habits via GET /habits and recreating them in the destination system. The agent pulls the source list, normalises the schedule fields, and writes equivalents downstream. Suitable for users migrating between apps or running parallel trackers.

Example prompt: GET /habits, list each habit's id and name, and create a matching task in a downstream productivity tool.

### Agent Discovery Through Jentic

Agents search Jentic with intents like 'log a habit' and receive the Habitify operation that satisfies it, with a typed input schema. The agent loads the schema, fills in habit_id and date, and executes through the Jentic SDK. Credentials live in your Jentic One instance, never in the agent prompt.

Example prompt: Use Jentic search 'log a habit' to find the Habitify log operation and execute it for habit_id 'reading' with status 'completed'.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/habits` | List all habits in the account |
| GET | `/habits/{habit_id}` | Get a habit by id |
| POST | `/logs/{habit_id}` | Log a completion, skip, or failure for a habit |
| DELETE | `/logs/{habit_id}/{log_id}` | Delete a habit log entry |
| POST | `/notes/{habit_id}` | Attach a note to a habit |
| DELETE | `/notes/{habit_id}/{note_id}` | Delete a habit note |

## Key resources

- **Habits** — List habits and retrieve a single habit by id
- **Logs** — Create, update, and delete log entries that mark a habit completed, skipped, or failed for a date
- **Notes** — Attach, list, update, and delete free-text notes on a habit

## Why Jentic

- **Setup:** Wiring the Habitify API by hand means setting its Authorization header key on every request and building each habit, log, and note call yourself. Through Jentic you install once, import the Habitify API from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** Habitify puts the habit id in the URL path (`/logs/{habit_id}`, `/notes/{habit_id}`), so a rule can pin your agent to one habit: it can log progress or add notes for that habit and nothing else. You choose the operations it may call, so deleting logs or notes is not included unless you add it.
- **Credential handling:** Your Habitify API key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'log a habit' or 'list habits', and Jentic returns the matching Habitify operation with its input schema for the habit id and date so the agent calls the right endpoint without reading the docs.

## Related APIs

- **Habitica API** — Gamified habit tracker with party quests and an RPG layer.
- **Asana API** — Mirror recurring Asana tasks into Habitify as tracked habits.
- **ClickUp API** — Mirror habit completions as tasks inside a team workspace.

## FAQ

### Why is there no official OpenAPI spec for Habitify API?

Habitify does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Habitify 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 Habitify API use?

Habitify uses an API key passed in the Authorization header. The key is generated from the Habitify account settings under integrations. Through Jentic, the key is stored encrypted in the vault and injected at execution time so the agent never receives it directly.

### Can I log a habit for a past date through the Habitify API?

Yes. POST `/logs/{habit_id}` accepts a target date, so an agent can backfill missed completions or correct entries for previous days. Use PUT `/logs/{habit_id}/{log_id}` to update an existing log instead of creating a duplicate.

### What endpoints are available for managing habit notes?

The `/notes/{habit_id}` endpoint creates and lists notes for a habit, and `/notes/{habit_id}/{note_id}` updates or deletes a specific note. Notes are free-text and can store mood, location, or any context the agent wants to attach to a habit completion.

### How do I log a habit through Jentic?

Run pip install jentic, then search 'log a habit' in the Jentic SDK to find the Habitify POST `/logs/{habit_id}` operation. Load the schema, fill in habit_id, target_date, and status, and execute. The full flow takes under five minutes.

### Are there rate limits on the Habitify API?

Habitify enforces a per-account rate limit on the API key. Specific quotas are not published in the spec; agents should respect 429 responses by backing off and retrying with exponential delay.

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

Yes. Because you run Jentic One yourself, your own rules decide which Habitify operations and credentials your agent may use. Habitify puts the habit id in the URL path, as in `/logs/{habit_id}` and `/notes/{habit_id}`, so you can pin the agent to a single habit and let it only log completions or add notes for that one. You choose the operations it may call, so destructive calls like DELETE `/logs/{habit_id}/{log_id}` or DELETE `/notes/{habit_id}/{note_id}` stay off unless you explicitly allow them.
