Reference
Base URL https://app.upvera.co. Every response is wrapped in the same envelope: v, kind, as_of, state and data. This page is generated from the OpenAPI document, so it always matches the API.
Startups in Ranks, by rank
GET /api/v1/startups| Parameter | In | Values | Default | |
|---|---|---|---|---|
window | query | optional | 24h · 7d · 30d | 24h |
Returns kind: "startups" with data as array of StartupRow.
Errors: 400 · 401 · 403 · 404 · 429 · 503.
One startup's Upvera Value and changes
GET /api/v1/startups/{slug}| Parameter | In | Values | Default | |
|---|---|---|---|---|
slug | path | required | string, ^[a-z0-9][a-z0-9-]{0,79}$ |
Returns kind: "startup" with data as Startup.
Errors: 400 · 401 · 403 · 404 · 429 · 503.
Upvera Value series
GET /api/v1/startups/{slug}/series| Parameter | In | Values | Default | |
|---|---|---|---|---|
slug | path | required | string, ^[a-z0-9][a-z0-9-]{0,79}$ | |
window | query | optional | 24h · 7d · 30d · all | 7d |
Returns kind: "series" with data as Series.
Errors: 400 · 401 · 403 · 404 · 429 · 503.
Why the value changed: the receipt for a window
GET /api/v1/startups/{slug}/receipt| Parameter | In | Values | Default | |
|---|---|---|---|---|
slug | path | required | string, ^[a-z0-9][a-z0-9-]{0,79}$ | |
window | query | optional | 24h · 7d · 30d · all | 24h |
lang | query | optional | en · tr | en |
Returns kind: "receipt" with data as ReceiptData.
Errors: 400 · 401 · 403 · 404 · 429 · 503.
Upvera Index, or a category index (categories with at least 3 members)
GET /api/v1/index| Parameter | In | Values | Default | |
|---|---|---|---|---|
window | query | optional | 7d · 30d · all | 30d |
category | query | optional | string |
Returns kind: "index" with data as Index.
Errors: 400 · 401 · 403 · 404 · 429 · 503.
The API key's owner: their startups (current value) and webhooks
GET /api/v1/meRequires an API key: Authorization: Bearer upv_live_…, from your server.
Returns kind: "me" with data as Me.
Errors: 400 · 401 · 403 · 429 · 503.
Recent webhook deliveries across the owner's endpoints (status only, no bodies)
GET /api/v1/me/deliveriesRequires an API key: Authorization: Bearer upv_live_…, from your server.
| Parameter | In | Values | Default | |
|---|---|---|---|---|
limit | query | optional | integer 1 to 100 | 50 |
Returns kind: "deliveries" with data as array of Delivery.
Errors: 400 · 401 · 403 · 429 · 503.
Webhooks
value.threshold: Your startup's Upvera Value moved by at least your threshold since the last notification.ping: Sent when you add an endpoint or press Send test.
Signatures, retries and a verification example are on the Webhooks page.
Schemas
Error
| Field | Type | Notes |
|---|---|---|
v | "upvera/api/v1" | |
error | object |
Me
| Field | Type | Notes |
|---|---|---|
key | object | |
owner | object | |
startups | array of object | |
webhooks | array of object |
Delivery
| Field | Type | Notes |
|---|---|---|
event_id | string | |
type | value.threshold · ping | |
webhook | object | |
startup | string or null | Startup slug (value.threshold). |
change_pct | number or null | |
state | pending · retrying · ok · dead · skipped | |
attempts | integer | |
code | integer or null | Your endpoint's HTTP status. |
error | string or null | timeout · dns · tls · network · redirect · http_status · blocked_address · invalid_url · paused · suspended · failing |
ms | integer or null | |
created_at | string | |
last_at | string or null |
WebhookEvent
| Field | Type | Notes |
|---|---|---|
v | "upvera/webhook/v1" | |
id | string | evt_…, stable across retries. |
type | value.threshold · ping | |
created_at | string | |
data | object | value.threshold: startup · value · from · change_pct · direction · threshold_pct · as_of · from_at · rule. ping: webhook. |
Urls
| Field | Type | Notes |
|---|---|---|
page | string | |
value | string | |
badge | string |
StartupRow
| Field | Type | Notes |
|---|---|---|
slug | string | |
name | string | |
tagline | string or null | |
category | string or null | |
rank | integer | |
value | number or null | Upvera Value (unitless). |
change | object or null | |
wings | integer | People with an active wing (count only). |
is_new | boolean | |
urls | Urls |
Startup
| Field | Type | Notes |
|---|---|---|
slug | string | |
name | string | |
tagline | string or null | |
category | string or null | |
rank | integer | |
rank_of | integer | |
value | number or null | |
changes | object | |
since_method | object or null | Change since the current method's first evaluation. |
wings | object or null | |
entered_at | string or null | |
urls | Urls |
Series
| Field | Type | Notes |
|---|---|---|
slug | string | |
window | string | |
value | number or null | |
points | array of array of |
ReceiptData
| Field | Type | Notes |
|---|---|---|
slug | string | |
window | string | |
receipt | object or null | null while no receipt exists for the method in force. |
Index
| Field | Type | Notes |
|---|---|---|
name | "upvera" | |
category | string or null | |
window | string | |
base | object | |
members | integer | |
value | number or null | |
change_pct | number or null | |
points | array of array of | |
breaks | array of object | Days where a method change was taken out of the chain. |
Updated 2026-10-19