All routes
Every route the CoderHelm gateway serves (304 in all), read from its router at build time.
This list is generated from services/gateway/src/main.rs at commit 637aaa459db2 each time the docs are built, so it always matches the code. All paths are on https://api.coderhelm.com. Path parameters are written :name.
Unless a section says otherwise, a route needs a signed-in session: see Authentication. These are the routes the dashboard itself calls; they can change between releases, and there are no API keys for them yet.
Service
Public.
| Method | Path | Handler |
|---|---|---|
GET | / | inline |
Sign-in
Public, limited to 20 requests per 5 minutes per IP address.
| Method | Path | Handler |
|---|---|---|
POST | /auth/signup | auth::signup |
POST | /auth/waitlist | auth::join_waitlist |
POST | /auth/login | auth::login_email |
POST | /auth/verify-email | auth::verify_email |
POST | /auth/forgot-password | auth::forgot_password |
POST | /auth/confirm-reset | auth::confirm_reset |
POST | /auth/mfa/verify | auth::mfa_verify |
GET | /auth/google | auth::google_login |
GET | /auth/google/callback | auth::google_callback |
GET | /auth/github | auth::github_login |
GET | /auth/github/callback | auth::github_callback |
POST | /auth/logout | auth::logout |
Webhooks
Public, but every call is verified: see Webhooks.
| Method | Path | Handler |
|---|---|---|
POST | /webhooks/github | github_webhook::handle |
POST | /webhooks/jira/:token | jira_webhook::handle |
POST | /webhooks/jira | jira_webhook::handle_forge |
POST | /webhooks/alerts/sns | alerts::handle_sns |
POST | /webhooks/ci/tests/results | tests::ci_upload |
GET | /webhooks/ci/tests/quarantine | tests::ci_quarantine |
Email links
Public; the signed t token in the link is the credential. Limited to 60 requests per 5 minutes per IP address.
| Method | Path | Handler |
|---|---|---|
GET | /email/unsubscribe | email::unsubscribe_link |
POST | /email/unsubscribe | email::unsubscribe_one_click |
Account and teams
| Method | Path | Handler |
|---|---|---|
GET | /api/me | api::me |
GET | /api/teams | api::list_teams |
POST | /api/teams/switch | api::switch_team |
PUT | /api/teams/rename | api::rename_team |
GET | /api/allowlist | api::list_allowlist |
POST | /api/allowlist | api::add_to_allowlist |
DELETE | /api/allowlist | api::remove_from_allowlist |
POST | /api/account/reset | api::reset_account |
Users and roles
| Method | Path | Handler |
|---|---|---|
GET | /api/users | users::list_users |
GET | /api/users/permissions | users::get_permissions |
POST | /api/users/invite | users::invite_user |
PUT | /api/users/:user_id/role | users::update_role |
POST | /api/users/:user_id/resend | users::resend_invite |
POST | /api/users/:user_id/link-github | users::link_github |
DELETE | /api/users/:user_id | users::remove_user |
PUT | /api/users/password | users::change_password |
POST | /api/users/mfa/setup | users::mfa_setup |
POST | /api/users/mfa/verify | users::mfa_verify_setup |
DELETE | /api/users/mfa | users::mfa_disable |
Runs
| Method | Path | Handler |
|---|---|---|
GET | /api/runs | api::list_runs |
GET | /api/runs/:run_id | api::get_run |
GET | /api/runs/:run_id/traces | api::get_run_traces |
GET | /api/runs/:run_id/agent-log | api::get_agent_log |
GET | /api/runs/:run_id/openspec | api::get_run_openspec |
POST | /api/runs/:run_id/retry | api::retry_run |
POST | /api/runs/:run_id/reset | api::reset_and_rerun |
POST | /api/runs/:run_id/re-review | api::re_review_run |
POST | /api/runs/:run_id/cancel | api::cancel_run |
POST | /api/runs/:run_id/close | run_close::close_run |
POST | /api/runs/:run_id/reopen | run_close::reopen_run |
POST | /api/runs/close | run_close::close_runs |
Search
| Method | Path | Handler |
|---|---|---|
GET | /api/search | search::search |
Repos
| Method | Path | Handler |
|---|---|---|
GET | /api/repos | api::list_repos |
POST | /api/repos/sync | api::sync_repos |
POST | /api/repos/:owner/:name | api::update_repo |
DELETE | /api/repos/:owner/:name | api::delete_repo |
POST | /api/repos/:owner/:name/regenerate | api::regenerate_repo |
POST | /api/repos/:owner/:name/role | api::set_repo_role |
POST | /api/github/link-installation | github::link_installation |
GET | /api/github/installation-status | github::installation_status |
Plans
| Method | Path | Handler |
|---|---|---|
GET | /api/plans | plans::list_plans |
POST | /api/plans | plans::create_plan |
POST | /api/plans/chat | plans::plan_chat |
POST | /api/plans/chat/token | plans::stream_token |
GET | /api/plans/templates | plans::list_templates |
POST | /api/plans/templates | plans::create_template |
POST | /api/plans/templates/from-plan/:plan_id | plans::create_template_from_plan |
GET | /api/plans/templates/:template_id | plans::get_template |
DELETE | /api/plans/templates/:template_id | plans::delete_template |
POST | /api/plans/templates/:template_id/use | plans::use_template |
GET | /api/plans/:plan_id | plans::get_plan |
PUT | /api/plans/:plan_id | plans::update_plan |
DELETE | /api/plans/:plan_id | plans::delete_plan |
POST | /api/plans/:plan_id/tasks | plans::add_task |
PUT | /api/plans/:plan_id/tasks/:task_id | plans::update_task |
DELETE | /api/plans/:plan_id/tasks/:task_id | plans::delete_task |
POST | /api/plans/:plan_id/tasks/:task_id/approve | plans::approve_task |
POST | /api/plans/:plan_id/tasks/:task_id/reject | plans::reject_task |
POST | /api/plans/:plan_id/execute | plans::execute_plan |
POST | /api/plans/:plan_id/tasks/:task_id/force-run | plans::force_run_task |
POST | /api/plans/:plan_id/approve-and-execute | plans::approve_all_and_execute |
GET | /api/plans/:plan_id/openspec | plans::get_plan_openspec |
POST | /api/plans/:plan_id/openspec/generate | plans::generate_plan_openspec |
POST | /api/plans/chat/stream | plans::plan_chat_stream |
Reviewer and releases
| Method | Path | Handler |
|---|---|---|
GET | /api/reviewer/org-config | reviewer::get_org_config |
PUT | /api/reviewer/org-config | reviewer::update_org_config |
GET | /api/reviewer/config/:owner/:name | reviewer::get_config |
PUT | /api/reviewer/config/:owner/:name | reviewer::update_config |
GET | /api/reviewer/reviews | reviewer::list_reviews |
GET | /api/reviewer/review | reviewer::get_review |
GET | /api/reviewer/live | reviewer::live_prs |
GET | /api/reviewer/gate | reviewer::get_gate |
POST | /api/reviewer/gate | reviewer::control_gate |
POST | /api/reviewer/review/rate | reviewer::rate_review |
POST | /api/reviewer/re-review | reviewer::re_review |
GET | /api/reviewer/lessons | review_lessons::list_lessons |
DELETE | /api/reviewer/lessons | review_lessons::delete_lesson |
GET | /api/releases | reviewer::list_releases |
POST | /api/releases/send | reviewer::send_release |
GET | /api/releases/pending | reviewer::pending_releases |
POST | /api/releases/now | reviewer::release_now |
Skills
| Method | Path | Handler |
|---|---|---|
GET | /api/skills | skills::list |
POST | /api/skills/repos | skills::connect |
DELETE | /api/skills/repos/:owner/:name | skills::disconnect |
POST | /api/skills/repos/:owner/:name/sync | skills::sync |
GET | /api/skills/item | skills::item |
PUT | /api/skills/item | skills::set_enabled |
GET | /api/skills/asks | skills::asks |
POST | /api/skills/asks | skills::try_agent |
GET | /api/skills/stats | skills::stats |
POST | /api/skills/recheck | skills::recheck |
PUT | /api/skills/always | skills::set_always_apply |
PUT | /api/skills/reviews | skills::set_reviews |
PUT | /api/skills/translated | skills::set_use_translated |
GET | /api/skills/activity | skills::activity |
GET | /api/skills/used | skills::used |
Team tools
| Method | Path | Handler |
|---|---|---|
GET | /api/tools | tools::list |
POST | /api/tools | tools::create |
POST | /api/tools/validate | tools::check |
GET | /api/tools/asks | tools::asks |
POST | /api/tools/asks/:id | tools::decide |
GET | /api/tools/:name | tools::get |
PUT | /api/tools/:name | tools::update |
DELETE | /api/tools/:name | tools::remove |
POST | /api/tools/:name/approve | tools::approve |
POST | /api/tools/:name/preview | tools::preview |
Connections (MCP)
| Method | Path | Handler |
|---|---|---|
GET | /api/plugins/catalog | plugins::list_catalog |
GET | /api/plugins | plugins::list_enabled |
POST | /api/plugins/:id/enable | plugins::enable_plugin |
DELETE | /api/plugins/:id | plugins::disable_plugin |
PUT | /api/plugins/:id/credentials | plugins::update_credentials |
PUT | /api/plugins/:id/prompt | plugins::update_prompt |
POST | /api/plugins/:id/test | plugins::test_connection |
Data sources
| Method | Path | Handler |
|---|---|---|
GET | /api/data-sources | data_sources::list |
GET | /api/data-sources/activity | data_sources::activity |
POST | /api/data-sources/api/probe | data_sources::probe |
POST | /api/data-sources/api/check | data_sources::check |
POST | /api/data-sources/api | data_sources::create |
POST | /api/data-sources/rest | data_sources::create_rest |
POST | /api/data-sources/search | data_sources::create_search |
GET | /api/data-sources/aws/setup | data_sources::aws_setup |
POST | /api/data-sources/aws/connect | data_sources::aws_connect |
POST | /api/data-sources/logs | data_sources::create_logs |
POST | /api/data-sources/database | data_sources::create_database |
PUT | /api/data-sources/:id | data_sources::update |
DELETE | /api/data-sources/:id | data_sources::remove |
POST | /api/data-sources/:id/key | data_sources::replace_key |
POST | /api/data-sources/:id/test | data_sources::test |
GET | /api/data-sources/:id/samples | data_sources::samples |
POST | /api/data-sources/:id/try | data_sources::try_lookup |
GET | /api/data-sources/:id/hidden-suggestions | data_sources::hidden_suggestions |
POST | /api/data-sources/:id/hidden-suggestions | data_sources::decide_hidden_suggestions |
Integrations
| Method | Path | Handler |
|---|---|---|
GET | /api/integrations/jira/check | api::get_jira_integration_check |
POST | /api/integrations/jira/check | api::validate_jira_integration_payload |
DELETE | /api/integrations/jira/check | api::delete_jira_integration |
POST | /api/integrations/jira/secret | api::generate_jira_secret |
DELETE | /api/integrations/jira/secret | api::delete_jira_secret |
GET | /api/integrations/jira/config | api::get_jira_config |
PUT | /api/integrations/jira/config | api::update_jira_config |
PUT | /api/integrations/jira/projects | api::update_jira_projects |
GET | /api/integrations/jira/projects/fetch | api::fetch_jira_projects |
GET | /api/integrations/jira/events | api::get_jira_events |
GET | /api/aws-connections | log_analyzer::list_connections |
POST | /api/aws-connections | log_analyzer::create_connection |
GET | /api/aws-connections/cfn-url | log_analyzer::get_cfn_url |
PUT | /api/aws-connections/:id | log_analyzer::update_connection |
DELETE | /api/aws-connections/:id | log_analyzer::delete_connection |
POST | /api/aws-connections/:id/test | log_analyzer::test_connection |
GET | /api/aws-connections/:id/log-groups | log_analyzer::discover_log_groups |
PUT | /api/aws-connections/:id/abilities | integrations::set_aws_abilities |
POST | /api/aws-connections/:id/abilities/check | integrations::check_aws |
GET | /api/integrations | integrations::list |
GET | /api/connectors | connectors::list |
GET | /api/connectors/aws-check | connectors::aws_check |
PUT | /api/connectors/:kind | connectors::save |
DELETE | /api/connectors/:kind | connectors::remove |
POST | /api/connectors/:kind/test | connectors::test |
POST | /integrations/jira/forge-register | api::forge_register_urls |
Memories
| Method | Path | Handler |
|---|---|---|
GET | /api/memories | memory::list_memories |
POST | /api/memories | memory::create_memory |
GET | /api/memories/agents | memory::agent_profiles |
POST | /api/memories/preview | memory::preview_recall |
GET | /api/memories/stats | memory::memory_stats |
DELETE | /api/memories/:memory_id | memory::delete_memory |
PUT | /api/memories/:memory_id | memory::update_memory |
Code graph
| Method | Path | Handler |
|---|---|---|
GET | /api/graph/repos | graph::list_repos |
GET | /api/graph/status | graph::status |
GET | /api/graph/symbol | graph::symbol |
GET | /api/graph/neighborhood | graph::neighborhood |
PUT | /api/graph/config/:owner/:name | graph::update_config |
POST | /api/graph/rebuild/:owner/:name | graph::rebuild |
Settings and instructions
| Method | Path | Handler |
|---|---|---|
GET | /api/notifications | api::get_notification_prefs |
PUT | /api/notifications | api::update_notification_prefs |
GET | /api/instructions/global | api::get_global_instructions |
PUT | /api/instructions/global | api::update_global_instructions |
GET | /api/instructions/repo/:owner/:name | api::get_repo_instructions |
PUT | /api/instructions/repo/:owner/:name | api::update_repo_instructions |
GET | /api/rules/global | api::get_global_rules |
PUT | /api/rules/global | api::update_global_rules |
GET | /api/rules/repo/:owner/:name | api::get_repo_rules |
PUT | /api/rules/repo/:owner/:name | api::update_repo_rules |
GET | /api/voice/global | api::get_global_voice |
PUT | /api/voice/global | api::update_global_voice |
GET | /api/voice/repo/:owner/:name | api::get_repo_voice |
PUT | /api/voice/repo/:owner/:name | api::update_repo_voice |
GET | /api/agents/global | api::get_global_agents |
PUT | /api/agents/global | api::update_global_agents |
GET | /api/agents/repo/:owner/:name | api::get_repo_agents |
PUT | /api/agents/repo/:owner/:name | api::update_repo_agents |
GET | /api/settings/budget | api::get_budget |
PUT | /api/settings/budget | api::update_budget |
GET | /api/settings/workflow | api::get_workflow_settings |
PUT | /api/settings/workflow | api::update_workflow_settings |
GET | /api/settings/git-conventions | api::get_git_conventions |
PUT | /api/settings/git-conventions | api::update_git_conventions |
GET | /api/settings/model-provider | api::get_model_provider |
PUT | /api/settings/model-provider | api::update_model_provider |
DELETE | /api/settings/model-provider | api::delete_model_provider |
GET | /api/banners | banners::list_banners |
Usage and analytics
| Method | Path | Handler |
|---|---|---|
GET | /api/stats | api::get_stats |
GET | /api/stats/history | api::get_stats_history |
GET | /api/analytics | analytics::get_analytics |
GET | /api/usage | api::get_usage |
GET | /api/activity/summary | activity::summary |
Alerts
| Method | Path | Handler |
|---|---|---|
GET | /api/alert-routes | alerts::list_routes |
PUT | /api/alert-routes | alerts::put_route |
DELETE | /api/alert-routes | alerts::delete_route |
GET | /api/alert-routes/alarms | alerts::list_topic_alarms |
GET | /api/alert-budget | alerts::get_budget |
PUT | /api/alert-budget | alerts::put_budget |
GET | /api/alert-notify | alerts::get_notify |
PUT | /api/alert-notify | alerts::put_notify |
POST | /api/alert-notify/test | alerts::test_notify |
POST | /api/notify/test | alerts::test_notify |
GET | /api/alerts | alerts::list_events |
GET | /api/alerts/event | alerts::get_event |
Infrastructure and logs
| Method | Path | Handler |
|---|---|---|
GET | /api/infrastructure | infrastructure::get_infrastructure |
POST | /api/infrastructure/refresh | infrastructure::refresh_infrastructure |
GET | /api/infrastructure/repo/:owner/:name | infrastructure::get_repo_infrastructure |
POST | /api/infrastructure/repo/:owner/:name/refresh | infrastructure::refresh_repo_infrastructure |
GET | /api/recommendations | log_analyzer::list_recommendations |
GET | /api/recommendations/notify | log_analyzer::get_rec_notify |
PUT | /api/recommendations/notify | log_analyzer::put_rec_notify |
POST | /api/recommendations/:id/plan | log_analyzer::create_plan_from_recommendation |
POST | /api/recommendations/:id/dismiss | log_analyzer::dismiss_recommendation |
GET | /api/log-findings | log_findings::list_findings |
GET | /api/log-findings/autofix | log_findings::get_autofix |
PUT | /api/log-findings/autofix | log_findings::put_autofix |
GET | /api/log-findings/:id/samples | log_findings::get_samples |
POST | /api/log-findings/:id/fix | log_findings::create_fix |
POST | /api/log-findings/:id/ignore | log_findings::ignore_finding |
POST | /api/log-findings/:id/acknowledge | log_findings::acknowledge_finding |
POST | /api/log-findings/:id/reopen | log_findings::reopen_finding |
Tests
| Method | Path | Handler |
|---|---|---|
GET | /api/tests/settings | tests::get_settings |
PUT | /api/tests/settings | tests::put_settings |
GET | /api/tests/summary | tests::summary |
GET | /api/tests/runs | tests::list_runs |
GET | /api/tests/runs/:run_key | tests::get_run |
GET | /api/tests/failure-groups | tests::failure_groups |
GET | /api/tests/coverage | tests::coverage |
POST | /api/tests/recommendations/:id/accept | tests::accept_recommendation |
POST | /api/tests/recommendations/:id/dismiss | tests::dismiss_recommendation |
GET | /api/tests | tests::list_tests |
GET | /api/tests/:id | tests::get_test |
POST | /api/tests/:id/quarantine | tests::quarantine |
POST | /api/tests/:id/pin | tests::pin |
POST | /api/tests/:id/fix | tests::fix |
Health and failed messages
| Method | Path | Handler |
|---|---|---|
GET | /api/health | api::health |
GET | /api/dlq | dlq::list_dlq_messages |
POST | /api/dlq/redrive | dlq::redrive_dlq_message |
POST | /api/dlq/delete | dlq::delete_dlq_message |
POST | /api/dlq/purge | dlq::purge_dlq |
Support
| Method | Path | Handler |
|---|---|---|
GET | /api/support/tickets | support::list |
POST | /api/support/tickets | support::create_handler |
GET | /api/support/tickets/:id | support::get |
POST | /api/support/tickets/:id/reply | support::reply |
POST | /api/support/tickets/:id/resolve | support::resolve |
POST | /api/support/tickets/:id/participants | support::add_people |
POST | /api/support/tickets/:id/participants/remove | support::remove_people |
GET | /api/support/badge | support::badge |
GET | /api/support/access | support_access::get_access |
POST | /api/support/access | support_access::grant_access |
DELETE | /api/support/access | support_access::revoke_access |
GET | /api/support/view | support_access::view_status |
DELETE | /api/support/view | support_access::exit_view |
Platform admin
Session cookie, and only for CoderHelm operators listed in the platform configuration.
| Method | Path | Handler |
|---|---|---|
GET | /api/admin/teams | admin::admin_teams |
GET | /api/admin/dlq | admin::admin_dlq |
GET | /api/admin/usage-check | admin::admin_usage_check |
POST | /api/admin/dlq/delete | admin::admin_dlq_delete |
GET | /api/admin/beta-signups | admin::beta_signups |
POST | /api/admin/beta-signups/invite | admin::invite_beta_signup |
GET | /api/admin/support/tickets | support::admin_list_handler |
GET | /api/admin/support/tickets/:id | support::admin_get |
POST | /api/admin/support/tickets/:id/reply | support::admin_reply_handler |
POST | /api/admin/support/tickets/:id/status | support::admin_status |
POST | /api/admin/support/tickets/:id/participants | support::admin_add_people |
POST | /api/admin/support/tickets/:id/participants/remove | support::admin_remove_people |
POST | /api/admin/support/view | support_access::start_view |
Other
| Method | Path | Handler |
|---|---|---|
GET | /api/roles | roles::list_roles |
POST | /api/roles | roles::create_role |
GET | /api/roles/audit | roles::list_audit |
PUT | /api/roles/:role_id | roles::update_role |
DELETE | /api/roles/:role_id | roles::delete_role |