{"schemaVersion":"markgit.tool-docs/v1","tool":{"kind":"tool","id":"0f7fd0be-8705-402c-9018-3087f757437f","slug":"frankfurter-exchange-rates","name":"Live Exchange Rates","description":"Get current or historical exchange rates from the open-source Frankfurter API, which aggregates official central-bank data. Upstream docs: https://frankfurter.dev/","category":"Finance","tags":["finance","currency","exchange-rates","free","frankfurter"],"provider":{"id":"200c75ab-f76c-4457-b8f0-d2694de41c12","name":"Open-Meteo","trustTier":"unverified"},"version":{"number":1,"manifestDigest":"4fbb5938534fb454a38ad46d969fb10cfbdf7203368dfdc1d1a9eb60c726c252","immutable":true},"trust":{"provider":{"tier":"unverified","paymentVerified":false},"endpoint":{"status":"unverified","origin":"https://api.frankfurter.dev","verifiedAt":null},"version":{"status":"versioned","manifestDigest":"4fbb5938534fb454a38ad46d969fb10cfbdf7203368dfdc1d1a9eb60c726c252"},"behavior":{"status":"new","evidence":"markgit_calls"}},"risk":{"level":"medium","capabilities":{"declared":true,"readOnly":false,"destructive":false,"idempotent":false,"openWorld":true,"readsPrivateData":false,"seesUntrustedContent":true,"writesExternalData":false,"sendsMessages":false,"spendsMoney":false,"executesCode":false,"requiresUserCredential":false,"allowedOutboundDomains":["api.frankfurter.dev"],"dataRetention":"unknown"}},"policy":{"callable":true,"monetizationEligible":true,"eligibleForAutoCall":false,"riskLevel":"medium","approval":{"requirement":"explicit_unverified","manifestDigest":"4fbb5938534fb454a38ad46d969fb10cfbdf7203368dfdc1d1a9eb60c726c252"},"reasons":["endpoint origin is not verified"]},"pricing":{"type":"free","currency":"USD","amount":"0.0000"},"usage":{"count":1,"uniqueUsers":1,"tracked":true,"coverage":"markgit_calls","invocationsLabel":"Under 1K invokes","usersLabel":"Under 100 users"},"updatedAt":"2026-08-01T15:51:29.080Z"},"documentation":{"metadata":"https://api.markgit.com/v1/registry/tools/frankfurter-exchange-rates","json":"https://api.markgit.com/v1/registry/tools/frankfurter-exchange-rates/docs","openapi":"https://api.markgit.com/v1/registry/tools/frankfurter-exchange-rates/openapi.json","llms":"https://api.markgit.com/v1/registry/tools/frankfurter-exchange-rates/llms.txt"},"invocation":{"flow":["POST /v1/tools/frankfurter-exchange-rates/quote to receive the exact price and spend-control decision.","Inspect policy.approval and obtain the required user approval for this exact manifest digest and quote total.","POST /v1/tools/frankfurter-exchange-rates/call with the quote ID, input object, approval manifest digest when required, Bearer API key, and a unique Idempotency-Key."],"quote":{"method":"POST","url":"https://api.markgit.com/v1/tools/frankfurter-exchange-rates/quote","authentication":"Bearer API key","requestBody":{},"responseSchema":{"type":"object","required":["quote","tool","controls"],"properties":{"quote":{"type":"object","required":["id","priceUsd","feeUsd","totalUsd","expiresAt"],"properties":{"id":{"type":"string","format":"uuid"},"priceUsd":{"type":"string"},"feeUsd":{"type":"string"},"totalUsd":{"type":"string"},"expiresAt":{"type":"string","format":"date-time"}}},"controls":{"type":"object","properties":{"approved":{"type":"boolean"},"violations":{"type":"array","items":{"type":"string"}}}}}}},"call":{"method":"POST","url":"https://api.markgit.com/v1/tools/frankfurter-exchange-rates/call","authentication":"Bearer API key","requiredHeaders":{"Authorization":"Bearer mkgt_...","Content-Type":"application/json","Idempotency-Key":"A unique value for this logical call"},"requestSchema":{"type":"object","required":["quoteId","input"],"properties":{"quoteId":{"type":"string","format":"uuid"},"input":{"type":"object","required":["base","quotes"],"properties":{"base":{"type":"string","example":"USD","description":"ISO 4217 base currency code."},"date":{"type":"string","format":"date","example":"2026-01-02","description":"Optional historical date in YYYY-MM-DD format."},"quotes":{"type":"string","example":"EUR,GBP","description":"Comma-separated ISO 4217 target currency codes."}}},"approval":{"type":"object","description":"Required unless policy.approval.requirement is covered_by_user_policy.","properties":{"manifestDigest":{"type":"string","const":"4fbb5938534fb454a38ad46d969fb10cfbdf7203368dfdc1d1a9eb60c726c252"}}}}},"requestExample":{"quoteId":"approved-quote-id","input":{"base":"USD","date":"2026-01-02","quotes":"EUR,GBP"},"approval":{"manifestDigest":"4fbb5938534fb454a38ad46d969fb10cfbdf7203368dfdc1d1a9eb60c726c252"}},"responseSchema":{"type":"object","required":["id","tool","status","cost","output","error"],"properties":{"id":{"type":"string","description":"Execution identifier"},"tool":{"type":"object","properties":{"id":{"type":"string"},"slug":{"const":"frankfurter-exchange-rates"},"name":{"const":"Live Exchange Rates"}}},"status":{"type":"string","enum":["completed","failed"]},"cost":{"type":"object","properties":{"priceUsd":{"type":"string"},"feeUsd":{"type":"string"},"totalUsd":{"type":"string"},"currency":{"const":"USD"}}},"output":{"type":"array","items":{"type":"object","required":["date","base","quote","rate"],"properties":{"base":{"type":"string"},"date":{"type":"string","format":"date"},"rate":{"type":"number"},"quote":{"type":"string"}}}},"error":{"anyOf":[{"type":"null"},{"type":"object","properties":{"message":{"type":"string"}}}]}}},"responseExample":{"id":"execution-id","tool":{"id":"0f7fd0be-8705-402c-9018-3087f757437f","slug":"frankfurter-exchange-rates","name":"Live Exchange Rates"},"status":"completed","cost":{"priceUsd":"0.0000","feeUsd":"0.0000","totalUsd":"0.0000","currency":"USD"},"output":[{"base":"string","date":"2026-01-01","rate":1.5,"quote":"string"}],"error":null}},"direct":null}}