Notion API로 데이터베이스 관리하기

2한나·2025년 9월 28일

노션 API 사용해서 데이터베이스 관리하기

API Intergration 만들기

생성한 API를 노션 페이지에 연결하기

노션 데이터베이스 아이디 얻기

원하는 데이터베이스에 내용을 추가하려면 데이터베이스 아이디를 얻어야 한다. 노션 데이터베이스 아이디는 링크 복사를 통해서 얻을 수 있다.

https://www.notion.so/{데이터베이스 ID}?v={view ID}

Postman으로 요청 보내보기

  • raw
    • database_id는 위에서 복사해 구했던 데이터베이스 ID
    • Name 은 Notion DB의 Title 속성 이름이어야 함 (대소문자 포함)
    • Summary 는 Notion DB에 만든 Rich text 속성 이름이어야 함.
{
  "parent": {
    "database_id": "데이터베이스 ID"
  },
  "properties": {
    "Name": {
      "title": [
        {
          "text": {
            "content": "Attention Is All You Need"
          }
        }
      ]
    },
    "Summary": {
      "rich_text": [
        {
          "text": {
            "content": "Transformer를 제안한 논문. RNN/CNN 없이 self-attention으로 번역 문제 해결."
          }
        }
      ]
    }
  }
}

Send를 누르면 아래 사진처럼 내용이 추가됨을 확인할 수 있음

Python 코드로 구현하기

import requests

NOTION_TOKEN = "ntn_xxxxxx"  # 통합에서 발급받은 secret 토큰
DATABASE_ID = "xxxx"  # DB URL에서 추출한 database_id

# Notion API 버전
NOTION_VERSION = "2025-09-03"

# 테스트용 논문 제목과 요약
title = "Attention Is All You Need"
summary = "Transformer 구조를 제안하여 RNN/CNN 없이도 시퀀스 모델링을 가능하게 한 논문입니다."

# API 요청 URL
url = "https://api.notion.com/v1/pages"

# 요청 헤더
headers = {
    "Authorization": f"Bearer {NOTION_TOKEN}",
    "Notion-Version": NOTION_VERSION,
    "Content-Type": "application/json",
}

# 요청 바디
payload = {
    "parent": {"database_id": DATABASE_ID},
    "properties": {
        "Name": {
            "title": [{"text": {"content": title}}]
        },
        "Summary": {
            "rich_text": [{"text": {"content": summary}}]
        }
    }
}

# POST 요청 보내기
response = requests.post(url, headers=headers, json=payload)

# 결과 확인
if response.status_code == 200:
    print("논문 요약 추가 완료")
    data = response.json()
    print("Page ID:", data.get("id"))
else:
    print("오류 발생:", response.status_code, response.text)

코드를 실행하면

아래 이미지처럼 잘 추가되는 것을 확인할 수 있다

0개의 댓글