Example use cases for the data access API.
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.
Note: Examples with URL parameters are shown over multiple lines for clarity but the whitespace must be removed before execution.
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
}
...
]
To find all the errors that have been seen in a specific version on a project, use the List Errors endpoint.
$ curl --get --globoff 'https://api.bugsnag.com/projects/{project_id}/errors?
filters[version.seen_in][][value]={your_app_version}&
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
},
...
]
To get the details of all the users who have experienced a specific error, use the Pivot Values endpoint. user.id
is the event_field_display_id
for user information.
$ curl --get --globoff 'https://api.bugsnag.com/projects/{project_id}/errors/{error_id}/pivots/user.id/values?' \
--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
},
...
]
To find the users who 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 --globoff 'https://api.bugsnag.com/projects/{project_id}/errors/{error_id}/pivots/user.id/values?
filters[event.since][][value]=7d&
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
},
...
]
Get the data to build a graph showing event counts in 30 minute buckets over a day using the Trends endpoint.
$ curl --get --globoff 'https://api.bugsnag.com/projects/{project_id}/trend?
resolution=30m&
filters[event.since][][value]=1d&
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 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 --globoff 'https://api.bugsnag.com/projects/{project_id}/errors?
filters[error.assigned_to][][value]=anyone&
filters[error.assigned_to][][type]=eq&
filters[error.status][][value]=open&
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
}
...
]
To request or delete a filtered list of events from BugSnag, use the Event data request and Event data deletion endpoints.
These endpoints are particularly important for GDPR & CCPA compliance in order to retrieve and delete user data.
If you have an example use case you’d like to share or an idea you’d like some help with, please get in touch with us.