Search and list capabilities (public, no key)
Anonymous catalog search: no account, API key, MCP connection or credits. Example: GET /api/v1/capabilities?q=scan+a+repository+for+secrets&view=compact. meta carries total, offset, limit, nextOffset, a ready next URL and freshness {source, generatedAt, catalogUpdatedAt, maxAgeSeconds}; responses revalidate on every request (Cache-Control: public, no-cache, must-revalidate). Follow meta.next until it is null to read all entries. When nothing matches strongly, data is empty, meta.match_quality is no_strong_match and meta.nearest lists the closest capabilities. Each compact row carries reference (stable handle or ID), id, displayName, summary, category, useCases, tags, deliveryType, version, digest, publishedAt, updatedAt, availability, language, runsIn, compatibility, a limitation, licensing {status, basis}, priceCredits with priceUnit, access {discover, next}, next, profile (JSON), page (HTML) and evidence links; the profile holds the full record. Acquisition, downloads, execution and account operations need a scoped key and are named in access.next; searching never charges. Clients without a key share a per-IP request quota; 429 responses carry Retry-After. Published capabilities carry a stable public handle (@owner/slug), an internal cap_ ID and a routing ID; declared-but-unpublished capabilities are listed too, marked published: false. Public, no key. Filter with ?q=. Each source-package row carries a concise licensing summary: declaredLicense is what the publisher wrote, publicationStatus is what the policy found when the release published, and status is how it reads under the policy in force now. These are reported separately on purpose and are evidence against a configured policy, not legal advice; full receipts live on the capability profile. Licensing filters are optional, and a filtered response withholds entries that carry no licensing evidence rather than passing them through.
Request
- Base URL: https://api.daystruct.ai
- URL: https://api.daystruct.ai/api/v1/capabilities
- Auth: one of:
- none
- HTTP bearer
Query parameters
Task-oriented lexical ranking across identifiers, descriptions, contents and reviewed topics. Search matches include their terms; relevance is not proof of suitability.
compact returns ranked descriptors with prerequisites, limitations, pricing and profile links, without test logs; eight per page unless limit is given. Default full preserves catalog metadata and returns at most 100 entries per page. Follow meta.next until null to enumerate the whole catalog.
Page size, 1-100. Out-of-range or non-integer values return 400 invalid_pagination.
Zero-based position in the ranked result set; follow meta.next or meta.nextOffset for the next page.
Comma-separated categories, case-insensitive, e.g. security,software.
Comma-separated delivery types: source_package, source_kit, hosted_function, provider_execution, declared.
Comma-separated: validated, review_required, blocked, legacy_unvalidated. Matches the interpretation in force under the current policy.
Comma-separated SPDX identifiers the licensing evidence established, e.g. MIT,Apache-2.0. Not the publisher's declared string.
Comma-separated permission bases: verified-text, verified-upstream-api, declared, unverified.
Comma-separated: current, policy_outdated, legacy_unvalidated. policy_outdated means the stored receipt was decided under a different policy version; it is not a re-evaluation.
none returns only releases with no unresolved licensing items.
Whether reciprocal or copyleft terms were found in the licensing evidence.
Bundles whose pinned members each carried a validated receipt when the bundle published. Recorded evidence, not a live re-check of member state.
Response
Ranked capability page with pagination and freshness meta
Changes
No recorded changes to this operation across all 2 revisions of this API.