Skip to content

Drupal JavaScript SDK

Build modern JavaScript apps that connect to Drupal — fast and with minimal fuss.

  • Set up in 5 minutes


    Install, configure, and make your first request in minutes.

    Getting started

  • Open Source, MIT


    Drupal JavaScript SDK is licensed under MIT and available on GitHub

    License

  • Decoupled Drupal


    Tightly integrated with Drupal Core's Authentication, Menu & Entity systems.

  • JavaScript


    JavaScript API that works in NodeJS and Browser.


Why this SDK?

  • Simple core: Config, session, HTTP client
  • Pick what you need: @drupal-js-sdk/auth, @drupal-js-sdk/menu, etc.
  • Entities: @drupal-js-sdk/entity + adapters like @drupal-js-sdk/jsonapi
  • Typed: Strict TypeScript types and clear error primitives

Install

Bash
npm install drupal-js-sdk @drupal-js-sdk/auth
# optional
npm install @drupal-js-sdk/entity @drupal-js-sdk/jsonapi
Bash
yarn add drupal-js-sdk @drupal-js-sdk/auth
# optional
yarn add @drupal-js-sdk/entity @drupal-js-sdk/jsonapi

Quick start

JavaScript
import { DrupalSDK } from "drupal-js-sdk";
import { JsonApiEntityAdapter } from "@drupal-js-sdk/jsonapi";

const sdk = new DrupalSDK({ baseURL: "https://example.com" });

// Auth
await sdk.auth.login("admin", "Z1ON0101");

// Entities via JSON:API
sdk.entities.registerAdapter("jsonapi", (ctx) => new JsonApiEntityAdapter(ctx));
const article = await sdk.entities
  .entity({ entity: "node", bundle: "article" }, "jsonapi")
  .load("123");

// Pagination
const { items, page } = await sdk.entities.node("article").page({ limit: 5 }).listPage();

Explore next