# CBR FX Rates via MarketTwits x402

> CBR FX Rates via MarketTwits x402 is a paid API for AI agents from x402-markettwits-news.onrender.com, paid per call via x402, $0.0015/call, status unknown (last checked 2026-10-23).

Returns official Central Bank of Russia (CBR) foreign exchange rates against the Russian Ruble for any date, with optional filtering by currency code.

## Facts

- Endpoint: GET https://x402-markettwits-news.onrender.com/ru/fx?utm_source=zero.xyz
- Price: $0.0015/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-23
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/cbr-fx-rates-via-markettwits-x402-c9f00267
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_Gzfu-18VVwDHIDOwUmDe-

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 cbr-fx-rates-via-markettwits-x402-c9f00267
```

Example prompt: What are the official Bank of Russia exchange rates for USD, EUR, and CNY against the ruble today? Pull the latest CBR rates and show me the daily change too.

## When to prefer this

Use this endpoint when you need official, authoritative Bank of Russia FX rates (not market/interbank rates) denominated in RUB, especially for compliance, accounting, or Russian market trading workflows. It supports historical date lookup back to 1992 and filtering by up to 30 currency codes. Prefer this over generic FX APIs when the CBR official rate specifically is required (e.g. for Russian tax/accounting purposes or MOEX-adjacent calculations).

## Known failure modes

- Requested date outside CBR historical range (before 1992-07-01 or beyond tomorrow) — returns error or empty
- Invalid currency code format — schema validation error
- CBR upstream unavailable — stale cached response returned with stale:true flag
- Currency code not quoted by CBR — listed in missing[] array rather than rates[]
- Network timeout from render.com hosting — transient 5xx error

## How this service works

Real-time English translations of MarketTwits (top Russian financial Telegram channel). Covers macro, central banks, oil/commodities, geopolitics, equities and crypto. Items are tagged high/medium importance and updated every few minutes. Ideal for trading bots and news agents. Also sells Russian market data (CBR FX and key rate, MOEX quotes/indices/movers, Rosstat fuel prices), public Telegram channel reading/search and Wildberries/Ozon product data.

## Output

A JSON object with base currency (RUB), the rate date, and an array of currency entries each containing: ISO code, Russian name, nominal, RUB value per nominal, RUB per unit, daily change in RUB and percent, and previous day's rate. Also includes metadata: source URL, fetch timestamp, cached/stale flags, previous date, and any missing/unquoted codes.

## 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"
    },
    "queryParams": {
     "type": "object",
     "required": [],
     "properties": {
      "date": {
       "type": "string",
       "format": "date",
       "description": "Rates date YYYY-MM-DD (default: latest set by CBR; 1992-07-01 .. tomorrow)"
      },
      "codes": {
       "type": "string",
       "pattern": "^[A-Za-z]{3}(,[A-Za-z]{3}){0,29}$",
       "description": "Comma-separated ISO currency codes (default: all ~55 CBR currencies), e.g. USD,EUR,CNY"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "required": [
      "base",
      "date",
      "count",
      "rates"
     ],
     "properties": {
      "via": {
       "enum": [
        "direct",
        "proxy"
       ],
       "type": "string"
      },
      "base": {
       "enum": [
        "RUB"
       ],
       "type": "string"
      },
      "date": {
       "type": "string",
       "description": "Date the official rates are set for"
      },
      "note": {
       "type": "string"
      },
      "count": {
       "type": "integer"
      },
      "rates": {
       "type": "array",
       "items": {
        "type": "object",
        "required": [
         "code",
         "nominal",
         "value",
         "per_unit"
        ],
        "properties": {
         "code": {
          "type": "string"
         },
         "name": {
          "type": [
           "string",
           "null"
          ]
         },
         "value": {
          "type": "number",
          "description": "RUB per `nominal` units"
         },
         "change": {
          "type": [
           "number",
           "null"
          ]
         },
         "nominal": {
          "type": "integer"
         },
         "per_unit": {
          "type": "number",
          "description": "RUB per 1 unit"
         },
         "change_pct": {
          "type": [
           "number",
           "null"
          ]
         },
         "prev_per_unit": {
          "typ
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "via": "direct",
  "base": "RUB",
  "date": "2026-10-22",
  "note": "Official CBR rate",
  "count": 2,
  "rates": [
   {
    "code": "USD",
    "name": "Доллар США",
    "value": 81.9739,
    "change": -0.914,
    "nominal": 1,
    "per_unit": 81.9739,
    "change_pct": -1.103,
    "prev_per_unit": 82.8879
   },
   {
    "code": "CNY",
    "name": "Юань",
    "value": 12.2806,
    "change": -0.0902,
    "nominal": 1,
    "per_unit": 12.2806,
    "change_pct": -0.729,
    "prev_per_unit": 12.3708
   }
  ],
  "cached": false,
  "source": "Bank of Russia (cbr.ru/scripts/XML_daily.asp)",
  "missing": [],
  "fetched_at": "2026-10-22T03:51:31Z",
  "previous_date": "2026-10-21",
  "requested_date": null
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/cbr-fx-rates-via-markettwits-x402-c9f00267/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402-markettwits-news.onrender.com](https://www.zero.xyz/host/x402-markettwits-news.onrender.com/llms.txt)
