CurrencyBeacon's API documentation describes a response envelope with rates under response.rates. In a CurrencyBeacon client, parse the metadata and rate set deliberately rather than treating the outer object as a currency map.
Keep the base currency and observation time with cached values. A bare number cannot explain which conversion or moment it represents.