Follow Discord
Sweep 22 Oct 2026 · 04:32Z Build v2.1.308 527 read Stable v2.1.308 Latest v2.1.308 Next v2.1.308 Feeds RSS JSON llms.txt llms-full.txt Unofficial
One change · api

Apps changedapi/compliance/apps

Nearest release: v2.1.306, published 2 hours after this site recorded the change. Shown because the two are within 24 hours of each other. Nothing here says the release caused the edit.

Recorded here
Lines+60added
Lines−43removed
From line 3,516 where the diff opens
First seen 14 Aug 2026 this site's first read of the page
Recorded edits18to this page, all time

The whole hunk

from line 3516, old and new numbered
/
lines
from line 3516
35163516 
35173517**GET** `/v1/compliance/apps/code/artifacts/{artifact_id}/versions/{version_id}`
35183518 
3519Streams the content of one version of a Claude Code Artifact as the
3520response body.
3519Streams the content of one version of an Artifact as the response body, in chunks with no `Content-Length`. With `multi_file_format=zip`, a version with more than one file, other than a Claude Doc's (an Artifact whose `artifact_type` is `claude_docs`), comes back as a ZIP archive of its files.
35213520 
3522Returns 404 for Artifacts that don't exist or belong to another parent
3523organization. A listed version id can start returning 404 if subsequent
3524publishes rotated it out of retained history — re-list on 404. Returns
3525503 while the version's content upload is still in flight or was
3526abandoned — retry with backoff. Returns 422 with
3527`error.details.error_code` `multi_file_unavailable` for a version that
3528has more than one file, unless the request sets `multi_file_format=zip`,
3529which returns those files as a ZIP archive. With `multi_file_format=zip`,
3530a version with more than one file, one of them with a name the API cannot
3531export, gets 422 `file_set_unavailable`. Do not retry a 422. A Claude
3532Doc's versions hold only the web page that displays the Doc and never come
3533back as a ZIP. That page usually has more than one file, so a Doc's version
3534usually gets the 422 `multi_file_unavailable`. Download the Doc's text with
3535`GET /v1/compliance/apps/code/artifacts/{artifact_id}/content?multi_file_format=zip`.
3536Oversized encoded content aborts mid-stream: headers and initial bytes arrive
3537but the body terminates early — an aborted chunked transfer is the
3538only truncation signal for encoded content. `Content-MD5` is emitted
3539only for identity-stored content; validate against it when present.
3521Headers: `Content-Type` (`application/zip` for a ZIP archive, otherwise the stored MIME type), `Content-Disposition: attachment; filename*=utf-8''<name>` (RFC 5987), `Cache-Control: no-store, private` and, when available, `Content-MD5` (base64). `<name>` is `{artifact_id}-{version_id}.zip` for a ZIP archive, otherwise `{artifact_id}-{version_id}.txt`, whatever the content is. `Content-MD5` is only on a single file stored uncompressed, so it is never on a ZIP archive. Check the body against it when present.
35403522 
3523Errors specific to this download:
3524 
3525- `404`: the Artifact doesn't exist or the API key cannot read it, or the version is no longer kept. Older versions are dropped as new ones are published, so list the Artifact's versions again. You also get this when the organization's customer-managed encryption key can't be used. Retry once the key can be used again.
3526- `503`: the content can't be served right now, for example because its upload is still in progress or was abandoned. Retry with backoff.
3527- `422` with `error.details.error_code` `multi_file_unavailable`: the version has more than one file. Add `multi_file_format=zip`. A Claude Doc's version with more than one file gets this error either way, because it holds only the web page that displays the Doc. Download the Doc's text with `GET /v1/compliance/apps/code/artifacts/{artifact_id}/content?multi_file_format=zip`.
3528- `422` with `file_set_unavailable`: the request sets `multi_file_format=zip`, the version has more than one file, and one of them has a path the API cannot export. Do not retry.
3529 
3530An error after the download has started stops the body early, with the `200` status already sent. For example, this happens to content stored compressed when it is over 16 MiB once decompressed. For a single file with no `Content-MD5`, the only sign is a transfer that aborts before its last chunk, so treat a download that aborts this way as failed.
3531 
3532A ZIP archive of a version's files holds one top-level folder, named for the Artifact and version. That folder holds a `files/` folder and an index, `files.json`. The index is written last, so treat an archive as incomplete if it cannot be opened or has no `files.json` in its top-level folder.
3533 
3534`files.json` has these fields:
3535 
3536- `artifact_id`: the Artifact ID, as in the request.
3537- `version_id`: the version ID, as in the request.
3538- `title`: the title of the version in the archive, or that version's ID when no title is kept.
3539- `created_at`: when the version was published (RFC 3339, UTC), or null when that is not known.
3540- `files`: one entry for each file under `files/`, with `original_path` (the file's path in the version), `exported_as` (its path in the archive), `sha256` (lowercase hex), `size_bytes` (before compression) and `mime_type`. `exported_as` is the top-level folder, then `files/`, then `original_path`. A name that could not be saved or opened safely on every operating system is changed. Use `exported_as`, not `original_path`, to find a file in the archive.
3541- `omitted_files`: the files left out of the archive, each with `original_path`, `sha256`, `size_bytes` and `mime_type`. They include files the version uses from another Artifact. They also include files copied from the Artifact type the Artifact was made from, such as the app that displays it, when another organization owns that type.
3542 
3543`files` and `omitted_files` together list at most 4,096 files, their `size_bytes` add up to at most 1 GiB, and no file is over 20 MiB.
3544 
35413545#### Path parameters
35423546 
35433547- `artifact_id: string`
from line 3556
35523556 
35533557- `multi_file_format: optional string`
35543558 
3555 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`. Files the Artifact copied from its type (the app that displays every Artifact of that type) are listed under `omitted_files` in the index, and left out of the archive, when an organization other than the Artifact's owns that type. Files the version uses from another Artifact are always listed there and left out. A Claude Doc's version never comes back as a ZIP: it is answered as without this parameter, except that a version with more than one file, one of them with a name the API cannot export, gets 422 `file_set_unavailable`. A version with one file is returned as that file, as without this parameter.
3559 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.
35563560 
35573561#### Headers
35583562 
from line 3580
35763580 
35773581**GET** `/v1/compliance/apps/code/artifacts/{artifact_id}/content`
35783582 
3579Streams an Artifact's current content as the response body. For a
3580Claude Doc, that is the Doc's text as a ZIP archive of Word files, one per
3581text tab, and the request must set `multi_file_format=zip`. For any other
3582Artifact, it is the latest version, as
3583`GET /v1/compliance/apps/code/artifacts/{artifact_id}/versions/{version_id}`
3584returns it.
3583Streams an Artifact's current content as the response body, in chunks with no `Content-Length`.
35853584 
3586Returns 404 for Artifacts that don't exist or that the API key cannot read.
3587Returns 400 with `error.details.error_code` `cmek_key_disabled` when the
3588organization's customer-managed encryption key can't be used, for example
3589because it is disabled or revoked. Returns 503 when the content can't be
3590produced right now; wait the number of seconds in the `Retry-After`
3591header, or retry with backoff when it is absent. For a Claude Doc, a 422's
3592`error.details.error_code` is `multi_file_unavailable` when the request
3593does not set `multi_file_format=zip`, `document_unavailable` when the Doc
3594has no text to export (for example, it has no text tab or is in the trash),
3595`document_too_large` when the export is over 16 MiB, or
3596`cmek_org_unsupported` when the organization uses customer-managed
3597encryption keys and the export can't be served for it right now. For any
3598other Artifact, the 422s are the version download's.
3585For a Claude Doc (an Artifact whose `artifact_type` is `claude_docs`), the request must set `multi_file_format=zip`, and the content is the Doc's text as a ZIP archive of Word files. That ZIP has no `files.json`. It holds one Word file per text tab, in tab order, named `NN-<tab id>.docx`, where `NN` counts from `01`. A Doc with one text tab gets one file, `01-document.docx`.
35993586 
3587For any other Artifact, the content is the latest version. With `multi_file_format=zip`, when the latest version has more than one file, it comes back as a ZIP archive of its files.
3588 
3589Headers: `Content-Type` (`application/zip` for a ZIP archive, otherwise the stored MIME type), `Content-Disposition: attachment; filename*=utf-8''<name>` (RFC 5987), `Cache-Control: no-store, private` and, when available, `Content-MD5` (base64). `<name>` is `{artifact_id}.zip` for a ZIP archive, otherwise `{artifact_id}.txt`, whatever the content is. `Content-MD5` is always on a Claude Doc's ZIP, only on a single file stored uncompressed, and never on a ZIP archive of a version's files. Check the body against it when present.
3590 
3591Errors specific to this download:
3592 
3593- `404`: the Artifact doesn't exist, or the API key cannot read it.
3594- `400` with `error.details.error_code` `cmek_key_disabled`: the organization's customer-managed encryption key can't be used, for example because it is disabled or revoked. Retry once the key can be used again.
3595- `503`: the content can't be produced right now. Wait the number of seconds in the `Retry-After` header, or retry with backoff when it is absent.
3596- `422` with `multi_file_unavailable`: the request does not set `multi_file_format=zip`, and the Artifact is a Claude Doc or its latest version has more than one file. Add the parameter.
3597- `422` with `file_set_unavailable`: the request sets `multi_file_format=zip`, the Artifact is not a Claude Doc, and one of the latest version's files has a path the API cannot export. Do not retry.
3598- `422` with `document_unavailable`: Claude Docs has no document it can export for the Doc, for example because it has no text tab or is in the trash. Retrying will not help unless that changes.
3599- `422` with `document_too_large`: the Doc's export is over 16 MiB. Do not retry.
3600- `422` with `cmek_org_unsupported`: the organization uses customer-managed encryption keys and the export can't be served for it right now. Try again later, and contact Anthropic support if this continues.
3601 
3602An error after the download has started stops the body early, with the `200` status already sent. For example, this happens to content stored compressed when it is over 16 MiB once decompressed. For a single file with no `Content-MD5`, the only sign is a transfer that aborts before its last chunk, so treat a download that aborts this way as failed.
3603 
3604A ZIP archive of a version's files holds one top-level folder, named for the Artifact. That folder holds a `files/` folder and an index, `files.json`. The index is written last, so treat an archive as incomplete if it cannot be opened or has no `files.json` in its top-level folder.
3605 
3606`files.json` has these fields:
3607 
3608- `artifact_id`: the Artifact ID, as in the request.
3609- `version_id`: null.
3610- `title`: the title of the version in the archive, or that version's ID when no title is kept.
3611- `created_at`: when the version was published (RFC 3339, UTC), or null when that is not known.
3612- `files`: one entry for each file under `files/`, with `original_path` (the file's path in the version), `exported_as` (its path in the archive), `sha256` (lowercase hex), `size_bytes` (before compression) and `mime_type`. `exported_as` is the top-level folder, then `files/`, then `original_path`. A name that could not be saved or opened safely on every operating system is changed. Use `exported_as`, not `original_path`, to find a file in the archive.
3613- `omitted_files`: the files left out of the archive, each with `original_path`, `sha256`, `size_bytes` and `mime_type`. They include files the version uses from another Artifact. They also include files copied from the Artifact type the Artifact was made from, such as the app that displays it, when another organization owns that type.
3614 
3615`files` and `omitted_files` together list at most 4,096 files, their `size_bytes` add up to at most 1 GiB, and no file is over 20 MiB.
3616 
36003617#### Path parameters
36013618 
36023619- `artifact_id: string`
from line 3624
36073624 
36083625- `multi_file_format: optional string`
36093626 
3610 Set to `zip`, its only value. A Claude Doc downloads only this way, as a ZIP archive of Word files, one per text tab. For any other Artifact it works as on the version download: when the latest version has more than one file, it comes back as a ZIP archive of its files with an index, `files.json`.
3627 Set to `zip`, its only value. A Claude Doc downloads only this way, as a ZIP archive of Word files, one per text tab. For any other Artifact, when the latest version has more than one file, it comes back as a ZIP archive of its files with an index, `files.json`.
36113628 
36123629#### Headers
36133630 
Feedback