마크다운 API 시작하기

API 토큰 하나로 스크립트나 AI 에이전트가 노트를 마크다운으로 읽고, 새로 만들고, 끝에 덧붙입니다.

이용 조건 웹 · Mac · iPhone 앱에서 토큰 발급 · 계정 비밀번호 필요

CommonNote의 공개 API는 노트를 마크다운으로 주고받습니다. 할 수 있는 일은 네 가지입니다: 노트 목록 보기, 노트를 마크다운으로 읽기, 새 노트 만들기, 기존 노트 끝에 덧붙이기. 노트를 통째로 덮어쓰거나 지우는 길은 일부러 두지 않았습니다. 함께 쓰는 문서를 한 번에 갈아엎는 일은 편집기에서 사람이 하도록 했습니다.

토큰 만들기

  1. 상단 바 오른쪽 프로필(아바타)을 누르고 계정 보안을 엽니다.
  2. API 토큰 칸에서 토큰 이름(예: 맥북 Claude Code)과 지금 쓰는 비밀번호를 적습니다.
  3. 토큰 만들기를 누르고, 나온 토큰(cnk_로 시작)을 바로 복사해 안전한 곳에 둡니다. 다시 볼 수 없습니다.
  • 토큰은 만료가 없습니다. 안 쓰는 토큰은 목록에서 폐기하세요. 목록에는 마지막 사용 시각이 나옵니다.
  • 계정당 20개까지 만들 수 있습니다.
  • 토큰은 /api/v1에만 통합니다. 다른 경로에 쓰면 401이 돌아옵니다.
  • 사용법 단추를 누르면 앱 안에서 curl 예시를 볼 수 있습니다.
토큰은 비밀번호처럼 다루세요. 코드 저장소, 채팅, 공유 문서에 붙여 넣지 마세요. 새어 나갔다고 생각되면 곧바로 폐기하고 새로 만드세요.

엔드포인트

기준 주소는 https://commonnote.app/api/v1이고, 모든 요청에 Authorization: Bearer cnk_… 헤더를 붙입니다.

요청하는 일
GET /notes?limit=50&q=내가 소유했거나 나에게 직접 공유된 노트 목록, 최근 수정 순. 공유 노트북·팀 프로젝트를 통해서만 볼 수 있는 노트는 목록에 없지만, id를 알면 GET /notes/:id로 읽을 수 있습니다. limit 기본 50·최대 200. q는 제목만 부분 검색합니다. 휴지통·템플릿은 빠집니다. 항목마다 id, title, notebookId, role(owner/editor/viewer), locked, createdAt, updatedAt.
GET /notes/:idAccept: text/markdown이면 마크다운 본문만, 아니면 JSON(id, title, notebookId, role, createdAt, updatedAt, markdown). 이미지 주소는 https://commonnote.app/… 절대 주소로 바뀝니다.
POST /notes본문 { "title"?, "markdown", "notebookId"? }로 새 노트를 만듭니다. 201과 { id, title, url }이 돌아옵니다. 제목을 빼면 마크다운 첫 제목을 씁니다. notebookId는 내가 소유한 노트북만 됩니다.
POST /notes/:id/append본문 { "markdown" }을 노트 끝에 덧붙입니다. { ok, id, appendedBlocks }가 돌아옵니다. 보기 권한만 있으면 403.

GET /api/v1/에 토큰을 붙여 부르면 엔드포인트 목록과 속도 제한을 JSON으로 알려 줍니다.

해 보기

토큰은 명령에 직접 적지 말고 환경 변수에 넣어 쓰세요.

export COMMONNOTE_TOKEN="cnk_…"   # 셸 설정 파일에 넣어 두면 편합니다

# 최근 노트 5개
curl -H "Authorization: Bearer $COMMONNOTE_TOKEN" \
  "https://commonnote.app/api/v1/notes?limit=5"

# 노트 하나를 마크다운으로
curl -H "Authorization: Bearer $COMMONNOTE_TOKEN" -H "Accept: text/markdown" \
  https://commonnote.app/api/v1/notes/<노트-id>

# 새 노트
curl -X POST -H "Authorization: Bearer $COMMONNOTE_TOKEN" -H "Content-Type: application/json" \
  -d '{"title":"오늘 결과","markdown":"# 오늘 결과\n- OD600 0.43"}' \
  https://commonnote.app/api/v1/notes

# 노트 끝에 덧붙이기
curl -X POST -H "Authorization: Bearer $COMMONNOTE_TOKEN" -H "Content-Type: application/json" \
  -d '{"markdown":"## 후속\n- 내일 재측정"}' \
  https://commonnote.app/api/v1/notes/<노트-id>/append

노트 id는 목록 응답의 id나, 노트 목록에서 우클릭 → 공유 링크 복사로 얻은 주소의 ?note= 뒤에 있습니다.

한도와 오류

상황응답
토큰 하나로 1분에 300회 넘게 요청429와 Retry-After 헤더(초). 그만큼 기다렸다가 다시 보내세요.
markdown이 비었거나 2MB(2,000,000바이트)를 넘음400
노트가 없음(휴지통으로 간 노트 포함)404
접근 권한 없음, 보기 전용 노트에 덧붙이기, 내 노트북이 아님403
비밀번호로 잠긴 노트·노트북423. 웹이나 앱에서 잠금을 풀어 두었더라도 API 토큰으로는 읽거나 덧붙일 수 없습니다. 브라우저·앱에서 푼 잠금은 토큰에 적용되지 않습니다.

노트 제목은 결국 본문의 글이 있는 첫 줄(최대 200자)로 정해집니다. title은 만들 때 잠깐 쓰일 뿐 본문이 저장되면 첫 줄로 바뀌므로, 원하는 제목을 마크다운 첫 줄(예: # 제목)로 넣으세요. 스크립트와 AI 도구에 붙이는 예시는 스크립트·AI 도구와 연결하기에 있습니다.