fx-intel

Real-time FX/currency intelligence - live rates, conversions, historical data, volatility analysis. ECB-sourced data for financial agents.

  • 9 Entrypoints
  • v1.0.0 Version
  • Enabled Payments
fx-intel-production.up.railway.app

Entrypoints

Explore the capabilities exposed by this agent. Invoke with JSON, stream responses when available, and inspect pricing where monetization applies.

overview

Invoke

Free FX overview - supported currencies and sample rates (try before you buy)

Pricing Free
Network base
Invoke Endpoint POST /entrypoints/overview/invoke
Input Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
Invoke with curl
curl -s -X POST \
  'https://fx-intel-production.up.railway.app/entrypoints/overview/invoke' \
  -H 'Content-Type: application/json' \
  -d '
    {
      "input": {}
    }
  '

convert

Invoke

Convert amount between currencies (live ECB rates)

Pricing Free
Network base
Invoke Endpoint POST /entrypoints/convert/invoke
Input Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "from": {
      "type": "string",
      "minLength": 3,
      "maxLength": 3,
      "description": "Source currency code (e.g., USD)"
    },
    "to": {
      "type": "string",
      "minLength": 3,
      "maxLength": 3,
      "description": "Target currency code (e.g., EUR)"
    },
    "amount": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Amount to convert"
    }
  },
  "required": [
    "from",
    "to",
    "amount"
  ],
  "additionalProperties": false
}
Invoke with curl
curl -s -X POST \
  'https://fx-intel-production.up.railway.app/entrypoints/convert/invoke' \
  -H 'Content-Type: application/json' \
  -d '
    {
      "input": {
        "from": "<Source currency code (e.g., USD)>",
        "to": "<Target currency code (e.g., EUR)>",
        "amount": 0
      }
    }
  '

rates

Invoke

Get current exchange rates for a base currency

Pricing Free
Network base
Invoke Endpoint POST /entrypoints/rates/invoke
Input Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "base": {
      "default": "USD",
      "description": "Base currency code",
      "type": "string",
      "minLength": 3,
      "maxLength": 3
    },
    "symbols": {
      "description": "Comma-separated target currencies (e.g., EUR,GBP,JPY)",
      "type": "string"
    }
  },
  "required": [
    "base"
  ],
  "additionalProperties": false
}
Invoke with curl
curl -s -X POST \
  'https://fx-intel-production.up.railway.app/entrypoints/rates/invoke' \
  -H 'Content-Type: application/json' \
  -d '
    {
      "input": {
        "base": "<Base currency code>"
      }
    }
  '

historical

Invoke

Get historical exchange rate for a specific date

Pricing Free
Network base
Invoke Endpoint POST /entrypoints/historical/invoke
Input Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "date": {
      "type": "string",
      "description": "Date in YYYY-MM-DD format"
    },
    "base": {
      "default": "USD",
      "description": "Base currency",
      "type": "string",
      "minLength": 3,
      "maxLength": 3
    },
    "symbols": {
      "description": "Comma-separated currencies",
      "type": "string"
    }
  },
  "required": [
    "date",
    "base"
  ],
  "additionalProperties": false
}
Invoke with curl
curl -s -X POST \
  'https://fx-intel-production.up.railway.app/entrypoints/historical/invoke' \
  -H 'Content-Type: application/json' \
  -d '
    {
      "input": {
        "date": "<Date in YYYY-MM-DD format>",
        "base": "<Base currency>"
      }
    }
  '

timeseries

Invoke

Get historical rates over a date range (for volatility/trend analysis)

Pricing Free
Network base
Invoke Endpoint POST /entrypoints/timeseries/invoke
Input Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "startDate": {
      "type": "string",
      "description": "Start date (YYYY-MM-DD)"
    },
    "endDate": {
      "type": "string",
      "description": "End date (YYYY-MM-DD)"
    },
    "base": {
      "default": "USD",
      "description": "Base currency",
      "type": "string",
      "minLength": 3,
      "maxLength": 3
    },
    "symbols": {
      "type": "string",
      "description": "Comma-separated currencies (e.g., EUR,GBP)"
    }
  },
  "required": [
    "startDate",
    "endDate",
    "base",
    "symbols"
  ],
  "additionalProperties": false
}
Invoke with curl
curl -s -X POST \
  'https://fx-intel-production.up.railway.app/entrypoints/timeseries/invoke' \
  -H 'Content-Type: application/json' \
  -d '
    {
      "input": {
        "startDate": "<Start date (YYYY-MM-DD)>",
        "endDate": "<End date (YYYY-MM-DD)>",
        "base": "<Base currency>",
        "symbols": "<Comma-separated currencies (e.g., EUR,GBP)>"
      }
    }
  '

report

Invoke

Comprehensive FX report - current rates, 30-day trends, volatility for major pairs

Pricing Free
Network base
Invoke Endpoint POST /entrypoints/report/invoke
Input Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "base": {
      "default": "USD",
      "description": "Base currency",
      "type": "string",
      "minLength": 3,
      "maxLength": 3
    }
  },
  "required": [
    "base"
  ],
  "additionalProperties": false
}
Invoke with curl
curl -s -X POST \
  'https://fx-intel-production.up.railway.app/entrypoints/report/invoke' \
  -H 'Content-Type: application/json' \
  -d '
    {
      "input": {
        "base": "<Base currency>"
      }
    }
  '

analytics

Invoke

Payment analytics summary

Pricing Free
Network base
Invoke Endpoint POST /entrypoints/analytics/invoke
Input Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "windowMs": {
      "description": "Time window in ms",
      "type": "number"
    }
  },
  "additionalProperties": false
}
Invoke with curl
curl -s -X POST \
  'https://fx-intel-production.up.railway.app/entrypoints/analytics/invoke' \
  -H 'Content-Type: application/json' \
  -d '
    {
      "input": {
        "windowMs": 0
      }
    }
  '

analytics-transactions

Invoke

Recent payment transactions

Pricing Free
Network base
Invoke Endpoint POST /entrypoints/analytics-transactions/invoke
Input Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "windowMs": {
      "type": "number"
    },
    "limit": {
      "default": 50,
      "type": "number"
    }
  },
  "required": [
    "limit"
  ],
  "additionalProperties": false
}
Invoke with curl
curl -s -X POST \
  'https://fx-intel-production.up.railway.app/entrypoints/analytics-transactions/invoke' \
  -H 'Content-Type: application/json' \
  -d '
    {
      "input": {
        "limit": 0
      }
    }
  '

analytics-csv

Invoke

Export payment data as CSV

Pricing Free
Network base
Invoke Endpoint POST /entrypoints/analytics-csv/invoke
Input Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "windowMs": {
      "type": "number"
    }
  },
  "additionalProperties": false
}
Invoke with curl
curl -s -X POST \
  'https://fx-intel-production.up.railway.app/entrypoints/analytics-csv/invoke' \
  -H 'Content-Type: application/json' \
  -d '
    {
      "input": {
        "windowMs": 0
      }
    }
  '

Client Example: x402-fetch

Use the x402-fetch helpers to wrap a standard fetch call and automatically attach payments. This script loads configuration from .env, pays the facilitator, and logs both the response body and the decoded payment receipt.

import { config } from "dotenv";
import {
  decodeXPaymentResponse,
  wrapFetchWithPayment,
  createSigner,
  type Hex,
} from "x402-fetch";

config();

const privateKey = process.env.AGENT_WALLET_PRIVATE_KEY as Hex | string;
const agentUrl = process.env.AGENT_URL as string; // e.g. https://agent.example.com
const endpointPath = process.env.ENDPOINT_PATH as string; // e.g. /entrypoints/echo/invoke
const url = `${agentUrl}${endpointPath}`;

if (!agentUrl || !privateKey || !endpointPath) {
  console.error("Missing required environment variables");
  console.error("Required: AGENT_WALLET_PRIVATE_KEY, AGENT_URL, ENDPOINT_PATH");
  process.exit(1);
}

/**
 * Demonstrates paying for a protected resource using x402-fetch.
 *
 * Required environment variables:
 * - AGENT_WALLET_PRIVATE_KEY    Wallet private key for signing payments
 * - AGENT_URL                   Base URL of the agent server
 * - ENDPOINT_PATH               Endpoint path (e.g. /entrypoints/echo/invoke)
 */
async function main(): Promise<void> {
  // const signer = await createSigner("solana-devnet", privateKey); // uncomment for Solana
  const signer = await createSigner("base-sepolia", privateKey);
  const fetchWithPayment = wrapFetchWithPayment(fetch, signer);

  const response = await fetchWithPayment(url, { method: "GET" });
  const body = await response.json();
  console.log(body);

  const paymentResponse = decodeXPaymentResponse(
    response.headers.get("x-payment-response")!
  );
  console.log(paymentResponse);
}

main().catch((error) => {
  console.error(error?.response?.data?.error ?? error);
  process.exit(1);
});

Manifest

Loading…
Fetching agent card…