@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
BothapiKey and tenantId are required. Everything else is optional.
Per-request tenant override
Tenant-scoped methods accept an optionalRequestOptions 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 adeletionRequest.id immediately, then you poll until the request is completed or failed.
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 throwsNovaApiError 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
retryableStatusCodeslist (default: 429, 500, 502, 503, 504), exceptMONTHLY_TRIAL_QUOTA_EXCEEDED - Body-driven retryability: for other 4xx errors, the SDK checks the response body’s
retryablefield
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.Verify and parse
Verify-only mode
If you want to verify the signature without parsing the JSON payload, useverify.
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 theNova client.
Requirements
- Node.js >= 18 (or any runtime with Fetch API support)
- TypeScript >= 5.0 (if using TypeScript)