# Changelog API

> Read trackagoat's changelog as JSON, without an API key.

## GET /api/v2/changelog

Returns the entries on the [changelog](https://www.trackagoat.com/docs/platform/changelog.md), newest first. Use it to show what's new in your own tools, or to let an agent answer "what changed in trackagoat?". Over MCP the same data comes from the [`get_changelog` tool](https://www.trackagoat.com/docs/agents/mcp.md#tools).

This endpoint is public: it needs no API key and doesn't count toward your org's daily API request limit. It is rate-limited to 60 requests a minute per IP address. Responses are cached, and new entries appear when we ship.

### Query parameters

| Parameter | Type | Description |
|-----------|------|-------------|
| `since` | `YYYY-MM-DD` | Only entries dated on or after this day. |
| `q` | string | Search the title and text, case-insensitive. Every word must appear: `q=instagram payouts` returns entries that mention both. |
| `limit` | integer | Entries per page, 1 to 100. Default 20. |
| `cursor` | string | `meta.nextCursor` from the previous page. Keep the same `since` and `q`. |

### Request

```bash
curl "https://www.trackagoat.com/api/v2/changelog?since=2026-10-01&limit=2"
```

### Response

```json
{
  "data": [
    {
      "date": "2026-10-10",
      "title": "Ask your agent what's new in trackagoat",
      "anchor": "2026-10-10-ask-your-agent-whats-new-in-trackagoat",
      "url": "https://www.trackagoat.com/docs/platform/changelog#2026-10-10-ask-your-agent-whats-new-in-trackagoat",
      "body_markdown": "The changelog is now available to AI agents and your own tools. ..."
    },
    {
      "date": "2026-10-09",
      "title": "Clearer setup, invitation and shared creator pages",
      "anchor": "2026-10-09-clearer-setup-invitation-and-shared-creator-pages",
      "url": "https://www.trackagoat.com/docs/platform/changelog#2026-10-09-clearer-setup-invitation-and-shared-creator-pages",
      "body_markdown": "Account setup now shows which step you are on ..."
    }
  ],
  "error": null,
  "meta": {
    "total": 61,
    "hasMore": true,
    "nextCursor": "2026-10-09-clearer-setup-invitation-and-shared-creator-pages",
    "changelog_url": "https://www.trackagoat.com/docs/platform/changelog"
  }
}
```

| Field | Description |
|-------|-------------|
| `date` | The day the change shipped. |
| `title` | The entry's heading. |
| `anchor` | The heading's id on the changelog page. |
| `url` | Link to the entry in the docs. |
| `body_markdown` | The entry's text as Markdown. Links are absolute. |
| `meta.total` | Number of entries that match `since` and `q`. |
| `meta.hasMore` / `meta.nextCursor` | Pass `nextCursor` as `cursor` to get the next page. It is `null` on the last page. |

### Errors

| Status | `meta.code` | When |
|--------|-------------|------|
| 400 | `invalid_query` | `since` isn't a `YYYY-MM-DD` date, or `limit` is outside 1 to 100. |
| 400 | `invalid_cursor` | The cursor doesn't match an entry for this `since` and `q`. Start again without `cursor`. |
| 429 | `rate_limit_exceeded` | More than 60 requests in a minute from your IP. Wait for the `Retry-After` header. |

---
Source: https://www.trackagoat.com/docs/api-reference/changelog
