노트북 만들기 및 관리 (API)  |  NotebookLM Enterprise  |  Google Cloud Documentation
Blog

노트북 만들기 및 관리 (API)  |  NotebookLM Enterprise  |  Google Cloud Documentation

2026.01.22
·Service·by 이호민
#API#NotebookLM#Google Cloud#Enterprise#Documentation

핵심 포인트

  • 1이 문서는 NotebookLM Enterprise 노트북을 프로그래밍 방식으로 관리하기 위한 API 사용법을 자세히 설명합니다.
  • 2제공된 API는 노트북 생성, 조회, 최근 본 목록 확인, 일괄 삭제, 그리고 공유와 같은 다양한 관리 기능을 지원합니다.
  • 3각 API 호출은 인증이 필요하며 `ENDPOINT_LOCATION`, `PROJECT_NUMBER`, `LOCATION`, `NOTEBOOK_ID` 또는 `NOTEBOOK_NAME`과 같은 특정 매개변수를 활용합니다.

이 문서는 NotebookLM Enterprise에서 노트북을 프로그래매틱 방식으로 관리하기 위한 API 사양을 제공합니다. NotebookLM Enterprise는 문서에서 유용한 정보와 요약을 생성하는 강력한 도구이며, 이 API는 노트북 생성, 검색, 최근 본 목록 조회, 일괄 삭제, 공유 등의 작업을 지원합니다.

API 작업을 시작하기 위한 전제 조건으로 NotebookLM Enterprise 설정 및 라이선스 획득이 필요합니다. 모든 API 요청은 OAuth 2.0 Bearer 토큰을 사용한 인증을 요구하며, gcloud auth print-access-token 명령어를 통해 토큰을 획득할 수 있습니다. 엔드포인트는 https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_NUMBER/locations/LOCATION/notebooks 형식이며, ENDPOINT_LOCATION은 API 요청의 멀티 리전(예: us-, eu-, global-), PROJECT_NUMBER는 Google Cloud 프로젝트 번호, LOCATION은 데이터 스토어의 지리적 위치를 나타냅니다.

1. 노트북 만들기 (Create Notebook)
notebooks.create 메서드를 사용하여 새 노트북을 생성합니다.

  • HTTP Method: POST
  • Endpoint: {BASE_URL}/notebooks
  • Request Body: JSON 형식으로 {"title": "NOTEBOOK_TITLE"}을 포함합니다. NOTEBOOK_TITLE은 생성할 노트북의 제목으로 사용될 UTF-8 인코딩 문자열입니다.
  • Response: 성공 시, 새로 생성된 노트북의 세부 정보가 담긴 JSON 객체가 반환됩니다. 이 응답에는 title, notebookId (생성된 노트북을 식별하는 고유 ID), emoji, metadata (사용자 역할, 공유 여부 등), 그리고 name (노트북의 전체 리소스 이름, 형식: projects/PROJECT_NUMBER/locations/LOCATION/notebooks/NOTEBOOK_ID) 필드가 포함됩니다. notebookId는 다른 노트북 관리 작업에 필요하며, name 필드도 일괄 삭제와 같은 특정 작업에 사용됩니다.

2. 노트북 가져오기 (Get Notebook)
특정 노트북 ID를 사용하여 노트북 정보를 검색하려면 notebooks.get 메서드를 사용합니다.

  • HTTP Method: GET
  • Endpoint: {BASE_URL}/notebooks/NOTEBOOK_ID
  • Parameters: NOTEBOOK_ID는 검색할 노트북의 고유 식별자입니다.
  • Response: 성공 시, 요청된 노트북의 세부 정보가 담긴 JSON 객체가 반환됩니다. 응답은 notebooks.create의 응답 형식과 유사하며, 노트북에 소스가 추가되거나 CMEK 세부 정보가 구성된 경우 해당 정보도 포함됩니다. metadata 필드에는 lastViewedcreateTime과 같은 추가 정보가 포함될 수 있습니다.

3. 최근에 본 노트북 목록 (List Recently Viewed Notebooks)
사용자가 최근에 액세스한 프로젝트의 모든 노트북 목록을 가져오려면 notebooks.listRecentlyViewed 메서드를 사용합니다.

  • HTTP Method: GET
  • Endpoint: {BASE_URL}/notebooks:listRecentlyViewed
  • Parameters: pageSize 쿼리 매개변수를 사용하여 페이지네이션을 지원하며, 기본적으로 최대 500개의 노트북이 반환됩니다.
  • Response: 성공 시, 최근에 본 노트북 목록을 포함하는 JSON 객체가 반환됩니다. notebooks 배열 내에 각 노트북의 title, notebookId, emoji, metadata, name 등의 세부 정보가 나열됩니다.

4. 노트북 일괄 삭제 (Batch Delete Notebooks)
여러 노트북을 한 번에 삭제하려면 notebooks.batchDelete 메서드를 사용합니다.

  • HTTP Method: POST
  • Endpoint: {BASE_URL}/notebooks:batchDelete
  • Request Body: JSON 형식으로 {"names": ["NOTEBOOK_NAME_1", "NOTEBOOK_NAME_2"]}와 같이 삭제할 노트북의 전체 리소스 이름(NOTEBOOK_NAME) 목록을 포함합니다.
  • Response: 성공 시, 빈 JSON 객체가 반환됩니다.

5. 노트북 공유 (Share Notebook)
새 노트북을 다른 사용자와 공유하려면 notebooks.share 메서드를 사용합니다. 노트북을 공유하려는 사용자에게는 미리 Google Cloud 프로젝트에서 Cloud NotebookLM User Identity and Access Management (IAM) 역할이 부여되어야 합니다.

  • HTTP Method: POST
  • Endpoint: {BASE_URL}/notebooks/NOTEBOOK_ID:share
  • Parameters: NOTEBOOK_ID는 공유할 노트북의 고유 식별자입니다.
  • Request Body: JSON 형식으로 {"accountAndRoles": [{"email":"USER_EMAIL_1", "role":"USER_ROLE_1"}, ... ]}를 포함합니다.
    • USER_EMAIL: 노트북을 공유할 사용자의 이메일 주소.
    • USER_ROLE: 사용자에게 할당할 역할 (예: PROJECT_ROLE_OWNER, PROJECT_ROLE_WRITER, PROJECT_ROLE_READER, PROJECT_ROLE_NOT_SHARED).
  • Response: 성공 시, 빈 JSON 객체가 반환됩니다.

각 API 작업 후에는 웹 브라우저를 통해 NotebookLM Enterprise 홈페이지 (https://notebooklm.cloud.google.com/LOCATION/?project=PROJECTNUMBERhttps://notebooklm.cloud.google.com/LOCATION/?project=PROJECT_NUMBER) 또는 특정 노트북 URL (https://notebooklm.cloud.google.com/LOCATION/notebook/NOTEBOOKID?project=PROJECTNUMBERhttps://notebooklm.cloud.google.com/LOCATION/notebook/NOTEBOOK_ID?project=PROJECT_NUMBER)에 접속하여 작업 결과를 확인할 수 있습니다. 공유된 노트북의 경우, "공유" 옵션을 클릭하여 액세스 권한이 있는 사용자와 할당된 역할을 확인할 수 있습니다.