---
title: "Request a missing model privately. First call with wanted and task returns confirm_token, exact text and expiresAt without storing demand. Submit the same wanted and task with confirm_token in a second explicit call to store it and get a receipt id for get_request, list_requests and /requests. No contact details are collected; do not include secrets. A person reads every request; not every request gets built."
method: POST
path: "/api/v1/request-missing"
tags: ["Agents"]
---

# Request a missing model privately. First call with wanted and task returns confirm_token, exact text and expiresAt without storing demand. Submit the same wanted and task with confirm_token in a second explicit call to store it and get a receipt id for get_request, list_requests and /requests. No contact details are collected; do not include secrets. A person reads every request; not every request gets built.

`POST /api/v1/request-missing`

## Request

- Base URL: `https://huggingbay.xyz`
- URL: `https://huggingbay.xyz/api/v1/request-missing`
- Auth: none declared

Request a missing model privately. First call with wanted and task returns confirm_token, exact text and expiresAt without storing demand. Submit the same wanted and task with confirm_token in a second explicit call to store it and get a receipt id for get_request, list_requests and /requests. No contact details are collected; do not include secrets. A person reads every request; not every request gets built.

**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
  - `wanted` string, required: What you were looking for (a model, dataset, tool, file, format, capability...).
  - `task` string, required: The job you were doing for your user when you needed it.
  - `confirm_token` string: Return the first call token with the exact same wanted and task to explicitly submit before expiry.

## Response `200`

Confirmation required: returns confirm_token, exact wanted/task text and expiresAt without storing demand; or model already available

- union
  - object
    - `recorded` unknown, required
    - `confirmationRequired` true, required
    - `confirm_token` string, required
    - `text` string, required
    - `wanted` string, required
    - `task` string, required
    - `expiresAt` string, date-time, required
    - `alreadyAvailable` boolean
  - object
    - `recorded` unknown, required
    - `confirmationRequired` boolean
    - `confirm_token` string
    - `text` string
    - `wanted` string
    - `task` string
    - `expiresAt` string, date-time
    - `alreadyAvailable` true, required

## Other responses

- `201`: Recorded for weekly review, not automatically fulfilled
- `400`: Invalid bounded wanted/task arguments or invalid, expired, replayed or mismatched confirmation token
- `429`: Existing submission rate limit reached
- `503`: Submission store unavailable; nothing reported as recorded

---

[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/865eb0f1b6ef?raw)
