Skip to main content

Quicknode SDK Quick Start

Updated on
May 28, 2026

Overview

This quick start shows how to install the Quicknode SDK, configure an API key, and make your first product API request.

Create one configured SDK instance, then use the product clients attached to that instance. Your API key, timeouts, and optional base URL overrides are shared across every client, so scripts, services, and agents can move between Quicknode products without rebuilding authentication or HTTP configuration.


  • qn.admin: Manage endpoints, teams, usage, billing, logs, metrics, security, rate limits, and tags.
  • qn.streams: Create, list, update, pause, activate, test, and delete Streams.
  • qn.webhooks: Manage webhook templates, destinations, lifecycle actions, and enabled counts.
  • qn.kvstore: Store and retrieve sets and lists for cursors, watchlists, filters, and lightweight agent state.

Prerequisites

Before you begin, create a Quicknode API key from the Quicknode dashboard. Agents can also create their own API keys, to learn more check out Agent Subscriptions.

Then set it in your environment:

export QN_SDK__API_KEY="YOUR_API_KEY"

Install

The SDK ships precompiled binaries for Linux (glibc and musl, x86_64 and aarch64) and macOS Apple Silicon. Browsers, Windows (use WSL2), and Intel macOS are not supported. See Platform support for the full matrix.


npm install @quicknode/sdk

The Node.js package supports TypeScript, CommonJS, ES modules, and Bun.

Make your first request


List the endpoints available to your account with the Admin API client.

import { QuicknodeSdk } from "@quicknode/sdk";

const qn = QuicknodeSdk.fromEnv();
const response = await qn.admin.getEndpoints({ limit: 20 });

console.log(response.data);

Configure directly

You can also pass in a configuration directly instead of using default environment variables.

import { QuicknodeSdk } from "@quicknode/sdk";

const qn = new QuicknodeSdk({
apiKey: "YOUR_API_KEY",
http: {
timeoutSecs: 30,
},
});

Environment variables

VariableRequiredDefaultDescription
QN_SDK__API_KEYYesNoneYour Quicknode API key
QN_SDK__HTTP__TIMEOUT_SECSNo30HTTP request timeout in seconds
QN_SDK__HTTP__POOL_MAX_IDLE_PER_HOSTNoNoneMax idle HTTP connections per host
QN_SDK__ADMIN__BASE_URLNohttps://api.quicknode.com/v0/Override the Admin API base URL
QN_SDK__STREAMS__BASE_URLNohttps://api.quicknode.com/streams/rest/v1/Override the Streams API base URL
QN_SDK__WEBHOOKS__BASE_URLNohttps://api.quicknode.com/webhooks/rest/v1/Override the Webhooks API base URL
QN_SDK__KVSTORE__BASE_URLNohttps://api.quicknode.com/kv/rest/v1/Override the Key-Value Store API base URL

Product clients

Once initializated, a single client gives you access to all Quicknode product APIs:

const endpoints = await qn.admin.getEndpoints();
const streams = await qn.streams.listStreams();
const webhooks = await qn.webhooks.listWebhooks();
const sets = await qn.kvstore.getSets();

Language conventions

LanguageConvention
Node.js / TypeScriptMethods are async and use camelCase names. Pass parameters as a single options object.
PythonMethods are async and use snake_case names. Pass parameters as keyword arguments.
RustMethods are async and return Result types. Request structs use builders where available.
RubyMethods are blocking and use snake_case names. Responses are returned as Ruby hashes; access keys directly.

For complete workflows, see Examples. To review the full behavior for each product API, see the REST API docs for Admin API, Streams, Webhooks, and Key-Value Store.

Share this doc