Error Tracking

Report errors from a custom SDK

Send errors from a custom SDK with the error ingestion endpoint. Error tracking must be enabled for the project under Settings → Features before the collector accepts reports.

Endpoint

POST https://metrics.faststats.dev/v1/error
Authorization: Bearer <PROJECT_TOKEN>
Content-Type: application/json

The request body contains one or more errors and metadata shared by the batch:

{
	"language": "javascript",
	"identifier": "worker-01",
	"sessionId": "session-7d3f",
	"windowId": "request-42",
	"buildId": "2026.08.16",
	"sdkName": "acme-node",
	"sdkVersion": "1.4.0",
	"context": {
		"environment": "production",
		"region": "eu-central-1"
	},
	"errors": [
		{
			"error": "TypeError",
			"message": "Cannot read properties of undefined",
			"stack": [
				"TypeError: Cannot read properties of undefined",
				"    at handleRequest (/app/server.js:42:17)"
			],
			"handled": false,
			"count": 1,
			"context": {
				"route": "/checkout"
			}
		}
	]
}

Request fields

Batch fields

FieldTypeRequiredDescription
errorsarrayyesError occurrences to ingest.
languagestringnoStack-trace language. Defaults to java; see Supported languages.
identifierstringnoIdentifier for the affected installation, process, or user.
sessionIdstringnoSession associated with the errors.
windowIdstringnoWindow or request associated with the errors.
buildIdstringnoRelease/build identifier used to find an uploaded mapping file.
contextany JSON valuenoStructured metadata shared by every error in the request.
sdkNamestringnoName of your SDK or integration.
sdkVersionstringnoVersion of your SDK or integration.

Error fields

FieldTypeRequiredDescription
errorstringyesError type or exception class, such as TypeError or java.lang.RuntimeException.
messagestringnoHuman-readable error message.
stackarray of stringsnoStack trace lines in their original order.
handledbooleannoWhether application code handled the error. Defaults to false.
countintegernoNumber of identical occurrences represented by this item. Defaults to 1; use a non-negative 32-bit integer.
buildIdstringnoBuild identifier for this error. Overrides the batch-level buildId.
contextany JSON valuenoMetadata specific to this error. Object keys override matching batch context keys.

Keep stack frames as separate array entries. The collector joins them with newlines before grouping and applying source mappings.

Supported languages

The language controls stack-trace normalization, grouping, and mapping. Values are case-insensitive and surrounding whitespace is ignored.

If you need support for a language not listed here, please contact us.

LanguageAccepted valuesMapping support
JavajavaProGuard/R8 mappings
JavaScriptjavascript, jsJavaScript source maps
PHPphpNone
Rustrust, rsNone

If language is omitted or empty, the collector uses java for backward compatibility. Any other value returns 400 Bad Request:

{
	"error": "Unsupported language. Expected java, javascript, php, or rust"
}

Responses

A report accepted into the ingestion queue returns 200 OK:

{
	"status": "success"
}

The collector can also return:

StatusMeaning
400 Bad RequestThe body is invalid JSON or language is unsupported.
401 UnauthorizedThe authorization header is missing or the project token is invalid.
403 ForbiddenError tracking is disabled or the request is blocked by the project’s IP rules.
503 Service UnavailableThe ingestion queue is full; retry the request with backoff.

Error responses have the shape { "error": "message" }.