---
title: "Resolve up to 100 references to compact catalog metadata."
method: POST
path: "/api/v1/resolve/batch"
tags: ["Artifacts", "Agent Docs"]
---

# Resolve up to 100 references to compact catalog metadata.

`POST /api/v1/resolve/batch`

## Request

- Base URL: `https://huggingbay.xyz`
- URL: `https://huggingbay.xyz/api/v1/resolve/batch`
- Auth: none declared

Rows retain input order, including duplicates. Each row costs one rate-limit unit. Maximum body: 32768 bytes; each input: 256 UTF-8 bytes. Compact results above 24000 bytes require splitting the batch (413). Uses the caller's existing visibility. Hosted is inventory metadata, not download READY, byte verification or run authority. Unknown means unavailable, stale, unsupported or deferred by the batch work budget; retry it rather than treating it as absent. No demand-ledger admission occurs.

**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
  - `repos` string[], required

## Response `200`

Compact metadata; degraded is true if any row is unknown.

- object
  - `degraded` boolean
  - `results` object[], required
    - `input` string, required
    - `artifactId` string, nullable, required
    - `state` 'hosted' | 'listed' | 'absent' | 'unknown', required
    - `hostedFiles` integer, nullable, required
    - `error` string

## Other responses

- `400`: Invalid JSON or repos array.
- `413`: Request or compact result exceeds its byte limit; split the batch.
- `429`: Row-weighted rate limit exceeded; existing refusal envelope and Retry-After apply.

---

[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/63c474bf0fe4?raw)
