---
title: "Common-path compatibility alias for bounded artifact search."
method: GET
path: "/api/search"
tags: ["Artifacts", "Agent Docs"]
deprecated: true
---

# Common-path compatibility alias for bounded artifact search.

`GET /api/search`

## Request

- Base URL: `https://huggingbay.xyz`
- URL: `https://huggingbay.xyz/api/search`
- Auth: none declared

> **Deprecated.**

Alias of /api/v1/search (recorded; identical handler). Prefer the recorded path: this one already answers with Deprecation and Sunset headers. Internal alias for /api/artifacts. It applies summary=1 and limit=20 when omitted, preserves the public artifact-search filters, and never redirects or exposes private rows.

**Inputs.** Path, query and header fields are listed below. No request body is required.

**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.** Public read budgets apply by client IP and route group. This operation can have a smaller route-specific budget. Read Retry-After on 429 or retryable 503 responses.

## Query parameters

- `q` string
- `type` string
- `license` string
- `task` string
- `size` 'small' | 'medium' | 'large'
- `format` string
- `source` string
- `hosting` string
- `worksWith` string
- `reviewStatus` 'first-review' | 'needs-evidence' | 'reviewed' | 'benchmark'
- `commercial` string
- `semantic` '1'
- `explain` '1'
- `sort` string
- `limit` integer
- `cursor` string
- `compat` 'containment'

## Response `200`

Bounded public artifact page

- ArtifactPage
  - `rows` ArtifactSummary[], required (unresolved $ref)
  - `unknownSizeExcluded` integer: Matching records excluded by the size filter because the default download has no complete recorded byte size. Counted before pagination with the other query filters applied.
  - `total` number, required
  - `limit` number, required
  - `cursor` string, required
  - `nextCursor` string, nullable, required
  - `facets` FacetCounts (unresolved $ref)
  - `facetsApproximate` boolean: True when facet counts cover a bounded search candidate set or returned page rather than the complete matching catalog.
  - `facetsScope` 'bounded-search-candidates' | 'returned-search-page' | 'degraded-fallback-results' | 'no-match'
  - `facetsPartial` boolean: True when facets cover only the returned page because complete matching-catalog facet counts were unavailable within the bounded search deadline.
  - `facetsUnavailable` boolean: True when no facet counts could be derived because the bounded result page was empty and no complete cached facet result was available.
  - `facetsGeneratedAt` string, date-time: Timestamp for the returned complete or page-scoped facet result.
  - `estimatedTotal` boolean: True when total is bounded or estimated and must not be treated as the complete matching catalog count. Within one query the total is stable across every cursor page.
  - `degraded` boolean: True only when the response came from a degraded, stale, or fallback catalog read after a backend error. A well-formed query with no matches is degraded:false, partial:false, total:0 with reason:"no_match".
  - `partial` boolean: True when returned rows may omit matching catalog entries because of a backend error; zero rows or totals are then not authoritative. Never set on a clean no-match page.
  - `reason` 'no_match' | 'cursor_past_end': Why a healthy response carries zero rows: no_match (nothing matched; total is 0) or cursor_past_end (the cursor is beyond the stable total; nextCursor is null).
  - `retryable` boolean: True when retrying may recover a more complete catalog response.
  - `retryAfterSeconds` integer: Suggested minimum delay before retrying a degraded catalog response.
  - `warning` string
  - `fastPath` string
  - `recommendation` object
    - `action` string, required
    - `filters` string[], required
    - `message` string, required
  - `explain` object
    - `query` string, required
    - `tokens` string[], required
    - `expandedTokenGroups` array[], required
      - string[]
    - `mode` string, required
    - `note` string
    - `semantic` object
  - `generatedAt` string, required

---

[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)
