REST API

수백~수천 페이지짜리 문서를 스크립트로 저장하고 삭제합니다. AI 는 관여하지 않습니다.

PDF, 스프레드시트, 보고서를 한 건씩 손으로 넣는 대신, 전 과정을 스크립트에 맡깁니다. 텍스트 추출과 분할은 직접 하고, 그 결과만 보내면 됩니다.

여기서 저장한 것은 연결된 AI 로 저장한 것과 똑같습니다 — 같은 저장소에 들어가고, AI 가 꺼내오는 방식도 같습니다.

읽기 API 는 없습니다. 검색과 조회는 MCP대시보드가 맡습니다.

시작하기

  1. REST API 카드에서 키를 만듭니다 — 계정 페이지에 있습니다. 키 이름은 그 키로 저장된 모든 것의 출처로 기록되니 — Import script, pdf-importer 처럼 — 나중에 알아볼 이름으로 붙이세요.
  2. 키는 만든 직후 한 번만 보여드립니다. 그때 복사하세요. 다시 볼 수 없습니다.
  3. 키는 원하는 만큼 만들 수 있고, 언제든 개별 삭제할 수 있습니다.

인증

Base URLhttps://contextick.ai
Authorization: Bearer api_xxxxxxxx

api_ 로 시작하는 키만 여기서 동작합니다. MCP 키나 OAuth 토큰은 이 API 에서 401 이고, REST API 키는 MCP 엔드포인트에서 401 입니다 — 두 표면이 갈려 있어 한쪽만 따로 폐기할 수 있습니다.

엔드포인트

POST /api/v1/notes

한 건을 저장합니다.

Body

FieldTypeRequiredLimit
titlestring120자 — 넘으면 잘립니다
summarystring300자 — 넘으면 잘립니다
contentstring16,000자 — 넘으면 거절됩니다

셋 다 비어 있으면 안 됩니다. 빈 값은 임의로 채우지 않고 거절합니다.

Request

curl -X POST https://contextick.ai/api/v1/notes \
  -H "Authorization: Bearer api_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"title":"Q3 report","summary":"Revenue and headcount for Q3.","content":"…"}'

Response 201

{ "id": 42, "saved_items": 118, "stored_bytes": 1048576 }

saved_itemsstored_bytes 는 저장 후의 총량입니다. 읽지 못했을 때는 0 이 아니라 필드 자체가 빠집니다.

문서에 기록되는 출처는 키 이름입니다. 요청으로 지정할 수 없습니다.

DELETE /api/v1/notes/{id}

한 건을 삭제합니다.

Request

curl -X DELETE https://contextick.ai/api/v1/notes/42 \
  -H "Authorization: Bearer api_xxxxxxxx"

POST /api/v1/notes/delete

여러 건을 한 번에 삭제합니다.

Body

FieldTypeRequiredLimit
idsnumber[]한 번에 50개 — 넘으면 거절됩니다

대량 임포트를 되돌리는 경로가 이것입니다.

Request

curl -X POST https://contextick.ai/api/v1/notes/delete \
  -H "Authorization: Bearer api_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"ids":[42,43]}'

Delete response 200

{ "deleted": [42], "not_found": [43], "saved_items": 117, "stored_bytes": 1040000 }

두 삭제 모두 같은 모양으로 답합니다. 없는 id 는 오류가 아니라 not_found 로 보고됩니다. 삭제는 영구적이며 되돌릴 수 없습니다.

긴 문서는 직접 나누세요

본문 한도는 저장 1회당 16,000자입니다. 대신 나눠 주지 않습니다 — 넘으면 content_too_long 으로 거절합니다. 문서를 의미가 통하는 단위로 잘라 각각 저장하고, 조각마다 제목과 요약을 붙이세요. 파일명과 절 제목을 아는 쪽은 회원님이고, 그래야 나중에 훨씬 잘 떠올릴 수 있습니다.

오류

실패는 모두 한 가지 모양입니다:

{ "error": { "code": "quota_exceeded", "message": "…" } }

판단은 code 로 하세요. message 는 사람이 읽기 위한 문장이라 언제든 바뀔 수 있습니다.

400 요청을 고쳐 다시 보냅니다 empty_titleempty_summaryempty_contentcontent_too_longtoo_many_idsinvalid_bodyinvalid_id
401 api_ 키를 확인합니다 unauthorized
402 결제 상태를 해결합니다 — 그동안 조회는 계속 됩니다 payment_past_duesubscription_pausedsubscription_canceledrefund_pending
429 잠시 후 같은 요청을 다시 보냅니다 embedding_rate_limited
507 공간을 비우거나 더 큰 플랜으로 — 그대로 재시도하지 마세요 quota_exceeded
503 500 일시적이거나 서버측 문제 — 잠시 후 다시 보냅니다

알아두기