PROJECT MANAGEMENT · TASKS
Habits, dailies, to-dos, and challenges on that player’s own account.
Each user connects their own account. Every call carries both identities — the agent and the person it is acting for — so the agent can never reach past what that individual can already do.
Tokens live in the vault and attach server-side at call time. The agent holds a session, not a secret, and revoking access does not mean rotating a key.
Who asked, which agent acted, which action ran, and the verdict that let it through — one audit trail across every integration, not one per vendor.
Each action is granted on its own. An agent allowed to read is not thereby allowed to write, and the scope beside each row is what the acting user must have connected for it to run at all.
habitica_delete_api_v3_challenges_by_challengeidWRITEDelete a challenge via DELETE /api/v3/challenges/{challengeId}
habitica_delete_api_v3_groups_by_groupid_chat_by_chatidWRITEDelete's a chat message from a group via DELETE /api/v3/groups/{groupId}/chat/{chatId}
habitica_delete_api_v3_tags_by_tagidWRITEDelete a user tag via DELETE /api/v3/tags/{tagId}
habitica_delete_api_v3_tasks_by_taskidWRITEDelete a task via DELETE /api/v3/tasks/{taskId}
habitica_delete_api_v3_tasks_by_taskid_checklist_by_itemidWRITEDelete a checklist item from a task via DELETE /api/v3/tasks/{taskId}/checklist/{itemId}
habitica_delete_api_v3_tasks_by_taskid_tags_by_tagidWRITEDelete a tag from a task via DELETE /api/v3/tasks/{taskId}/tags/{tagId}
habitica_delete_api_v3_userWRITEDelete an authenticated user's account via DELETE /api/v3/user
habitica_delete_api_v3_user_auth_social_by_networkWRITERemove a social authentication method from a user profile. The user must have another authentication method enabled. via DELETE /api/v3/user/auth/social/{network}
habitica_delete_api_v3_user_messagesWRITEDelete all messages via DELETE /api/v3/user/messages
habitica_delete_api_v3_user_messages_by_idWRITEDelete a message via DELETE /api/v3/user/messages/{id}
habitica_delete_api_v3_user_webhook_by_idWRITEDelete a webhook - BETA via DELETE /api/v3/user/webhook/{id}
habitica_get_api_v3_challenges_by_challengeidREADGet a challenge via GET /api/v3/challenges/{challengeId}
habitica_get_api_v3_challenges_by_challengeid_export_csvREADExport a challenge in CSV via GET /api/v3/challenges/{challengeId}/export/csv
habitica_get_api_v3_challenges_by_challengeid_membersREADWith a limit of 30 member per request (by default). To get all members run requests against this routes (updating the lastId query parameter) until you get less than 30 results. BETA You can also use ?includeAllMembers=true. This option is currently in BETA and may be removed in future. Its use is discouraged and its performances are not optimized especially for large challenges. via GET /api/v3/challenges/{challengeId}/members
habitica_get_api_v3_challenges_by_challengeid_members_by_memberidREADGet a challenge member progress via GET /api/v3/challenges/{challengeId}/members/{memberId}
habitica_get_api_v3_challenges_groups_by_groupidREADGet challenges hosted in the specified group. via GET /api/v3/challenges/groups/{groupId}
habitica_get_api_v3_challenges_userREADGet challenges the user has access to. Includes public challenges, challenges belonging to the user's group, and challenges the user has already joined. Returns 10 results per page. via GET /api/v3/challenges/user
habitica_get_api_v3_contentREADDoes not require authentication. via GET /api/v3/content
habitica_get_api_v3_couponsREADGet coupons via GET /api/v3/coupons
habitica_get_api_v3_group_plansREADGet group plans for a user via GET /api/v3/group-plans
habitica_get_api_v3_groupsREADGet groups for a user via GET /api/v3/groups
habitica_get_api_v3_groups_by_groupidREADGet group via GET /api/v3/groups/{groupId}
habitica_get_api_v3_groups_by_groupid_chatREADFetches an array of messages from a group via GET /api/v3/groups/{groupId}/chat
habitica_get_api_v3_groups_by_groupid_invitesREADWith a limit of 30 member per request (by default). To get all invites run requests against this routes (updating the lastId query parameter) until you get less than 30 results. via GET /api/v3/groups/{groupId}/invites
habitica_get_api_v3_groups_by_groupid_membersREADWith a limit of 30 member per request (by default). To get all members run requests against this routes (updating the lastId query parameter) until you get less than 30 results (or the specified limit). via GET /api/v3/groups/{groupId}/members
habitica_get_api_v3_hall_heroesREADReturns an array of objects containing the heroes who have contributed for Habitica. The array is sorted by the contribution level in descending order. via GET /api/v3/hall/heroes
habitica_get_api_v3_hall_heroes_by_heroidREADReturns various data about the user. User does not need to be a contributor. via GET /api/v3/hall/heroes/{heroId}
habitica_get_api_v3_hall_heroes_by_heroid_group_plansREADReturns some basic information about group plans, to assist admins with user support. via GET /api/v3/hall/heroes/{heroId}/group-plans
habitica_get_api_v3_hall_heroes_party_by_groupidREADReturns some basic information about a given Party, to assist admins with user support. via GET /api/v3/hall/heroes/party/{groupId}
habitica_get_api_v3_hall_patronsREADReturns an array of objects containing the patrons who backed Habitica's original kickstarter. The array is sorted by the backer tier in descending order. By default, only the first 50 patrons are returned. More can be accessed by passing ?page=n via GET /api/v3/hall/patrons
habitica_get_api_v3_i18n_contentREADReturns the i18n JS script to make all the i18n strings available in the browser under window.i18n.strings. Does not require authentication. via GET /api/v3/i18n/content
habitica_get_api_v3_i18n_coreREADReturns the i18n JS script to make all the i18n strings available in the browser under window.i18n.strings. Does not require authentication. via GET /api/v3/i18n/core
habitica_get_api_v3_inbox_messagesREADGet inbox messages for a user via GET /api/v3/inbox/messages
habitica_get_api_v3_looking_for_partyREADGet users in search of parties via GET /api/v3/looking-for-party
habitica_get_api_v3_members_by_memberidREADGet a member profile via GET /api/v3/members/{memberId}
habitica_get_api_v3_members_by_memberid_achievementsREADGet a list of achievements of the requested member, grouped by basic / seasonal / special. via GET /api/v3/members/{memberId}/achievements
habitica_get_api_v3_members_by_touserid_objections_by_interactionREADGet any objections that would occur if the given interaction was attempted - BETA. via GET /api/v3/members/{toUserId}/objections/{interaction}
habitica_get_api_v3_models_by_model_pathsREADDoesn't require authentication via GET /api/v3/models/{model}/paths
habitica_get_api_v3_newsREADGet latest Bailey announcement via GET /api/v3/news
habitica_get_api_v3_readyREADGet Habitica's Server readiness status via GET /api/v3/ready
habitica_get_api_v3_statusREADGet Habitica's API status via GET /api/v3/status
habitica_get_api_v3_tagsREADGet a user's tags via GET /api/v3/tags
habitica_get_api_v3_tags_by_tagidREADGet a tag via GET /api/v3/tags/{tagId}
habitica_get_api_v3_tasks_by_taskidREADGet a task via GET /api/v3/tasks/{taskId}
habitica_get_api_v3_tasks_challenge_by_challengeidREADGet a challenge's tasks via GET /api/v3/tasks/challenge/{challengeId}
habitica_get_api_v3_tasks_group_by_groupidREADGet a group's tasks via GET /api/v3/tasks/group/{groupId}
habitica_get_api_v3_tasks_userREADGet a user's tasks via GET /api/v3/tasks/user
habitica_get_api_v3_userREADThe user profile contains data related to the authenticated user including (but not limited to): Achievements; Authentications (including types and timestamps); Challenges memberships (Challenge IDs); Flags (including armoire, tutorial, tour etc...); Guilds memberships (Guild IDs); History (including timestamps and values, only for Experience and summed To Do values); Inbox; Invitations (to parties/guilds); Items (character's full inventory); New Messages (flags for party/guilds that have new messages; also reported in Notifications); Notifications; Party (includes current quest information); Preferences (user selected prefs); Profile (name, photo url, blurb); Purchased (includes subscription data and some gem-purchased items); PushDevices (identifiers for mobile devices authorized); Stats (standard RPG stats, class, buffs, xp, etc..); Tags; TasksOrder (list of all IDs for Dailys, Habits, Rewards and To Do's). via GET /api/v3/user
habitica_get_api_v3_user_anonymizedREADReturns the user's data without: Authentication information, NewMessages/Invitations/Inbox, Profile, Purchased information, Contributor information, Special items, Webhooks, Notifications. via GET /api/v3/user/anonymized
habitica_get_api_v3_user_in_app_rewardsREADGet the in app items appearing in the user's reward column via GET /api/v3/user/in-app-rewards
habitica_get_api_v3_user_inventory_buyREADGet equipment/gear items available for purchase for the authenticated user via GET /api/v3/user/inventory/buy
habitica_get_api_v3_user_webhookREADGet webhooks via GET /api/v3/user/webhook
habitica_get_api_v3_world_stateREADDoes not require authentication. via GET /api/v3/world-state
habitica_post_api_v3_challengesWRITECreates a challenge. Cannot create associated tasks with this route. See CreateChallengeTasks. via POST /api/v3/challenges
habitica_post_api_v3_challenges_by_challengeid_clearflagsWRITEClears flags on a challenge via POST /api/v3/challenges/{challengeId}/clearflags
habitica_post_api_v3_challenges_by_challengeid_cloneWRITEClone a challenge via POST /api/v3/challenges/{challengeId}/clone
habitica_post_api_v3_challenges_by_challengeid_flagWRITEFlag a challenge via POST /api/v3/challenges/{challengeId}/flag
habitica_post_api_v3_challenges_by_challengeid_joinWRITEJoin a challenge via POST /api/v3/challenges/{challengeId}/join
habitica_post_api_v3_challenges_by_challengeid_leaveWRITELeave a challenge via POST /api/v3/challenges/{challengeId}/leave
habitica_post_api_v3_challenges_by_challengeid_selectwinner_by_winneridWRITESelect winner for challenge via POST /api/v3/challenges/{challengeId}/selectWinner/{winnerId}
habitica_post_api_v3_coupons_enter_by_codeWRITERedeem a coupon code via POST /api/v3/coupons/enter/{code}
habitica_post_api_v3_coupons_generate_by_eventWRITEGenerate coupons for an event via POST /api/v3/coupons/generate/{event}
habitica_post_api_v3_coupons_validate_by_codeWRITEValidate a coupon code via POST /api/v3/coupons/validate/{code}
habitica_post_api_v3_cronWRITEThis causes cron to run. It assumes that the user has already been shown the Record Yesterday's Activity ("Check off any Dailies you did yesterday") screen and so it will immediately apply damage for incomplete due Dailies. via POST /api/v3/cron
habitica_post_api_v3_group_by_groupid_tasks_by_taskid_move_to_by_positionWRITEMoves a group task to a specified position via POST /api/v3/group/{groupId}/tasks/{taskId}/move/to/{position}
habitica_post_api_v3_groupsWRITECreate group via POST /api/v3/groups
habitica_post_api_v3_groups_by_groupid_add_managerWRITEAdd a manager to a group via POST /api/v3/groups/{groupId}/add-manager
habitica_post_api_v3_groups_by_groupid_chatWRITEPosts a chat message to a group via POST /api/v3/groups/{groupId}/chat
habitica_post_api_v3_groups_by_groupid_chat_by_chatid_clearflagsWRITEResets the flag count on a chat message. Retains the id of the user's that have flagged the message. (Only visible to moderators) via POST /api/v3/groups/{groupId}/chat/{chatId}/clearflags
habitica_post_api_v3_groups_by_groupid_chat_by_chatid_flagWRITEA message will be hidden from chat if two or more users flag a message. It will be hidden immediately if a moderator flags the message. An email is sent to the moderators about every flagged message. via POST /api/v3/groups/{groupId}/chat/{chatId}/flag
habitica_post_api_v3_groups_by_groupid_chat_by_chatid_likeWRITELikes a chat message from a group via POST /api/v3/groups/{groupId}/chat/{chatId}/like
habitica_post_api_v3_groups_by_groupid_chat_seenWRITEMark all messages as read for a group via POST /api/v3/groups/{groupId}/chat/seen
habitica_post_api_v3_groups_by_groupid_inviteWRITEYou can provide both emails and uuids, or just one. You must provide at least one. via POST /api/v3/groups/{groupId}/invite
habitica_post_api_v3_groups_by_groupid_joinWRITEJoin a group via POST /api/v3/groups/{groupId}/join
habitica_post_api_v3_groups_by_groupid_leaveWRITELeave a group via POST /api/v3/groups/{groupId}/leave
habitica_post_api_v3_groups_by_groupid_quests_abortWRITEAbort the current quest via POST /api/v3/groups/{groupId}/quests/abort
habitica_post_api_v3_groups_by_groupid_quests_acceptWRITEAccept a pending quest via POST /api/v3/groups/{groupId}/quests/accept
habitica_post_api_v3_groups_by_groupid_quests_cancelWRITECancel a quest that is not active via POST /api/v3/groups/{groupId}/quests/cancel
habitica_post_api_v3_groups_by_groupid_quests_force_startWRITEForce-start a pending quest via POST /api/v3/groups/{groupId}/quests/force-start
habitica_post_api_v3_groups_by_groupid_quests_invite_by_questkeyWRITEInvite users to a quest via POST /api/v3/groups/{groupId}/quests/invite/{questKey}
habitica_post_api_v3_groups_by_groupid_quests_leaveWRITELeave the active quest via POST /api/v3/groups/{groupId}/quests/leave
habitica_post_api_v3_groups_by_groupid_quests_rejectWRITEReject a quest via POST /api/v3/groups/{groupId}/quests/reject
habitica_post_api_v3_groups_by_groupid_reject_inviteWRITEReject a group invitation via POST /api/v3/groups/{groupId}/reject-invite
habitica_post_api_v3_groups_by_groupid_remove_managerWRITERemove a manager from a group via POST /api/v3/groups/{groupId}/remove-manager
habitica_post_api_v3_groups_by_groupid_removemember_by_memberidWRITERemove a member from a group via POST /api/v3/groups/{groupId}/removeMember/{memberId}
habitica_post_api_v3_groups_create_planWRITECreate a Group and then redirect to the correct payment via POST /api/v3/groups/create-plan
habitica_post_api_v3_members_by_memberid_clear_flagsWRITERemoves any abuse reports flagged on a user profile. via POST /api/v3/members/{memberId}/clear-flags
habitica_post_api_v3_members_by_memberid_flagWRITESends an email to staff about another user or their profile via POST /api/v3/members/{memberId}/flag
habitica_post_api_v3_members_send_private_messageWRITESend a private message to a member via POST /api/v3/members/send-private-message
habitica_post_api_v3_members_transfer_gemsWRITESend a gem gift to a member via POST /api/v3/members/transfer-gems
habitica_post_api_v3_news_tell_me_laterWRITEAdd a notification to allow viewing of the latest "New Stuff by Bailey" message. Prevent this specific Bailey message from appearing automatically. via POST /api/v3/news/tell-me-later
habitica_post_api_v3_notifications_by_notificationid_readWRITEMark one notification as read via POST /api/v3/notifications/{notificationId}/read
habitica_post_api_v3_notifications_by_notificationid_seeWRITEMark a notification as seen. Different from marking them as read in that the notification isn't removed but the seen field is set to true. via POST /api/v3/notifications/{notificationId}/see
habitica_post_api_v3_notifications_readWRITEMarks multiple notifications as read by removing them from the user's notification list. This differs from marking notifications as seen, which retains them but sets the seen field to true. via POST /api/v3/notifications/read
habitica_post_api_v3_notifications_seeWRITEMark multiple notifications as seen via POST /api/v3/notifications/see
habitica_post_api_v3_reorder_tagsWRITEReorder a tag via POST /api/v3/reorder-tags
habitica_post_api_v3_tagsWRITECreate a new tag via POST /api/v3/tags
habitica_post_api_v3_tasks_by_taskid_assignWRITEAssign users to a group task via POST /api/v3/tasks/{taskId}/assign
habitica_post_api_v3_tasks_by_taskid_checklistWRITEAdd an item to the task's checklist via POST /api/v3/tasks/{taskId}/checklist
habitica_post_api_v3_tasks_by_taskid_checklist_by_itemid_scoreWRITEScore a checklist item via POST /api/v3/tasks/{taskId}/checklist/{itemId}/score
habitica_post_api_v3_tasks_by_taskid_move_to_by_positionWRITENote: completed To Do's are not sortable, do not appear in user.tasksOrder.todos, and are ordered by date of completion. via POST /api/v3/tasks/{taskId}/move/to/{position}
habitica_post_api_v3_tasks_by_taskid_needs_work_by_useridWRITEMark an assigned group task as needing more work before it can be approved via POST /api/v3/tasks/{taskId}/needs-work/{userId}
habitica_post_api_v3_tasks_by_taskid_score_by_directionWRITEScore a task via POST /api/v3/tasks/{taskId}/score/{direction}
habitica_post_api_v3_tasks_by_taskid_tags_by_tagidWRITEAdd a tag to a task via POST /api/v3/tasks/{taskId}/tags/{tagId}
habitica_post_api_v3_tasks_by_taskid_unassign_by_assigneduseridWRITEUnassigns a user from a group task via POST /api/v3/tasks/{taskId}/unassign/{assignedUserId}
habitica_post_api_v3_tasks_challenge_by_challengeidWRITECan be passed an object to create a single task or an array of objects to create multiple tasks. via POST /api/v3/tasks/challenge/{challengeId}
habitica_post_api_v3_tasks_clearcompletedtodosWRITEDeletes all of a user's completed To Do's except those belonging to active Challenges and Group Plans. via POST /api/v3/tasks/clearCompletedTodos
habitica_post_api_v3_tasks_group_by_groupidWRITECan be passed an object to create a single task or an array of objects to create multiple tasks. via POST /api/v3/tasks/group/{groupId}
habitica_post_api_v3_tasks_unlink_all_by_challengeidWRITEUnlink all tasks from a challenge via POST /api/v3/tasks/unlink-all/{challengeId}
habitica_post_api_v3_tasks_unlink_one_by_taskidWRITEUnlink a challenge task via POST /api/v3/tasks/unlink-one/{taskId}
habitica_post_api_v3_tasks_userWRITECan be passed an object to create a single task or an array of objects to create multiple tasks. via POST /api/v3/tasks/user
habitica_post_api_v3_user_allocateWRITEAllocates a single Stat Point. via POST /api/v3/user/allocate
habitica_post_api_v3_user_allocate_bulkWRITEAllocate multiple Stat Points via POST /api/v3/user/allocate-bulk
habitica_post_api_v3_user_allocate_nowWRITEUses the user's chosen automatic allocation method, or if none, assigns all to STR. Note: will return success, even if there are 0 points to allocate. via POST /api/v3/user/allocate-now
habitica_post_api_v3_user_auth_local_loginWRITELogin a user with email / username and password via POST /api/v3/user/auth/local/login
habitica_post_api_v3_user_auth_local_registerWRITERegister a new user with email, login name, and password or attach local authentication to a social auth user via POST /api/v3/user/auth/local/register
habitica_post_api_v3_user_auth_reset_password_set_new_oneWRITESet a new password for a user that reset theirs. Not meant for public usage. via POST /api/v3/user/auth/reset-password-set-new-one
habitica_post_api_v3_user_block_by_uuidWRITEBlock / unblock a user from sending you a PM via POST /api/v3/user/block/{uuid}
habitica_post_api_v3_user_buy_armoireWRITEBuy an Enchanted Armoire item via POST /api/v3/user/buy-armoire
habitica_post_api_v3_user_buy_by_keyWRITEUnder the hood uses UserBuyGear, UserBuyPotion and UserBuyArmoire via POST /api/v3/user/buy/{key}
habitica_post_api_v3_user_buy_gear_by_keyWRITEBuy a piece of gear via POST /api/v3/user/buy-gear/{key}
habitica_post_api_v3_user_buy_health_potionWRITEBuy a health potion via POST /api/v3/user/buy-health-potion
habitica_post_api_v3_user_buy_mystery_set_by_keyWRITEThis buys a Mystery Item set using an Hourglass. via POST /api/v3/user/buy-mystery-set/{key}
habitica_post_api_v3_user_buy_quest_by_keyWRITEBuy a quest with gold via POST /api/v3/user/buy-quest/{key}
habitica_post_api_v3_user_buy_special_spell_by_keyWRITEIncludes gift cards (e.g., birthday card), and avatar Transformation Items and their antidotes (e.g., Snowball item and Salt reward). via POST /api/v3/user/buy-special-spell/{key}
habitica_post_api_v3_user_change_classWRITEUser must be at least level 10. If ?class is defined and user.flags.classSelected is false it'll change the class. If user.preferences.disableClasses it'll enable classes, otherwise it sets user.flags.classSelected to false (costs 3 gems). via POST /api/v3/user/change-class
habitica_post_api_v3_user_class_cast_by_spellidWRITESkill Key to Name Mapping Mage: fireball="Burst of Flames", mpheal="Ethereal Surge", earth="Earthquake", frost="Chilling Frost" Warrior: smash="Brutal Smash", defensiveStance="Defensive Stance", valorousPresence="Valorous Presence", intimidate="Intimidating Gaze" Rogue: pickPocket="Pickpocket", backStab="Backstab", toolsOfTrade="Tools of the Trade", stealth="Stealth" Healer: heal="Healing Light", protectAura="Protective Aura", brightness="Searing Brightness", healAll="Blessing" Transformation Items: snowball="Snowball", spookySparkles="Spooky Sparkles", seafoam="Seafoam", shinySeed="Shiny Seed" via POST /api/v3/user/class/cast/{spellId}
habitica_post_api_v3_user_custom_day_startWRITESet Custom Day Start time for user. via POST /api/v3/user/custom-day-start
habitica_post_api_v3_user_disable_classesWRITEDisable classes via POST /api/v3/user/disable-classes
habitica_post_api_v3_user_equip_by_type_by_keyWRITEEquip or unequip an item via POST /api/v3/user/equip/{type}/{key}
habitica_post_api_v3_user_feed_by_pet_by_foodWRITEFeed a pet via POST /api/v3/user/feed/{pet}/{food}
habitica_post_api_v3_user_hatch_by_egg_by_hatchingpotionWRITEHatch a pet via POST /api/v3/user/hatch/{egg}/{hatchingPotion}
habitica_post_api_v3_user_mark_pms_readWRITEMark Private Messages as read via POST /api/v3/user/mark-pms-read
habitica_post_api_v3_user_move_pinned_item_by_type_by_path_move_to_by_positionWRITEMove a pinned item in the rewards column to a new position after being sorted via POST /api/v3/user/move-pinned-item/{type}/{path}/move/to/{position}
habitica_post_api_v3_user_open_mystery_itemWRITEOpen the Mystery Item box via POST /api/v3/user/open-mystery-item
habitica_post_api_v3_user_purchase_by_type_by_keyWRITEPurchase Gem or Gem-purchasable item via POST /api/v3/user/purchase/{type}/{key}
habitica_post_api_v3_user_purchase_hourglass_by_type_by_keyWRITEPurchases an Hourglass-purchasable item. Does not include Mystery Item sets (use /api/v3/user/buy-mystery-set/:key). via POST /api/v3/user/purchase-hourglass/{type}/{key}
habitica_post_api_v3_user_read_card_by_cardtypeWRITERead a card via POST /api/v3/user/read-card/{cardType}
habitica_post_api_v3_user_rebirthWRITEUse Orb of Rebirth on user via POST /api/v3/user/rebirth
habitica_post_api_v3_user_release_bothWRITERelease pets and mounts and grants Triad Bingo via POST /api/v3/user/release-both
habitica_post_api_v3_user_release_mountsWRITERelease mounts via POST /api/v3/user/release-mounts
habitica_post_api_v3_user_rerollWRITEReroll a user (reset tasks) using the Fortify Potion via POST /api/v3/user/reroll
habitica_post_api_v3_user_resetWRITEReset user via POST /api/v3/user/reset
habitica_post_api_v3_user_reset_passwordWRITESend the user an email to let them reset their password via POST /api/v3/user/reset-password
habitica_post_api_v3_user_reviveWRITERevive user from death via POST /api/v3/user/revive
habitica_post_api_v3_user_sell_by_type_by_keyWRITESell a gold-sellable item owned by the user via POST /api/v3/user/sell/{type}/{key}
habitica_post_api_v3_user_sleepWRITEToggles the sleep key under user preference true and false. via POST /api/v3/user/sleep
habitica_post_api_v3_user_stat_syncWRITERequest a refresh of user stats, including processing of pending level-ups via POST /api/v3/user/stat-sync
habitica_post_api_v3_user_unlockWRITEUnlock item or set of items by purchase via POST /api/v3/user/unlock
habitica_post_api_v3_user_webhookWRITECreate a new webhook - BETA via POST /api/v3/user/webhook
habitica_put_api_v3_challenges_by_challengeidWRITEUpdate a challenge's name, description, or summary via PUT /api/v3/challenges/{challengeId}
habitica_put_api_v3_groups_by_groupidWRITEUpdate group via PUT /api/v3/groups/{groupId}
habitica_put_api_v3_hall_heroes_by_heroidWRITEUpdate various details in the user's User document, including but not limited to privileges, gems, contributions, items. via PUT /api/v3/hall/heroes/{heroId}
habitica_put_api_v3_tags_by_tagidWRITEUpdate a tag via PUT /api/v3/tags/{tagId}
habitica_put_api_v3_tasks_by_taskidWRITEUpdate a task via PUT /api/v3/tasks/{taskId}
habitica_put_api_v3_tasks_by_taskid_checklist_by_itemidWRITEUpdate a checklist item via PUT /api/v3/tasks/{taskId}/checklist/{itemId}
habitica_put_api_v3_userWRITESome of the user items can be updated, such as preferences, flags and stats. ^ via PUT /api/v3/user
habitica_put_api_v3_user_auth_update_emailWRITEChange the user email address via PUT /api/v3/user/auth/update-email
habitica_put_api_v3_user_auth_update_passwordWRITEUpdate the password of a local user via PUT /api/v3/user/auth/update-password
habitica_put_api_v3_user_auth_update_usernameWRITEUpdate and verify the user's username via PUT /api/v3/user/auth/update-username
habitica_put_api_v3_user_webhook_by_idWRITECan change url, enabled, type, and options properties. Cannot change id. via PUT /api/v3/user/webhook/{id}
Put Habitica behind one governed endpoint.
Same permissions, same audit trail, whatever else you connect next.