# クイックスタート

> トークンの作成、最初のManagement API呼び出し、記事の公開、そしてContent Delivery APIからの読み取りまでを約10分で完了させましょう。

> Markdown version of https://kanorio.com/ja/developers/quickstart. Append `.md` to any developer docs URL for this format. Index: https://kanorio.com/llms.txt · MCP: https://app.kanorio.com/api/mcp
>
> Translated from the English original: https://kanorio.com/en/developers/quickstart.md

このクイックスタートでは、コードを使用してブログ記事を作成し、サイトの公開APIから読み取るまでの手順を説明します。

## はじめる前に

- Kanorioアカウントと、少なくとも1つのサイトが必要です。空のサイトでも問題ありません。
- `curl`、またはSDKを使用する場合はNode.js 20以降が必要です。

## 1. パーソナルアクセストークンを作成する

パーソナルアクセストークンは `knr_pat_` で始まり、選択したサイトと権限の範囲内でユーザーの代わりとして機能します。

1. [アカウント設定 › APIアクセス](https://app.kanorio.com/account/api-access) を開き、**キーを作成**を選択します。
2. **その他のツール**を選択し、使用するサイトを選んで、**コンテンツの編集**権限プリセットを選択します。公開には**フルアクセス**または公開権限が必要です。
3. トークンをコピーします。トークンは一度しか表示されません。

```bash
export KANORIO_TOKEN="knr_pat_..."
```

トークンはサーバー上で管理してください。ブラウザのコードや公開リポジトリには絶対に含めないでください。その他のトークンタイプについては、[認証](https://kanorio.com/ja/developers/authentication)を参照してください。

## 2. サイトを一覧表示する

すべてのManagement APIリクエストは、トークンをBearer認証情報として含め、`https://app.kanorio.com/api/v1` に対して行います。

```bash
curl https://app.kanorio.com/api/v1/sites \
  -H "Authorization: Bearer $KANORIO_TOKEN"
```

リストは常に同じエンベロープ形式で返されます。サイトの `id` と `publicUrl` を確認してください。

```json
{
  "data": [
    {
      "id": "ws_example123",
      "name": "Sourdough Studio",
      "role": "OWNER",
      "isPublished": true,
      "publicUrl": "https://sourdough.kanorio.com"
    }
  ],
  "hasMore": false,
  "nextCursor": null
}
```

## 3. 下書き記事を作成する

書き込み操作は下書きを作成します。公開するまで、ライブサイトに変更は反映されません。

```bash
curl -X POST https://app.kanorio.com/api/v1/sites/ws_example123/posts \
  -H "Authorization: Bearer $KANORIO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "How we feed our sourdough starter",
    "excerpt": "The first thing we do every morning.",
    "contentMarkdown": "## Flour and water\n\nEqual weights, twice a day."
  }'
```

レスポンスは記事そのものであり、`"status": "DRAFT"` および `post_example01` のような `id` が含まれます。

## 4. 記事を公開する

```bash
curl -X POST https://app.kanorio.com/api/v1/sites/ws_example123/posts/post_example01/publish \
  -H "Authorization: Bearer $KANORIO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'
```

`SITE_NOT_PUBLISHED` エラーコードが返された場合は、`POST /sites/{id}/publish` を使用して一度サイトを公開してから、再度試してください。エラーの形式は常に一定であり、[エラー](https://kanorio.com/ja/developers/basics/errors)で説明されています。

## 5. Content Delivery APIから読み取る

公開されたコンテンツは、トークンなしでサイトのアドレスから読み取ることができます。ステップ2で取得した `publicUrl`、または [サイト設定 › 開発者](https://app.kanorio.com/settings/developer) に表示されているシステム永続URLを使用してください。

```bash
curl "https://sourdough.kanorio.com/api/v1/collections/blog/items?limit=1&fields=title,excerpt"
```

```json
{
  "data": [
    {
      "id": "post_example01",
      "slug": "how-we-feed-our-starter",
      "publishedAt": "2026-11-02T08:00:00.000Z",
      "fieldData": {
        "title": "How we feed our sourdough starter",
        "excerpt": "The first thing we do every morning."
      }
    }
  ],
  "hasMore": false,
  "nextCursor": null,
  "assets": {}
}
```

## SDKを使用する

```bash
npm install @kanorio/sdk
```

```ts
import { createDeliveryClient, createManagementClient } from "@kanorio/sdk";

const management = createManagementClient({ token: process.env.KANORIO_TOKEN! });
const sites = await management.get("/sites");
const site = sites.data[0]!;

const post = await management.post("/sites/{id}/posts", {
  params: { id: site.id },
  body: { title: "How we feed our sourdough starter", contentMarkdown: "## Flour and water" },
});
await management.post("/sites/{id}/posts/{postId}/publish", { params: { id: site.id, postId: post.id }, body: {} });

const delivery = createDeliveryClient({ siteUrl: site.publicUrl! });
const latest = await delivery.get("/collections/{key}/items", { params: { key: "blog" }, query: { limit: 1 } });
console.log(latest.data[0]?.slug);
```

## 次のステップ

- 独自のフロントエンドから[ページ、記事、コレクションを読み取る](https://kanorio.com/ja/developers/guides/read-content)。
- [エラー](https://kanorio.com/ja/developers/basics/errors)、[ページネーション](https://kanorio.com/ja/developers/basics/pagination)、[レート制限](https://kanorio.com/ja/developers/basics/rate-limits)に関する共通ルールを学ぶ。
- [Management APIリファレンス](https://kanorio.com/en/developers/management-api) または Kanorioが提供する[製品](https://kanorio.com/ja/developers/products)を参照する。
- [MCP](https://kanorio.com/ja/developers/mcp) を介してAIアシスタントを接続する。
