Show: All versions v2 only
**버킷(bucket)**은 Schift의 공개 지식 저장소 공간입니다. 버킷을 사용하면 문서를 업로드하고, 인덱싱 준비 상태를 확인하고, 출처가 포함된 답변용 맥락을 검색하고, 지식 기반에 속한 문서를 관리할 수 있습니다.
참고: 모든 버킷 엔드포인트는 Authorization: Bearer <SCHIFT_API_KEY> 헤더가 필요합니다. 버킷이나 문서를 생성·수정·삭제하는 엔드포인트는 buckets:manage 스코프(scope)가 필요합니다. 읽기 및 검색 엔드포인트는 조직 제한 내에서 유효한 API 키만으로 사용할 수 있습니다.
공개 제품 API는 v2 입니다. 신규 연동은 아래 문서화된 /v2/buckets/* 경로를 사용해야 합니다.
기존 /v1/buckets/* 경로는 이전 클라이언트를 위한 폐기 예정 호환성 레이어입니다. 여전히 동작하지만, v1 검색 엔드포인트는 Deprecation 및 Link 후속 버전 헤더를 반환하여 v2 대응 엔드포인트를 안내합니다. 공개 버킷(public bucket)은 두 버전 모두에서 읽기 전용입니다.
필드 타입 설명 idstring고유한 버킷 식별자입니다. namestring사람이 읽을 수 있는 버킷 이름입니다. descriptionstring선택적 설명입니다. dimensioninteger버킷에 설정된 임베딩 차원(embedding dimension)입니다. modelstring버킷에 사용된 임베딩 모델(embedding model)입니다. backendstring벡터 백엔드(vector backend)입니다. 예: engine. file_countinteger업로드된 문서 수입니다. vector_countinteger인덱싱된 벡터 수입니다. active_job_countinteger해당 버킷의 진행 중인 작업 수입니다. created_atstringISO 8601 생성 시각입니다. default_privacy_levelinteger버킷 콘텐츠의 기본 프라이버시 수준입니다. max_privacy_levelinteger허용된 최대 프라이버시 수준입니다. external_max_privacy_levelinteger외부에 노출되는 최대 프라이버시 수준입니다. enforce_access_policyboolean접근 정책(access policy)을 강제하는지 여부입니다. enforce_document_aclboolean문서별 접근 규칙(deny 우선 적용, 규칙이 없는 문서는 기본 공개)을 검색에 적용할지 여부입니다. scope_by_departmentboolean부서 메타데이터로 접근 범위를 제한하는지 여부입니다.
새 버킷을 생성합니다. Schift가 임베딩 모델, 차원, 백엔드를 자동으로 구성합니다.
필드 타입 필수 기본값 설명 namestring예 — 버킷 이름입니다. __schift_로 시작할 수 없습니다. descriptionstring아니오 ""선택적 설명입니다. metadataobject아니오 null자유 형식의 사용자 메타데이터입니다. default_privacy_levelinteger아니오 3기본 프라이버시 수준입니다. max_privacy_levelinteger아니오 10최대 프라이버시 수준입니다. external_max_privacy_levelinteger아니오 1외부 프라이버시 상한입니다. enforce_access_policyboolean아니오 true접근 정책 강제를 활성화합니다. enforce_document_aclboolean아니오 false문서별 접근 규칙(deny 우선 적용, 규칙이 없는 문서는 기본 공개)을 검색에 적용합니다. scope_by_departmentboolean아니오 false부서별 접근 범위를 적용합니다.
"description" : " Product support knowledge "
"id" : " bucket_01J8X1234567890ABCDEF " ,
"description" : " Product support knowledge " ,
"model" : " text-embedding-3-large " ,
"created_at" : " 2026-06-19T05:00:00Z " ,
"default_privacy_level" : 3 ,
"external_max_privacy_level" : 1 ,
"enforce_access_policy" : false ,
"enforce_document_acl" : false ,
"scope_by_department" : false
상태 원인 400잘못된 요청 본문입니다. 403버킷 이름이 예약된 __schift_ 네임스페이스를 사용합니다. 409동일한 이름의 버킷이 이미 존재합니다.
인증된 조직의 버킷 목록을 조회합니다.
"id" : " bucket_01J8X1234567890ABCDEF " ,
"description" : " Product support knowledge " ,
"model" : " text-embedding-3-large " ,
"created_at" : " 2026-06-19T05:00:00Z " ,
"default_privacy_level" : 3 ,
"external_max_privacy_level" : 1 ,
"enforce_access_policy" : false ,
"enforce_document_acl" : false ,
"scope_by_department" : false
ID로 단일 버킷을 조회합니다.
매개변수 타입 필수 설명 bucket_idstring예 버킷 식별자입니다.
POST /v2/buckets 응답과 동일한 형식입니다.
상태 원인 404버킷을 찾을 수 없거나 접근할 수 없습니다.
변경 가능한 버킷 필드를 수정합니다. 현재 이름 변경, 설명 업데이트, 그리고 프라이버시 정책 필드를 포함한 메타데이터 업데이트를 지원합니다.
매개변수 타입 필수 설명 bucket_idstring예 버킷 식별자입니다.
모든 필드는 선택적입니다.
필드 타입 설명 namestring새 버킷 이름입니다. descriptionstring새 설명입니다. metadataobject기존 메타데이터에 병합되는 자유 형식 메타데이터입니다. default_privacy_levelinteger기본 프라이버시 수준입니다. max_privacy_levelinteger최대 프라이버시 수준입니다. external_max_privacy_levelinteger외부 프라이버시 상한입니다. enforce_access_policyboolean접근 정책 강제를 활성화합니다. enforce_document_aclboolean문서별 접근 규칙(deny 우선 적용, 규칙이 없는 문서는 기본 공개)을 검색에 적용합니다. scope_by_departmentboolean부서별 접근 범위를 적용합니다.
"description" : " Updated product support knowledge "
POST /v2/buckets 응답과 동일한 형식입니다.
상태 원인 403공개 버킷은 읽기 전용입니다. 404버킷을 찾을 수 없습니다. 409새 버킷 이름이 이미 사용 중입니다.
버킷 삭제를 큐에 넣습니다. 삭제는 비동기로 수행되며 작업 ID(job ID)를 반환합니다.
매개변수 타입 필수 설명 bucket_idstring예 버킷 식별자입니다.
"bucket_id" : " bucket_01J8X1234567890ABCDEF " ,
"job_id" : " job_01J8Y1234567890ABCDEF " ,
"delete_requested_at" : " 2026-06-19T05:05:00Z "
상태 원인 403공개 버킷은 읽기 전용입니다. 404버킷을 찾을 수 없습니다.
버킷 내부의 하위 컬렉션(collection) 목록을 조회합니다.
매개변수 타입 필수 설명 bucket_idstring예 버킷 식별자입니다.
"id" : " col_01J8X1234567890ABCDEF " ,
"bucket_id" : " bucket_01J8X1234567890ABCDEF " ,
"name" : " migration-guides " ,
"model" : " text-embedding-3-large " ,
버킷이 질문에 답할 준비가 되었는지 확인합니다. 이 엔드포인트는 검색을 실행하지 않고, 최종 사용자용 준비 상태 요약을 반환합니다.
매개변수 타입 필수 설명 bucket_idstring예 버킷 식별자입니다.
"operational_status" : " ready " ,
"bucket_id" : " product-docs " ,
"last_indexed_at" : " 2026-06-19T04:55:00Z " ,
"backfill_required" : false
관리형 지식 검색 파이프라인(managed knowledge-search pipeline)을 실행하고, 출처가 포함된 답변용 맥락을 반환합니다. 호출자가 임베딩 경로, 벡터 모드, 재정렬(re-rank) 방식을 직접 선택할 필요는 없습니다.
매개변수 타입 필수 설명 bucket_idstring예 버킷 식별자입니다.
필드 타입 필수 기본값 설명 querystring예 — 버킷에 대해 질문할 내용입니다. top_kinteger아니오 8반환할 최대 인용 구절 수입니다. 범위: 1–100. context_budgetinteger아니오 2000토큰 단위의 대략적인 최대 맥락 크기입니다. 범위: 100–32000. filtersobject아니오 null메타데이터 필터입니다. 자세한 내용은 필터 를 참고하세요. options.rerank.enabledboolean아니오 true맥락 조립 전 인용 순서를 개선합니다. options.rerank.top_kinteger아니오 null재정렬할 후보 구절 수입니다. 범위: 1–1000. options.instructions.taskstring아니오 nullretrieval_query 같은 검색 지시 프리셋입니다.
"query" : " How do I migrate embedding models? " ,
"filters" : { "product" : " schift " },
"rerank" : { "enabled" : true , "top_k" : 20 },
"instructions" : { "task" : " retrieval_query " }
"operational_status" : " ready " ,
"bucket_id" : " product-docs " ,
"query" : " How do I migrate embedding models? " ,
"context" : " [1] Migration guide excerpt... " ,
"document_id" : " doc_042 " ,
"title" : " Migration Guide " ,
상태 원인 400잘못된 필터 또는 요청 본문입니다. 402검색 할당량을 초과했습니다. 403검색 할당량을 사용할 수 없거나 플랜 제한입니다. 404버킷을 찾을 수 없습니다.
원시 v2 검색 규약(raw v2 search contract)을 사용하여 버킷 내 단일 컬렉션을 검색합니다. 전체 버킷이 아닌 특정 하위 컬렉션의 결과만 원할 때 유용합니다.
매개변수 타입 필수 설명 bucket_idstring예 버킷 식별자입니다. collection_idstring예 컬렉션 식별자입니다.
필드 타입 필수 기본값 설명 querystring예* ""텍스트 쿼리입니다. query 또는 queryVector 중 하나는 필요합니다. queryVectornumber[]예* null원시 임베딩 벡터입니다. topKinteger아니오 10최대 결과 수입니다. 범위: 1–1000. modelstring아니오 null임베딩 모델 덮어쓰기값입니다. filterobject아니오 null메타데이터 필터입니다. accessModestring아니오 autoauto, internal, external 중 하나입니다. raw는 내부 전용입니다.modestring아니오 hybridvector 또는 hybrid입니다.rerankboolean아니오 false재정렬(re-ranking)을 활성화합니다. rerankTopKinteger아니오 null재정렬 대상 후보 수입니다. minScorenumber아니오 null최소 결과 점수입니다. 범위: 0–1. debugboolean아니오 false디버깅용 소요 시간과 점수를 포함합니다.
"bucket_id" : " product-docs " ,
"search_id" : " search_01J8X1234567890ABCDEF " ,
"text" : " Migration guide excerpt... " ,
"metadata" : { "document_id" : " doc_042 " },
상태 원인 400query 또는 queryVector가 누락되었거나, 시간 매개변수가 잘못되었습니다.403raw 검색 모드는 내부 전용입니다.404버킷 또는 컬렉션을 찾을 수 없습니다.
하나 이상의 파일을 버킷에 업로드합니다. 업로드된 파일은 추출, 청크(chunk) 분할, 임베딩, 인덱싱을 거쳐 비동기로 처리됩니다. 이 엔드포인트는 multipart/form-data를 받습니다.
매개변수 타입 필수 설명 bucket_idstring예 버킷 식별자입니다.
필드 타입 필수 기본값 설명 filesfile예 — 하나 이상의 파일입니다. PDF, Markdown, 텍스트, Office 문서, 이미지를 지원합니다. ocr_strategystring아니오 auto이미지 기반 문서에 대한 OCR 전략입니다. chunk_sizeinteger아니오 512목표 청크 크기입니다. 범위: 64–8192. chunk_overlapinteger아니오 50청크 중첩 크기입니다. 범위: 0–512. metadatastring아니오 null업로드되는 모든 파일에 첨부할 JSON 문자열화 객체입니다. collection_idstring아니오 null대상 하위 컬렉션입니다. 기본값은 버킷입니다.
curl -X POST ${ API_BASE_URL } /v2/buckets/product-docs/documents \
-H " Authorization: Bearer $SCHIFT_API_KEY " \
-F ' metadata={"source":"support","product":"schift"} '
"job_id" : " job_01J8X1234567890ABCDEF " ,
"document_id" : " doc_01J8X1234567890ABCDEF " ,
"file_name" : " manual.pdf " ,
"total_estimated_cost" : 0.05
상태 원인 400지원하지 않는 파일 형식이거나 잘못된 폼 데이터입니다. 403API 키에 buckets:manage 스코프가 없습니다. 404버킷을 찾을 수 없습니다. 413파일 또는 요청이 업로드 제한을 초과했습니다.
버킷의 문서 목록을 조회합니다.
매개변수 타입 필수 설명 bucket_idstring예 버킷 식별자입니다.
매개변수 타입 필수 기본값 설명 statusstring아니오 — 문서 상태로 필터링합니다. limitinteger아니오 50최대 결과 수입니다. 범위: 1–500.
"id" : " doc_01J8X1234567890ABCDEF " ,
"bucket_id" : " product-docs " ,
"file_name" : " manual.pdf " ,
"metadata" : { "source" : " support " , "product" : " schift " },
"latest_job_id" : " job_01J8X1234567890ABCDEF " ,
"latest_successful_job_id" : " job_01J8X1234567890ABCDEF " ,
"last_error_summary" : null ,
"created_at" : " 2026-06-19T04:00:00Z " ,
"updated_at" : " 2026-06-19T04:05:00Z "
ID로 단일 문서를 조회합니다.
매개변수 타입 필수 설명 bucket_idstring예 버킷 식별자입니다. document_idstring예 문서 식별자입니다.
GET /v2/buckets/{bucket_id}/documents 응답의 단일 항목과 동일한 형식입니다.
상태 원인 404버킷 또는 문서를 찾을 수 없습니다.
문서의 메타데이터를 업데이트합니다. 검색 노출에 영향을 주는 변경은 기본적으로 재인덱싱(reindex)을 트리거합니다.
매개변수 타입 필수 설명 bucket_idstring예 버킷 식별자입니다. document_idstring예 문서 식별자입니다.
필드 타입 필수 기본값 설명 metadataobject아니오 {}병합할 메타데이터입니다. public_accessibleboolean아니오 null문서를 공개 접근 가능하게 할지 여부입니다. privacy_levelinteger아니오 null프라이버시 수준입니다. 범위: 1–10. classificationstring아니오 nullinternal, public, restricted, confidential 중 하나입니다.review_statusstring아니오 nullpending, approved, rejected 중 하나입니다.reindexboolean아니오 true업데이트 후 재인덱싱을 큐에 넣습니다.
GET /v2/buckets/{bucket_id}/documents/{document_id} 응답과 동일한 형식입니다.
상태 원인 400잘못된 메타데이터입니다. 404버킷 또는 문서를 찾을 수 없습니다.
문서의 영구 삭제를 큐에 넣습니다. 삭제는 비동기로 수행되며 작업 ID(job ID)를 반환합니다.
매개변수 타입 필수 설명 bucket_idstring예 버킷 식별자입니다. document_idstring예 문서 식별자입니다.
"bucket_id" : " product-docs " ,
"document_id" : " doc_01J8X1234567890ABCDEF " ,
"job_id" : " job_01J8Y1234567890ABCDEF " ,
"delete_requested_at" : " 2026-06-19T05:10:00Z "
상태 원인 404버킷 또는 문서를 찾을 수 없습니다.
버킷 내 문서에 나타나는 메타데이터 키와 각 키의 가장 흔한 값들을 조회합니다.
매개변수 타입 필수 설명 bucket_idstring예 버킷 식별자입니다.
매개변수 타입 필수 기본값 설명 limitinteger아니오 500키를 수집할 때 스캔할 최대 문서 수입니다. 범위: 1–2000. values_per_keyinteger아니오 20키당 반환할 최대 값 수입니다. 범위: 0–100.
"bucket_id" : " product-docs " ,
{ "value" : " schift " , "count" : 10 },
{ "value" : " docs " , "count" : 2 }
특정 메타데이터 키에 대해 관찰된 값 목록을 조회합니다.
매개변수 타입 필수 설명 bucket_idstring예 버킷 식별자입니다. keystring예 메타데이터 키입니다.
매개변수 타입 필수 기본값 설명 limitinteger아니오 100최대 고유 값 수입니다. 범위: 1–1000. document_limitinteger아니오 2000스캔할 최대 문서 수입니다. 범위: 1–10000.
"bucket_id" : " product-docs " ,
{ "value" : " schift " , "count" : 10 },
{ "value" : " docs " , "count" : 2 }
상태 원인 404버킷을 찾을 수 없거나 메타데이터 키를 찾을 수 없습니다.