@nova-sdk/api
import { Nova } from "@nova-sdk/api";
const nova = new Nova({
apiKey: "sk_test_...",
tenantId: "acme-corp",
});
const errors = await nova.analytics.errors({ timeRange: "7d" });curl -X GET "https://embed.nova.dweet.com/v1/analytics/errors?timeRange=7d" \
-H "Authorization: Bearer sk_test_..."{
"period": {
"start": "2023-11-07T05:31:56Z",
"end": "2023-11-07T05:31:56Z"
},
"data": [
{
"errorCode": "<string>",
"description": "<string>",
"count": 123,
"percentage": 123
}
]
}{
"type": "<string>",
"code": "UNAUTHORIZED",
"status": 123,
"message": "<string>",
"retryable": true,
"traceId": "<string>",
"details": [
{
"field": "<string>",
"code": "<string>",
"message": "<string>"
}
]
}{
"type": "<string>",
"code": "UNAUTHORIZED",
"status": 123,
"message": "<string>",
"retryable": true,
"traceId": "<string>",
"details": [
{
"field": "<string>",
"code": "<string>",
"message": "<string>"
}
]
}{
"type": "<string>",
"code": "UNAUTHORIZED",
"status": 123,
"message": "<string>",
"retryable": true,
"traceId": "<string>",
"details": [
{
"field": "<string>",
"code": "<string>",
"message": "<string>"
}
]
}{
"type": "<string>",
"code": "UNAUTHORIZED",
"status": 123,
"message": "<string>",
"retryable": true,
"traceId": "<string>",
"details": [
{
"field": "<string>",
"code": "<string>",
"message": "<string>"
}
]
}Analytics
Get Error Breakdown
Breakdown of scoring errors by error code with counts and percentages
GET
/
v1
/
analytics
/
errors
@nova-sdk/api
import { Nova } from "@nova-sdk/api";
const nova = new Nova({
apiKey: "sk_test_...",
tenantId: "acme-corp",
});
const errors = await nova.analytics.errors({ timeRange: "7d" });curl -X GET "https://embed.nova.dweet.com/v1/analytics/errors?timeRange=7d" \
-H "Authorization: Bearer sk_test_..."{
"period": {
"start": "2023-11-07T05:31:56Z",
"end": "2023-11-07T05:31:56Z"
},
"data": [
{
"errorCode": "<string>",
"description": "<string>",
"count": 123,
"percentage": 123
}
]
}{
"type": "<string>",
"code": "UNAUTHORIZED",
"status": 123,
"message": "<string>",
"retryable": true,
"traceId": "<string>",
"details": [
{
"field": "<string>",
"code": "<string>",
"message": "<string>"
}
]
}{
"type": "<string>",
"code": "UNAUTHORIZED",
"status": 123,
"message": "<string>",
"retryable": true,
"traceId": "<string>",
"details": [
{
"field": "<string>",
"code": "<string>",
"message": "<string>"
}
]
}{
"type": "<string>",
"code": "UNAUTHORIZED",
"status": 123,
"message": "<string>",
"retryable": true,
"traceId": "<string>",
"details": [
{
"field": "<string>",
"code": "<string>",
"message": "<string>"
}
]
}{
"type": "<string>",
"code": "UNAUTHORIZED",
"status": 123,
"message": "<string>",
"retryable": true,
"traceId": "<string>",
"details": [
{
"field": "<string>",
"code": "<string>",
"message": "<string>"
}
]
}Returns a breakdown of scoring errors grouped by error code. Each entry includes a count, percentage of total errors, and a human-readable description.
This endpoint requires only a valid API key.
X-Tenant-Id isn’t required.
Query parameters
| Parameter | Required | Values | Description |
|---|---|---|---|
timeRange | Yes | 1h, 24h, 7d, 30d, 90d | Lookback window for the data |
Example response
{
"period": {
"start": "2026-03-01T00:00:00.000Z",
"end": "2026-03-08T00:00:00.000Z"
},
"data": [
{
"errorCode": "AI_SCORING_FAILED",
"description": "AI scoring failed due to an internal error",
"count": 12,
"percentage": 60
},
{
"errorCode": "RESUME_FETCH_FAILED",
"description": "Failed to fetch the resume from the provided URL",
"count": 8,
"percentage": 40
}
]
}
Response fields
| Field | Type | Description |
|---|---|---|
period.start | string | ISO 8601 start of the period |
period.end | string | ISO 8601 end of the period |
data[].errorCode | string | The error code identifier |
data[].description | string | Human-readable description of the error |
data[].count | integer | Number of occurrences in the period |
data[].percentage | number | Percentage of total errors (0 to 100) |
Cross-reference error codes with the Error Reference for details on retryability and resolution steps.
Responses are cached for 60 seconds (
Cache-Control: private, max-age=60). This endpoint is rate-limited under the analytics bucket (20 req/s).Authorizations
Use Authorization: Bearer sk_test_* or Authorization: Bearer sk_live_*.
Query Parameters
Time range for the analytics query Time range for analytics queries.
Available options:
1h, 24h, 7d, 30d, 90d Was this page helpful?