---
title: rate_exceeded
description: The v2 webhook payload for the rate_exceeded event. An error occurred, or a fault passed its notification rate threshold.
url: https://docs.honeybadger.io/guides/integrations/payloads/v2/rate_exceeded/
---

An error occurred, or a fault passed its notification rate threshold.

## Fields

The table lists every field of the body. You can validate a delivery against this event’s [JSON Schema](https://docs.honeybadger.io/guides/integrations/payloads/v2/rate_exceeded.schema.json).

| Field | Type | Description |
| - | - | - |
| `event` required | "rate\_exceeded" | |
| `message` required | string | A one-line summary of the event, as notifications show it. |
| `actor` | object | The person who caused the event. Absent when Honeybadger, or an API token with no user, did. |
| `actor.id` required | integer | |
| `actor.email` required | string | |
| `actor.name` required | string \| null | |
| `project` required | object | The project the event belongs to. |
| `project.id` required | integer | |
| `project.name` required | string \| null | |
| `project.created_at` required | date-time | |
| `project.disable_public_links` required | boolean \| null | |
| `project.pivotal_project_id` required | string \| null | |
| `project.asana_workspace_id` required | string \| null | |
| `project.token` required | string | The project's ingestion key, the one its notifiers report with. |
| `project.github_project` required | string \| null | The repository of the project's newest GitHub integration. |
| `project.environments` required | array\<object> | |
| `project.environments[].id` required | integer | |
| `project.environments[].project_id` required | integer | |
| `project.environments[].name` required | string | |
| `project.environments[].notifications` required | boolean | Whether errors in this environment send notifications. |
| `project.environments[].created_at` required | date-time | |
| `project.environments[].updated_at` required | date-time | |
| `project.owner` required | object | The account that owns the project. |
| `project.owner.id` required | integer | |
| `project.owner.email` required | string | |
| `project.owner.name` required | string \| null | |
| `project.last_notice_at` required | date-time \| null | |
| `project.earliest_notice_at` required | date-time | The oldest notice the plan's retention keeps. |
| `project.unresolved_fault_count` required | integer | |
| `project.fault_count` required | integer | |
| `project.active` required | boolean | Whether the account is active. |
| `project.users` required | array\<object> | |
| `project.users[].id` required | integer | |
| `project.users[].email` required | string | |
| `project.users[].name` required | string \| null | |
| `project.sites` required | array\<object> | |
| `project.sites[].id` required | uuid | |
| `project.sites[].active` required | boolean | |
| `project.sites[].last_checked_at` required | date-time \| null | |
| `project.sites[].name` required | string | |
| `project.sites[].state` required | string | |
| `project.sites[].url` required | string | The checked URL, as entered. |
| `project.team_id` required | integer \| null | |
| `project.url` | uri | The project's errors page. Sent on `volume_spike` only. |
| `fault` required | object | The fault (a unique error) the event is about. When the account is inactive, only `id`, `project_id`, `message` and `created_at` are sent. |
| `fault.id` required | integer | |
| `fault.project_id` required | integer | |
| `fault.klass` | string \| null | Error class name. |
| `fault.message` required | string \| null | The error message, without the class name. |
| `fault.component` | string \| null | |
| `fault.action` | string \| null | |
| `fault.environment` | string \| null | |
| `fault.resolved` | boolean | |
| `fault.ignored` | boolean | |
| `fault.created_at` required | date-time | |
| `fault.project_name` | string \| null | |
| `fault.comments_count` | integer | |
| `fault.notices_count` | integer | |
| `fault.last_notice_at` | date-time \| null | |
| `fault.tags` | array \| null | |
| `fault.assignee` | string \| null | The assignee's email address. |
| `fault.url` | uri | |
| `fault.deploy` | object \| null | The latest deploy to the fault's environment. |
| `fault.deploy.environment` required | string | |
| `fault.deploy.revision` required | string \| null | |
| `fault.deploy.repository` required | string \| null | |
| `fault.deploy.local_username` required | string \| null | |
| `fault.deploy.created_at` required | date-time | |
| `fault.deploy.changelog` required | array \| null | Commits in the deploy, as the deploy notification sent them. |
| `fault.deploy.url` required | uri | |
| `notice` required | object | The occurrence that triggered the event. When the account is inactive, only `id`, `fault_id` and `created_at` are sent. When the notice is older than the plan keeps, its request and environment data are sent empty. |
| `notice.id` required | integer | |
| `notice.fault_id` required | integer | |
| `notice.token` | uuid | The notice's UUID. |
| `notice.message` | string \| null | |
| `notice.created_at` required | date-time | |
| `notice.environment` | any | The server environment the notifier reported (`environment-name`, hostname and the like). Defined by the notifier. |
| `notice.request` | object | The request the error happened in. `context` is moved to the body's top-level `context`. |
| `notice.request.url` | string \| null | |
| `notice.request.component` | string \| null | |
| `notice.request.action` | string \| null | |
| `notice.request.params` | any | Request parameters, as the notifier sent them. Usually an object, but any JSON value. |
| `notice.request.session` | any | Session data, as the notifier sent it. Usually an object, but any JSON value, including null. |
| `notice.backtrace` | array\<object> | |
| `notice.backtrace[].number` | string \| integer \| null | The line number. Ruby notifiers send a string, PHP and JavaScript an integer. |
| `notice.backtrace[].file` | string \| null | |
| `notice.backtrace[].method` | string \| null | |
| `notice.backtrace[].context` | string | `app` for a frame in the project's own code, otherwise `all`. Allowed values: `app`, `all`. |
| `notice.backtrace[].application_file` | string | The file's path within the project. Sent for `app` frames. |
| `notice.backtrace[].source` | any | Lines of source around the frame, usually an object keyed by line number. Null when a source map has no source for the frame, and notifiers can send other shapes. |
| `notice.application_trace` | array\<object> | The frames of `backtrace` in the project's own code. |
| `notice.application_trace[].number` | string \| integer \| null | The line number. Ruby notifiers send a string, PHP and JavaScript an integer. |
| `notice.application_trace[].file` | string \| null | |
| `notice.application_trace[].method` | string \| null | |
| `notice.application_trace[].context` | string | `app` for a frame in the project's own code, otherwise `all`. Allowed values: `app`, `all`. |
| `notice.application_trace[].application_file` | string | The file's path within the project. Sent for `app` frames. |
| `notice.application_trace[].source` | any | Lines of source around the frame, usually an object keyed by line number. Null when a source map has no source for the frame, and notifiers can send other shapes. |
| `notice.web_environment` | any | CGI-style request environment, as the notifier sent it. |
| `notice.deploy` | object \| null | |
| `notice.deploy.environment` required | string | |
| `notice.deploy.revision` required | string \| null | |
| `notice.deploy.repository` required | string \| null | |
| `notice.deploy.local_username` required | string \| null | |
| `notice.deploy.created_at` required | date-time | |
| `notice.deploy.changelog` required | array \| null | Commits in the deploy, as the deploy notification sent them. |
| `notice.deploy.url` required | uri | |
| `notice.url` | uri | |
| `context` | any | The notice's request context, as the notifier sent it. Usually an object, but any JSON value. Moved here from `notice.request`. |
| `custom_fields` | any | The integration's custom fields, when it has any. |

## Example

```json
{
  "event": "rate_exceeded",
  "message": "[Billing API/production] NoMethodError has occurred 5 time(s) in the past minute",
  "project": {
    "id": 85736,
    "name": "Billing API",
    "created_at": "2026-10-21T12:36:26.076894Z",
    "disable_public_links": false,
    "pivotal_project_id": null,
    "asana_workspace_id": null,
    "token": "hbp_EXAMPLE00000000000000000000000",
    "github_project": null,
    "environments": [
      {
        "id": 2819,
        "project_id": 85736,
        "name": "production",
        "notifications": true,
        "created_at": "2026-10-21T12:36:26.470494Z",
        "updated_at": "2026-10-21T12:36:26.470494Z"
      }
    ],
    "owner": {
      "id": 92354,
      "email": "user-1@example.com",
      "name": "Acme"
    },
    "last_notice_at": null,
    "earliest_notice_at": "2026-04-24T12:36:26.856141Z",
    "unresolved_fault_count": 0,
    "fault_count": 0,
    "active": true,
    "users": [
      {
        "id": 132624,
        "email": "jane@example.com",
        "name": "Jane Doe"
      }
    ],
    "sites": [
      {
        "id": "8121ab91-87fd-4e92-ae23-a7b5bf915a2f",
        "active": true,
        "last_checked_at": null,
        "name": "Checkout",
        "state": "down",
        "url": "https://billing.example.com/health"
      }
    ],
    "team_id": null
  },
  "fault": {
    "project_id": 85736,
    "klass": "NoMethodError",
    "component": "InvoicesController",
    "action": "show",
    "environment": "production",
    "resolved": false,
    "ignored": false,
    "created_at": "2026-10-18T12:36:26.482113Z",
    "project_name": "Billing API",
    "comments_count": 1,
    "message": "undefined method 'total' for nil",
    "notices_count": 1,
    "last_notice_at": "2026-10-21T12:36:26.309680Z",
    "tags": [
      "billing"
    ],
    "id": 26225,
    "assignee": null,
    "url": "https://app.honeybadger.io/projects/85736/faults/26225",
    "deploy": {
      "environment": "production",
      "revision": "850510ab072102729e6967cf89f28b740c61311b",
      "repository": "https://github.com/acme/billing",
      "local_username": "deploy-bot",
      "created_at": "2026-10-21T12:16:26.482113Z",
      "changelog": [],
      "url": "https://github.com/acme/billing/commit/850510ab072102729e6967cf89f28b740c61311b"
    }
  },
  "notice": {
    "id": 262251792586066,
    "environment": {},
    "created_at": "2026-10-21T12:34:26.482113Z",
    "message": null,
    "token": "65baebe0-d5cf-45d1-8604-c3a78619def7",
    "fault_id": 26225,
    "request": {
      "url": "https://billing.example.com/invoices/1042",
      "component": "InvoicesController",
      "action": "show",
      "params": {
        "controller": "invoices",
        "action": "show",
        "id": "1042"
      },
      "session": {}
    },
    "backtrace": [
      {
        "number": "42",
        "file": "[PROJECT_ROOT]/app/controllers/invoices_controller.rb",
        "method": "show",
        "application_file": "app/controllers/invoices_controller.rb",
        "context": "app"
      },
      {
        "number": "18",
        "file": "[GEM_ROOT]/gems/actionpack-8.1.0/lib/action_controller/metal/basic_implicit_render.rb",
        "method": "send_action",
        "context": "all"
      }
    ],
    "application_trace": [
      {
        "number": "42",
        "file": "[PROJECT_ROOT]/app/controllers/invoices_controller.rb",
        "method": "show",
        "application_file": "app/controllers/invoices_controller.rb",
        "context": "app"
      }
    ],
    "web_environment": {
      "REQUEST_METHOD": "GET",
      "HTTP_USER_AGENT": "Mozilla/5.0"
    },
    "deploy": {
      "environment": "production",
      "revision": "850510ab072102729e6967cf89f28b740c61311b",
      "repository": "https://github.com/acme/billing",
      "local_username": "deploy-bot",
      "created_at": "2026-10-21T12:16:26.482113Z",
      "changelog": [],
      "url": "https://github.com/acme/billing/commit/850510ab072102729e6967cf89f28b740c61311b"
    },
    "url": "https://app.honeybadger.io/projects/85736/faults/26225/01M5F79AHJ6GVQCB5TZ2R0QMKZ"
  },
  "context": {
    "user_id": 381
  }
}
```

---

## Try Honeybadger for FREE

Intelligent logging, error tracking, and Just Enough APM™ in one dev-friendly platform. Find and fix problems before users notice.

[Start free trial](https://app.honeybadger.io/users/sign_up)

[See plans and pricing](https://www.honeybadger.io/plans/)
