# Changelog State API – shadcn Releases

> Changelog State API – shadcn Releases is a paid API for AI agents from changelog-state-api.replit.app, paid per call via x402, $0.01/call, status unknown (last checked 2026-09-14).

Returns structured recent release entries for the shadcn UI component library, paginated and newest-first.

## Facts

- Endpoint: GET https://changelog-state-api.replit.app/api/monitors/shadcn
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/changelog-state-api-shadcn-releases-78551b06
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_L-KNfPZlf5auDbV4WuDOI

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability changelog-state-api-shadcn-releases-78551b06
```

Example prompt: What are the latest releases from shadcn? Grab the 10 most recent ones and show me the structured release details.

## When to prefer this

Use this endpoint when you specifically need structured, paginated release data for shadcn UI and want machine-readable changelog entries rather than raw HTML or unstructured text. Prefer this over general web scraping when you need reliable pagination, stable schema, and incremental walks through release history without re-reading already-seen entries.

## Known failure modes

- 400 Bad Request – malformed or wrong-vendor cursor token supplied
- 404 Not Found – literal path placeholder '{slug}' used instead of a real vendor slug
- Rate or payment failure if x402 payment is not fulfilled
- Empty result set if shadcn has no tracked releases yet
- Cursor from a different vendor slug returns 400

## How this service works

Structured recent releases for one tracked vendor.

## Output

A JSON response containing an array of structured release entries for shadcn (newest first), each with metadata such as version, publish date, and release content, plus a nextCursor token for fetching subsequent pages.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "pathParams": {
     "type": "object",
     "required": [
      "slug"
     ],
     "properties": {
      "slug": {
       "type": "string",
       "example": "openai",
       "pattern": "^[a-z0-9][a-z0-9-]*$",
       "maxLength": 64,
       "minLength": 1,
       "description": "Vendor slug, lowercase alphanumeric with dashes. Take one from GET /api/monitors and substitute it into the path: `{slug}` is a placeholder, and requesting those literal characters returns 404. Worked example: GET /api/monitors/openai."
      }
     }
    },
    "queryParams": {
     "type": "object",
     "properties": {
      "limit": {
       "type": "integer",
       "default": 5,
       "maximum": 50,
       "minimum": 1,
       "description": "Maximum number of release entries to return on this page. The page size, not a total: use `cursor` to walk past it."
      },
      "cursor": {
       "type": "string",
       "default": "",
       "maxLength": 512,
       "description": "Opaque next-page token, copied verbatim from `nextCursor` on the previous response for this same vendor. Omit it — or send the empty string — to start at the newest entry. It names a position in the newest-first order rather than an offset, so a page you have already read never shifts under you: an entry that arrives mid-walk takes the place its own publish date gives it — above the cursor, on ground you have already covered, or below it, still ahead of you — instead of renumbering every page behind it. It does not expire; a walk can be paused and resumed. Do not construct or edit one: a token that is malformed, or was issued for a different vendor, is refused with 400 and is never charged."
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "enum": [
      "json"
     ],
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   },
   "description": "Full structured recent releases (paid)"
  }
 },
 "description": "Call shape for GET /api/monitors/{slug}."
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/changelog-state-api-shadcn-releases-78551b06/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from changelog-state-api.replit.app](https://www.zero.xyz/host/changelog-state-api.replit.app/llms.txt)
