> ## Documentation Index
> Fetch the complete documentation index at: https://docs.appsignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Public Endpoint - Errors

Dieser Error-API-Endpunkt ermöglicht es, zusätzliche Fehler an AppSignal zu senden, wenn eine bestehende Integration nicht verwendet werden kann oder die verwendete Sprache (noch) nicht unterstützt wird.

## Endpunkt

Request-Methode: `POST`

| Endpunkt                                                                       | Beschreibung                      |
| ------------------------------------------------------------------------------ | --------------------------------- |
| [https://appsignal-endpoint.net/errors](https://appsignal-endpoint.net/errors) | Akzeptiert JSON-formatierte Daten |

## URL-Parameter

| Parameter | Typ    | Beschreibung                                                                                                      |
| --------- | ------ | ----------------------------------------------------------------------------------------------------------------- |
| api\_key  | String | **Front-end**-API-Schlüssel, zu finden in den [App-Einstellungen](https://appsignal.com/redirect-to/app?to=info). |

```shell Shell theme={null}
https://appsignal-endpoint.net/errors?api_key=<api_key>
```

## Body-Parameter

Der POST-Body sollte ein JSON-Objekt enthalten, das wie folgt formatiert ist:

| Parameter   | Typ                      | Beschreibung                                                                                                                                                                                    |
| ----------- | ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| timestamp   | Integer                  | (Epoch-)Zeitstempel, zu dem der Fehler aufgetreten ist                                                                                                                                          |
| action      | String                   | (Optional) Name der Action, in der der Fehler aufgetreten ist (z. B. `BlogpostController#show` oder `UserInfoLambda#perform`)                                                                   |
| namespace   | String                   | Namespace, in dem der Fehler aufgetreten ist (z. B. `frontend` oder `lambda`)                                                                                                                   |
| error       | Error                    | Error-Objekt, siehe Beschreibung unten                                                                                                                                                          |
| revision    | String                   | (Optional) Vollständiger (GIT-)Revisions-Hash der Anwendung                                                                                                                                     |
| tags        | `Object<String, String>` | (Optional) Tags zum Filtern des Samples oder um zusätzlichen Kontext bereitzustellen. Achten Sie darauf, dass sowohl Schlüssel als auch Werte Strings sind (z. B. `{"account_id": "abc-123"}`)  |
| params      | `Object<String, String>` | (Optional) Parameter, die an die Funktion übergeben wurden, in der der Fehler aufgetreten ist. Achten Sie darauf, dass sowohl Schlüssel als auch Werte Strings sind (z. B. `{"id": "abc-123"}`) |
| environment | `Object<String, String>` | (Optional) Umgebungswerte, die zum Zeitpunkt des Fehlers gesetzt waren. Achten Sie darauf, dass sowohl Schlüssel als auch Werte Strings sind (z. B. `{"REGION": "eu-central-1"}`)               |
| breadcrumbs | `Array<Breadcrumb>`      | (Optional) Array von Breadcrumbs, die vor dem Auftreten des Fehlers aufgezeichnet wurden. Siehe unten für die Beschreibung des Breadcrumb-Objekts                                               |
| language    | String                   | (Optional) Sprachzeichenkette, die zum Formatieren des Backtraces verwendet wird. Akzeptierte Werte sind `ruby`, `javascript`. Bei Verwendung einer anderen Sprache leer lassen                 |

Error:

| Parameter | Typ             | Beschreibung                                                             |
| --------- | --------------- | ------------------------------------------------------------------------ |
| name      | String          | Name des Fehlers (z. B. `StandardError`)                                 |
| message   | String          | (Optional) Fehlermeldung                                                 |
| backtrace | `Array<String>` | (Optional) Array von Backtrace-Zeilen, jede Zeile sollte ein String sein |

Breadcrumb:

| Parameter | Typ                      | Beschreibung                                                                           |
| --------- | ------------------------ | -------------------------------------------------------------------------------------- |
| category  | String                   | Kategorie, unter der das Ereignis eingeordnet wird (z. B. `network` oder `navigation`) |
| action    | String                   | Kontextuelle Informationen zum Ereignis                                                |
| message   | String                   | (optional) Eine Logmeldung oder ein anderer String, der an AppSignal gesendet wird     |
| metadata  | `Object<String, String>` | (optional) Ein Objekt mit Metadaten zum Ereignis                                       |

Zum Beispiel:

<CodeGroup>
  ```json JSON theme={null}
  {
    "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"
  }
  ```
</CodeGroup>

## Beispiel

<CodeGroup>
  ```ruby Ruby theme={null}
  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
  ```
</CodeGroup>

<Tip>
  **Hinweis**: Dieser Endpoint ist für hohe Traffic-Mengen optimiert und validiert
  weder den API-Schlüssel noch den Payload. Eine `200`-Antwort (`OK`) wird zurückgegeben, wenn
  die Body-Größe innerhalb des Limits von `200k` liegt. Das bedeutet nicht, dass die Anfrage
  beim Empfang akzeptiert wurde.
</Tip>
