@sapiom/node-http
🕗 Deprecated. Sapiom has moved to a new agent-first platform. This
package is not recommended for new projects and receives maintenance fixes
only. Build on the new packages instead — @sapiom/agent
and @sapiom/tools, with the
@sapiom/cli and
@sapiom/mcp developer tools. See
the SDK README.

⚠️ Beta Status: Currently in v0.x. API may change before v1.0.0. Production-ready and actively maintained.
Node.js HTTP/HTTPS integration for Sapiom SDK providing automatic payment handling (402 errors) and pre-emptive authorization.
Installation
npm install @sapiom/node-http
Quick Start
import { createClient } from '@sapiom/node-http';
const client = createClient({
apiKey: process.env.SAPIOM_API_KEY
});
const response = await client.request({
method: 'GET',
url: 'https://api.example.com/data',
headers: {}
});
Features
- ✅ Native Node.js http/https support
- ✅ Automatic 402 payment handling
- ✅ Pre-emptive authorization
- ✅ Full TypeScript support
- ✅ Uses Node.js standard library (no additional HTTP client needed)
- ✅ Environment variable configuration
Configuration
import { createClient } from '@sapiom/node-http';
const client = createClient({
apiKey: 'sk_...',
enabled: true,
failureMode: 'open',
agentName: 'my-agent',
agentId: 'agent-123',
serviceName: 'my-service',
traceId: 'trace-xyz',
traceExternalId: 'ext-456',
});
Per-Request Overrides
Override configuration for individual requests using the __sapiom property:
await client.request({
method: 'GET',
url: 'https://api.example.com/public',
headers: {},
__sapiom: { enabled: false }
});
await client.request({
method: 'POST',
url: 'https://api.example.com/resource',
headers: { 'Content-Type': 'application/json' },
body: { data: 'test' },
__sapiom: {
serviceName: 'different-service',
actionName: 'custom-action',
traceExternalId: 'ext-789'
}
});
Environment Variables
Automatically reads from environment:
SAPIOM_API_KEY (required)
SAPIOM_BASE_URL or SAPIOM_API_URL (optional)
SAPIOM_TIMEOUT (optional, in milliseconds)
License
MIT © Sapiom
Links