UpveraUpvera
Log inSign up
Upvera© 2026 UpveraFounded by Tuna Akgün in Istanbul
Language·
Built on Upvera
Features
FeedProof linksRanksUPV and walletDiscover
Download
iPhoneWebAndroid
Account
Log inSign up
Who it's for
Upvera for foundersUpvera for buildersUpvera for investorsUpvera for hunters
Upvera
EcosystemPricingFAQVerifyContact
Legal
Terms of UsePrivacyKVKK
Follow
XInstagramLinkedIn
Language·
‹ Value

Upvera Value API

Every number in the value explorer is open to machines too: read-only, versioned, no key needed. Numbers come from the server exactly as the page shows them.

Rules

  • 60 requests per minute per IP. Beyond that you get 429 with Retry-After.
  • With a key, 600 requests per minute; keyed responses never go into shared caches.
  • Responses are cached for 60 seconds; the value updates on an hourly grid.
  • Readable from any origin (CORS); no key needed.
  • Fields are only ever added. A breaking change ships as /api/v2.
  • value is the unitless Upvera Value; it is not a price or an offer. _e6 fields are the exact value × 10⁶.
  • No people, wing holders, Pass or event sequence in the API; wingspan is a total only.
  • OpenAPI spec
  • Get a key
  • How Upvera Value is calculated
  • Ledger

Endpoints

  • GET/api/v1/startupsTry it ↗

    Startups in Ranks, by rank: value, change for the window, number of wings.

    Parameters: window 24h | 7d | 30d (default 24h)

  • GET/api/v1/startups/{slug}Try it ↗

    One startup's Upvera Value; change over 24 hours, 7 days, 30 days and since the current method's first evaluation.

  • GET/api/v1/startups/{slug}/seriesTry it ↗

    Upvera Value series: the points the curve is drawn from.

    Parameters: window 24h | 7d | 30d | all (default 7d)

  • GET/api/v1/startups/{slug}/receiptTry it ↗

    Why the value changed: the receipt's rows (reason code, column, value), catch-up and total. The rows add up to the change.

    Parameters: window 24h | 7d | 30d | all (default 24h) · lang en | tr (default en)

  • GET/api/v1/indexTry it ↗

    Upvera Index; with category, the index of a category with at least 3 members. Method changes are taken out of the chain (breaks).

    Parameters: window 7d | 30d | all (default 30d) · category any

With a key · Scale

On the Scale plan you get your key in Connections › Value API. Send it from your server as Authorization: Bearer; you get 600 requests a minute and the two endpoints below.

  • GET/api/v1/me

    The key's owner: their startups' current value and the status of their webhook endpoints.

  • GET/api/v1/me/deliveries

    Your webhook deliveries: event, state, your endpoint's response code and timing. No bodies.

curl https://app.upvera.co/api/v1/startups \
  -H "Authorization: Bearer upv_live_…"

Every delivery is signed. Verify the raw body, reject timestamps older than 5 minutes, and deduplicate on the event id.

Upvera-Signature: t=1760834640,v1=<hex HMAC-SHA256(secret, t + "." + body)>

import { verifyWebhook } from "@upvera/value";
const event = await verifyWebhook({ payload: rawBody, header, secret });

Example response · live

/api/v1/startups/upvera-mthgaif7
{
  "v": "upvera/api/v1",
  "kind": "startup",
  "as_of": "2026-10-20T02:29:48.566Z",
  "state": "v3",
  "data": {
    "slug": "upvera-mthgaif7",
    "name": "Upvera",
    "tagline": "A social network that makes the journey from idea to product visible.",
    "category": "Mobile",
    "rank": 1,
    "rank_of": 9,
    "value": 341.930886,
    "changes": {
      "24h": 0.25,
      "7d": 3.24,
      "30d": 3.45
    },
    "since_method": {
      "from": "2026-10-11T08:18:13.618Z",
      "pct": 3.45
    },
    "wings": {
      "count": 8,
      "total_upv": 8.9798
    },
    "entered_at": "2026-08-31T16:26:27.462Z",
    "urls": {
      "page": "https://app.upvera.co/s/upvera-mthgaif7",
      "value": "https://app.upvera.co/value/upvera-mthgaif7",
      "badge": "https://app.upvera.co/badge/upvera-mthgaif7.svg"
    }
  }
}