PROOFGATE API Documentation
Credential verification docs first. Legacy data endpoints remain available for current API-key users.
Credential verification docs first. Legacy data endpoints remain available for current API-key users.
Authenticated legacy data requests require an API key in the header:
Primary base URL: https://sprime.us/v1
Buyer-facing PROOFGATE pages stay on https://sprime.io. Developer traffic should use sprime.us.
Use GET /v1/endpoints to see which endpoints are available on your plan.
Generate a fresh OpenID4VP request for the browser Digital Credentials API. The response includes a nonce, request object, profile id, and expiry window.
| Parameter | Type | Required | Description |
|---|---|---|---|
profile | string | optional | One of personhood, age_over_18, or age_over_21. Omit to use personhood. |
Verify the wallet response against the nonce-bound profile and trusted issuer policy. The production request flow is dc+sd-jwt. The mso_mdoc verifier path is present for certified pilots after issuer roots and wallet evidence are pinned.
| Field | Type | Required | Description |
|---|---|---|---|
nonce | string | required | Nonce returned by /v1/credentials/request. |
token | string | required | Credential presentation returned by the browser or wallet. |
format | string | optional | dc+sd-jwt by default. mso_mdoc is restricted to pilot configurations with pinned IACA roots and wallet certification evidence. |
Check a short-lived PROOFGATE session token issued by a successful verification. Tokens expire after 15 minutes and expose only the anonymous proof hash and expiry.
Use the live sandbox before wiring production UI.
Current weather conditions by city name or coordinates.
| Parameter | Type | Required | Description |
|---|---|---|---|
location | string | required* | City name (e.g., "miami", "tokyo") |
lat | number | required* | Latitude (-90 to 90). Use with lon instead of location. |
lon | number | required* | Longitude (-180 to 180) |
format | string | optional | fahrenheit, kelvin (default: celsius) |
enriched | boolean | optional | Include sunrise, sunset, UV index, wind direction |
fields | string | optional | Comma-separated fields to return (e.g., "temp,windspeed") |
fresh | boolean | optional | Skip cache, fetch live data |
* Provide either location or both lat and lon
Auto-detect location from your IP address and return local weather.
Real-time cryptocurrency prices and market data.
| Parameter | Type | Required | Description |
|---|---|---|---|
symbol | string | required | Ticker (BTC, ETH, SOL) or CoinGecko ID |
convert | string | optional | Additional currency conversion (EUR, GBP) |
history | string | optional | Sparkline period: 7d or 30d |
fields | string | optional | Comma-separated fields to return |
Currently trending cryptocurrencies.
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | integer | optional | Number of results (1-50, default: 10) |
Market cap rankings.
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | integer | optional | Results per page (1-100, default: 10) |
page | integer | optional | Page number (default: 1) |
Historical price for a specific date.
| Parameter | Type | Required | Description |
|---|---|---|---|
symbol | string | required | Ticker or CoinGecko ID |
date | string | required | Date in YYYY-MM-DD format |
Aggregated news headlines from multiple sources.
| Parameter | Type | Required | Description |
|---|---|---|---|
category | string | optional | general, business, technology, sports, entertainment, health, science |
sentiment | boolean | optional | Add sentiment analysis to each article |
fields | string | optional | Comma-separated fields to return |
Current exchange rates from the European Central Bank. Updated daily.
| Parameter | Type | Required | Description |
|---|---|---|---|
base | string | optional | Base currency (default: USD) |
symbols | string | optional | Comma-separated target currencies (e.g., EUR,GBP,JPY) |
Historical exchange rate for a specific date.
| Parameter | Type | Required | Description |
|---|---|---|---|
date | string | required | Date in YYYY-MM-DD format |
base | string | optional | Base currency (default: USD) |
symbols | string | optional | Comma-separated target currencies |
Current time and date info for any timezone.
| Parameter | Type | Required | Description |
|---|---|---|---|
location | string | required | IANA timezone (e.g., America/New_York, Europe/London) |
List all available IANA timezone identifiers.
US AQI index, PM2.5, ozone, and other pollutant readings.
| Parameter | Type | Required | Description |
|---|---|---|---|
location | string | required* | City name |
lat | number | required* | Latitude. Use with lon instead of location. |
lon | number | required* | Longitude |
AQI categories: good (0-50), moderate (51-100), unhealthy_sensitive (101-150), unhealthy (151-200), very_unhealthy (201-300), hazardous (301+)
Convert city names to coordinates, country codes, population, and timezone.
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | required | City or place name |
limit | integer | optional | Number of results (1-10, default: 5) |
Geolocation, ISP info, and timezone from any IP address. Omit the ip parameter to look up the requesting IP.
| Parameter | Type | Required | Description |
|---|---|---|---|
ip | string | optional | IP address to look up (default: your IP) |
Public holidays for 100+ countries.
| Parameter | Type | Required | Description |
|---|---|---|---|
country | string | optional | ISO 3166-1 country code (default: US) |
year | integer | optional | Year (default: current year) |
Real-time position of the International Space Station. Updated every 10 seconds.
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters required | |||
Sunrise, sunset, solar noon, and twilight times for a given location.
| Parameter | Type | Required | Description |
|---|---|---|---|
lat | number | required | Latitude (-90 to 90) |
lon | number | required | Longitude (-180 to 180) |
date | string | optional | YYYY-MM-DD (default: today) |
Current moon phase, illumination, age, and distance.
| Parameter | Type | Required | Description |
|---|---|---|---|
timestamp | integer | optional | Unix timestamp in seconds (default: now) |
Detailed country data including population, languages, currencies, timezones, and coordinates.
| Parameter | Type | Required | Description |
|---|---|---|---|
q | string | required | Search query (country name, ISO code, currency, language, or capital) |
by | string | optional | Search type: name, alpha, currency, lang, capital (default: name) |
Random trivia questions from the Open Trivia Database. Supports category and difficulty filtering.
| Parameter | Type | Required | Description |
|---|---|---|---|
category | string | optional | Category ID (e.g., 9=general, 17=science, 23=history, 22=geography, 21=sports, 11=film) |
difficulty | string | optional | easy, medium, hard |
amount | integer | optional | Number of questions (1-50, default: 5) |
Interesting facts about numbers. Supports trivia, math, date, and year types.
| Parameter | Type | Required | Description |
|---|---|---|---|
number | integer | required | The number to look up |
type | string | optional | trivia, math, date, year (default: trivia) |
Live and recent game scores from major leagues. Failover between ESPN and TheSportsDB.
| Parameter | Type | Required | Description |
|---|---|---|---|
league | string | required | League code: nfl, nba, mlb, nhl, mls, epl, ucl |
Translate text between languages. Failover between MyMemory and Lingva providers.
| Parameter | Type | Required | Description |
|---|---|---|---|
text | string | required | Text to translate |
to | string | required | Target language code (e.g., es, fr, de, ja, pt, zh) |
from | string | optional | Source language code (default: auto-detect) |
RDAP-based domain registration data including registrar, nameservers, and expiration dates.
| Parameter | Type | Required | Description |
|---|---|---|---|
domain | string | required | Domain name (e.g., example.com). Protocol and path are stripped automatically. |
Composite endpoint that returns weather, crypto, and news in a single call. Useful for building dashboards or providing ambient context to apps. Each underlying data source uses its own failover chain.
| Parameter | Type | Required | Description |
|---|---|---|---|
location | string | optional | City name for weather (geocoded automatically) |
lat | number | optional | Latitude for weather (use with lon) |
lon | number | optional | Longitude for weather |
coin | string | optional | CoinGecko ID (default: bitcoin) |
symbol | string | optional | Crypto ticker symbol (default: btc) |
category | string | optional | News category: general, business, technology, etc. (default: general) |
If no location parameters are provided, defaults to Orlando, FL. Weather, crypto, and news are fetched in parallel; if any source fails, its field contains an error object instead of data.
See all available endpoints and which ones your plan can access.
Send multiple requests in a single call. Each item in the array specifies an endpoint and its parameters. The batch limit and concurrency depend on your plan:
| Plan | Max items/batch | Concurrency |
|---|---|---|
| Free | 10 | 4 |
| Starter | 25 | 8 |
| Pro | 75 | 16 |
Each item in the batch counts as one request toward your daily quota. A 10-item batch uses 10 of your daily requests. The quota is reserved atomically when the request is authenticated; the batch will be rejected upfront if it would exceed your remaining quota.
Register a webhook to receive push notifications when conditions are met. Supports crypto price thresholds, weather alerts, and news keyword matching. Webhooks are checked when data is fetched (event-driven, not background polling) and capped at 1 delivery per hour per webhook.
Webhook URLs must use HTTPS and pass DNS validation. Deliveries include an HMAC-SHA256 signature for verification.
List all active webhooks for your API key.
Deactivate a webhook by its ID.
Daily request limits and burst rate limits based on your plan:
| Plan | Requests/Day | Burst (req/min) | Endpoints | Weather TTL |
|---|---|---|---|---|
| Free | 500 | 30 | 3 core | 10 min |
| Starter | 5,000 | 120 | 15+ | 5 min |
| Pro | 20,000 | 600 | All + Webhooks | 2 min |
The burst limit (req/min) applies per API key within a 60-second window. Exceeding it returns HTTP 429 with a Retry-After header. Daily quotas reset at midnight UTC.
The Weather TTL above is plan-specific. Other endpoints use fixed TTLs regardless of plan: crypto caches for 2 minutes, news for 15 minutes, timezone for 1 minute, air quality for 10 minutes, and static data (forex, holidays, geocoding, IP) for 24 hours. All requests (including each item in a batch) count toward your daily limit.
Data endpoint responses include these headers:
| Header | Description |
|---|---|
X-Cache-Hit | true/false |
X-Cache-Age | Seconds since data was cached |
X-Cache-TTL | Cache lifetime in seconds |
X-Next-Update | ISO timestamp when fresh data will be fetched |
X-Rate-Limit-Remaining | Requests left today |
All errors return a consistent format:
| Code | Meaning |
|---|---|
| 400 | Bad request (missing or invalid parameters) |
| 401 | Unauthorized (invalid or missing API key) |
| 403 | Endpoint restricted (upgrade your plan) |
| 429 | Rate limit exceeded |
| 500 | Server error |