---
title: "Hosted-file lists (path, sha256, sizeBytes, downloadEndpoint) for up to 50 artifact ids, from memory only; misses are computed in the background."
method: POST
path: "/api/v1/download-plans"
tags: ["Agents"]
---

# Hosted-file lists (path, sha256, sizeBytes, downloadEndpoint) for up to 50 artifact ids, from memory only; misses are computed in the background.

`POST /api/v1/download-plans`

## Request

- Base URL: `https://huggingbay.xyz`
- URL: `https://huggingbay.xyz/api/v1/download-plans`
- Auth: none declared

Hosted-file lists (path, sha256, sizeBytes, downloadEndpoint) for up to 50 artifact ids, from memory only; misses are computed in the background.

**Inputs.** No path or query fields are required. The request body schema lists accepted fields and required values.

**Outputs.** See each status below for its media type, schema and headers. A missing record or unavailable capability is not a successful empty result.

**Errors.** API JSON failures use the documented response schema. Read code, message and next; retry only when the response allows it. Auth, invalid input and missing records need a caller change.

**Rate limits.** Write and protocol operations can have separate route-specific limits. Read Retry-After and retry_after_s when present; do not infer a write allowance from the public read budget.

**Example setup.** This example is not executed by documentation checks. Review the operation and obtain any required user consent before sending it.

## Request body

- object
  - `artifacts` string[], required
  - `tool` string
  - `detail` 'full' | 'compact'
  - `snapshot` string

## Response `200`

Batch file lists: every row is hit, stale (labelled), pending (retry after retryAfterSeconds), error or deferred. Served from memory only.

- object

## Other responses

- `400`: Invalid body (row limits, 32 KB body cap) or invalid snapshot
- `410`: snapshot_expired: the pinned snapshot is older than the retained window; next names a fresh read
- `429`: Rate limited; honor Retry-After

## Changes

- **2026-10-26** `554a75e31930`: 3 warning
  - added the new `not-served` enum value to the `status/anyOf[subschema #2]/` response property for the response status `400`
  - added the new `not-served` enum value to the `status/anyOf[subschema #2]/` response property for the response status `410`
  - added the new `not-served` enum value to the `status/anyOf[subschema #2]/` response property for the response status `429`
- **2026-10-21** `906c41a6caf3`: 3 breaking, 3 info
  - the `status` response's property type changed from `integer` to no type for status `400`
  - the `status` response's property type changed from `integer` to no type for status `410`
  - the `status` response's property type changed from `integer` to no type for status `429`
  - added `subschema #1, subschema #2` to the `status` response property `anyOf` list for the response status `400`
  - …2 more
- **2026-10-20** `ea7ba26b1e27`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/huggingbay/apis/hugging-bay-public-api/changes/api/v1/download-plans/post.md)

---

[API](https://skmtc.dev/huggingbay/apis/hugging-bay-public-api.md) - [All operations](https://skmtc.dev/huggingbay/apis/hugging-bay-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/huggingbay/apis/hugging-bay-public-api/revisions/c5016474b723?raw)
