Claude Platform Docs

To enable the Compliance API, see the setup guide.

Set up the Compliance API

Загрузка содержимого версии Artifact кода

GET/v1/compliance/apps/code/artifacts/{artifact_id}/versions/{version_id}

Передаёт содержимое одной версии Artifact потоком в качестве тела ответа, частями без Content-Length. При multi_file_format=zip версия, содержащая более одного файла (кроме версии Claude Doc — Artifact, у которого artifact_type равен claude_docs), возвращается в виде ZIP-архива её файлов.

Заголовки: Content-Type (application/zip для ZIP-архива, в остальных случаях — сохранённый MIME-тип), Content-Disposition: attachment; filename*=utf-8''<name> (RFC 5987), Cache-Control: no-store, private и, если доступен, Content-MD5 (base64). <name> — это {artifact_id}-{version_id}.zip для ZIP-архива, в остальных случаях — {artifact_id}-{version_id}.txt, независимо от содержимого. Content-MD5 присутствует только для одного файла, хранящегося без сжатия, поэтому для ZIP-архива он никогда не передаётся. Если он присутствует, сверьте с ним тело ответа.

Ошибки, характерные для этого скачивания:

  • 404: Artifact не существует или ключ API не может его прочитать, либо версия больше не хранится. Старые версии удаляются по мере публикации новых, поэтому снова получите список версий Artifact. Эта ошибка также возвращается, когда ключ шифрования организации, управляемый клиентом, не может быть использован. Повторите попытку, когда ключ снова станет доступен.
  • 503: содержимое сейчас не может быть предоставлено, например потому что его загрузка ещё выполняется или была прервана. Повторите попытку с задержкой (backoff).
  • 422 с error.details.error_code multi_file_unavailable: версия содержит более одного файла. Добавьте multi_file_format=zip. Версия Claude Doc, содержащая более одного файла, получает эту ошибку в любом случае, поскольку содержит только веб-страницу, отображающую Doc. Скачайте текст Doc с помощью GET /v1/compliance/apps/code/artifacts/{artifact_id}/content?multi_file_format=zip.
  • 422 с file_set_unavailable: в запросе задан multi_file_format=zip, версия содержит более одного файла, и у одного из них путь, который API не может экспортировать. Не повторяйте попытку.

Ошибка, возникшая после начала скачивания, досрочно прерывает тело ответа, при этом статус 200 уже отправлен. Например, это происходит с содержимым, хранящимся в сжатом виде, если после распаковки его размер превышает 16 МиБ. Для одного файла без Content-MD5 единственным признаком является передача, прерванная до последней части, поэтому считайте скачивание, прерванное таким образом, неудачным.

ZIP-архив файлов версии содержит одну папку верхнего уровня, названную по Artifact и версии. Эта папка содержит папку files/ и индекс files.json. Индекс записывается последним, поэтому считайте архив неполным, если его не удаётся открыть или в его папке верхнего уровня нет files.json.

files.json содержит следующие поля:

  • artifact_id: идентификатор Artifact, как в запросе.
  • version_id: идентификатор версии, как в запросе.
  • title: название версии в архиве или идентификатор этой версии, если название не хранится.
  • created_at: время публикации версии (RFC 3339, UTC) или null, если оно неизвестно.
  • files: по одной записи для каждого файла в files/ с полями original_path (путь к файлу в версии), exported_as (его путь в архиве), sha256 (шестнадцатеричное значение в нижнем регистре), size_bytes (до сжатия) и mime_type. exported_as — это папка верхнего уровня, затем files/, затем original_path. Имя, которое невозможно безопасно сохранить или открыть во всех операционных системах, изменяется. Для поиска файла в архиве используйте exported_as, а не original_path.
  • omitted_files: файлы, не включённые в архив, каждый с полями original_path, sha256, size_bytes и mime_type. К ним относятся файлы, которые версия использует из другого Artifact. К ним также относятся файлы, скопированные из типа Artifact, на основе которого был создан Artifact (например, приложение, которое его отображает), если этот тип принадлежит другой организации.

files и omitted_files вместе содержат не более 4 096 файлов, суммарный size_bytes не превышает 1 ГиБ, и ни один файл не превышает 20 МиБ.

Path parameters
artifact_id: string

The Artifact ID (tagged ID, e.g., cart_abc123)

version_id: string

Opaque version identifier from the Artifact's versions list

Query parameters
multi_file_format: optional string

Set to zip, its only value, to receive a version that has more than one file as a ZIP archive of its files with an index, files.json. A version with one file is returned as that file. A Claude Doc's version never comes back as a ZIP.

Headers
"anthropic-version": optional string

The version of the Claude API you want to use.

Read more about versioning and our version history here.

"x-api-key": optional string
Загрузка содержимого версии Artifact кода
cURL
curl https://api.anthropic.com/v1/compliance/apps/code/artifacts/$ARTIFACT_ID/versions/$VERSION_ID \
    -H 'anthropic-version: 2023-06-01' \
    -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"