Skip to main content
The @nova-sdk/api package gives you typed methods for every Nova Embed API endpoint, automatic retries with exponential backoff, and webhook signature verification. It works in Node.js 18+ and any runtime that supports the Fetch API.

Installation

Quick start

Configuration

Both apiKey and tenantId are required. Everything else is optional.
Use sk_test_* keys for sandbox and sk_live_* keys for production. The environment is derived from the key prefix.

Per-request tenant override

Tenant-scoped methods accept an optional RequestOptions object as their last argument. You can override the tenant ID for a single call without creating a new client.

Criteria library

The criteria library stores reusable criteria across jobs for a tenant.

Job criteria

Criteria attached to a specific job control how applications get scored.

Generate criteria with AI

1

Generate clarification questions (optional)

Ask Nova for clarification questions that help calibrate criteria generation.
2

Generate criteria from job context and answers

Pass the question set ID and answers to refine the generated criteria. The call is synchronous (10-20 seconds) and returns the criteria directly.

Manage criteria manually

Criteria versions

Every change to a job’s criteria creates a new version. You can list them or fetch a specific one.

Batch criteria lookup

Fetch criteria for multiple jobs in a single call.

Scoring

Score a single application

Score a batch of applications

Retrieve results

Use webhooks for real-time delivery. For polling, use these methods:

Deletion requests

Use deletion requests when a customer leaves, a tenant asks you to delete its data, or an application must be removed before automatic cleanup runs. Deletion runs in the background. The SDK returns a deletionRequest.id immediately, then you poll until the request is completed or failed.
Application deletion uses the client tenant ID, or a per-request tenant override. Tenant deletion scopes the request by tenantExternalId, so it doesn’t need X-Tenant-Id. Deletion request responses include only the request ID, scope, status, and timestamps. They don’t include internal cleanup counts, raw tenant IDs, job IDs, or application IDs. See Deletion Requests, Data Retention, Delete Application Data, Delete Tenant Data, and Get Deletion Request Status.

Question sets

Generate and retrieve clarification question sets for jobs.

Rate limit status

Check your current rate limit usage without consuming a rate-limited request.

Error handling

Every method throws NovaApiError on non-2xx responses. The error carries structured fields you can use for logging, retry decisions, and support tickets.
The traceId field is the fastest way to debug issues with Nova support. Always log it.

Error properties

Retry configuration

The SDK retries failed requests automatically using exponential backoff with jitter. Retries trigger on:
  • Status codes in the retryableStatusCodes list (default: 429, 500, 502, 503, 504), except MONTHLY_TRIAL_QUOTA_EXCEEDED
  • Body-driven retryability: for other 4xx errors, the SDK checks the response body’s retryable field
The Retry-After header is respected when the server sends it. Monthly trial quota exhaustion is surfaced immediately as non-retryable MONTHLY_TRIAL_QUOTA_EXCEEDED. Submit a new request only after your plan is upgraded or the UTC month resets.

Defaults

Custom retry config

Disable retries

Webhook verification

The SDK includes utilities for verifying webhook signatures. Both methods use the Web Crypto API and work in Node.js 18+, Cloudflare Workers, Vercel Edge Functions, and Deno.
Always verify webhook signatures before processing the payload. The raw request body must be passed as a string; don’t parse it first.

Verify and parse

Verify-only mode

If you want to verify the signature without parsing the JSON payload, use verify.

Timestamp tolerance

By default, webhooks older than 5 minutes (300 seconds) are rejected. You can adjust this.

Types

All request/response types and enums are exported from the package root.

Resource reference

Full list of available methods on the Nova client.

Requirements

  • Node.js >= 18 (or any runtime with Fetch API support)
  • TypeScript >= 5.0 (if using TypeScript)