SDK Auto-Imports

This module automatically imports all user-facing request functions from @directus/sdk (like readItems, readSingleton, createItem, etc.) so you can use them in your components without any import statement.

Auto-imported: request functions

Every request command exported by @directus/sdk is available globally in your project. The example below calls readSingleton('globals') with no import statement required in a real project.

The playground you are viewing has nuxt auto-imports disabled. You will not likely need to import anything to use this module in your project.

// This playground uses #imports to make the source explicit:
import { readSingleton, useDirectus } from '#imports'

// In your project — just use it, no import needed:
const directus = useDirectus()
const globals = await directus.request(readSingleton('globals'))

Live result — globals singleton:

{
  "id": "ab89c489-faea-4310-8b59-7ddb3caf279a",
  "url": "https://www.yoururl.com",
  "title": "Your Site",
  "tagline": "The best site ever",
  "description": "We empower you to build the best site possible",
  "social_links": [
    {
      "service": "github",
      "url": "https://github.com/directus/directus"
    },
    {
      "service": "linkedin",
      "url": "https://www.linkedin.com/company/directus-io"
    },
    {
      "service": "youtube",
      "url": "https://www.youtube.com/c/DirectusVideos"
    },
    {
      "url": "https://directus.chat/",
      "service": "discord"
    },
    {
      "url": "https://x.com/directus",
      "service": "x"
    }
  ],
  "logo": "43ddd7b8-9b2f-4aa1-b63c-933b4ae81ca2",
  "favicon": "2b4a0ba0-52c7-4e10-b191-c803d8da6a36",
  "logo_dark_mode": "ae390ba1-fcff-4b99-a445-5f19257095d1",
  "accent_color": "#6644FF"
}

Manual imports: client factories

A small set of functions are intentionally excluded from auto-imports and must always be imported from @directus/sdk directly:

  • Client factories (createDirectus, rest, graphql, staticToken, realtime, authentication): module-level setup utilities, not per-request commands.
  • Module-wrapped functions (readMe, updateMe, createUser, uploadFiles, etc.): the module exposes these through its own composables (e.g. useDirectusAuth()) with added conveniences.
  • SDK internals (throwIfEmpty, queryToParams, etc.): implementation details not intended for direct use.

The most common case where you will reach for a manual import is building a standalone client with a static token, for example a public read-only client that bypasses the session-based useDirectus():

import { createDirectus, rest, staticToken } from '@directus/sdk'

const publicClient = createDirectus('https://your-directus.example.com')
  .with(staticToken('your-static-token'))
  .with(rest())

const data = await publicClient.request(readItems('posts'))

On the server side, this module provides useAdminDirectus() and useSessionDirectus(event) in Nitro API routes to handle client setup for you. See the Server Composables demo.