← Docs

REST API クイックスタート

MCP を使わずに、任意の言語から HTTPS で NW DB にアクセスします。

認証ヘッダ

  • X-API-Key — Settings ページで発行(nwdb_ で始まる)
  • X-Workspace-ID — Workspace の UUID

レコード取得 (GET)

curl https://api.nwdb.dev/api/v1/records/users/records?limit=5 \
  -H "X-API-Key: nwdb_xxxxxxxxxxxxxxxxxxxx" \
  -H "X-Workspace-ID: ws_abc123"

JS/TS から:

const res = await fetch("https://api.nwdb.dev/api/v1/records/users/records?limit=5", {
  headers: {
    "X-API-Key": process.env.NWDB_API_KEY,
    "X-Workspace-ID": process.env.NWDB_WORKSPACE,
  },
});
const data = await res.json();

レコード投入 (POST)

curl -X POST https://api.nwdb.dev/api/v1/records/users/records \
  -H "X-API-Key: $NWDB_API_KEY" \
  -H "X-Workspace-ID: $NWDB_WORKSPACE" \
  -H "Content-Type: application/json" \
  -d '{"name": "Ada", "email": "ada@example.com"}'

主要エンドポイント

パス役割
/api/v1/tablesスキーマ管理
/api/v1/records/:t/recordsレコード CRUD
/api/v1/querySQL 実行(read-only)
/api/v1/query/liveライブ分析集計
/api/v1/pipeline/propose承認パイプラインの提案生成
/api/v1/mcp/callMCPツール実行

型付きクライアント(あなたのスキーマから生成)

現行スキーマから TypeScript の型を生成します。テーブルごとに Row / Insert / Update を持つ Database 型が返り、自分の fetch 呼び出しに差し込むと全テーブルが型付けされ、列名の打ち間違いはコンパイルエラーになります。AIでアプリを書くときの補完もそのまま効きます。

# 1) スキーマから型を生成
curl https://api.nwdb.dev/api/v1/tables/types/typescript \
  -H "X-API-Key: $NWDB_API_KEY" -H "X-Workspace-ID: $NWDB_WORKSPACE" > nwdb.types.ts

生成した型を差し込む:

import type { Database } from "./nwdb.types";

type Orders = Database["tables"]["orders"]["Row"];

const res = await fetch(
  "https://api.nwdb.dev/api/v1/records/orders/records?limit=20",
  { headers: { "X-API-Key": process.env.NWDB_API_KEY!, "X-Workspace-ID": process.env.NWDB_WORKSPACE! } },
);
const { records } = (await res.json()) as { records: Orders[] };

records.forEach((o) => console.log(o.region, o.amount));

fetch を書きたくない場合は SDK(nwdb-sdk)を使うと、チェーン API で同じ型がそのまま効きます。フィルタ値は送信前にインジェクション対策で検証され、失敗は例外ではなく { data, error } で返ります。

# SDK を使う場合
npm i nwdb-sdk
import { createClient } from "nwdb-sdk";
import type { Database } from "./nwdb.types";

const db = createClient<Database>("https://api.nwdb.dev", process.env.NWDB_API_KEY!, {
  workspaceId: process.env.NWDB_WORKSPACE!,
});

const { data, error } = await db.from("orders").select("*").eq("region", "kanto").limit(20);
data?.forEach((o) => console.log(o.region, o.amount));

MCP から使う場合は generate_types ツールを呼べば、Claude / Cursor が型を取得してから型安全なコードを書けます。

完全な OpenAPI 定義は https://api.nwdb.dev/api/v1/docs を参照してください。