> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tiro.ooo/llms.txt
> Use this file to discover all available pages before exploring further.

# クイックスタート

> 5分以内に最初のTiro APIコールを実行しましょう。

export const TwoDoors = ({restHref, restTitle, restDescription, mcpHref, mcpTitle, mcpDescription}) => <div className="tiro-two-doors">
    <a className="tiro-two-doors__door" href={restHref}>
      <span className="tiro-two-doors__label">REST API</span>
      <h3 className="tiro-two-doors__title">{restTitle}</h3>
      <p className="tiro-two-doors__desc">{restDescription}</p>
    </a>
    <a className="tiro-two-doors__door" href={mcpHref}>
      <span className="tiro-two-doors__label">MCP Server</span>
      <h3 className="tiro-two-doors__title">{mcpTitle}</h3>
      <p className="tiro-two-doors__desc">{mcpDescription}</p>
    </a>
  </div>;

Tiroには接続方法が2つあります。バックエンドからプログラムでアクセスするためのREST APIと、ClaudeやChatGPTなどのAIクライアント向けのMCP Serverです。

<TwoDoors restHref="/ja/developers/fundamentals/api-overview" restTitle="REST API" restDescription="ノート、トランスクリプト、サマリー、Webhookへのフルプログラムアクセス。" mcpHref="/ja/developers/mcp/mcp-overview" mcpTitle="MCP Server" mcpDescription="Claude、ChatGPT、CursorなどのAIクライアントを数分で接続。" />

## API keyを取得する

[Tiro Platform API Keysページ](https://platform.tiro.ooo/dashboard/api-keys)にアクセスして、keyを作成します。

<Steps>
  <Step title="Sign in">
    [platform.tiro.ooo/dashboard/api-keys](https://platform.tiro.ooo/dashboard/api-keys)にアクセスします。
  </Step>

  <Step title="Pick a workspace">
    サイドバーのワークスペース切り替えで、キーがアクセスするワークスペースを選びます。キーはそのワークスペースに限定されます。
  </Step>

  <Step title="Create a key">
    **Create New API Key**をクリックします。ドットを含む**full key**をコピーしてください。例: `abc123.xR7mK9pL2qW4...`。
  </Step>

  <Step title="Store it">
    環境変数として保存します。作成ダイアログを閉じると、keyを再度表示することはできません。
  </Step>
</Steps>

<Warning>
  API keyは環境変数に保存してください。ハードコーディングしたり、コミットしたりしないでください。
</Warning>

<Note>
  ワークスペース導入より前の個人 API キーを使っていますか？それらのキーは非推奨となり、**2026年6月30日**に動作を停止します。[ワークスペースキーへ移行する](/ja/developers/fundamentals/authentication#レガシー個人キー非推奨)。
</Note>

## 最初のリクエストを実行する

ノートを取得します。

<CodeGroup>
  ```bash cURL theme={"system"}
  curl -H "Authorization: Bearer $TIRO_API_KEY" \
       -H "Content-Type: application/json" \
       https://api.tiro.ooo/v1/external/notes
  ```

  ```javascript Node.js theme={"system"}
  const response = await fetch("https://api.tiro.ooo/v1/external/notes", {
    headers: {
      "Authorization": `Bearer ${process.env.TIRO_API_KEY}`,
      "Content-Type": "application/json",
    },
  });

  const data = await response.json();
  console.log(`Found ${data.content.length} notes`);
  ```

  ```python Python theme={"system"}
  import os
  import requests

  headers = {
      'Authorization': f'Bearer {os.getenv("TIRO_API_KEY")}',
      'Content-Type': 'application/json'
  }

  response = requests.get('https://api.tiro.ooo/v1/external/notes', headers=headers)
  data = response.json()
  print(f"Found {len(data['content'])} notes")
  ```

  ```go Go theme={"system"}
  package main

  import (
      "encoding/json"
      "fmt"
      "net/http"
      "os"
  )

  func main() {
      client := &http.Client{}
      req, _ := http.NewRequest("GET", "https://api.tiro.ooo/v1/external/notes", nil)
      
      apiKey := os.Getenv("TIRO_API_KEY")
      req.Header.Set("Authorization", fmt.Sprintf("Bearer %s", apiKey))
      req.Header.Set("Content-Type", "application/json")
      
      resp, _ := client.Do(req)
      defer resp.Body.Close()
      
      var data map[string]interface{}
      json.NewDecoder(resp.Body).Decode(&data)
      fmt.Printf("Found %v notes\n", len(data["content"].([]interface{})))
  }
  ```

  ```kotlin Kotlin + Spring theme={"system"}
  @RestController
  class NotesController {
      
      @Value("\${tiro.api.key}")
      private lateinit var apiKey: String
      
      private val restTemplate = RestTemplate()
      
      @GetMapping("/my-notes")
      fun getMyNotes(): ResponseEntity<Map<String, Any>> {
          val headers = HttpHeaders()
          headers.set("Authorization", "Bearer $apiKey")
          headers.contentType = MediaType.APPLICATION_JSON
          
          val entity = HttpEntity<String>(headers)
          
          val response = restTemplate.exchange(
              "https://api.tiro.ooo/v1/external/notes",
              HttpMethod.GET,
              entity,
              object : ParameterizedTypeReference<Map<String, Any>>() {}
          )
          
          val data = response.body!!
          println("Found ${(data["content"] as List<*>).size} notes")
          
          return ResponseEntity.ok(data)
      }
  }
  ```
</CodeGroup>

Tiroはノートのページ分割されたリストを返します。各オブジェクトには、タイトル、作成日、処理ステータス、そしてトランスクリプト、サマリー、ドキュメントの取得に使用する`guid`が含まれます。

リストを取得できたら、[Note Data Model](/ja/developers/fundamentals/note-data-model)を読んで、各`guid`で何ができるか（トランスクリプト、サマリー、ドキュメント、フォルダ）を理解しましょう。
