BugHerd
PROJECT MANAGEMENT · TASKS
Projects, taskboard columns, and tasks with their feedback in that organization.
Acts as the person, not as itself
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.
Credentials never touch the agent
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.
Every call on the record
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.
What an agent can do
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.
bugherd_delete_api_v2_projects_by_project_id_columns_by_column_id_jsonWRITEDelete Column. DELETE /api_v2/projects/{project_id}/columns/{column_id}.json. Permanently deletes a column. This action cannot be undone. A column cannot be deleted if it contains tasks, or if it is the last column in the project.
bugherd_delete_api_v2_projects_by_project_id_jsonWRITEDelete Project. DELETE /api_v2/projects/{project_id}.json. Permanently deletes the project and all associated data. This action cannot be undone.
bugherd_delete_api_v2_projects_by_project_id_tasks_by_task_id_attachments_by_attachment_id_jsonWRITEDelete Attachment. DELETE /api_v2/projects/{project_id}/tasks/{task_id}/attachments/{attachment_id}.json. Permanently removes the attachment. This action cannot be undone.
bugherd_delete_api_v2_projects_by_project_id_tasks_by_task_id_comments_by_comment_id_jsonWRITEDelete Comment. DELETE /api_v2/projects/{project_id}/tasks/{task_id}/comments/{comment_id}.json. Permanently deletes a comment. This action cannot be undone.
bugherd_delete_api_v2_projects_by_project_id_tasks_by_task_id_jsonWRITEDelete task. DELETE /api_v2/projects/{project_id}/tasks/{task_id}.json. Permanently deletes the task. This action cannot be undone.
bugherd_delete_api_v2_webhooks_by_webhook_id_jsonWRITEDelete Webhook. DELETE /api_v2/webhooks/{webhook_id}.json. Removes a webhook subscription. BugHerd will stop sending events to the target URL immediately.
bugherd_get_api_v2_organization_jsonREADShow Organization. GET /api_v2/organization.json. Returns top-level details about your BugHerd organization, including its name and ID.
bugherd_get_api_v2_projects_active_jsonREADList Active Projects. GET /api_v2/projects/active.json. Returns only active projects. This is a convenience shortcut equivalent to filtering the List Projects endpoint by active status.
bugherd_get_api_v2_projects_by_project_id_columns_by_column_id_jsonREADShow Column. GET /api_v2/projects/{project_id}/columns/{column_id}.json. Returns one taskboard column of a project -- its id, name, owning project and the number of tasks currently in it. BugHerd's own document leaves this operation undescribed; the sentence is authored from its declared 200 response (a single `column` object) and from the list sibling, `GET /api_v2/projects/{project_id}/columns.json`.
bugherd_get_api_v2_projects_by_project_id_columns_jsonREADList Columns. GET /api_v2/projects/{project_id}/columns.json. Returns all kanban columns for a project. Includes both built-in columns (backlog, todo, doing, done) and any custom columns. > **Known issue:** The `tasks_count` field may return incorrect values (including negative numbers) for some columns.
bugherd_get_api_v2_projects_by_project_id_jsonREADShow Project. GET /api_v2/projects/{project_id}.json. Returns full details for a single project, including its members, guests, and column configuration.
bugherd_get_api_v2_projects_by_project_id_local_tasks_by_local_task_id_jsonREADShow Task by Local ID. GET /api_v2/projects/{project_id}/local_tasks/{local_task_id}.json. Returns a task by its project-scoped local ID (the `#number` shown in the BugHerd UI). This is useful when you have the task number from a URL like `/projects/123/tasks/42`.
bugherd_get_api_v2_projects_by_project_id_tasks_archive_jsonREADList Archived Tasks. GET /api_v2/projects/{project_id}/tasks/archive.json. Returns tasks that have been closed or archived in a project. These tasks no longer appear on the active taskboard.
bugherd_get_api_v2_projects_by_project_id_tasks_by_task_id_attachments_by_attachment_id_jsonREADShow Attachment. GET /api_v2/projects/{project_id}/tasks/{task_id}/attachments/{attachment_id}.json. Returns one attachment on a task -- its id, file name, content type, size and download URL. BugHerd's own document leaves this operation undescribed; the sentence is authored from its declared 200 response (a single `attachment` object) and from the list sibling, `GET /api_v2/projects/{project_id}/tasks/{task_id}/attachments.json`.
bugherd_get_api_v2_projects_by_project_id_tasks_by_task_id_attachments_jsonREADList Attachments. GET /api_v2/projects/{project_id}/tasks/{task_id}/attachments.json. Returns all file attachments on a task.
bugherd_get_api_v2_projects_by_project_id_tasks_by_task_id_comments_jsonREADList Comments. GET /api_v2/projects/{project_id}/tasks/{task_id}/comments.json. Returns all comments on a task.
bugherd_get_api_v2_projects_by_project_id_tasks_by_task_id_jsonREADShow Task. GET /api_v2/projects/{project_id}/tasks/{task_id}.json. Returns full details for a single task within a project. Returns complete task details including metadata, browser info, and screenshot data.
bugherd_get_api_v2_projects_by_project_id_tasks_feedback_jsonREADList Feedback Tasks. GET /api_v2/projects/{project_id}/tasks/feedback.json. Returns only tasks in the backlog (feedback) column for a project. Use this to review unprocessed bug reports and feedback.
bugherd_get_api_v2_projects_by_project_id_tasks_jsonREADList Tasks. GET /api_v2/projects/{project_id}/tasks.json. Returns tasks for a project. Supports filtering by status, priority, tag, assignee, external ID, and date range.
bugherd_get_api_v2_projects_by_project_id_tasks_taskboard_jsonREADList Taskboard Tasks. GET /api_v2/projects/{project_id}/tasks/taskboard.json. Returns all active (non-archived) tasks for a project, mirroring what appears on the taskboard in the BugHerd UI.
bugherd_get_api_v2_projects_jsonREADList Projects. GET /api_v2/projects.json. Returns all projects in your organization, including both active and inactive projects.
bugherd_get_api_v2_tasks_by_task_id_jsonREADShow Task (Global). GET /api_v2/tasks/{task_id}.json. Returns a task by its globally unique ID. Use this when you have a task ID but not the project ID.
bugherd_get_api_v2_users_by_user_id_projects_jsonREADList User Projects. GET /api_v2/users/{user_id}/projects.json. Returns all projects that a specific user belongs to. Use `is_active` to filter by project status.
bugherd_get_api_v2_users_by_user_id_tasks_jsonREADList User Tasks. GET /api_v2/users/{user_id}/tasks.json. Returns all tasks assigned to a specific user across all projects. Supports filtering by date, priority, tag, and assignee.
bugherd_get_api_v2_users_guests_jsonREADList Guests. GET /api_v2/users/guests.json. Returns all guest users across your organization. Guests are external collaborators who have been invited to specific projects.
bugherd_get_api_v2_users_jsonREADList Users. GET /api_v2/users.json. Returns all users (both team members and guests) in your organization. Use `updated_since` to retrieve only recently changed records.
bugherd_get_api_v2_users_members_jsonREADList Members. GET /api_v2/users/members.json. Returns only team members (non-guest users) in your organization.
bugherd_get_api_v2_webhooks_jsonREADList Webhooks. GET /api_v2/webhooks.json. Returns all webhooks configured for your organization. Use this to verify which events are being monitored. Includes delivery statistics and error details.
bugherd_post_api_v2_projects_by_project_id_add_guest_jsonWRITEAdd Guest to Project. POST /api_v2/projects/{project_id}/add_guest.json. Adds a guest to a project. Provide either a `user_id` for an existing user or an `email` to send a new invitation.
bugherd_post_api_v2_projects_by_project_id_add_member_jsonWRITEAdd Member to Project. POST /api_v2/projects/{project_id}/add_member.json. Adds one or more existing organization members to a project. The user must already belong to your organization.
bugherd_post_api_v2_projects_by_project_id_columns_jsonWRITECreate Column. POST /api_v2/projects/{project_id}/columns.json. Creates a new custom kanban column in a project. The column is appended to the end of the board.
bugherd_post_api_v2_projects_by_project_id_move_tasks_jsonWRITEMove Tasks. POST /api_v2/projects/{project_id}/move_tasks.json. Moves one or more tasks from the current project to a different destination project. Task IDs remain the same after the move. **Important:** `task_ids` must contain `local_task_id` values (the project-scoped task number), NOT the globally unique task ID. > **Note:** This endpoint is documented in the BugHerd API but may not be available for all accounts. If you receive a 404 response, contact BugHerd support.
bugherd_post_api_v2_projects_by_project_id_tasks_by_task_id_attachments_jsonWRITECreate Attachment (from URL). POST /api_v2/projects/{project_id}/tasks/{task_id}/attachments.json. Attaches a file to a task by providing a publicly accessible URL. BugHerd downloads the file from the URL and stores a copy. For direct file uploads, use the Upload Attachment endpoint instead.
bugherd_post_api_v2_projects_by_project_id_tasks_by_task_id_comments_jsonWRITECreate Comment. POST /api_v2/projects/{project_id}/tasks/{task_id}/comments.json. Adds a comment to a task. Identify the commenter by `user_id` or `email`. **Visibility:** Set `is_private: true` to make the comment visible to team members only, not guests/clients.
bugherd_post_api_v2_projects_by_project_id_tasks_jsonWRITECreate Task. POST /api_v2/projects/{project_id}/tasks.json. Creates a new task in a project. **Requester and assignee:** The requester and assignee can each be specified by user ID or email address. - `assigned_to_email` - the user must be a current project member - `requester_email` - accepts any email address **Status:** Omitting the `status` field or setting it to `null` sends the task to the Feedback panel.
bugherd_post_api_v2_projects_jsonWRITECreate Project. POST /api_v2/projects.json. Creates a new project. The project starts with no members or guests -- use the Add Member and Add Guest endpoints to populate the team.
bugherd_post_api_v2_webhooks_jsonWRITECreate Webhook. POST /api_v2/webhooks.json. Creates a new webhook subscription. When the specified event occurs, BugHerd sends a POST request to your `target_url` with the relevant payload. **Supported events:** `project_create`, `task_create`, `task_update`, `comment`, `task_destroy`. Create separate webhook entries for each event type you want to monitor. **Project scope:** Omit `project_id` to receive events for all projects. **Auto-removal:** A `410 Gone` response from your target URL will cause BugHerd to automatically remove the webhook.
bugherd_put_api_v2_projects_by_project_id_columns_by_column_id_jsonWRITEUpdate Column. PUT /api_v2/projects/{project_id}/columns/{column_id}.json. Updates a custom column's name.
bugherd_put_api_v2_projects_by_project_id_jsonWRITEUpdate Project. PUT /api_v2/projects/{project_id}.json. Updates a project's settings. Only include the fields you want to change.
bugherd_put_api_v2_projects_by_project_id_tasks_by_task_id_jsonWRITEUpdate Task. PUT /api_v2/projects/{project_id}/tasks/{task_id}.json. Updates one or more fields on a task. Only include the fields you want to change. **Unassigning users:** - Set `assigned_to_id` to `null` to unassign all users - Use `unassign_user` with a user ID to remove a specific user **Moving tasks between columns:** - Set `status` to a column name (e.g. `todo`, `doing`, or a custom column name) - Set `status` to `feedback` to return the task to the Feedback panel **Audit trail:** Include `updater_email` to attribute the change to a specific user. This is for audit purposes only - permissions are not enforced via the API.
Often connected alongside
Put BugHerd behind one governed endpoint.
Same permissions, same audit trail, whatever else you connect next.