/collections/{id}/downloadScope collections:downloadThe signed, hash-verifiable ZIP. Signed or refused: there is no third outcome, and you never receive an archive still in the candidate state. Verify it against the fingerprint from GET /export/trust, never against one inside the archive.
curl -sS -X GET https://tavonel.com/api/v1/collections/{id}/download \
-H "Authorization: Bearer $TAVONEL_API_KEY"import os
import requests
response = requests.request(
"GET",
"https://tavonel.com/api/v1/collections/{id}/download",
headers={"Authorization": "Bearer " + os.environ["TAVONEL_API_KEY"]},
timeout=30,
)
response.raise_for_status()
print(response.json())const response = await fetch("https://tavonel.com/api/v1/collections/{id}/download", {
method: "GET",
headers: { authorization: `Bearer ${process.env.TAVONEL_API_KEY}` },
});
if (!response.ok) throw new Error(`${response.status} ${(await response.json()).code}`);
console.log(await response.json());| Status | Response |
|---|---|
200 | The signed package. manifest/export-manifest.json carries a digest for every file and signatures/export-manifest.ed25519.json is the detached Ed25519 signature over those bytes. |
400 | COLLECTION_ID_INVALID — The collection id did not match collection-<32 hex>. |
401 | AUTH_REQUIRED — No credential was presented, or the bearer token is not a key TAVONEL issued. This is what an unauthenticated request to any scoped route returns. |
404 | NOT_FOUND — The addressed resource does not exist in this workspace. Deliberately uniform across tenants: the same answer for an id that is not yours and an id that is nobody's. |
422 | COLLECTION_PACKAGE_INVALID — The package failed its own validation, so it was not served. INVALID_SIGNATURE — The signature did not verify against the key it names. EVIDENCE_DANGLING — An object cites evidence that is not in the package. |
503 | EXPORT_SIGNER_NOT_CONFIGURED — No signing key is configured, so neither a signed archive nor a fingerprint can be produced. GET /export/trust answers this rather than a fingerprint nobody can verify against. SIGNATURE_READ_FAILED — The detached signature could not be read. R2_NOT_CONFIGURED — Object storage is not configured. |