# Changelog State API – Foundry Vendor Release Feed

> Changelog State API – Foundry Vendor Release Feed 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-10-17).

Returns structured recent release entries for the Foundry vendor, paginated newest-first, with cursor-based navigation.

## Facts

- Endpoint: GET https://changelog-state-api.replit.app/api/monitors/foundry?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-17
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/changelog-state-api-foundry-vendor-release-feed-63d90b7d
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_H4F1TqtteMlqzEpimRkPr

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-foundry-vendor-release-feed-63d90b7d
```

Example prompt: Can you pull the 10 most recent structured release entries for Foundry from the changelog tracker so I can see what they've shipped lately?

## When to prefer this

Use this endpoint when you specifically need structured, paginated release data for the Foundry vendor and want to walk changelog history reliably without offsets shifting under you. Prefer it over scraping Foundry's own site when you need machine-readable, consistently shaped records and cursor-stable pagination.

## Known failure modes

- Invalid or malformed cursor token returns HTTP 400 and is not charged
- Cursor issued for a different vendor returns HTTP 400
- Limit out of range (below 1 or above 50) returns a validation error
- Foundry slug not recognized or not tracked returns an error or empty result
- Network or service unavailability on the Replit host returns 5xx

## How this service works

Structured recent releases for one tracked vendor.

## Output

A JSON object containing a list of structured release entries for the Foundry vendor (newest first), each with release metadata such as version, date, and description, plus an opaque nextCursor token for fetching the next page.

## 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 that names no vendor and never returns data. 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-foundry-vendor-release-feed-63d90b7d/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)
