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

API keyを取得する

Tiro Platform API Keysページにアクセスして、keyを作成します。
1

Sign in

platform.tiro.ooo/dashboard/api-keysにアクセスします。
2

Pick a workspace

サイドバーのワークスペース切り替えで、キーがアクセスするワークスペースを選びます。キーはそのワークスペースに限定されます。
3

Create a key

Create New API Keyをクリックします。ドットを含むfull keyをコピーしてください。例: abc123.xR7mK9pL2qW4...
4

Store it

環境変数として保存します。作成ダイアログを閉じると、keyを再度表示することはできません。
API keyは環境変数に保存してください。ハードコーディングしたり、コミットしたりしないでください。
ワークスペース導入より前の個人 API キーを使っていますか?それらのキーは非推奨となり、2026年6月30日に動作を停止します。ワークスペースキーへ移行する

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

ノートを取得します。
curl -H "Authorization: Bearer $TIRO_API_KEY" \
     -H "Content-Type: application/json" \
     https://api.tiro.ooo/v1/external/notes
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`);
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")
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{})))
}
@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)
    }
}
Tiroはノートのページ分割されたリストを返します。各オブジェクトには、タイトル、作成日、処理ステータス、そしてトランスクリプト、サマリー、ドキュメントの取得に使用するguidが含まれます。 リストを取得できたら、Note Data Modelを読んで、各guidで何ができるか(トランスクリプト、サマリー、ドキュメント、フォルダ)を理解しましょう。