---
title: "Changelog and versions"
description: "How the Gravv API is versioned, the dated changes you need to act on, and the behaviors these docs used to describe wrongly."
---
This page lists the changes that need something from you: dated API changes, retired routes, and places where these docs used to describe behavior the API does not have. If you built on the old text, check the rows below against your integration.

**Example.** Your collection handler branches on `onramp_status`. The first entry below says those values change on or after 31 October 2026, when `onramp_status` takes the values that `new_onramp_status` carries today. You change the handler to read `new_onramp_status` when it is present and `onramp_status` when it is not, and it keeps working through the change.

## How versions work

- The version is part of the path: `https://api.gravv.xyz/v1/…` or `https://api.gravv.xyz/v2/…`. There is no version header to send.
- Most routes exist only under `/v1`. `/v2` covers accounts and account applications. See [Accounts](/platform/accounts/overview).

## Changes to act on

| When | Change | What to do |
| :-- | :-- | :-- |
| On or after 31 October 2026 | The values in a collection's `onramp_status` change, and Gravv renames two collection event types | Read `new_onramp_status` when it is present and `onramp_status` when it is not, and accept both event names. See [Status label change](/platform/webhooks/event-catalogue#status-label-change) |
| 16 October 2026 | The v1 accounts API is no longer documented, except the three calls that open and read your card account | Use the v2 accounts API. See [Accounts](/platform/accounts/overview). For the card account, see [Card account](/api-reference/card-account/overview) |
| 16 October 2026 | Gravv supports accounts and wallets on five networks: Stellar, Polygon, Ethereum, Avalanche and Solana. Gravv no longer lists Base or the other networks | Open new accounts and wallets on one of the five. See [Pay-in methods](/getting-started/payments-and-supported-countries#pay-in-methods) |
| Now | Payment links are retired | Take card payments through [Collections](/platform/collections/collections-overview). See [Payment links (retired)](/api-reference/payment-links/overview) |
| Now | Gravv publishes the MCP server as `@gravv-infra/mcp`. Earlier releases were `@gravvfi/mcp` | Install `@gravv-infra/mcp`. See [Gravv MCP server](/tools/mcp-server) |

## Documentation corrections

These pages described behavior the API does not have. They now match the API.

| Area | The docs used to say | What the API does |
| :-- | :-- | :-- |
| Rate limits | 10 requests a minute | 600 requests a minute per business, with bursts of up to 50. See [Rate limits](/getting-started/rate-limits) |
| Errors | Every error is a `400` | Status codes differ by route and cause. See [Errors](/getting-started/errors) |
| Idempotency | One key could cover several creates | Send a new `Idempotency-Key` for each POST. See [Idempotent requests](/getting-started/idempotent-requests) |
| Uploads | Keep every file under 500 KB, in live too | Each upload route has its own live limit, from 700 KB to 10 MB. The 500 KB rule is for sandbox, which refuses requests from about 600 KB. See [Upload sizes](/getting-started/formats#upload-sizes) |
| v2 accounts | Wait for `account.activated` | A v2 account sends `applications.accounts.completed`, not `account.activated`. See [Track activation](/platform/accounts/track-account-activation) |
| Cards | Back cards with an ordinary account | One account of type `card` per business backs every card. See [Set up your card account](/platform/cards/set-up-your-card-account) |
| Card status | Send only `status` | Send `limit` with every status update. Leaving it out sets the daily limit to 0. See [Manage card status](/platform/cards/manage-card-status) |
| Card PIN | Set the PIN with `PATCH` | It is a `PUT`. See [Manage card PIN](/platform/cards/manage-card-pin) |
| FX | Spot trades, market and limit orders, and a second approval | An exchange is a quote followed by an OTC order. An order you place with an API key needs no approval. See [Foreign exchange](/platform/foreign-exchange/overview) |
| Transactions export | Up to 50,000 rows | At most the 10 newest matching rows. See [Pagination](/getting-started/pagination#lists-with-no-paging) |
| Settlement instructions | 20 a page by default, up to 100 | 10 a page by default, with no maximum. See [Pagination](/getting-started/pagination) |
| Webhooks | Deduplicate on `X-Event-ID`, with fixed retry numbers | Deduplicate on the body's `event_id`, and read `max_retries` on the event. See [Webhooks](/platform/webhooks/webhooks-overview) |
| Networks and methods | Sui and Tron accounts, and mobile money collections | Only the networks, rails and methods each page labels **Available** work today |
