every project i build that pulls in external data ends up with the same problem: the APIs all return different shapes.
openweathermap gives you main.temp in kelvin inside a nested object. coingecko gives you current_price in a flat map. newsapi gives you publishedAt in one format. the guardian gives you webPublicationDate in another. you write an adapter for each one, every time, forever.
i got tired of it. so i built sprime — a unified API gateway that normalizes all of this into one consistent JSON schema.
what it does
one API key, 15+ endpoints, everything comes back in the same shape:
{
"status": "success",
"data": { ... },
"source": "open-meteo",
"timestamp": "2026-02-23T..."
}
endpoints available:
- weather (city name or lat/lon, temp unit conversion, enriched mode with UV/sunrise/sunset)
- crypto price, trending coins, market cap rankings, historical sparklines
- news headlines (7 categories, optional sentiment analysis)
- forex rates (ECB data)
- air quality (AQI, PM2.5, ozone)
- geocoding
- IP lookup
- timezone info
- public holidays (100+ countries)
- batch requests (up to 10 in one call)
- webhooks for price/weather/news alerts (Pro)
-
/v1/contextwhich pulls weather + crypto + news in a single round trip
what it handles for you
- provider failover: if the primary source is down, it tries the next one automatically
- caching: responses are cached in memory, cache age/TTL exposed in response headers
-
consistent errors: always
{ "error": "..." }, never an HTML page or stack trace -
field filtering:
?fields=temp,windspeedto reduce payload size
pricing
free tier is 500 req/day, no credit card. paid plans start at $5/mo for 5k req/day and 15+ endpoints.
the whole thing runs on GCP free tier so it stays cheap to operate and i can keep the free plan around indefinitely.
try it
live demo on the homepage with no signup: sprime.us
docs: sprime.us/docs.html
would genuinely appreciate feedback on the response schema, the endpoint coverage, or anything that feels off. building this in public and iterating based on what people actually need.
Top comments (1)
Love the consistent envelope approach. I built something similar with apixies.io (utility APIs rather than data aggregation) and the unified JSON shape is honestly the feature people appreciate most. The batch request endpoint is a nice touch. Good luck with the launch!