Skip to main content
This Error API endpoint is provided to add additional errors to AppSignal, where an existing integration can’t be used or the language used isn’t supported (yet).

Endpoint

Request method: POST
EndpointDescription
https://appsignal-endpoint.net/errorsAccepts JSON formatted data

URL parameters

ParameterTypeDescription
api_keyStringFront-end API key, can be found in App settings.
Shell
https://appsignal-endpoint.net/errors?api_key=<api_key>

Body parameters

The post body should contain a JSON object, formatted as follows:
ParameterTypeDescription
timestampInteger(Epoch) timestamp when error occurred
actionString(Optional) Action name where error occurred (e.g. BlogpostController#show or UserInfoLambda#perform)
namespaceStringNamespace where error occurred (e.g. frontend or lambda )
errorErrorError object, see description below
revisionString(Optional) Full (GIT) revision hash of application
tagsObject<String, String>(Optional) Tags to filter the sample on, or to provide additional context. Make sure both key and values are strings (e.g. {"account_id": "abc-123"})
paramsObject<String, String>(Optional) Parameters that were given to the function where the error occurred. Make sure both key and values are strings (e.g. {"id": "abc-123"})
environmentObject<String, String>(Optional) Environment values that were set when the error occurred. Make sure both keys and values are strings (e.g. {"REGION": "eu-central-1"})
breadcrumbsArray<Breadcrumb>(Optional) Array of breadcrumbs, recorded before the error occurred. See below for description of Breadcrumb object
languageString(Optional) Language string, used to format the backtrace. Accepted values are ruby, javascript. Leave empty when using another language
Error:
ParameterTypeDescription
nameStringError name (e.g. StandardError)
messageString(Optional) Error message
backtraceArray<String>(Optional) Array of backtrace lines, each line should be a string
Breadcrumb:
ParameterTypeDescription
categoryStringCategory to label the event under (e.g. network or navigation)
actionStringContextual information related to the event
messageString(optional) A log message or other string to send to AppSignal
metadataObject<String, String>(optional) An object of metadata related to the event
For example:
{
  "action": "BlogpostController#show",
  "namespace": "frontend",
  "timestamp": 1559201249,
  "error": {
    "name": "StandardError",
    "message": "Error message",
    "backtrace": ["backtrace/line:1", "backtrace/line:2"]
  },
  "environment": {
    "os": "windows",
    "agent": "super secret user agent"
  },
  "params": {
    "foo": "bar"
  },
  "tags": {
    "account_id": "abc-123"
  },
  "revision": "revision-abc",
  "breadcrumbs": [
    {
      "timestamp": 1559201249,
      "category": "request",
      "action": "http://google.com",
      "message": "request failed",
      "metadata": {
        "code": "not_found"
      }
    }
  ],
  "language": "javascript"
}

Example

require "uri"
require "json"
require "net/http"

url = URI("https://appsignal-endpoint.net/errors?api_key=FRONTEND-API-KEY")

https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/json"
request.body = JSON.dump({
  "action": "BlogpostController#show",
  "namespace": "frontend",
  "timestamp": 1640327525,
  "error": {
    "name": "StandardError",
    "message": "Error message",
    "backtrace": [
      "backtrace/line:1",
      "backtrace/line:2"
    ]
  },
  "environment": {
    "os": "windows",
    "agent": "super secret user agent"
  },
  "params": {
    "foo": "bar"
  },
  "tags": {
    "account_id": "abc-123"
  },
  "revision": "revision-abc-123",
  "breadcrumbs": [
    {
      "timestamp": 1640327525,
      "category": "request",
      "action": "http://google.com",
      "message": "request failed",
      "metadata": {
        "code": "not_found"
      }
    }
  ],
  "language": "javascript"
})

response = https.request(request)
puts response.read_body
Note: This endpoint is optimized for large amounts of traffic and does not validate the API key or payload, a 200 (OK) response is returned when the body size is within the 200k limit. This doesn’t mean the request is accepted when received.