{"uid":"cap_HjooulL_wugcG68UYg8tw","slug":"dns-email-hygiene-relayhop-workers-dev-0e23f583","name":"RelayhopFX Currency Converter","description":"Convert an amount between two currencies with synthesized bid/ask spread and effective rate. Query: ?from=USD&to=EUR&amount=100&spread_bps=50. Source: ECB via frankfurter (keyless).","url":"https://dns-email-hygiene.relayhop.workers.dev/v1/fx/convert","method":"GET","headers":{},"bodySchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","properties":{"to":{"in":"query","type":"string","description":"3-letter ISO code (default EUR)"},"from":{"in":"query","type":"string","description":"3-letter ISO code (default USD)"},"amount":{"in":"query","type":"string","description":"amount to convert (default 1)"},"spread_bps":{"in":"query","type":"string","description":"bid-ask spread in bps, 0-1000 (default 50)"}}},"output":{"type":"object"}}},"responseSchema":null,"example":{"request":{"input":{"to":"EUR","from":"USD","amount":"100","spread_bps":"50"}},"response":{"data":{"to":"EUR","ask":0.8662402,"bid":0.8619198,"date":"2026-06-09","from":"USD","note":"bid/ask synthesized from ECB mid using spread_bps (ECB publishes mid only)","amount":1,"source":"ECB daily reference rates via frankfurter.app (keyless)","mid_rate":0.86408,"converted":0.86624,"spread_bps":50,"effective_rate":0.8662402},"source":"/v1/fx/convert"}},"exampleRequest":{"input":{"to":"EUR","from":"USD","amount":"100","spread_bps":"50"}},"tags":["x402"],"displayCostAmount":"0.005","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"settled","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.005/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.005","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.005","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_J8Dl641UGqBqhXCDsx3wg","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.005","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Converts a monetary amount between two currencies using ECB rates via Frankfurter, with a configurable synthetic bid/ask spread","exampleAgentPrompt":"Convert 250 USD to EUR using a 30 basis point bid/ask spread and tell me the effective rate I'd get.","exampleUseCases":[{"title":"Convert payment amount to local currency","prompt":"I need to send 1500 GBP to a supplier in Japan — how much is that in JPY using ECB rates with a 40 basis point spread?"},{"title":"Compare effective FX rates with spread","prompt":"What's the effective rate I'd actually get if I convert 10,000 CHF to USD with a 75 basis point bid/ask spread applied?"},{"title":"Calculate invoice total in euros","prompt":"A client owes me 800 Canadian dollars — can you convert that to euros using ECB reference rates and include a 25 bps spread so I know the realistic amount I'd receive?"}],"resultDescription":"Returns the converted amount in the target currency, the base ECB exchange rate, and the effective rate after applying the synthesized bid/ask spread in basis points.","failureModes":["Unsupported or invalid ISO currency code returns an error","Amount not parseable as a number returns a validation error","spread_bps out of range (0-1000) returns an error","ECB/Frankfurter upstream unavailable causes service error","Missing required query parameters fall back to defaults (from=USD, to=EUR, amount=1, spread_bps=50)"],"whenToPreferThis":"Use this endpoint when you need a quick, keyless FX conversion using ECB reference rates with a realistic market spread baked in. Ideal for fintech agents, payment calculators, or any workflow needing a transparent bid/ask quote without requiring an API key or broker account.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-15T00:33:18.838Z","isFirstParty":false}