Download OpenAPI specification:
ものしりAIの外部向けAPIです。社内文書をアップロードし、AIによる検索・回答機能をプログラムから利用できます。
POST /v1/auth/token
Content-Type: application/json
{
"grant_type": "password",
"username": "admin@example.com",
"password": "yourpassword",
"team_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
レスポンスの access_token を以降のリクエストで使用してください。
GET /v1/teams/{teamId}/folders
Authorization: Bearer <access_token>
X-Team-Id: <team_id>
access_token の有効期限(expires_in 秒)が切れた場合、refresh_token を使って更新します。
POST /v1/auth/token
Content-Type: application/json
{
"grant_type": "refresh_token",
"refresh_token": "<refresh_token>"
}
ファイルアップロードはS3プリサインドPOSTを使用します。
POST /v1/teams/{teamId}/folders/{folderId}/documents/upload-url
Authorization: Bearer <access_token>
Content-Type: application/json
{
"filename": "manual.pdf",
"mime_type": "application/pdf",
"size_bytes": 1048576,
"sha256_hash": "e3b0c44298fc1c149afb...",
"skip_if_duplicate": true
}
レスポンスに upload_url(S3エンドポイント)と upload_fields(フォームフィールド)、document_id が含まれます。
duplicate: true の場合はS3アップロード不要です。
POST <upload_url>
Content-Type: multipart/form-data
# upload_fields の各フィールドをフォームに含め、最後に file フィールドを追加
key=<s3_key>&Content-Type=application/pdf&...&file=<binary>
POST /v1/teams/{teamId}/folders/{folderId}/documents/{docId}/confirm
Authorization: Bearer <access_token>
confirmが成功するとドキュメントのベクトル化パイプラインが起動します。
ステータスが processing → ready に変わるまで、GETエンドポイントでポーリングしてください。
| ロール | トークン取得 | フォルダ一覧 | アップロード | ドキュメント閲覧 | ドキュメント削除 |
|---|---|---|---|---|---|
| admin | ○ | ○ | ○ | ○ | ○ |
| manager | ○ | ○ | ○ | ○ | ○ |
| member | ✗ (403) | ○ | ✗ (403) | ○ | ✗ (403) |
全エンドポイントのエラーレスポンスは以下の形式です。
{
"statusCode": 400,
"message": "Bad Request",
"timestamp": "2024-01-01T00:00:00.000Z"
}
認証エラー(401)と権限エラー(403)の message フィールドには、OAuth2.0互換の error / error_description フィールドが含まれることがあります。
POST /v1/auth/token: 60秒あたり10リクエスト(10 req/60s)429 Too Many Requests が返されます。OAuth2.0互換のトークン発行エンドポイント。
メール/パスワードでトークンを発行します。
制限事項:
admin または manager ロールのみ利用可能(member は 403)mfa_required)access_token の有効期限切れ後、refresh_token を使って新しいトークンペアを取得します。
リフレッシュトークン自体もローテーションされ、古いトークンは無効になります。
| grant_type required | string Value: "password" |
| username required | string <email> ユーザーのメールアドレス |
| password required | string パスワード |
| team_id required | string <uuid> 所属チームID(マルチテナント環境では必須) |
{- "grant_type": "password",
- "username": "admin@example.com",
- "password": "string",
- "team_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}{- "access_token": "string",
- "token_type": "Bearer",
- "expires_in": 3600,
- "refresh_token": "string"
}指定チームのフォルダ(ナレッジ)一覧を返します。
利用可能ロール: admin, manager, member
フォルダに対するアクセス権(読み取り・編集)に応じてアクセス可能なフォルダのみ返されます。
| teamId required | string <uuid> Example: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx チームID(UUID形式) |
{- "items": [
- {
- "folder_id": "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy",
- "name": "製品マニュアル",
- "description": "製品マニュアル・取扱説明書",
- "document_count": 5,
- "created_at": "2024-01-01T00:00:00.000Z",
- "updated_at": "2024-01-02T12:00:00.000Z"
}
]
}S3プリサインドPOST URLを発行します。ドキュメントアップロードフローのステップ1です。
利用可能ロール: admin, manager
sha256_hash と skip_if_duplicate: true を指定すると、同一フォルダ内にステータス ready の同一ファイルが存在するか確認します。
重複が検出された場合は duplicate: true が返され、S3アップロード(ステップ2)と confirm(ステップ3)は不要です。
| 形式 | MIMEタイプ |
|---|---|
| application/pdf | |
| テキスト | text/plain |
| Markdown | text/markdown |
| HTML | text/html |
| Word (.doc) | application/msword |
| Word (.docx) | application/vnd.openxmlformats-officedocument.wordprocessingml.document |
| Excel (.xls) | application/vnd.ms-excel |
| Excel (.xlsx) | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet |
| PowerPoint (.ppt) | application/vnd.ms-powerpoint |
| PowerPoint (.pptx) | application/vnd.openxmlformats-officedocument.presentationml.presentation |
| CSV | text/csv |
| JPEG画像 | image/jpeg |
| PNG画像 | image/png |
| teamId required | string <uuid> Example: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx チームID(UUID形式) |
| folderId required | string <uuid> Example: yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy フォルダID(UUID形式) |
| filename required | string アップロードするファイル名 |
| mime_type required | string Enum: "application/pdf" "text/plain" "text/markdown" "text/html" "application/msword" "application/vnd.openxmlformats-officedocument.wordprocessingml.document" "application/vnd.ms-excel" "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" "application/vnd.ms-powerpoint" "application/vnd.openxmlformats-officedocument.presentationml.presentation" "text/csv" "image/jpeg" "image/png" ファイルのMIMEタイプ |
| size_bytes | integer ファイルサイズ(バイト)。省略可能だが推奨。 |
| sha256_hash | string ファイルのSHA-256ハッシュ値(16進数)。重複チェックに使用。 |
| skip_if_duplicate | boolean Default: false sha256_hashが一致するドキュメントが既にある場合、アップロードをスキップするか |
{- "filename": "product-manual-v2.pdf",
- "mime_type": "application/pdf",
- "size_bytes": 1048576,
- "sha256_hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
- "skip_if_duplicate": true
}{- "duplicate": false,
- "document_id": "zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz",
- "upload_fields": {
- "key": "teams/xxx/folders/yyy/zzz/product-manual-v2.pdf",
- "Content-Type": "application/pdf",
- "AWSAccessKeyId": "AKIAIOSFODNN7EXAMPLE",
- "policy": "eyJleHBpcmF0aW9uIjoiMjAy...",
- "signature": "Xxxxxxxxxxxxxxxxxxx="
}, - "s3_key": "teams/xxx/folders/yyy/zzz/product-manual-v2.pdf"
}S3へのファイルアップロード完了を通知し、ベクトル化パイプラインを起動します。ドキュメントアップロードフローのステップ3です。
利用可能ロール: admin, manager
このエンドポイントを呼び出す前に、ステップ2(S3への直接アップロード)が完了している必要があります。
confirmが成功するとドキュメントのステータスが uploading → processing に変わり、
ベクトル化完了後に ready になります。
ready になるまでの時間はファイルサイズや内容によって異なります(通常数十秒から数分)。
ステータスは GET /v1/teams/{teamId}/folders/{folderId}/documents/{docId} でポーリングしてください。
| teamId required | string <uuid> Example: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx チームID(UUID形式) |
| folderId required | string <uuid> Example: yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy フォルダID(UUID形式) |
| docId required | string <uuid> Example: zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz ドキュメントID(UUID形式) |
{- "document_id": "zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz",
- "status": "processing",
- "message": "アップロード完了。ベクトル化処理を開始しました。"
}指定フォルダ内のドキュメント一覧をカーソルベースのページネーションで返します。
利用可能ロール: admin, manager, member
next_cursor が null でない場合、次のページが存在します。
次のリクエストで cursor=<next_cursor> を指定してください。
sort パラメータで並び順を指定できます(デフォルト: created_at_desc)。
| teamId required | string <uuid> Example: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx チームID(UUID形式) |
| folderId required | string <uuid> Example: yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy フォルダID(UUID形式) |
| status | string Enum: "uploading" "processing" "ready" "error" ステータスでフィルタリング |
| q | string Example: q=manual ファイル名の部分一致検索 |
| cursor | string ページネーションカーソル(前のレスポンスの |
| limit | integer [ 1 .. 100 ] Default: 20 1ページあたりの件数(1-100、デフォルト: 20) |
| sort | string Default: "created_at_desc" Enum: "created_at_asc" "created_at_desc" "filename_asc" "filename_desc" "size_bytes_asc" "size_bytes_desc" ソート順 |
{- "items": [
- {
- "document_id": "zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz",
- "folder_id": "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy",
- "filename": "product-manual-v2.pdf",
- "mime_type": "application/pdf",
- "size_bytes": 1048576,
- "status": "ready",
- "s3_key": "teams/xxx/folders/yyy/zzz/product-manual-v2.pdf",
- "chunk_count": 24,
- "uploaded_by": "uuuuuuuu-uuuu-uuuu-uuuu-uuuuuuuuuuuu",
- "created_at": "2024-01-01T00:00:00.000Z",
- "updated_at": "2024-01-01T01:00:00.000Z"
}
], - "next_cursor": "eyJpZCI6Inp6enovv..."
}指定ドキュメントの詳細情報を返します。
利用可能ロール: admin, manager, member
ステータスが processing → ready に変わるまでのポーリングにも使用できます。
| teamId required | string <uuid> Example: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx チームID(UUID形式) |
| folderId required | string <uuid> Example: yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy フォルダID(UUID形式) |
| docId required | string <uuid> Example: zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz ドキュメントID(UUID形式) |
{- "document_id": "zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz",
- "folder_id": "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy",
- "filename": "product-manual-v2.pdf",
- "mime_type": "application/pdf",
- "size_bytes": 1048576,
- "status": "ready",
- "s3_key": "teams/xxx/folders/yyy/zzz/product-manual-v2.pdf",
- "chunk_count": 24,
- "uploaded_by": "uuuuuuuu-uuuu-uuuu-uuuu-uuuuuuuuuuuu",
- "created_at": "2024-01-01T00:00:00.000Z",
- "updated_at": "2024-01-01T01:00:00.000Z"
}ドキュメントを削除します。S3上のファイルおよびS3 Vectorsのベクトルデータも合わせて削除されます。
利用可能ロール: admin, manager
削除後は元に戻せません。AIに聞く機能でのこのドキュメントに基づく回答も即時反映されます。
| teamId required | string <uuid> Example: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx チームID(UUID形式) |
| folderId required | string <uuid> Example: yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy フォルダID(UUID形式) |
| docId required | string <uuid> Example: zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz ドキュメントID(UUID形式) |
{- "statusCode": 400,
- "message": "Bad Request",
- "timestamp": "2024-01-01T00:00:00.000Z"
}チーム全体のドキュメントをカーソルベースのページネーションで返します。フォルダを横断して検索する補助的なエンドポイントです。
利用可能ロール: admin, manager, member
特定フォルダのドキュメント操作には /v1/teams/{teamId}/folders/{folderId}/documents を使用してください。
/v1/teams/{teamId}/folders/{folderId}/documents と同じパラメータを使用します。
| teamId required | string <uuid> Example: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx チームID(UUID形式) |
| status | string Enum: "uploading" "processing" "ready" "error" ステータスでフィルタリング |
| q | string Example: q=manual ファイル名の部分一致検索 |
| cursor | string ページネーションカーソル |
| limit | integer [ 1 .. 100 ] Default: 20 1ページあたりの件数(1-100、デフォルト: 20) |
| sort | string Default: "created_at_desc" Enum: "created_at_asc" "created_at_desc" "filename_asc" "filename_desc" "size_bytes_asc" "size_bytes_desc" ソート順 |
{- "items": [
- {
- "document_id": "zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz",
- "folder_id": "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy",
- "filename": "product-manual-v2.pdf",
- "mime_type": "application/pdf",
- "size_bytes": 1048576,
- "status": "ready",
- "s3_key": "teams/xxx/folders/yyy/zzz/product-manual-v2.pdf",
- "chunk_count": 24,
- "uploaded_by": "uuuuuuuu-uuuu-uuuu-uuuu-uuuuuuuuuuuu",
- "created_at": "2024-01-01T00:00:00.000Z",
- "updated_at": "2024-01-01T01:00:00.000Z"
}
], - "next_cursor": "eyJpZCI6Inp6enovdi4uLiJ9"
}