@plainrouter/sdk is the generated TypeScript client for the signed Plainrouter OpenAPI contract. It exposes typed request and response models, API methods, and Zod schemas for the Conversion API, including cursor-based event listing.
The current npm release is 0.6.0 and targets signed API contract 0.5.0. The source is in plainrouter/sdk. Review release notes before upgrading while the SDK remains in the 0.x series.
Version
0.6.0 includes the required event consent fields and verifySignalIngestion.Requirements
- Node.js
22.22.2or newer. - A Signals workspace secret.
- Server-side code. Do not use the secret in a browser bundle.
Install
Configure the client
Configure the shared client once when your server starts:signalTrackerSecret property keeps its compatibility name in 0.6.0. The client does not read credentials from the environment automatically.
Configure another API origin
The default API base URL ishttps://plainrouter.com/api/v1. Override it only for a Plainrouter-provided region or a controlled test environment:
fetch implementation through the same configuration object.
Available methods
The package also exports the generated TypeScript models and Zod schemas. Use the schemas when you need runtime validation at an application boundary.
Verify Signal ingestion
duplicate: true. The event confirms ledger receipt but is not real arrival evidence and does not complete onboarding.
Send a purchase and inspect its delivery
Follow the Node.js and TypeScript purchase recipe for a completecreateEvent request, recorded consent checks, stable retry IDs, and a typed getEvent delivery check. It sends through Plainrouter; it is not a direct Meta Graph API tutorial.
By default, operations return data, error, and response; an HTTP failure must be checked before using data. A transport failure may have no response; check it before reading the status. Code using throwOnError: true must also catch thrown failures. Stop on 401, inspect field errors on 422, and retry an uncertain purchase timeout only with its original persisted ID and payload. Avoid logging entire request or error objects. See the API error table.