---
title: "Search nodes by name/slug (cheap, name-only quick-jump)"
method: GET
path: "/api/v1/nodes/search"
tags: ["Nodes", "Search"]
---

# Search nodes by name/slug (cheap, name-only quick-jump)

`GET /api/v1/nodes/search`

## Request

- Base URL: `https://api-docs.busabase.com`
- URL: `https://api-docs.busabase.com/api/v1/nodes/search`
- Auth: none declared

## Query parameters

- `query` string, required: Matched against node NAMES only. Use `/api/v1/search` to search content.
- `limit` integer: Results to return. Capped at 50 here, unlike most listings' 100.

## Response `200`

Plain ilike match on name/slug across every registered node type, scoped by the same node-visibility ACL as `nodes.list`. No content scan and no full-text ranking — ordered exact-slug-match first, then by name. Backs the dashboard search dialog's 'Recent' tab cache-miss path. To search what is written INSIDE nodes, use `search` with the `nodes` source (indexed, paginated) or `grep` (exhaustive, no index).

- object[]
  - `id` string, required
  - `type` 'folder' | 'base' | 'skill' | 'drive' | 'airapp' | 'file' | 'doc' | 'form' | 'whiteboard' | 'workflow' | 'html', required
  - `name` string, required
  - `slug` string, required
  - `path` string, required
  - `updatedAt` string, required
  - `icon` union
    - object
      - `type` unknown, required
      - `value` string, required
    - object
      - `type` unknown, required
      - `url` string, required
      - `attachmentId` string, required
      - `originalUrl` string
      - `originalAttachmentId` string
      - `crop` object
        - `x` number, required
        - `y` number, required
        - `zoom` number, required

---

[API](https://skmtc.dev/busabase/apis/busabase-api.md) · [All operations](https://skmtc.dev/busabase/apis/busabase-api/llms.txt) · [OpenAPI document](https://skmtc.dev/busabase/apis/busabase-api/revisions/bc6a7d5ff4c1?raw)
