Quick start
**OwlViz** — agent-ready infrastructure for reliable Solana asset and collection intelligence (not trade execution). One API for normalized metadata, health, media reliability, multi-provider collection floors, reference floors, market change events, and change monitoring. Building an autonomous agent? Start with [Agents & automation](./agents.md) and [OpenAPI](https://api.owlviz.dev/openapi.json).
Base URLs
Production API:
https://api.owlviz.devPublic scanner (read-only UI):
https://owlviz.devSet API_BASE or NEXT_PUBLIC_API_BASE_URL when self-hosting or using a staging host.
Example mint (The Bullpen):
C5gHBKXwA8jduXNk3HyAVLnLBN6PEM8fTqkNNh5uyyjJResolve an asset in 2 minutes
Every asset lookup starts with a Solana mint address (base58 public key). Responses are JSON with a top-level data object. Many fields are nullable when metadata is missing or unresolved.
curl
curl -sS \
"https://api.owlviz.dev/v1/assets/C5gHBKXwA8jduXNk3HyAVLnLBN6PEM8fTqkNNh5uyyjJ" \
-H "Accept: application/json"TypeScript / JavaScript
const API_BASE = 'https://api.owlviz.dev';
const mint = 'C5gHBKXwA8jduXNk3HyAVLnLBN6PEM8fTqkNNh5uyyjJ';
const response = await fetch(`${API_BASE}/v1/assets/${mint}`, {
headers: { Accept: 'application/json' },
});
if (!response.ok) {
const body = (await response.json()) as { error?: { code?: string; message?: string } };
throw new Error(body.error?.message ?? `HTTP ${response.status}`);
}
const { data } = (await response.json()) as { data: unknown };
console.log(data);What you get back
The normalized asset includes identity fields (name, symbol, description), media, attributes, collection, creators, health, on-chain inspection (tokenProgram, permissions, extensions, risk), and diagnostics. See [response-models.md](./response-models.md) for the full field reference.
Collection market (overview)
OwlViz exposes multi-provider floor snapshots and rolling reference floors for indexed collections:
| Surface | Path | Auth |
|---|---|---|
| Floor snapshot | GET /v1/collections/:address/market | public |
| Reference floor | GET /v1/collections/:address/market/reference | public |
| Market change events | GET /v1/collections/:address/market/events | public |
| Observation history | GET /v1/collections/:address/market/history | public |
| Market watch status | GET /v1/collections/:address/market-watch | public |
| Global event feed | GET /v1/market-events | public |
| Continuous sampling | POST /v1/market-watches | API key (ov_live_…) within plan quota |
| Webhook delivery | POST /v1/webhooks | API key (ov_live_…, Builder+ quota) or portal UI |
Details: [Collections — market](./collections.md#collection-market-sprint-2), [Sprint 6 events](./collections.md#sprint-6--market-change-events-internal-durable-events), [Monitoring — webhooks](./monitoring.md#webhooks).
Query parameters
| Parameter | Routes | Meaning |
|---|---|---|
refresh=true | Asset routes | Bypass cache and re-resolve from upstream providers |
Cache headers
Asset and collection responses may include:
| Header | Values | Meaning |
|---|---|---|
X-Cache | HIT, MISS, BYPASS | Whether the response came from cache |
X-Cache-TTL | seconds | Configured TTL for cached entries |
Rate limits
Public asset and collection routes use fixed-window rate limits when Redis is configured.
**Anonymous** (no API key): per client IP — **120** global / **60** expensive RPM per **60** seconds.
**Keyed** (Authorization: Bearer ov_live_…): per API key ID — limits from your account plan_id (Free matches anonymous; Builder **600/300**; Pro **2000/1000**).
Responses include X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset. When limited, the API returns **429** with Retry-After. See [errors-and-rate-limits.md](./errors-and-rate-limits.md).
/health is exempt from rate limiting.
Checkout for plan upgrades is not available yet (Solana Pay / USDC parked; no Stripe) — operators set plan_id via /admin to test Builder or Pro. See [developer-plans.md](./developer-plans.md) and [owlviz.dev/pricing](https://owlviz.dev/pricing).
TypeScript SDK
For typed access to the same v1 routes, use **@owlviz/sdk** — see [Getting started](./getting-started.md) and [v1 API surface](./v1-api-surface.md).
Next steps
- [Getting started](./getting-started.md) — API key, SDK, first request
- [Assets](./assets.md) — resolution, health, inspection, snapshots
- [Media](./media.md) — reliability, recovery, preserved URLs
- [Collections](./collections.md) — indexing, health aggregates, market floors, events, watches
- [Monitoring](./monitoring.md) — change detection, webhooks (self-serve vs admin-token monitors)
- [Developer plans](./developer-plans.md) — Free / Builder / Pro entitlements (live)
- [Webhooks](../webhooks.md) — HMAC delivery, market event payloads
- [Errors & rate limits](./errors-and-rate-limits.md)
- [Examples](./examples/)