Files API를 사용하면 각 요청마다 콘텐츠를 다시 업로드하지 않고도 Anthropic API와 함께 사용할 파일을 업로드하고 관리할 수 있습니다. 이는 특히 코드 실행 도구를 사용하여 입력(예: 데이터셋 및 문서)을 제공하고 출력(예: 차트)을 다운로드할 때 유용합니다. 또한 Files API를 사용하여 여러 API 호출에서 자주 사용되는 문서와 이미지를 지속적으로 다시 업로드하지 않아도 됩니다.

Files API는 현재 베타 버전입니다. Files API 사용 경험을 공유하려면 피드백 양식을 통해 문의해 주세요.

지원되는 모델

Messages 요청에서 file_id를 참조하는 것은 해당 파일 유형을 지원하는 모든 모델에서 지원됩니다. 예를 들어, 이미지는 모든 Claude 3+ 모델에서 지원되고, PDF는 모든 Claude 3.5+ 모델에서 지원되며, 코드 실행 도구용 다양한 기타 파일 유형은 Claude 3.5 Haiku와 모든 Claude 3.7+ 모델에서 지원됩니다.

Files API는 현재 Amazon Bedrock이나 Google Vertex AI에서 지원되지 않습니다.

Files API 작동 방식

Files API는 파일 작업을 위한 간단한 한 번 생성, 여러 번 사용 접근 방식을 제공합니다:

  • 파일 업로드 - 보안 저장소에 파일을 업로드하고 고유한 file_id를 받습니다
  • 파일 다운로드 - 코드 실행 도구에서 생성된 파일을 다운로드합니다
  • 파일 참조 - 콘텐츠를 다시 업로드하는 대신 file_id를 사용하여 Messages 요청에서 파일을 참조합니다
  • 파일 관리 - 목록, 검색 및 삭제 작업으로 파일을 관리합니다

Files API 사용 방법

Files API를 사용하려면 베타 기능 헤더를 포함해야 합니다: anthropic-beta: files-api-2025-04-14.

파일 업로드

향후 API 호출에서 참조할 파일을 업로드합니다:

curl -X POST https://api.anthropic.com/v1/files \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "anthropic-beta: files-api-2025-04-14" \
  -F "file=@/path/to/document.pdf"

메시지에서 파일 사용

업로드한 후에는 file_id를 사용하여 파일을 참조합니다:

curl -X POST https://api.anthropic.com/v1/messages \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "anthropic-beta: files-api-2025-04-14" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-sonnet-4-20250514",
    "max_tokens": 1024,
    "messages": [
      {
        "role": "user",
        "content": [
          {
            "type": "text",
            "text": "이 문서를 요약해 주세요."          
          },
          {
            "type": "document",
            "source": {
              "type": "file",
              "file_id": "file_011CNha8iCJcU1wXNR6q4V8w"
            }
          }
        ]
      }
    ]
  }'

파일 유형 및 콘텐츠 블록

Files API는 다양한 콘텐츠 블록 유형에 해당하는 다양한 파일 유형을 지원합니다:

파일 유형MIME 유형콘텐츠 블록 유형사용 사례
PDFapplication/pdfdocument텍스트 분석, 문서 처리
일반 텍스트text/plaindocument텍스트 분석, 처리
이미지image/jpeg, image/png, image/gif, image/webpimage이미지 분석, 시각적 작업
데이터셋, 기타다양함container_upload데이터 분석, 시각화 생성

다른 파일 형식 작업

document 블록으로 지원되지 않는 파일 유형(.csv, .txt, .md, .docx, .xlsx)의 경우, 파일을 일반 텍스트로 변환하고 메시지에 콘텐츠를 직접 포함합니다:

# 예시: 텍스트 파일을 읽고 일반 텍스트로 전송
# 참고: 특수 문자가 있는 파일의 경우 base64 인코딩을 고려하세요
TEXT_CONTENT=$(cat document.txt | jq -Rs .)

curl https://api.anthropic.com/v1/messages \
  -H "content-type: application/json" \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -d @- <<EOF
{
  "model": "claude-sonnet-4-20250514",
  "max_tokens": 1024,
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "다음은 문서 내용입니다:\n\n${TEXT_CONTENT}\n\n이 문서를 요약해 주세요."
        }
      ]
    }
  ]
}
EOF

이미지가 포함된 .docx 파일의 경우, 먼저 PDF 형식으로 변환한 다음 PDF 지원을 사용하여 내장된 이미지 파싱을 활용하세요. 이를 통해 PDF 문서의 인용을 사용할 수 있습니다.

문서 블록

PDF 및 텍스트 파일의 경우 document 콘텐츠 블록을 사용합니다:

{
  "type": "document",
  "source": {
    "type": "file",
    "file_id": "file_011CNha8iCJcU1wXNR6q4V8w"
  },
  "title": "문서 제목", // 선택사항
  "context": "문서에 대한 컨텍스트", // 선택사항  
  "citations": {"enabled": true} // 선택사항, 인용 활성화
}

이미지 블록

이미지의 경우 image 콘텐츠 블록을 사용합니다:

{
  "type": "image",
  "source": {
    "type": "file",
    "file_id": "file_011CPMxVD3fHLUhvTqtsQA5w"
  }
}

파일 관리

파일 목록

업로드된 파일 목록을 검색합니다:

curl https://api.anthropic.com/v1/files \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "anthropic-beta: files-api-2025-04-14"

파일 메타데이터 가져오기

특정 파일에 대한 정보를 검색합니다:

curl https://api.anthropic.com/v1/files/file_011CNha8iCJcU1wXNR6q4V8w \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "anthropic-beta: files-api-2025-04-14"

파일 삭제

워크스페이스에서 파일을 제거합니다:

curl -X DELETE https://api.anthropic.com/v1/files/file_011CNha8iCJcU1wXNR6q4V8w \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "anthropic-beta: files-api-2025-04-14"

파일 다운로드

코드 실행 도구에서 생성된 파일을 다운로드합니다:

curl -X GET "https://api.anthropic.com/v1/files/file_011CNha8iCJcU1wXNR6q4V8w/content" \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "anthropic-beta: files-api-2025-04-14" \
  --output downloaded_file.txt

코드 실행 도구에서 생성된 파일만 다운로드할 수 있습니다. 업로드한 파일은 다운로드할 수 없습니다.


파일 저장소 및 제한

저장소 제한

  • 최대 파일 크기: 파일당 500MB
  • 총 저장소: 조직당 100GB

파일 수명 주기

  • 파일은 API 키의 워크스페이스로 범위가 지정됩니다. 다른 API 키는 동일한 워크스페이스와 연결된 다른 API 키에서 생성한 파일을 사용할 수 있습니다
  • 파일은 삭제할 때까지 지속됩니다
  • 삭제된 파일은 복구할 수 없습니다
  • 파일은 삭제 후 곧바로 API를 통해 액세스할 수 없지만, 활성 Messages API 호출 및 관련 도구 사용에서는 지속될 수 있습니다

오류 처리

Files API 사용 시 일반적인 오류는 다음과 같습니다:

  • 파일을 찾을 수 없음 (404): 지정된 file_id가 존재하지 않거나 액세스 권한이 없습니다
  • 잘못된 파일 유형 (400): 파일 유형이 콘텐츠 블록 유형과 일치하지 않습니다(예: 문서 블록에서 이미지 파일 사용)
  • 컨텍스트 윈도우 크기 초과 (400): 파일이 컨텍스트 윈도우 크기보다 큽니다(예: /v1/messages 요청에서 500MB 일반 텍스트 파일 사용)
  • 잘못된 파일명 (400): 파일명이 길이 요구사항(1-255자)을 충족하지 않거나 금지된 문자(<, >, :, ", |, ?, *, \, /, 또는 유니코드 문자 0-31)를 포함합니다
  • 파일이 너무 큼 (413): 파일이 500MB 제한을 초과합니다
  • 저장소 제한 초과 (403): 조직이 100GB 저장소 제한에 도달했습니다
{
  "type": "error",
  "error": {
    "type": "invalid_request_error",
    "message": "File not found: file_011CNha8iCJcU1wXNR6q4V8w"
  }
}

사용량 및 요금

File API 작업은 무료입니다:

  • 파일 업로드
  • 파일 다운로드
  • 파일 목록
  • 파일 메타데이터 가져오기
  • 파일 삭제

Messages 요청에서 사용되는 파일 콘텐츠는 입력 토큰으로 가격이 책정됩니다. 코드 실행 도구에서 생성된 파일만 다운로드할 수 있습니다.

속도 제한

베타 기간 동안:

  • 파일 관련 API 호출은 분당 약 100개 요청으로 제한됩니다
  • 사용 사례에 더 높은 제한이 필요한 경우 문의하세요