Example API requests

Example use cases for the data access API.

Examples

Each example includes a curl request and a portion of a possible response. See the API reference for full details of the parameters and responses.

Getting started

For most API endpoints you’ll require a organization ID or a project ID. You can get these from the List Organizations and List Projects endpoints.

$ curl --get 'https://api.bugsnag.com/user/organizations' \
       --header 'Authorization: token {your_user_auth_token}' \
       --header 'X-Version: 2'
[
    {
        "id": "5919dd35488ed9001b53f3c3",
        "name": "Example Org",
        "slug": "example-org",
        "created_at": "2017-05-15T16:54:13.525Z"
        ... // More fields
    }
]
$ curl --get 'https://api.bugsnag.com/organizations/{organization_id}/projects' \
       --header 'Authorization: token {your_user_auth_token}' \
       --header 'X-Version: 2'
[
    {
        "id": "50baee27a43ccdf778000002",
        "created_at": "2016-12-02T05:59:03.903Z",
        "api_key": "abcde1234567890abcde123456",
        "name": "Example Project",
        "type": "rails",
        "collaborators_count": 23,
        "open_error_count": 5,
        "release_stages": [
            "production"
        ],
        "slug": "example-project",
        ... // More fields
    }
    ...
]

Errors seen in a specific version

To find all the errors that have been seen in a specific version on a project, use the List Errors endpoint.

$ curl --get 'https://api.bugsnag.com/projects/{project_id}/errors' \
       --data-urlencode 'filters\[version.seen_in\]\[\]\[value\]={your_app_version}' \
       --data-urlencode 'filters\[version.seen_in\]\[\]\[type\]=eq' \
       --header 'Authorization: token {your_user_auth_token}' \
       --header 'X-Version: 2'
[
  {
    "id": "5952b72acce9f50018a14515",
    "status": "open",
    "severity": "error",
    "error_class": "ExampleError",
    "message": "Can't find variable: example",
    "context": "api/users",
    "first_seen": "2017-06-27T19:51:06+00:00",
    "last_seen": "2017-06-27T19:51:06+00:00",
    "release_stages": [
      "production"
    ]
    ... // More fields
  },
  ...
]

Users that have seen an error the most in the last week

To find the users have have experienced an error the most in the last week, use the Pivot Values endpoint. user.id is the event_field_display_id for user information and the 7d filter will restrict the data to the last 7 days.

$ curl --get 'https://api.bugsnag.com/projects/{project_id}/errors/{error_id}/pivots/user.id/values' \
       --data-urlencode 'filters\[event.since\]\[\]\[value\]=7d' \
       --data-urlencode 'filters\[event.since\]\[\]\[type\]=eq' \
       --header 'Authorization: token {your_user_auth_token}' \
       --header 'X-Version: 2'
[
    {
        "event_field_value": "10000005",
        "events": 14,
        "fields": {
            "user.email": "user1@example.com",
            "user.name": "User One"
        },
        "first_seen": "2017-06-28T20:27:45+00:00",
        "last_seen": "2017-06-28T20:34:44+00:00",
        "proportion": 0.43324
    },
    {
        "event_field_value": "10000025",
        "events": 5,
        "fields": {
            "user.email": "user2@example.com",
            "user.name": "User Two"
        },
        "first_seen": "2017-06-27T20:16:43+00:00",
        "last_seen": "2017-07-03T15:40:18+00:00",
        "proportion": 0.15007
    },
    ...
]

Build a graph of events over time

Get the data to build a graph showing event counts in 30 minute buckets over a day using the Trends endpoint. This only considers events on errors that are open or in progress in order to exclude events from errors that have been snoozed, ignored or marked as fixed.

$ curl --get 'https://api.bugsnag.com/projects/{project_id}/trend' \
       --data-urlencode 'resolution=30m' \
       --data-urlencode 'filters\[event.since\]\[\]\[value\]=1d' \
       --data-urlencode 'filters\[event.since\]\[\]\[type\]=eq' \
       --header 'Authorization: token {your_user_auth_token}' \
       --header 'X-Version: 2'
[
   {
       "events_count": 48,
       "from": "2017-07-10T00:00:00Z",
       "to": "2017-07-10T00:30:00Z"
   },
   {
       "events_count": 96,
       "from": "2017-07-10T00:30:00Z",
       "to": "2017-07-10T01:00:00Z"
   },
   ...
]

Get the active errors that are assigned to your team

Get all the active errors that haven’t been fixed but are assigned to a collaborator on your team using the List Errors endpoint.

$ curl --get 'https://api.bugsnag.com/projects/{project_id}/errors' \
       --data-urlencode 'filters\[error.assigned_to\]\[\]\[value\]=anyone' \
       --data-urlencode 'filters\[error.assigned_to\]\[\]\[type\]=eq' \
       --data-urlencode 'filters\[error.status\]\[\]\[value\]=in progress' \
       --data-urlencode 'filters\[error.status\]\[\]\[type\]=eq' \
       --header 'Authorization: token {your_user_auth_token}' \
       --header 'X-Version: 2'
[
  {
    "id": "5952b72acce9f50018a14515",
    "assigned_collaborator_id": "5952b72acce9f50018000000",
    "status": "open",
    "severity": "error",
    "error_class": "ExampleError",
    "message": "Can't find variable: example",
    "context": "api/users"
    ... // More fields
  },
  ...
]

Then get the collaborator details using the List Collaborators endpoint.

$ curl --get 'https://api.bugsnag.com/organizations/{organization_id}/collaborators' \
       --header 'Authorization: token {your_user_auth_token}' \
       --header 'X-Version: 2'
[
  {
      "id": "5952b72acce9f50018000000",
      "email": "collaborator@example.com",
      "is_admin": true,
      "name": "Collaborator One"
      ... // More fields
  }
  ...
]

Your examples

If you have an example use case you’d like to share or an idea you’d like some help with, please let us know at support@bugsnag.com.