API Reference

REST 엔드포인트 카탈로그. Python · TypeScript SDK가 이걸 래핑합니다 — HTTP 직접 호출 이유가 없다면 SDK부터 시작.

인증

v1 엔드포인트는 Token 인증 — API 키를 헤더에:

Authorization: Token mg-your-api-key
API 키(mg- prefix)는 프로젝트 스코프. Platform 라우트(auth, billing, dashboard)는 JWT Bearer 토큰 사용 — v1 surface가 아님.

엔드포인트 카탈로그

MethodPath용도
POST/v1/memories/메시지에서 자동 추출 + 저장
POST/v1/memories/extract동기 추출 (옵션 저장) — memgen 전용
POST/v1/memories/search/의미 검색
POST/v1/memories/get/필터로 페이징 조회
GET/v1/memories/{id}/단건 조회
PUT/v1/memories/{id}/텍스트 수정
DELETE/v1/memories/{id}/Soft delete
DELETE/v1/memories/필터 기반 일괄 삭제 (GDPR)
GET/v1/memories/{id}/history/변경 로그
POST/v1/memories/feedback/품질 시그널
GET/v1/projects/{id}/configextraction policy + label taxonomy 조회
PUT/v1/projects/{id}/configextraction policy + label taxonomy 갱신
GET/v1/entities/user/agent/app 엔티티 목록
DELETE/v1/entities/엔티티 + 그 메모리 삭제
GET/v1/events/메모리 변경 이벤트 스트림
POST/v1/engine/retrieve/Raw 임베딩 검색 (LLM 없이)
POST/v1/engine/embed/텍스트 → 벡터
POST/v1/engine/consolidate/유사 메모리 병합 (고급)

Memories — 가장 흔한

POST/v1/memories/

Token
{
  "messages": [
    {"role": "user", "content": "I'm vegetarian, allergic to nuts"},
    {"role": "assistant", "content": "Got it!"}
  ],
  "user_id": "alice",
  "agent_id": "bot_v2",
  "run_id": "session-001",
  "metadata": {"channel": "chat"},
  "categories": ["preferences"]
}
{
  "results": [{
    "id": "uuid",
    "memory": "user is vegetarian, allergic to nuts",
    "metadata": {
      "core": {
        "summary": "...",
        "entities": ["nuts"],
        "tags": ["preferences", "allergy"],
        "key_facts": ["vegetarian", "allergic to nuts"],
        "importance": 2
      }
    }
  }],
  "credits_used": 100,
  "credits_remaining": 1985900
}
POST/v1/memories/extract

Token
{
  "messages": [{"role": "user", "content": "I adopted a puppy named Mochi."}],
  "user_id": "alice",
  "store": true,
  "extension": null,
  "metadata": {"app": "demo"}
}
{
  "core": {
    "summary":   "User adopted a puppy named Mochi.",
    "entities":  ["puppy", "Mochi"],
    "tags":      ["pet"],
    "key_facts": ["adopted puppy named Mochi"],
    "importance": 2,
    "timestamp": "2026-05-03T12:34"
  },
  "extensions": {},
  "memory_id": "uuid",
  "usage": {
    "core": {"prompt_tokens": 150, "completion_tokens": 80, "model": "..."}
  }
}
POST/v1/memories/search/

Token
{
  "query": "food restrictions",
  "user_id": "alice",
  "filters": {
    "metadata": {"channel": "chat"},
    "categories": ["preferences"]
  },
  "top_k": 10,
  "threshold": 0.3
}
{
  "results": [{
    "id": "uuid",
    "memory": "user is vegetarian, allergic to nuts",
    "score": 0.87,
    "categories": ["preferences", "allergy"]
  }]
}

Project Config — 도메인 커스터마이징

PUT/v1/projects/{project_id}/config

Token
{
  "extraction_policy": "Extract dietary preferences and allergies. Skip payment info.",
  "label_taxonomy": [
    {"diet":   "Dietary preference"},
    {"allergy": "Allergic condition"}
  ]
}
GET/v1/projects/{project_id}/config

Token

Engine — raw 벡터 연산 고급

LLM 추출을 건너뛰고 임베딩 + 벡터 스토어와 직접 통신. 자세한 내용은 Engine 페이지.

POST/v1/engine/retrieve/

Token
{
  "query": "food restrictions",
  "user_id": "alice",
  "limit": 5
}
POST/v1/engine/embed/

Token
{"text": "hello world", "mode": "query"}
{"embedding": [0.034, -0.012, ...], "dimension": 4096}

응답 envelope 규약

  • List endpoint는 { results: [...], pagination: {...} } 반환
  • 변경 호출은 갱신된 객체 + credits_used / credits_remaining 반환
  • 에러는 { "detail": "human message" } + 해당 HTTP 상태 코드