Memory API

에러·제한

에러 코드, 응답 형식, 레이트리밋.


응답 형식

모든 /v1/* 응답은 일관된 envelope 를 씁니다.

// 성공
{ "ok": true, "data": { /* … */ } }
 
// 실패
{ "ok": false, "error": { "code": "validation", "message": "query is required" } }

ok 로 성공/실패를 분기하고, 실패 시 error.code 로 처리하세요. error.message 는 사람이 읽는 설명입니다.

에러 코드

코드HTTP의미
validation400요청 바디/파라미터가 잘못됨
unauthorized401Bearer 토큰 누락/무효
forbidden403키는 유효하나 권한 없음
not_found404대상 없음
conflict409충돌 (예: 중복 스킬 이름)
rate_limited429레이트리밋 초과
internal500서버 오류

수집(/sources/api/*) 응답도 같은 { ok, ... } 모양이며, 실패 시 codemessage 를 포함합니다.

레이트리밋

읽기 /v1/*IP·엔드포인트당 60초에 30요청, 쓰기(POST /v1/memories)는 워크스페이스·IP당 60초에 10요청입니다. 초과 시 429 / rate_limited.

{ "ok": false, "error": { "code": "rate_limited", "message": "too many requests" } }

429 를 받으면 지수 백오프로 재시도하세요. 배치 작업은 엔드포인트별 한도를 고려해 분산하면 안정적입니다.

흔한 실수

  • 401Authorization: Bearer <키> 형식인지, 키가 폐기되지 않았는지 확인.
  • 400 on searchquery 가 비었거나 4000자를 초과.
  • 409 on skills — 같은 이름의 스킬이 이미 존재.