Skip to content

Catalog Capability

The Catalog capability enables agents to discover publishers and search content before accessing it. This fills the "discovery gap" — while Content Access assumes you already have a post ID, the Catalog enables scenarios like "find me AI newsletters under $10/month" that lead to subscription and access.

Following UCP's catalog pattern, UCAP splits the catalog into two independent capabilities that implementers can adopt separately:

Capability ID Description
Catalog Search dev.ucap.content.catalog.search Free-text search with filters and pagination
Catalog Lookup dev.ucap.content.catalog.lookup Direct lookup by publication or post ID

Motivation

Without a standardized catalog interface:

  • Agents cannot discover what content is available
  • Every integration requires custom discovery mechanisms
  • There's no way to search across multiple publishers

Data Structures

Publication

A publication represents a publisher's content collection (analogous to UCP's Product).

Field Type Description
id string Unique publication identifier
slug string URL-friendly identifier
title string Publication name
description string Publisher description
url string Canonical URL
category string Primary category
price PriceRange Price range (min/max across tiers)
media[] array Images, logos (first = featured)
tiers[] array Subscription options (first = featured)
rating object Aggregate agent ratings (optional)
post_count integer Total posts available
language string Primary content language (BCP 47)
metadata object Publisher-defined extensions

Post

A post represents a single piece of content (analogous to UCP's Variant).

Field Type Description
id string Post identifier (used as post_id in content access)
external_id string Source platform ID (e.g., Patreon post ID)
title string Post title
excerpt string Preview text
published_at string Publication timestamp (RFC 3339)
min_tier string Minimum tier required for access
category string/array Post category or tags
media[] array Featured images
word_count integer Content length
reading_time_minutes integer Estimated read time
metadata object Post-specific extensions

Context Object

The context object allows agents to specify preferences that affect search and display.

{
  "context": {
    "language": "en",
    "currency": "USD",
    "country": "US",
    "intent": "research on AI agent architectures"
  }
}
Field Type Description Example
language string Preferred content language (BCP 47) "en", "es", "fr-CA"
currency string Preferred price display currency (ISO 4217) "USD", "EUR"
country string Agent's operating region (ISO 3166-1 alpha-2) "US", "GB"
intent string Semantic description of search goal "find weekly AI newsletters"

Extensions

The catalog capability is designed for extension. Publishers and platforms can add domain-specific fields via the metadata object without protocol changes.

Planned Extensions

Extension Capability ID Description
Topics dev.ucap.content.catalog.topics Detailed topic/tag taxonomy
Freshness dev.ucap.content.catalog.freshness Content recency signals
Ratings dev.ucap.content.catalog.ratings Agent ratings and reviews
Recommendations dev.ucap.content.catalog.recommendations Personalized suggestions