Every API here is available over the APIs.io API and to AI agents over MCP.
{"openapi":"3.0.3","info":{"title":"BugSnag - Error Reporting API","version":"1","description":"Report an error or exception in your web, mobile or desktop applications.\n","contact":{"name":"BugSnag Support","email":"support@bugsnag.com"}},"servers":[{"description":"SwaggerHub API Auto Mocking","url":"https://virtserver.swaggerhub.com/smartbear-public/bugsnag-error-reporting-api/1"},{"description":"For organizations with projects on app.bugsnag.com","url":"https://notify.bugsnag.com"},{"description":"For organizations with projects on app.bugsnag.smartbear.com","url":"https://notify.bugsnag.smartbear.com"},{"description":"SwaggerHub API Auto Mocking","url":"https://virtserver.swaggerhub.com/smartbear-public/bugsnag-error-reporting-api/1"}],"paths":{"/":{"post":{"responses":{"200":{"description":"The payload was accepted and will be processed asynchronously. This doesn't imply that your payload was valid, just that it was enqueued to be processed.","headers":{"Bugsnag-Event-ID":{"schema":{"type":"string"},"description":"The ID assigned to the first event in the report. If the report contains multiple events then the IDs of subsequent events can be calculated by incrementing the final two bytes of the first ID."}}},"400":{"description":"The payload was empty or too large (greater than 1MB)."},"408":{"description":"The payload took too long (>30s) to read from the network."}},"summary":"Send error reports","operationId":"sendErrorReports","tags":["Notify"],"parameters":[{"name":"Bugsnag-Api-Key","in":"header","description":"The API Key associated with the project. Informs BugSnag which project has generated this error.","required":true,"schema":{"type":"string"}},{"name":"Bugsnag-Payload-Version","in":"header","description":"The version number of the payload. Must be set to `5`.","required":true,"schema":{"type":"string"}},{"name":"Bugsnag-Sent-At","in":"header","description":"2018-01-01T15:00:00.000Z - The time (in ISO 8601 format) that the event payload is being sent.","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"apiKey":"YOUR-NOTIFIER-API-KEY","payloadVersion":"5","notifier":{"name":"Bugsnag Ruby","version":"1.0.11","url":"https://github.com/bugsnag/bugsnag-ruby","dependencies":[{"name":"Bugsnag Android","version":"2.1.10","url":"https://github.com/bugsnag/bugsnag-android"}]},"events":[{"exceptions":[{"errorClass":"NoMethodError","message":"Unable to connect to database","stacktrace":[{"file":"controllers/auth/session_controller.rb","lineNumber":1234,"columnNumber":123,"method":"create","inProject":true,"code":{"1":"def a","2":"raise 'something went wrong' if problem?","3":"end"},"frameAddress":"0x000000010d131040","loadAddress":"0x000000010d12e000","isLR":false,"isPC":true,"symbolAddress":"0x000000010d130fe6","machoFile":"/System/Library/Frameworks/Foundation.framework/Foundation","machoLoadAddress":"0x000000010d12e000","machoUUID":"B3196052-BAF1-3EA5-AD28-F9E6ECCF0B03","machoVMAddress":"0x0000000100000000","codeIdentifier":"b6b529d5e58421a0fba0fa2c5c2c5f3e"}],"type":"android"}],"breadcrumbs":[{"timestamp":"2016-07-19T12:17:27-0700","name":"Open menu","type":"navigation","metaData":{}}],"request":{"clientIp":"192.168.44.0","headers":{},"httpMethod":"PUT","url":"http://example.com/users/19/settings","referer":"http://example.com?q=awesome"},"threads":[{"id":"thread_id","name":"thread_name","errorReportingThread":true,"stacktrace":[{"file":"controllers/auth/session_controller.rb","lineNumber":1234,"columnNumber":123,"method":"create","inProject":true,"code":{"1":"def a","2":"raise 'something went wrong' if problem?","3":"end"},"frameAddress":"0x000000010d131040","loadAddress":"0x000000010d12e000","isLR":false,"isPC":true,"symbolAddress":"0x000000010d130fe6","machoFile":"/System/Library/Frameworks/Foundation.framework/Foundation","machoLoadAddress":"0x000000010d12e000","machoUUID":"B3196052-BAF1-3EA5-AD28-F9E6ECCF0B03","machoVMAddress":"0x0000000100000000","codeIdentifier":"b6b529d5e58421a0fba0fa2c5c2c5f3e"}],"state":"WAITING","type":"android"}],"context":"auth/session#create","groupingHash":"buggy_file.rb","unhandled":true,"severity":"error","severityReason":{"type":"unhandledError","attributes":{"errorType":"E_ERROR","level":"Error","signalType":"SIGSEGV","violationType":"NetworkOnMainThread","errorClass":"ActiveRecord::RecordNotFound","framework":"Rack","exceptionClass":"TypeMismatchException"},"unhandledOverridden":false},"projectPackages":["com.example.package1","com.example.package2"],"user":{"id":"19","name":"Robert Hawkins","email":"bob@example.com"},"app":{"id":"com.bugsnag.android.example.debug","version":"1.1.3","versionCode":12,"bundleVersion":"1.0.2","codeBundleId":"1.0-1234","buildUUID":"BE5BA3D0-971C-4418-9ECF-E2D1ABCB66BE","releaseStage":"staging","type":"rails","dsymUUIDs":["e6173678256785afd940392abee"],"duration":1275,"durationInForeground":983,"inForeground":true,"isLaunching":true,"binaryArch":"x86_64","runningOnRosetta":true},"device":{"hostname":"web1.internal","id":"fd124e87760c4281aef","manufacturer":"LGE","model":"Nexus 6P","modelNumber":"600","osName":"android","osVersion":"8.0.1","freeMemory":183879616,"totalMemory":201326592,"freeDisk":13478064128,"browserName":"Chrome","browserVersion":"61.0.3163.100","jailbroken":false,"orientation":"portrait","time":"2018-08-07T10:16:34.564Z","cpuAbi":["x86_64"],"runtimeVersions":{"androidApiLevel":"28","bottle":"0.12.8","celery":"4.2.0","clangVersion":"7.0.1","cocos2dx":"3.17.2","delayedJob":"4.1.8","django":"2.1.7","dotnet":".NET Framework 4.7.3416.0","dotnetApiCompatibility":".NET 2.0 Subset","dotnetClr":"4.0.30319.17379","dotnetScriptingRuntime":".NET 3.5 equivalent","electron":"11.4.3","eventMachine":"1.2.7","expoApp":"2.10.0.105125","expoSdk":"32.0.0","flask":"1.0.2","gin":"1.3.0","go":"1.11.2","javaType":"Java(TM) SE Runtime Environment","javaVersion":"1.8.0_131-b11","jruby":"9.2.5.0","laravel":"5.7.22","lumen":"5.7","magento":"2.3.0","mailman":"0.8.0","martini":"1.0","negroni":"1.0.0","node":"10.14.1","osBuild":"16D57","php":"7.2.12","python":"3.7.1","que":"0.14.3","rack":"2.0.6","rails":"5.2.2","rake":"12.3.2","reactNative":"0.57.5","reactNativeJsEngine":"hermes","resque":"2.0.0","revel":"0.21.0","ruby":"2.5.3","shoryoken":"5.0.1","sidekiq":"5.1.3","silex":"2.1.0","sinatra":"2.0.3","springBoot":"1.5.13.RELEASE","springFramework":"4.2.13.RELEASE","swift":"4.2","symfony":"4.2.11","tornado":"5.1.1","unity":"2018.2.17","unityScriptingBackend":"Mono","wordpress":"5.1"},"macCatalystiOSVersion":"14.0"},"session":{"id":"9f65c975-8155-456f-91e5-c4c4b3db0555","startedAt":"2017-01-01T14:30:00.000Z","events":{"handled":1,"unhandled":1}},"featureFlags":[{"featureFlag":"share_ios_photo_sharing_button","variant":"blue_button"}],"metaData":{}}]},"schema":{"$ref":"#/components/schemas/Payload"}}}}}},"/minidump":{"post":{"responses":{"202":{"description":"The payload was accepted and will be processed asynchronously. This doesn't imply that your payload was valid, just that it was enqueued to be processed.","headers":{"Bugsnag-Event-ID":{"description":"The ID assigned to the associated event.","schema":{"type":"string"}}},"content":{"text/plain":{"example":"Accepted"}}},"400":{"description":"Bad Request","content":{"text/plain":{"examples":{"Missing API Key":{"value":"missing api_key"},"Missing upload file minidump":{"value":"missing upload_file_minidump"}}}}},"401":{"description":"Invalid API Key","content":{"text/plain":{"example":"invalid api_key"}}},"422":{"description":"Received Empty File","content":{"text/plain":{"example":"received empty file"}}}},"summary":"Upload minidumps","operationId":"uploadMinidumps","tags":["Minidump"],"parameters":[{"name":"api_key","in":"query","description":"The API key of the BugSnag project that the minidump applies to.","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","required":["upload_file_minidump"],"properties":{"upload_file_minidump":{"type":"string","description":"Binary stream of a minidump file."},"event":{"type":"string","description":"JSON string representing additional information about the minidump event. Mirrors the format of the Notify endpoint."}}},"example":"???"}}}}}},"components":{"schemas":{"Payload":{"type":"object","required":["payloadVersion","notifier","events"],"properties":{"apiKey":{"type":"string","example":"YOUR-NOTIFIER-API-KEY","description":"The API Key associated with the project. Informs BugSnag which project has generated this error. This is provided for legacy notifiers. It is preferable to use the `Bugsnag-Api-Key` header instead."},"payloadVersion":{"type":"string","example":"5","description":"The version number of the payload. This is currently `5`. The `Bugsnag-Payload-Version` header should be included as well for compatibility reasons."},"notifier":{"$ref":"#/components/schemas/Notifier"},"events":{"type":"array","items":{"$ref":"#/components/schemas/Event"},"description":"An array of error events that BugSnag should be notified of. A notifier can choose to group notices into an array to minimize network traffic, or can notify BugSnag each time an event occurs. Should contain at least 1 event."}}},"Notifier":{"type":"object","required":["name","version","url"],"properties":{"name":{"type":"string","example":"Bugsnag Ruby","description":"The notifier name."},"version":{"type":"string","example":"1.0.11","description":"The notifier's current version."},"url":{"type":"string","example":"https://github.com/bugsnag/bugsnag-ruby","description":"The URL associated with the notifier."},"dependencies":{"type":"array","items":{"$ref":"#/components/schemas/DependentNotifier"},"description":"For platforms where multiple notifiers are used to capture an event, an optional array containing the details of the additional notifiers can be specified."}},"description":"Describes the notifier itself. These properties are used within BugSnag to track error rates from a notifier."},"Event":{"type":"object","required":["exceptions"],"properties":{"exceptions":{"type":"array","items":{"$ref":"#/components/schemas/Exception"},"description":"An array of exceptions that occurred during this event. There must be at least one entry. Most of the time there will only be one exception, but some languages support \"nested\" or \"caused by\" exceptions. In this case, exceptions should be unwrapped and added to the array one at a time. The array should be in order from the outermost error to the innermost. For example, the first element in the array should be the error caused by the second element, and so on.\n"},"breadcrumbs":{"type":"array","items":{"$ref":"#/components/schemas/Breadcrumb"},"description":"An array of user- and system-initiated events which led up to an error, providing additional context. This list is sequential and ordered newest to oldest."},"request":{"$ref":"#/components/schemas/Request"},"threads":{"type":"array","items":{"$ref":"#/components/schemas/Thread"},"description":"An array of background threads. This is optional but recommended for apps that rely heavily on threading. Threads should be in an order that makes sense for your application."},"context":{"type":"string","example":"auth/session#create","description":"A string representing what was happening in the application at the time of the error. This string could be used for grouping purposes, depending on the event. Usually this would represent the controller and action in a server based project. It could represent the screen that the user was interacting with in a client side project. For example:\n* On Ruby on Rails the context could be `controller#action`.\n* In Android, the context could be the top most Activity.\n* In iOS, the context could be the name of the top most\n UIViewController."},"groupingHash":{"type":"string","example":"buggy_file.rb","description":"The [default error grouping](https://docs.bugsnag.com/product/error-grouping) can be overridden by specifying a custom grouping hash."},"unhandled":{"type":"boolean","example":true,"description":"Whether the error was unhandled. If true, the error was detected by the notifier because it was not handled by the application. If false, the errors was handled and reported using Bugsnag.notify."},"severity":{"type":"string","enum":["error","warning","info"],"default":"error","description":"The severity of the error\n\n * `error` - The default for unhandled errors.\n\n * `warning` - The default when Bugsnag.notify is called.\n\n * `info` - Can be used in manual Bugsnag.notify calls."},"severityReason":{"$ref":"#/components/schemas/SeverityReason"},"projectPackages":{"type":"array","items":{"type":"string","example":["com.example.package1","com.example.package2"]},"description":"Sets which package names should be considered as a part of the running application. We mark stacktrace lines as in-project if they originate from any of these packages and this allows us to improve the visual display of the stacktrace on the dashboard."},"user":{"$ref":"#/components/schemas/User"},"app":{"$ref":"#/components/schemas/Application"},"device":{"$ref":"#/components/schemas/Device"},"session":{"$ref":"#/components/schemas/Session"},"featureFlags":{"type":"array","items":{"$ref":"#/components/schemas/FeatureFlag"},"description":"Details of the feature flags (experiments) and associated variants that were active when the error occurred."},"metaData":{"type":"object","properties":{},"description":"An object containing any further data you wish to attach to this error event. This should contain one or more objects, with each object being displayed in its own tab on the event details on the dashboard.\n```\n {\n // Custom user data to be displayed in the User tab along with standard\n // user fields on the dashboard.\n \"user\": {\n ...\n },\n\n // Custom app data to be displayed in the App tab along with standard\n // app fields on the dashboard.\n \"app\": {\n ...\n },\n\n // Custom device data to be displayed in the Device tab along with\n //standard device fields on the dashboard.\n \"device\": {\n ...\n },\n\n Custom request data to be displayed in the Request tab along with\n standard request fields on the dashboard.\n \"request\": {\n ...\n },\n\n // This will be displayed as an extra tab on the dashboard.\n \"Some data\": {\n\n // A key value pair that will be displayed in the first tab.\n \"key\": \"value\",\n\n // Key value pairs can be contained in nested objects which helps\n // to organize the information presented in the tab.\n \"setOfKeys\": {\n \"key\": \"value\",\n \"key2\": \"value\"\n }\n },\n\n // This would be the second extra tab on the dashboard.\n \"Some more data\": {\n ...\n }\n }\n\n```"}}},"Exception":{"type":"object","required":["errorClass","stacktrace"],"properties":{"errorClass":{"type":"string","example":"NoMethodError","description":"The class of error which occurred. This field is used to group the errors together so should not contain any contextual information that would prevent correct grouping. This would ordinarily be the Exception name when dealing with an exception."},"message":{"type":"string","example":"Unable to connect to database","description":"The error message associated with the error. Usually this will contain some information about this specific instance of the error and is not used to group the errors."},"stacktrace":{"type":"array","items":{"$ref":"#/components/schemas/Stackframe"},"description":"An array of stackframe objects. Each object represents one line in the exception's stacktrace. This information is used to help with error grouping, as well as displaying it to the user."},"type":{"$ref":"#/components/schemas/ErrorType"}}},"Stackframe":{"type":"object","required":["file","lineNumber","method"],"properties":{"file":{"type":"string","example":"controllers/auth/session_controller.rb","description":"The file that this stack frame was executing. It is recommended that you strip any unnecessary or common information from the beginning of the path."},"lineNumber":{"type":"number","example":1234,"description":"The line of the file that this frame of the stack was in."},"columnNumber":{"type":"number","example":123,"description":"The column of the file that this frame of the stack was in."},"method":{"type":"string","example":"create","description":"The method that this particular stack frame is within."},"inProject":{"type":"boolean","example":true,"description":"If this stacktrace line is in the user's project code, set this to true. It is useful for developers to be able to see which lines of a stacktrace are within their own application, and which are within third party libraries. This information is shown in the stacktrace on the dashboard and is used to help group errors better."},"code":{"type":"object","properties":{"1":{"type":"string","example":"def a"},"2":{"type":"string","example":"raise 'something went wrong' if problem?"},"3":{"type":"string","example":"end"}},"description":"The code in this file surrounding this line. This is an object containing key value pairs where each key is a line number and each value is the code from that line. You can include up to three lines on either side of the line where the error occurred. These will be displayed on the bugsnag dashboard when you expand that line.\n```\n {\n \"1231\": \" def a\",\n \"1232\": \"\",\n \"1233\": \" if problem?\",\n \"1234\": \" raise 'something went wrong'\",\n \"1235\": \" end\"\n \"1236\": \"\",\n \"1237\": \" end\"\n }\n\n```"},"frameAddress":{"type":"string","example":"0x000000010d131040","description":"The run time memory address of the instruction being executed (for the first stack frame) or to which control will return after the function call or subroutine completes."},"loadAddress":{"type":"string","example":"0x000000010d12e000","description":"The address in memory where the binary has been loaded at run time."},"isLR":{"type":"boolean","description":"True if `frameAddress` corresponds to value of the Link Register. This is sometimes the case for the second frame in a stack - e.g. for signals and mach exceptions."},"isPC":{"type":"boolean","example":true,"description":"True if `frameAddress` corresponds to the Program Counter."},"symbolAddress":{"type":"string","example":"0x000000010d130fe6","description":"The run time memory address of the symbol that most closely matches `frameAddress`."},"machoFile":{"type":"string","example":"/System/Library/Frameworks/Foundation.framework/Foundation","description":"The full path of the Mach-O binary (iOS/macOS/tvOS only)."},"machoLoadAddress":{"type":"string","example":"0x000000010d12e000","description":"The address in memory where the Mach-O binary has been loaded at run time. This may differ from `machoVMAddress` due to Address Space Layout Randomization. The difference between `machoLoadAddress` and `machoVMAddress` is known as the \"slide\" (iOS/macOS/tvOS only)."},"machoUUID":{"type":"string","example":"B3196052-BAF1-3EA5-AD28-F9E6ECCF0B03","description":"A UUID which uniquely identifies this Mach-O binary (iOS/macOS/tvOS only)."},"machoVMAddress":{"type":"string","example":"0x0000000100000000","description":"The memory address assigned to the Mach-O binary by the linker at build time (iOS/macOS/tvOS only)."},"codeIdentifier":{"type":"string","example":"b6b529d5e58421a0fba0fa2c5c2c5f3e","description":"The ID of the executable/library that the frame relates to."}}},"Breadcrumb":{"type":"object","required":["timestamp","name","type"],"properties":{"timestamp":{"type":"string","example":"2016-07-19T12:17:27-0700","description":"The time at which the event occurred, in [ISO 8601 format](https://tools.ietf.org/html/rfc3339#section-5.8)."},"name":{"type":"string","example":"Open menu","description":"A short summary describing the event, such as the user action taken or a new application state."},"type":{"type":"string","enum":["navigation","request","process","log","user","state","error","manual"],"description":"A category which describes the breadcrumb, from the list of allowed values.\n* `navigation` - Changing screens or content being displayed, with a defined destination and optionally a previous location.\n* `request` - Sending and receiving requests and responses.\n* `process` - Performing an intensive task or query.\n* `log` - Messages and severity sent to a logging platform.\n* `user` - Actions performed by the user, like text input, button presses, or confirming/cancelling an alert dialog.\n* `state` - Changing the overall state of an app, such as closing, pausing, or being moved to the background, as well as device state changes like memory or battery warnings and network connectivity changes.\n* `error` - An error which was reported to BugSnag encountered in the same session.\n* `manual` - User-defined, manually added breadcrumbs."},"metaData":{"type":"object","properties":{},"description":"Additional information about the event, as key/value pairs.\n```\n{\n \"to\": \"PauseView\",\n \"from\": \"PodBayDoorView\"\n}\n```"}}},"Request":{"type":"object","description":"Details about the web request from the client that experienced the error, if relevant. To display custom request data alongside these standard fields on the dashboard, the custom data should be included in the `metaData` object in a `request` object.","properties":{"clientIp":{"type":"string","example":"192.168.44.0","description":"The IP address of the client that experienced the error."},"headers":{"type":"object","properties":{},"description":"The headers sent with the request.\n```\n{\n \"Accept\": \"*/*\",\n \"Accept-Encoding\": \"gzip, deflate, sdch, br\",\n \"Accept-Language\": \"en-US,en;q=0.8\"\n}\n```"},"httpMethod":{"type":"string","example":"PUT","description":"The HTTP method used."},"url":{"type":"string","example":"http://example.com/users/19/settings","description":"The URL of the request."},"referer":{"type":"string","example":"http://example.com?q=awesome","description":"The [HTTP referer](https://en.wikipedia.org/wiki/HTTP_referer)"}}},"Thread":{"type":"object","properties":{"id":{"type":"string","example":"thread_id","description":"The id of the thread in your application."},"name":{"type":"string","example":"thread_name","description":"A human readable name for the thread."},"errorReportingThread":{"type":"boolean","example":true,"description":"If this is the thread that the error was reported from (either an unhandled error or a call to bugsnag.notify), set this to true."},"stacktrace":{"type":"array","items":{"$ref":"#/components/schemas/Stackframe"},"description":"An array of stacktrace objects. Each object represents one line in the stacktrace of the thread at the point that the error occurred."},"state":{"type":"string","example":"WAITING","description":"The state of the thread at the time of the error."},"type":{"$ref":"#/components/schemas/ErrorType"}}},"SeverityReason":{"type":"object","description":"Information about why the severity was picked.","properties":{"type":{"type":"string","enum":["unhandledException","unhandledError","log","signal","strictMode","unhandledPromiseRejection","callbackErrorIntercept","errorClass","exceptionClass","unhandledPanic","unhandledErrorMiddleware","unhandledExceptionMiddleware","userCallbackSetSeverity","userSpecifiedSeverity","handledException","handledError","handledPanic","userContextSetSeverity","anrError","appHang","outOfMemory","thermalKill"],"description":"A type key that represents the reason for the assigned severity.\n * `unhandledException`- Whenever an uncaught exception is discovered (generic).\n * `unhandledError` - When an error is discovered (PHP).\n * `log` - Whenever a log message is sent (generic).\n * `signal` - Whenever a \"fatal\" signal is discovered (iOS).\n * `strictMode` - Whenever a strictMode issue is discovered (Android).\n * `unhandledPromiseRejection` Whenever an unhandled promise rejection is discovered (JS/Node JS/React Native).\n * `callbackErrorIntercept`- callbackErrorIntercept (Node JS).\n * `errorClass` - Whenever an exception with a particular class is automatically sent (Ruby).\n * `exceptionClass` - Whenever an exception with a particular class is automatically sent (Java).\n * `unhandledPanic` - When a panic is unhandled and crashes the app (Go).\n * `unhandledErrorMiddleware` - Unhandled errors in ${Negroni} middleware have a default severity:error.\n * `unhandledExceptionMiddleware` - Unhandled exceptions in ${Rack} middleware have a default severity:error.\n * `userCallbackSetSeverity` - Whenever a callback changes a report's severity (generic).\n * `userSpecifiedSeverity` - Whenever a severity is set through a manual notify call (generic).\n * `handledException` - Whenever a handled exception is sent through (generic).\n * `handledError` - Whenever a handled error is sent through (PHP).\n * `handledPanic` - Whenever a panic is handled through AutoNotify or Recover (Go).\n * `userContextSetSeverity` - When a user creates a context which changes the severity (Python).\n * `anrError` - Whenever an ANR is detected (Android).\n * `appHang` - Whenever an app hang is detected (Cocoa).\n * `outOfMemory` - When an app is terminated because it used too much memory (Cocoa).\n * `thermalKill` - When an app is terminated because the device is overheating (Cocoa)."},"attributes":{"$ref":"#/components/schemas/SeverityReasonAttributes"},"unhandledOverridden":{"type":"boolean","example":false,"description":"Whether the event's `unhandled` flag was overridden from the notifier's default value."}}},"SeverityReasonAttributes":{"type":"object","description":"Optional attributes to provide extra information about the severity reason.","properties":{"errorType":{"type":"string","example":"E_ERROR","description":"Included for `unhandledError` severity reason. See [PHP Error Constants](http://php.net/manual/en/errorfunc.constants.php)."},"level":{"type":"string","example":"Error","description":"Included for `log` severity reason."},"signalType":{"type":"string","example":"SIGSEGV","description":"Included for `signal` severity reason. See [Signal Codes](https://en.wikipedia.org/wiki/C_signal_handling)."},"violationType":{"type":"string","example":"NetworkOnMainThread","description":"Included for `strictMode` severity reason. See [Strict Mode](https://developer.android.com/reference/android/os/StrictMode.html)."},"errorClass":{"type":"string","example":"ActiveRecord::RecordNotFound","description":"Included for `errorClass` severity reason. Specifies the error class that is automatically sent."},"framework":{"type":"string","example":"Rack","description":"Included for middleware severity reasons, specifies the middleware that had an error."},"exceptionClass":{"type":"string","example":"TypeMismatchException","description":"Included for `exceptionClass` severity reason. Specifies the error class that is automatically sent."}}},"User":{"type":"object","description":"Information about the user affected by the error. These fields are optional but highly recommended. To display custom user data alongside these standard fields on the dashboard, the custom data should be included in the `metaData` object in a `user` object.","properties":{"id":{"type":"string","example":"19","description":"A unique identifier for a user affected by this event. This could be any distinct identifier that makes sense for your application/platform."},"name":{"type":"string","example":"Robert Hawkins","description":"The user's name, or a string you use to identify them."},"email":{"type":"string","example":"bob@example.com","description":"The user's email address."}}},"Application":{"type":"object","description":"Information about the app where the error occurred. These fields are optional but highly recommended. To display custom app data alongside these standard fields on the dashboard, the custom data should be included in the `metaData` object in an `app` object.","properties":{"id":{"type":"string","example":"com.bugsnag.android.example.debug","description":"A unique ID for the application."},"version":{"type":"string","example":"1.1.3","description":"The version number of the application which generated the error."},"versionCode":{"type":"number","example":12,"description":"The [version code](https://developer.android.com/studio/publish/versioning.html) of the application (Android only)"},"bundleVersion":{"type":"string","example":"1.0.2","description":"The [bundle version/build number](https://developer.apple.com/library/content/technotes/tn2420/_index.html) of the application (iOS/macOS/tvOS only)"},"codeBundleId":{"type":"string","example":"1.0-1234","description":"A unique identifier to identify a code bundle release when using tools like CodePush (mobile only)."},"buildUUID":{"type":"string","example":"BE5BA3D0-971C-4418-9ECF-E2D1ABCB66BE","description":"A build ID that is required to identify a specific build when the version and version code are the same."},"releaseStage":{"type":"string","example":"staging","default":"production","description":"The release stage that this error occurred in, for example \"development\", \"staging\" or \"production\"."},"type":{"type":"string","example":"rails","description":"A specialized type of the application, such as the worker queue or web framework used, like \"rails\", \"mailman\", or \"celery\"."},"dsymUUIDs":{"type":"array","items":{"type":"string","example":["e6173678256785afd940392abee"]},"description":"The UUIDs of the [debug symbols file](http://lldb.llvm.org/symbols.html) corresponding to this application, if any."},"duration":{"type":"number","example":1275,"description":"How long the app has been running for in milliseconds."},"durationInForeground":{"type":"number","example":983,"description":"How long the app has been in the foreground of the device in milliseconds."},"inForeground":{"type":"boolean","example":true,"description":"Whether or not the app was in the foreground when the error occurred."},"isLaunching":{"type":"boolean","example":true,"description":"Whether or not the app was still launching when the error occurred."},"binaryArch":{"type":"string","enum":["x86","x86_64","arm32","arm64","arm64e","armv6","armv7","armv7f","armv7k","armv7s","armv8","amd64"],"description":"The architecture of the running binary."},"runningOnRosetta":{"type":"boolean","example":true,"description":"Whether the application is running on the Rosetta emulator for Mac."}}},"Device":{"type":"object","description":"Information about the computer/device running the app. These fields are optional but highly recommended. To display custom device data alongside these standard fields on the dashboard, the custom data should be included in the `metaData` object in a `device` object.","properties":{"hostname":{"type":"string","example":"web1.internal","description":"The hostname of the server running your code, if applicable."},"id":{"type":"string","example":"fd124e87760c4281aef","description":"A unique identifier for the device."},"manufacturer":{"type":"string","example":"LGE","description":"The manufacturer of the device."},"model":{"type":"string","example":"Nexus 6P","description":"The model of the device."},"modelNumber":{"type":"string","example":"600","description":"The model number of the device."},"osName":{"type":"string","example":"android","description":"The device's operating system name."},"osVersion":{"type":"string","example":"8.0.1","description":"The device's operating system version."},"freeMemory":{"type":"number","example":183879616,"description":"The number of bytes unused in the device's RAM."},"totalMemory":{"type":"number","example":201326592,"description":"The number of total bytes in the device's RAM."},"freeDisk":{"type":"number","example":13478064128,"description":"The number of unused bytes on the drive running the application."},"browserName":{"type":"string","example":"Chrome","description":"If a web application, the web browser used by the device."},"browserVersion":{"type":"string","example":"61.0.3163.100","description":"If a web application, the version of the browser used by the device."},"jailbroken":{"type":"boolean","description":"Whether or not the device has been modified to give users root access."},"orientation":{"type":"string","example":"portrait","description":"The orientation of the device at the time of the error."},"time":{"type":"string","example":"2018-08-07T10:16:34.564
# --- truncated at 32 KB (40 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/bugsnag/refs/heads/main/openapi/bugsnag-error-reporting-api-openapi.json