Get greeks, model price, and probability of profit
Per-instrument option greeks computed by Joyride:
Black-76 (r = 0, forward = spot) model price, delta, gamma, theta,
vega, probability-of-profit, and the BlockScholes-derived mark_iv
passthrough. Served entirely from an in-process cache refreshed by a
background poller — no upstream call is made per request.
Conventions:
All numeric fields are fixed-8 decimal strings.
null means unknown/stale — "0.00000000" is never emitted for an
unknown value. Rows whose source inputs (quote as_of_ms / oracle
spot publish time) are older than the staleness window (default 30s)
serve null fields while retaining their last timestamps.
model_price is a display-only theoretical value. It is NOT the
margin/liquidation-authoritative mark and must never be used as a
PnL/margin/liquidation price source.
rho is intentionally omitted (convention-dependent, unrendered).
Rows are sorted by symbol. Staleness never yields a 5xx — the
endpoint returns 200 with null fields.
Adding response fields is backward-compatible; removing or renaming
fields is a breaking change.
GET
/
v1
/
greeks
Get greeks, model price, and probability of profit
curl --request GET \
--url https://joyride.exchange/api/v1/greeks
Optional base-asset filter. Validated against the canonical
configured asset set (BTC, ETH, SOL), case-insensitively;
values longer than 64 bytes or outside the set yield 400
INVALID_ASSET. A valid asset with no cached rows returns an
empty data array.
Available options:
BTC,
ETH,
SOL
Maximum string length: 64
Response
Cached greeks rows (empty array when the cache is empty)
{
"error": "INVALID_ASSET",
"message": "asset must be one of the listed base assets"
}
{"docsConfig":{"theme":"sequoia","$schema":"https://mintlify.com/docs.json","name":"Joyride Docs","description":"Daily crypto options on Solana: market making, trading, and API integration.","colors":{"primary":"#3C52FF","light":"#3C52FF","dark":"#3C52FF"},"logo":{"light":"https://mintcdn.com/joyride/NC5bVBvD2tWYUMNe/images/joyride-logo-black.svg?fit=max\u0026auto=format\u0026n=NC5bVBvD2tWYUMNe\u0026q=85\u0026s=56f0278cb0f4e2b18c213a18498f5ed5","dark":"https://mintcdn.com/joyride/NC5bVBvD2tWYUMNe/images/joyride-logo-white.svg?fit=max\u0026auto=format\u0026n=NC5bVBvD2tWYUMNe\u0026q=85\u0026s=32bd920198d90d939ba2959726214cdb","href":"https://joyride.exchange"},"favicon":"https://mintcdn.com/joyride/A0EvKSHHYdYlyFe9/favicon.svg?fit=max\u0026auto=format\u0026n=A0EvKSHHYdYlyFe9\u0026q=85\u0026s=87d9aa2c60c55c9de38b065ad4ae1356","appearance":{"default":"dark","strict":true},"background":{"color":{"light":"#04060A","dark":"#04060A"}},"navbar":{"primary":{"type":"button","label":"Launch App","href":"https://joyride.exchange/trade"}},"fonts":{"family":"IBM Plex Sans"},"styling":{"eyebrows":"breadcrumbs","codeblocks":{"theme":"css-variables"},"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"joyride","hasAudioNarration":false,"actualSubdomain":"joyride","customDomains":["docs.joyride.exchange"],"gitSource":{"type":"github","owner":"joyrideexchange","repo":"joyride-monorepo","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae3c1262042f5b403bf4f79","collectionId":"3326ae23-d4e5-4252-b114-4604fb4484d0","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae3c1262042f5b403bf4f79"},"entitlements":{},"buildId":"6ae3c1262042f5b403bf4f79","clientVersion":"0.0.4067","searchFilterCounts":[{"language":"default","tag":"Builders","count":32},{"language":"default","tag":"Market Makers","count":30},{"language":"default","tag":"WebSocket API","count":18},{"language":"default","tag":"Websockets","count":18},{"language":"default","tag":"Reference","count":14},{"language":"default","tag":"REST API","count":12},{"language":"default","tag":"Agents","count":10},{"language":"default","tag":"Trading","count":10},{"language":"default","tag":"Overview","count":7},{"language":"default","tag":"Joyride","count":7}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[{"filePath":"instrument.css","content":"/* cyrillic-ext */\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/ibmplexmono/v20/-F63fjptAgt5VM-kVkqdyU8n1iIq129k.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/ibmplexmono/v20/-F63fjptAgt5VM-kVkqdyU8n1isq129k.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* vietnamese */\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/ibmplexmono/v20/-F63fjptAgt5VM-kVkqdyU8n1iAq129k.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/ibmplexmono/v20/-F63fjptAgt5VM-kVkqdyU8n1iEq129k.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/ibmplexmono/v20/-F63fjptAgt5VM-kVkqdyU8n1i8q1w.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/ibmplexmono/v20/-F6qfjptAgt5VM-kVkqdyU8n3twJwl1FgtIU.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/ibmplexmono/v20/-F6qfjptAgt5VM-kVkqdyU8n3twJwlRFgtIU.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* vietnamese */\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/ibmplexmono/v20/-F6qfjptAgt5VM-kVkqdyU8n3twJwl9FgtIU.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/ibmplexmono/v20/-F6qfjptAgt5VM-kVkqdyU8n3twJwl5FgtIU.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/ibmplexmono/v20/-F6qfjptAgt5VM-kVkqdyU8n3twJwlBFgg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n:root{--jr-canvas: #04060a;--jr-panel: #0a0d14;--jr-well: #06080d;--jr-raised: #10141d;--jr-border: #161c28;--jr-divider: #171e2a;--jr-text: #f2f4f6;--jr-muted: #9aa6b9;--jr-quiet: #7e8ca2;--jr-readout: #74c0ff;--jr-signal: #3c52ff;--jr-signal-pressed: #2a38b0;--jr-selected: #12172b;--jr-lamp: #41ff41;--jr-danger: #ff6b60;--jr-warning: #ffd166;--jr-sans: \"IBM Plex Sans\", sans-serif;--jr-mono: \"IBM Plex Mono\", ui-monospace, monospace;--mint-color-text: #f2f4f6;--mint-color-background: transparent;--mint-token-constant: #f2f4f6;--mint-token-string: #74c0ff;--mint-token-comment: #7e8ca2;--mint-token-keyword: #6e7dd8;--mint-token-parameter: #f2f4f6;--mint-token-function: #f2f4f6;--mint-token-string-expression: #74c0ff;--mint-token-punctuation: #9aa6b9;--mint-token-link: #74c0ff;--mint-ansi-red: #9aa6b9;--mint-ansi-red-dim: #9aa6b9;--mint-ansi-green: #74c0ff;--mint-ansi-green-dim: #74c0ff;--mint-ansi-bright-red: #9aa6b9;--mint-ansi-bright-red-dim: #9aa6b9;--mint-ansi-bright-green: #74c0ff;--mint-ansi-bright-green-dim: #74c0ff}html,body,#body-content{background-color:var(--jr-canvas);background-image:radial-gradient(1100px 520px at 75% -12%, #0f1828 0%, var(--jr-canvas) 68%);background-attachment:fixed;color:var(--jr-text);font-family:var(--jr-sans)}h1,h2,h3,h4{font-family:var(--jr-sans);font-weight:600;letter-spacing:0}#header>.prose{display:none}#navbar,#navbar::before,#navbar::after,#navbar>div,#navbar>div::before,#navbar>div::after,#navbar .z-10.relative,#navbar .z-10.relative>div{background-color:#04060a!important;background-image:none!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;opacity:1!important}#navbar{border-bottom:1px solid var(--jr-divider)!important}#navbar>div{border-color:transparent!important}#navbar .nav-logo{height:26px!important;width:auto!important}#navbar .z-10.relative>div.hidden.lg\\:flex{height:56px!important;min-height:56px!important;padding-left:20px!important;padding-right:16px!important}#navbar .z-10.relative>div.hidden.lg\\:block,#navbar .z-10.relative>div.hidden.lg\\:block>div,#navbar .nav-tabs{background-color:#04060a!important;background-image:none!important;border:0!important;box-shadow:none!important;backdrop-filter:none!important}#navbar .z-10.relative>div.hidden.lg\\:block>div{height:44px!important;min-height:44px!important;padding-left:12px!important;padding-right:12px!important}#navbar .nav-tabs{align-items:center!important;height:36px!important;gap:2px!important}#navbar .nav-tabs-item{height:36px!important;min-height:36px!important;max-height:36px!important;padding:0 12px!important;border-radius:4px!important;background:transparent!important;color:var(--jr-muted)!important;font-family:var(--jr-sans)!important;font-size:13px!important;font-weight:500!important;line-height:36px!important;letter-spacing:0!important;text-shadow:none!important;box-shadow:none!important}#navbar .nav-tabs-item>div{display:none!important}#navbar .nav-tabs-item:hover{background:var(--jr-raised)!important;color:var(--jr-muted)!important}#navbar .nav-tabs-item[aria-current=\"location\"]{background:var(--jr-selected)!important;color:var(--jr-text)!important}#search-bar-entry{height:28px!important;min-height:28px!important;max-height:28px!important;width:200px!important;max-width:200px!important;padding:0 10px!important;border-radius:4px!important;background:var(--jr-well)!important;border:1px solid #222a38!important;box-shadow:none!important;color:var(--jr-muted)!important;font-size:13px!important;font-weight:400!important}#search-bar-entry:hover{background:var(--jr-raised)!important}#search-bar-entry span{border-radius:4px!important;font-size:12px!important;box-shadow:none!important}#search-bar-entry span:last-child{background:var(--jr-raised)!important;color:var(--jr-quiet)!important}#topbar-cta-button,#navbar [data-component-name=\"primary-header-button\"]{box-sizing:border-box!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;flex-shrink:0!important;height:34px!important;min-height:34px!important;max-height:34px!important;padding:0 14px!important;border:0!important;border-radius:4px!important;background:#3c52ff!important;background-image:none!important;color:#ffffff!important;font-family:var(--jr-sans)!important;font-size:13px!important;font-weight:500!important;line-height:32px!important;letter-spacing:0!important;white-space:nowrap!important;box-shadow:none!important;text-shadow:none!important;opacity:1!important}#topbar-cta-button:hover,#topbar-cta-button:active,#navbar [data-component-name=\"primary-header-button\"]:hover,#navbar [data-component-name=\"primary-header-button\"]:active{background:#2a38b0!important;color:#ffffff!important;opacity:1!important;box-shadow:none!important}#sidebar,#sidebar-content{background:transparent!important;border-right:1px solid var(--jr-divider)!important;box-shadow:none!important}#sidebar-content a,#sidebar-content li{border-radius:4px!important;min-height:36px!important;color:var(--jr-muted)!important;font-family:var(--jr-sans)!important;font-size:13px!important;font-weight:500!important;text-shadow:none!important;box-shadow:none!important}#sidebar-content a{align-items:center!important;padding:0 12px!important}#sidebar-content li:hover,#sidebar-content a:hover{background:var(--jr-raised)!important;color:var(--jr-muted)!important}#sidebar-content li[data-active],#sidebar-content li[data-active] a,#sidebar-content a[aria-current=\"page\"]{background:var(--jr-selected)!important;color:var(--jr-text)!important}#sidebar-content li[data-active]:hover,#sidebar-content li[data-active]:hover a,#sidebar-content a[aria-current=\"page\"]:hover{background:var(--jr-selected)!important;color:var(--jr-text)!important}#sidebar-content svg{color:var(--jr-quiet)!important}#sidebar-content li[data-active] svg,#sidebar-content a[aria-current=\"page\"] svg{color:var(--jr-signal)!important}@media (max-width: 767px){#navbar .z-10.relative>div.hidden.lg\\:flex{display:flex!important;height:48px!important;min-height:48px!important;padding-left:16px!important;padding-right:8px!important}#navbar .z-10.relative>div.flex.lg\\:hidden,#navbar .z-10.relative>div.lg\\:hidden{display:none!important}#navbar .z-10.relative>div.hidden.lg\\:block{display:block!important}#navbar .z-10.relative>div.hidden.lg\\:block>div{height:44px!important;padding-left:8px!important;padding-right:8px!important;overflow:hidden!important}#navbar .nav-tabs{overflow-x:auto!important;max-width:100%!important}#navbar .nav-tabs-item{flex:0 0 auto!important;white-space:nowrap!important}#search-bar-entry{width:26px!important;min-width:26px!important;max-width:26px!important;height:26px!important;min-height:26px!important;max-height:26px!important;padding:0!important;justify-content:center!important;gap:0!important}#search-bar-entry span{display:none!important}#topbar-cta-button,#navbar [data-component-name=\"primary-header-button\"]{height:30px!important;min-height:30px!important;max-height:30px!important;line-height:28px!important;padding:0 14px!important}}#content-area a.link,.mdx-content p a,.mdx-content li a,.mdx-content td a{color:var(--jr-readout);text-underline-offset:3px}.code-block,.code-group{background:var(--jr-well)!important;border:1px solid var(--jr-border)!important;border-radius:4px!important;box-shadow:none!important;padding:0!important;overflow:hidden}.code-block *,.code-group *{border-radius:0!important}.code-block pre,.code-group pre{padding:16px!important}.code-block pre,.code-group pre,.code-block .shiki,.code-group .shiki,.code-block [class*=\"min-w-full\"],.code-group [class*=\"min-w-full\"]{background:transparent!important;background-color:transparent!important;box-shadow:none!important}.code-block,.code-group,.code-block pre,.code-group pre,.code-block code,.code-group code,.code-block .shiki,.code-group .shiki{font-family:var(--jr-mono)!important}.callout{background:var(--jr-panel)!important;border:1px solid var(--jr-border)!important;border-left:2px solid var(--jr-border)!important;border-radius:0!important;box-shadow:none!important}.callout[data-callout-type=\"note\"],.callout[data-callout-type=\"info\"],.callout[data-callout-type=\"tip\"]{border-left-color:var(--jr-readout)!important}.callout[data-callout-type=\"check\"]{border-left-color:var(--jr-muted)!important}.callout[data-callout-type=\"warning\"]{border-left-color:var(--jr-warning)!important}.callout[data-callout-type=\"danger\"]{border-left-color:var(--jr-danger)!important}.callout [data-component-part=\"callout-icon\"],.callout [data-component-part=\"callout-icon\"] svg{color:var(--jr-muted)!important}.callout[data-callout-type=\"note\"] [data-component-part=\"callout-icon\"],.callout[data-callout-type=\"note\"] [data-component-part=\"callout-icon\"] svg,.callout[data-callout-type=\"info\"] [data-component-part=\"callout-icon\"],.callout[data-callout-type=\"info\"] [data-component-part=\"callout-icon\"] svg,.callout[data-callout-type=\"tip\"] [data-component-part=\"callout-icon\"],.callout[data-callout-type=\"tip\"] [data-component-part=\"callout-icon\"] svg{color:var(--jr-readout)!important}.callout[data-callout-type=\"check\"] [data-component-part=\"callout-icon\"],.callout[data-callout-type=\"check\"] [data-component-part=\"callout-icon\"] svg{color:var(--jr-muted)!important}.callout[data-callout-type=\"warning\"] [data-component-part=\"callout-icon\"],.callout[data-callout-type=\"warning\"] [data-component-part=\"callout-icon\"] svg{color:var(--jr-warning)!important}.callout[data-callout-type=\"danger\"] [data-component-part=\"callout-icon\"],.callout[data-callout-type=\"danger\"] [data-component-part=\"callout-icon\"] svg{color:var(--jr-danger)!important}.callout [class*=\"rounded\"]{border-radius:0!important;box-shadow:none!important}:not(pre)>code{background:var(--jr-raised)!important;border:1px solid #222a38!important;border-radius:2px!important;font-family:var(--jr-mono)!important;font-size:0.9em!important;color:var(--jr-text)!important;padding:0.05em 0.35em}.code-block code,.code-group code,.shiki code{background:transparent!important;border:0!important;border-radius:0!important;padding:0!important;font-size:inherit!important;color:var(--mint-color-text, var(--jr-text))!important}.card,a.card{background:var(--jr-panel)!important;border:1px solid var(--jr-border)!important;border-radius:0!important;box-shadow:none!important}.card:hover,a.card:hover{background:var(--jr-raised)!important;border-color:#222a38!important}table th{font-family:var(--jr-sans);font-size:12px;font-weight:500;letter-spacing:0.04em;text-transform:uppercase;color:var(--jr-quiet);border-bottom:1px solid var(--jr-divider)}table td{font-family:var(--jr-mono);font-variant-numeric:tabular-nums;border-bottom:1px solid var(--jr-divider)}.method-pill,.method-nav-pill,.method-pill span,.method-nav-pill span{background:var(--jr-raised)!important;color:var(--jr-text)!important;border:1px solid var(--jr-border)!important;border-radius:2px!important;box-shadow:none!important;font-family:var(--jr-mono)!important;font-weight:500!important}.tryit-button{background:transparent!important;color:var(--jr-text)!important;border:1px solid var(--jr-border)!important;border-radius:4px!important;box-shadow:none!important}nav.grid:has([data-component-part=\"pagination-prev\"]),nav.grid:has([data-component-part=\"pagination-next\"]){display:grid!important;grid-template-columns:1fr 1fr!important;gap:16px!important;align-items:stretch!important}[data-component-part=\"pagination-prev\"]{grid-column:1!important}[data-component-part=\"pagination-next\"]{grid-column:2!important}[data-component-part=\"pagination-prev\"],[data-component-part=\"pagination-next\"]{box-sizing:border-box!important;display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:flex-start!important;width:100%!important;height:100%!important;min-height:72px!important;margin:0!important;padding:16px!important;border-radius:4px!important;background:var(--jr-panel)!important;border:1px solid var(--jr-border)!important;box-shadow:none!important;text-align:left!important;text-decoration:none!important}[data-component-part=\"pagination-prev\"]:hover,[data-component-part=\"pagination-next\"]:hover{background:var(--jr-raised)!important;border-color:var(--jr-border)!important;box-shadow:none!important}[data-component-part=\"pagination-prev\"]>div,[data-component-part=\"pagination-next\"]>div{display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:flex-start!important;gap:4px!important;width:100%!important;min-width:0!important;margin:0!important;text-align:left!important}[data-component-part=\"pagination-prev\"]>div>div:not([data-component-part=\"pagination-title\"]),[data-component-part=\"pagination-next\"]>div>div:not([data-component-part=\"pagination-title\"]){display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-start!important;gap:6px!important;width:auto!important;max-width:100%!important;margin:0!important;order:1!important;color:var(--jr-muted)!important;font-family:var(--jr-sans)!important;font-size:12px!important;font-weight:500!important;line-height:16px!important;text-align:left!important}[data-component-part=\"pagination-prev\"] [data-component-part=\"pagination-title\"],[data-component-part=\"pagination-next\"] [data-component-part=\"pagination-title\"]{display:block!important;order:2!important;width:100%!important;color:var(--jr-text)!important;font-family:var(--jr-sans)!important;font-size:14px!important;font-weight:500!important;line-height:20px!important;text-align:left!important}[data-component-part=\"pagination-label\"],[data-component-part=\"pagination-chevron\"]{color:var(--jr-muted)!important}[data-component-part=\"pagination-chevron\"]{width:12px!important;height:12px!important;flex:0 0 12px!important}[data-component-part=\"pagination-next\"] [data-component-part=\"pagination-label\"]{order:1!important}[data-component-part=\"pagination-next\"] [data-component-part=\"pagination-chevron\"]{order:2!important}@media (max-width: 767px){nav.grid:has([data-component-part=\"pagination-prev\"]),nav.grid:has([data-component-part=\"pagination-next\"]){grid-template-columns:1fr!important}[data-component-part=\"pagination-prev\"],[data-component-part=\"pagination-next\"]{grid-column:1!important}}:focus-visible{outline:2px solid var(--jr-lamp);outline-offset:2px}"}],"page":{"pagePath":"api-reference/market-data/get-greeks-model-price-and-probability-of-profit","slug":"/api-reference/market-data/get-greeks-model-price-and-probability-of-profit","pageMetadata":{"title":"Get greeks, model price, and probability of profit","description":"Per-instrument option greeks computed by Joyride:\nBlack-76 (r = 0, forward = spot) model price, delta, gamma, theta,\nvega, probability-of-profit, and the BlockScholes-derived `mark_iv`\npassthrough. Served entirely from an in-process cache refreshed by a\nbackground poller — no upstream call is made per request.\n\nConventions:\n- All numeric fields are fixed-8 decimal **strings**.\n- `null` means unknown/stale — `\"0.00000000\"` is never emitted for an\n unknown value. Rows whose source inputs (quote `as_of_ms` / oracle\n spot publish time) are older than the staleness window (default 30s)\n serve null fields while retaining their last timestamps.\n- `model_price` is a display-only theoretical value. It is NOT the\n margin/liquidation-authoritative mark and must never be used as a\n PnL/margin/liquidation price source.\n- `rho` is intentionally omitted (convention-dependent, unrendered).\n- Rows are sorted by `symbol`. Staleness never yields a 5xx — the\n endpoint returns 200 with null fields.\n- Adding response fields is backward-compatible; removing or renaming\n fields is a breaking change.\n","deprecated":null,"version":null,"openapi":"/_generated/openapi.yaml get /v1/greeks","href":"/api-reference/market-data/get-greeks-model-price-and-probability-of-profit","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n li: \"li\",\n p: \"p\",\n strong: \"strong\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Per-instrument option greeks computed by Joyride:\\nBlack-76 (r = 0, forward = spot) model price, delta, gamma, theta,\\nvega, probability-of-profit, and the BlockScholes-derived \", _jsx(_components.code, {\n children: \"mark_iv\"\n }), \"\\npassthrough. Served entirely from an in-process cache refreshed by a\\nbackground poller — no upstream call is made per request.\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"Conventions:\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [\"All numeric fields are fixed-8 decimal \", _jsx(_components.strong, {\n children: \"strings\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"null\"\n }), \" means unknown/stale — \", _jsx(_components.code, {\n children: \"\\\"0.00000000\\\"\"\n }), \" is never emitted for an\\nunknown value. Rows whose source inputs (quote \", _jsx(_components.code, {\n children: \"as_of_ms\"\n }), \" / oracle\\nspot publish time) are older than the staleness window (default 30s)\\nserve null fields while retaining their last timestamps.\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"model_price\"\n }), \" is a display-only theoretical value. It is NOT the\\nmargin/liquidation-authoritative mark and must never be used as a\\nPnL/margin/liquidation price source.\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"rho\"\n }), \" is intentionally omitted (convention-dependent, unrendered).\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"Rows are sorted by \", _jsx(_components.code, {\n children: \"symbol\"\n }), \". Staleness never yields a 5xx — the\\nendpoint returns 200 with null fields.\"]\n }), \"\\n\", _jsx(_components.li, {\n children: \"Adding response fields is backward-compatible; removing or renaming\\nfields is a breaking change.\"\n }), \"\\n\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"codeStyling":{"theme":"css-variables"},"config":{},"pageMetadata":{"title":"Get greeks, model price, and probability of profit","description":"Per-instrument option greeks computed by Joyride:\nBlack-76 (r = 0, forward = spot) model price, delta, gamma, theta,\nvega, probability-of-profit, and the BlockScholes-derived `mark_iv`\npassthrough. Served entirely from an in-process cache refreshed by a\nbackground poller — no upstream call is made per request.\n\nConventions:\n- All numeric fields are fixed-8 decimal **strings**.\n- `null` means unknown/stale — `\"0.00000000\"` is never emitted for an\n unknown value. Rows whose source inputs (quote `as_of_ms` / oracle\n spot publish time) are older than the staleness window (default 30s)\n serve null fields while retaining their last timestamps.\n- `model_price` is a display-only theoretical value. It is NOT the\n margin/liquidation-authoritative mark and must never be used as a\n PnL/margin/liquidation price source.\n- `rho` is intentionally omitted (convention-dependent, unrendered).\n- Rows are sorted by `symbol`. Staleness never yields a 5xx — the\n endpoint returns 200 with null fields.\n- Adding response fields is backward-compatible; removing or renaming\n fields is a breaking change.\n","deprecated":null,"version":null,"openapi":"/_generated/openapi.yaml get /v1/greeks","href":"/api-reference/market-data/get-greeks-model-price-and-probability-of-profit","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Market Data"],"summary":"Get greeks, model price, and probability of profit","description":"Per-instrument option greeks computed by Joyride:\nBlack-76 (r = 0, forward = spot) model price, delta, gamma, theta,\nvega, probability-of-profit, and the BlockScholes-derived `mark_iv`\npassthrough. Served entirely from an in-process cache refreshed by a\nbackground poller — no upstream call is made per request.\n\nConventions:\n- All numeric fields are fixed-8 decimal **strings**.\n- `null` means unknown/stale — `\"0.00000000\"` is never emitted for an\n unknown value. Rows whose source inputs (quote `as_of_ms` / oracle\n spot publish time) are older than the staleness window (default 30s)\n serve null fields while retaining their last timestamps.\n- `model_price` is a display-only theoretical value. It is NOT the\n margin/liquidation-authoritative mark and must never be used as a\n PnL/margin/liquidation price source.\n- `rho` is intentionally omitted (convention-dependent, unrendered).\n- Rows are sorted by `symbol`. Staleness never yields a 5xx — the\n endpoint returns 200 with null fields.\n- Adding response fields is backward-compatible; removing or renaming\n fields is a breaking change.\n","operationId":"getBffGreeks","security":[],"parameters":["e385a88a-0e9e-45b0-8686-f4ee796ad065"],"responses":{"200":"3fcf3522-55de-4197-baf4-48edac18677d","400":"509440af-ddd3-4294-8c91-de1e1eb4d2ac"},"method":"get","type":"path","servers":["61145495-d965-4b95-a4eb-8ccd5abd20b9"],"path":"/v1/greeks","baseUrlOptions":["https://joyride.exchange/api"],"title":"Get greeks, model price, and probability of profit","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"e385a88a-0e9e-45b0-8686-f4ee796ad065":{"name":"asset","in":"query","required":false,"description":"Optional base-asset filter. Validated against the canonical\nconfigured asset set (`BTC`, `ETH`, `SOL`), case-insensitively;\nvalues longer than 64 bytes or outside the set yield 400\n`INVALID_ASSET`. A valid asset with no cached rows returns an\nempty `data` array.\n","schema":{"type":"string","maxLength":64,"enum":["BTC","ETH","SOL"],"isRequired":false,"description":"Optional base-asset filter. Validated against the canonical\nconfigured asset set (`BTC`, `ETH`, `SOL`), case-insensitively;\nvalues longer than 64 bytes or outside the set yield 400\n`INVALID_ASSET`. A valid asset with no cached rows returns an\nempty `data` array.\n","uniqueKey":"","typeLabel":"enum\u003cstring>"}}},"responses":{"3fcf3522-55de-4197-baf4-48edac18677d":{"description":"Cached greeks rows (empty array when the cache is empty)","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"symbol":{"type":"string","description":"Instrument symbol (quote-pair format)","examples":["BTC_USDC-25JUL26-120000-C"],"isRequired":true,"uniqueKey":"data.items.[INDEX].symbol","typeLabel":"string"},"model_price":{"oneOf":[{"type":"string","description":"BS(spot, K, T, r=0, mark_iv) theoretical price,\nfixed-8 decimal string. Display-only — never a\nmargin/liquidation price source.\n","isRequired":true,"uniqueKey":"data.items.[INDEX].model_price.oneOf.0","typeLabel":"string"},{"type":"null","description":"BS(spot, K, T, r=0, mark_iv) theoretical price,\nfixed-8 decimal string. Display-only — never a\nmargin/liquidation price source.\n","isRequired":true,"uniqueKey":"data.items.[INDEX].model_price.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].model_price","typeLabel":"string | null"},"mark_iv":{"oneOf":[{"type":"string","description":"BlockScholes-derived mark IV passthrough (fixed-8 string)","isRequired":true,"uniqueKey":"data.items.[INDEX].mark_iv.oneOf.0","typeLabel":"string"},{"type":"null","description":"BlockScholes-derived mark IV passthrough (fixed-8 string)","isRequired":true,"uniqueKey":"data.items.[INDEX].mark_iv.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].mark_iv","typeLabel":"string | null"},"delta":{"oneOf":[{"type":"string","description":"In [-1, 1], sign-consistent with option type (fixed-8 string)","isRequired":true,"uniqueKey":"data.items.[INDEX].delta.oneOf.0","typeLabel":"string"},{"type":"null","description":"In [-1, 1], sign-consistent with option type (fixed-8 string)","isRequired":true,"uniqueKey":"data.items.[INDEX].delta.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].delta","typeLabel":"string | null"},"gamma":{"oneOf":[{"type":"string","description":"Non-negative (fixed-8 string)","isRequired":true,"uniqueKey":"data.items.[INDEX].gamma.oneOf.0","typeLabel":"string"},{"type":"null","description":"Non-negative (fixed-8 string)","isRequired":true,"uniqueKey":"data.items.[INDEX].gamma.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].gamma","typeLabel":"string | null"},"theta":{"oneOf":[{"type":"string","description":"Per-day, non-positive at r = 0 (fixed-8 string)","isRequired":true,"uniqueKey":"data.items.[INDEX].theta.oneOf.0","typeLabel":"string"},{"type":"null","description":"Per-day, non-positive at r = 0 (fixed-8 string)","isRequired":true,"uniqueKey":"data.items.[INDEX].theta.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].theta","typeLabel":"string | null"},"vega":{"oneOf":[{"type":"string","description":"Per 1% IV change, non-negative (fixed-8 string)","isRequired":true,"uniqueKey":"data.items.[INDEX].vega.oneOf.0","typeLabel":"string"},{"type":"null","description":"Per 1% IV change, non-negative (fixed-8 string)","isRequired":true,"uniqueKey":"data.items.[INDEX].vega.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].vega","typeLabel":"string | null"},"pop":{"oneOf":[{"type":"string","description":"Long-side probability of profit at expiry, in [0, 1] (fixed-8 string)","isRequired":true,"uniqueKey":"data.items.[INDEX].pop.oneOf.0","typeLabel":"string"},{"type":"null","description":"Long-side probability of profit at expiry, in [0, 1] (fixed-8 string)","isRequired":true,"uniqueKey":"data.items.[INDEX].pop.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].pop","typeLabel":"string | null"},"as_of":{"oneOf":[{"type":"integer","description":"Unix ms of the OLDEST source input (never request time)","isRequired":true,"uniqueKey":"data.items.[INDEX].as_of.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Unix ms of the OLDEST source input (never request time)","isRequired":true,"uniqueKey":"data.items.[INDEX].as_of.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].as_of","typeLabel":"integer | null"},"computed_at":{"oneOf":[{"type":"integer","description":"Unix ms the row was last computed; null only when never computed","isRequired":true,"uniqueKey":"data.items.[INDEX].computed_at.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Unix ms the row was last computed; null only when never computed","isRequired":true,"uniqueKey":"data.items.[INDEX].computed_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].computed_at","typeLabel":"integer | null"}},"required":["symbol","model_price","mark_iv","delta","gamma","theta","vega","pop","as_of","computed_at"],"uniqueKey":"data.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data","typeLabel":"object[]"}},"required":["data"],"uniqueKey":"","typeLabel":"object"},"example":{"data":[{"symbol":"BTC_USDC-25JUL26-120000-C","model_price":"1588.21000000","mark_iv":"0.43210000","delta":"0.45120000","gamma":"0.00001200","theta":"-42.10000000","vega":"88.40000000","pop":"0.38000000","as_of":1753100000123,"computed_at":1753100000500}]},"examples":{"Example":{"title":"Example","value":{"data":[{"symbol":"BTC_USDC-25JUL26-120000-C","model_price":"1588.21000000","mark_iv":"0.43210000","delta":"0.45120000","gamma":"0.00001200","theta":"-42.10000000","vega":"88.40000000","pop":"0.38000000","as_of":1753100000123,"computed_at":1753100000500}]}}},"exampleType":"examples"}},"exampleType":"examples"},"509440af-ddd3-4294-8c91-de1e1eb4d2ac":{"description":"Invalid `asset` filter (the input is never reflected back)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","const":"INVALID_ASSET","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","const":"asset must be one of the listed base assets","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"required":["error","message"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"INVALID_ASSET","message":"asset must be one of the listed base assets"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{},"servers":{"61145495-d965-4b95-a4eb-8ccd5abd20b9":{"url":"https://joyride.exchange/api","description":"Production"}}},"originalFileLocation":"_generated/openapi.yaml"},"subdomain":"joyride","siteName":"Joyride Docs","title":"Get greeks, model price, and probability of profit - Joyride Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-05T15:22:22.200Z","originalFileLocation":"api-reference/market-data/get-greeks-model-price-and-probability-of-profit.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=\"dark\";if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"dark\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Per-instrument option greeks computed by Joyride: Black-76 (r = 0, forward = spot) model price, delta, gamma, theta, vega, probability-of-profit, and the BlockScholes-derived mark_iv passthrough. Served entirely from an in-process cache refreshed by a background poller — no upstream call is made per request. Conventions: - All numeric fields are fixed-8 decimal strings. - null means unknown/stale — \u0026quot;0.00000000\u0026quot; is never emitted for an unknown value. Rows whose source inputs (quote as_of_ms / oracle spot publish time) are older than the staleness window (default 30s) serve null fields while retaining their last timestamps. - model_price is a display-only theoretical value. It is NOT the margin/liquidation-authoritative mark and must never be used as a PnL/margin/liquidation price source. - rho is intentionally omitted (convention-dependent, unrendered). - Rows are sorted by symbol. Staleness never yields a 5xx — the endpoint returns 200 with null fields. - Adding response fields is backward-compatible; removing or renaming fields is a breaking change.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Joyride Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/joyride/I7NWbPwL8IHfTijF/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/joyride/I7NWbPwL8IHfTijF/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/joyride/I7NWbPwL8IHfTijF/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/joyride/I7NWbPwL8IHfTijF/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/joyride/I7NWbPwL8IHfTijF/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/joyride/I7NWbPwL8IHfTijF/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/joyride/I7NWbPwL8IHfTijF/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/joyride/I7NWbPwL8IHfTijF/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/joyride/I7NWbPwL8IHfTijF/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Get greeks, model price, and probability of profit - Joyride Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Per-instrument option greeks computed by Joyride: Black-76 (r = 0, forward = spot) model price, delta, gamma, theta, vega, probability-of-profit, and the BlockScholes-derived mark_iv passthrough. Served entirely from an in-process cache refreshed by a background poller — no upstream call is made per request. Conventions: - All numeric fields are fixed-8 decimal strings. - null means unknown/stale — \u0026quot;0.00000000\u0026quot; is never emitted for an unknown value. Rows whose source inputs (quote as_of_ms / oracle spot publish time) are older than the staleness window (default 30s) serve null fields while retaining their last timestamps. - model_price is a display-only theoretical value. It is NOT the margin/liquidation-authoritative mark and must never be used as a PnL/margin/liquidation price source. - rho is intentionally omitted (convention-dependent, unrendered). - Rows are sorted by symbol. Staleness never yields a 5xx — the endpoint returns 200 with null fields. - Adding response fields is backward-compatible; removing or renaming fields is a breaking change.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Joyride Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.joyride.exchange/api-reference/market-data/get-greeks-model-price-and-probability-of-profit\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://joyride.mintlify.app/_mintlify/api/og/v2?division=Market+Data\u0026amp;title=Get+greeks%2C+model+price%2C+and+probability+of+profit\u0026amp;description=Per-instrument+option+greeks+computed+by+Joyride%3A%0ABlack-76+%28r+%3D+0%2C+forward+%3D+spot%29+model+price%2C+delta%2C+gamma%2C+theta%2C%0Avega%2C+probability-of-profit%2C+and+the+BlockS\u0026amp;theme=8f3206837b80aac3ed0fdf95\u0026amp;signature=f678bc6446eb431d976b4b3f636983759c3284b7426f8ae98c7a0a628ba0ce52\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Get greeks, model price, and probability of profit - Joyride Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Per-instrument option greeks computed by Joyride: Black-76 (r = 0, forward = spot) model price, delta, gamma, theta, vega, probability-of-profit, and the BlockScholes-derived mark_iv passthrough. Served entirely from an in-process cache refreshed by a background poller — no upstream call is made per request. Conventions: - All numeric fields are fixed-8 decimal strings. - null means unknown/stale — \u0026quot;0.00000000\u0026quot; is never emitted for an unknown value. Rows whose source inputs (quote as_of_ms / oracle spot publish time) are older than the staleness window (default 30s) serve null fields while retaining their last timestamps. - model_price is a display-only theoretical value. It is NOT the margin/liquidation-authoritative mark and must never be used as a PnL/margin/liquidation price source. - rho is intentionally omitted (convention-dependent, unrendered). - Rows are sorted by symbol. Staleness never yields a 5xx — the endpoint returns 200 with null fields. - Adding response fields is backward-compatible; removing or renaming fields is a breaking change.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://joyride.mintlify.app/_mintlify/api/og/v2?division=Market+Data\u0026amp;title=Get+greeks%2C+model+price%2C+and+probability+of+profit\u0026amp;description=Per-instrument+option+greeks+computed+by+Joyride%3A%0ABlack-76+%28r+%3D+0%2C+forward+%3D+spot%29+model+price%2C+delta%2C+gamma%2C+theta%2C%0Avega%2C+probability-of-profit%2C+and+the+BlockS\u0026amp;theme=8f3206837b80aac3ed0fdf95\u0026amp;signature=f678bc6446eb431d976b4b3f636983759c3284b7426f8ae98c7a0a628ba0ce52\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/joyride/I7NWbPwL8IHfTijF/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Joyride Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#3C52FF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.joyride.exchange/api-reference/market-data/get-greeks-model-price-and-probability-of-profit\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/market-data/get-greeks-model-price-and-probability-of-profit.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.joyride.exchange/#organization\",\"name\":\"Joyride Docs\",\"url\":\"https://docs.joyride.exchange\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/joyride/NC5bVBvD2tWYUMNe/images/joyride-logo-black.svg?fit=max\u0026auto=format\u0026n=NC5bVBvD2tWYUMNe\u0026q=85\u0026s=56f0278cb0f4e2b18c213a18498f5ed5\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.joyride.exchange#website\",\"name\":\"Joyride Docs\",\"url\":\"https://docs.joyride.exchange\",\"publisher\":{\"@id\":\"https://docs.joyride.exchange/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.joyride.exchange/api-reference/market-data/get-greeks-model-price-and-probability-of-profit#webpage\",\"url\":\"https://docs.joyride.exchange/api-reference/market-data/get-greeks-model-price-and-probability-of-profit\",\"name\":\"Get greeks, model price, and probability of profit\",\"description\":\"Per-instrument option greeks computed by Joyride: Black-76 (r = 0, forward = spot) model price, delta, gamma, theta, vega, probability-of-profit, and the BlockScholes-derived mark_iv passthrough. Served entirely from an in-process cache refreshed by a background poller — no upstream call is made per request. Conventions: - All numeric fields are fixed-8 decimal strings. - null means unknown/stale — \\\"0.00000000\\\" is never emitted for an unknown value. Rows whose source inputs (quote as_of_ms / oracle spot publish time) are older than the staleness window (default 30s) serve null fields while retaining their last timestamps. - model_price is a display-only theoretical value. It is NOT the margin/liquidation-authoritative mark and must never be used as a PnL/margin/liquidation price source. - rho is intentionally omitted (convention-dependent, unrendered). - Rows are sorted by symbol. Staleness never yields a 5xx — the endpoint returns 200 with null fields. - Adding response fields is backward-compatible; removing or renaming fields is a breaking change.\",\"dateModified\":\"2026-10-05T15:22:22.200Z\",\"isPartOf\":{\"@id\":\"https://docs.joyride.exchange#website\"},\"breadcrumb\":{\"@id\":\"https://docs.joyride.exchange/api-reference/market-data/get-greeks-model-price-and-probability-of-profit#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.joyride.exchange/api-reference/market-data/get-greeks-model-price-and-probability-of-profit#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"REST API\",\"item\":\"https://docs.joyride.exchange/api-reference/public/health-check\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Get greeks, model price, and probability of profit\",\"item\":\"https://docs.joyride.exchange/api-reference/market-data/get-greeks-model-price-and-probability-of-profit\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.joyride.exchange/api-reference/market-data/get-greeks-model-price-and-probability-of-profit#apireference\",\"headline\":\"Get greeks, model price, and probability of profit\",\"name\":\"Get greeks, model price, and probability of profit\",\"description\":\"Per-instrument option greeks computed by Joyride: Black-76 (r = 0, forward = spot) model price, delta, gamma, theta, vega, probability-of-profit, and the BlockScholes-derived mark_iv passthrough. Served entirely from an in-process cache refreshed by a background poller — no upstream call is made per request. Conventions: - All numeric fields are fixed-8 decimal strings. - null means unknown/stale — \\\"0.00000000\\\" is never emitted for an unknown value. Rows whose source inputs (quote as_of_ms / oracle spot publish time) are older than the staleness window (default 30s) serve null fields while retaining their last timestamps. - model_price is a display-only theoretical value. It is NOT the margin/liquidation-authoritative mark and must never be used as a PnL/margin/liquidation price source. - rho is intentionally omitted (convention-dependent, unrendered). - Rows are sorted by symbol. Staleness never yields a 5xx — the endpoint returns 200 with null fields. - Adding response fields is backward-compatible; removing or renaming fields is a breaking change.\",\"url\":\"https://docs.joyride.exchange/api-reference/market-data/get-greeks-model-price-and-probability-of-profit\",\"mainEntityOfPage\":{\"@id\":\"https://docs.joyride.exchange/api-reference/market-data/get-greeks-model-price-and-probability-of-profit#webpage\"},\"dateModified\":\"2026-10-05T15:22:22.200Z\",\"publisher\":{\"@id\":\"https://docs.joyride.exchange/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.joyride.exchange#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Joyride Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Joyride Docs","nav":{"global":null,"tabs":[{"tab":"Overview","pages":[{"title":"Overview","href":""}]},{"tab":"Trading","pages":[{"title":"Trading","href":"/exchange/trading"}]},{"tab":"Market Makers","pages":[{"title":"Market Makers","href":"/market-makers/overview"}]},{"tab":"Builders","groups":[{"group":"Builders","pages":[{"title":"Integration guide","href":"/getting-started"}]},{"group":"REST API","pages":[{"group":"Public","pages":[{"title":"Health check","deprecated":null,"version":null,"openapi":"/_generated/openapi.yaml get /health","href":"/api-reference/public/health-check"},{"title":"Get public market configuration","deprecated":null,"version":null,"openapi":"/_generated/openapi.yaml get /v1/market/config","href":"/api-reference/public/get-public-market-configuration"},{"title":"List public instrument metadata","deprecated":null,"version":null,"openapi":"/_generated/openapi.yaml get /v1/market/instruments","href":"/api-reference/public/list-public-instrument-metadata"},{"title":"List available implied volatilities for open instruments","deprecated":null,"version":null,"openapi":"/_generated/openapi.yaml get /v1/market/quotes","href":"/api-reference/public/list-available-implied-volatilities-for-open-instruments"},{"title":"Get the current implied volatility for an instrument","deprecated":null,"version":null,"openapi":"/_generated/openapi.yaml get /v1/market/quotes/{symbol}","href":"/api-reference/public/get-the-current-implied-volatility-for-an-instrument"}]},{"group":"Query","pages":[{"title":"The caller's RFQ collateral, as the vault-watcher last projected it","deprecated":null,"version":null,"openapi":"/_generated/openapi.yaml get /query/vault-subaccount","href":"/api-reference/query/the-callers-rfq-collateral-as-the-vault-watcher-last-projected-it"},{"title":"Net RFQ contracts per instrument for the authenticated account","deprecated":null,"version":null,"openapi":"/_generated/openapi.yaml get /query/rfq-positions","href":"/api-reference/query/net-rfq-contracts-per-instrument-for-the-authenticated-account"},{"title":"List RFQ fill history for the authenticated maker or taker","deprecated":null,"version":null,"openapi":"/_generated/openapi.yaml get /query/rfq-fills","href":"/api-reference/query/list-rfq-fill-history-for-the-authenticated-maker-or-taker"}]},{"group":"Account","pages":[{"title":"List deposit history","deprecated":null,"version":null,"openapi":"/_generated/openapi.yaml get /v1/deposits","href":"/api-reference/account/list-deposit-history"},{"title":"Ensure the caller's RFQ subaccount exists (Joyride pays the rent once)","deprecated":null,"version":null,"openapi":"/_generated/openapi.yaml post /v1/rfq/subaccount","href":"/api-reference/account/ensure-the-callers-rfq-subaccount-exists-joyride-pays-the-rent-once"}]},{"group":"Withdrawals","pages":[{"title":"List withdrawal history","description":"Returns the authenticated account's newest withdrawal audit entries.","deprecated":null,"version":null,"openapi":"/_generated/openapi.yaml get /v1/withdrawals","href":"/api-reference/withdrawals/list-withdrawal-history"}]},{"group":"Market Data","pages":[{"title":"Get greeks, model price, and probability of profit","deprecated":null,"version":null,"openapi":"/_generated/openapi.yaml get /v1/greeks","href":"/api-reference/market-data/get-greeks-model-price-and-probability-of-profit"}]}]},{"group":"WebSocket API","pages":[{"group":"Websockets","pages":[{"asyncapi":"_generated/asyncapi.yaml public.get_nonce","href":"/api-reference/websockets/publicget_nonce","title":"public/get_nonce","description":"JSON-RPC method `public/get_nonce` on the trading socket. Takes no `params`. The nonce is valid for 300 seconds and consumed by the next `public/auth`.","version":null},{"asyncapi":"_generated/asyncapi.yaml public.auth","href":"/api-reference/websockets/publicauth","title":"public/auth","version":null},{"asyncapi":"_generated/asyncapi.yaml public.session_resume","href":"/api-reference/websockets/publicsession_resume","title":"public/session_resume","version":null},{"asyncapi":"_generated/asyncapi.yaml public.get_market_config","href":"/api-reference/websockets/publicget_market_config","title":"public/get_market_config","version":null},{"asyncapi":"_generated/asyncapi.yaml public.get_instruments","href":"/api-reference/websockets/publicget_instruments","title":"public/get_instruments","version":null},{"asyncapi":"_generated/asyncapi.yaml rfq.create","href":"/api-reference/websockets/rfqcreate","title":"Rfq.create","version":null},{"asyncapi":"_generated/asyncapi.yaml rfq.accept","href":"/api-reference/websockets/rfqaccept","title":"Rfq.accept","version":null},{"asyncapi":"_generated/asyncapi.yaml rfq.get","href":"/api-reference/websockets/rfqget","title":"Rfq.get","version":null},{"asyncapi":"_generated/asyncapi.yaml rfq.list","href":"/api-reference/websockets/rfqlist","title":"Rfq.list","version":null},{"asyncapi":"_generated/asyncapi.yaml rfq.subscribe","href":"/api-reference/websockets/rfqsubscribe","title":"Rfq.subscribe","version":null},{"asyncapi":"_generated/asyncapi.yaml rfq.maker.subscribe","href":"/api-reference/websockets/rfqmakersubscribe","title":"Rfq.maker.subscribe","version":null},{"asyncapi":"_generated/asyncapi.yaml rfq.maker.poll","href":"/api-reference/websockets/rfqmakerpoll","title":"Rfq.maker.poll","version":null},{"asyncapi":"_generated/asyncapi.yaml rfq.maker.respond","href":"/api-reference/websockets/rfqmakerrespond","title":"Rfq.maker.respond","version":null},{"asyncapi":"_generated/asyncapi.yaml rfq.maker.decline","href":"/api-reference/websockets/rfqmakerdecline","title":"Rfq.maker.decline","version":null},{"asyncapi":"_generated/asyncapi.yaml rfq","href":"/api-reference/websockets/rfq-channel-pushes","title":"rfq channel (pushes)","version":null},{"asyncapi":"_generated/asyncapi.yaml rfq_maker","href":"/api-reference/websockets/rfq_maker-channel-pushes","title":"rfq_maker channel (pushes)","version":null},{"asyncapi":"_generated/asyncapi.yaml oracle","href":"/api-reference/websockets/oracle","title":"Oracle","version":null},{"asyncapi":"_generated/asyncapi.yaml prices","href":"/api-reference/websockets/prices","title":"Prices","version":null}]}]}]},{"tab":"Agents","pages":[{"title":"Agents","href":"/agents/quickstart"}]}]},"basePath":"","title":"Get greeks, model price, and probability of profit - Joyride Docs","buildId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","deploymentId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","dynamics":["c2aa737661","b0f84f53ff","a9bb46feb3","2b790eda92"],"chunks":["OpenApiReferenceProvider-DX1Meug0.js","utils-B_OMIQVC.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-ChxhRPMa.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-CuKvD8Iv.js","snippetPresets-C5d7p2hp.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","Page-BAvA99GL.js","ApiExamples-CfHcE8m4.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-C1zZV314.js","shallow-CmQhqCJn.js","getApiPlaygroundDisplay-YRo9s1O7.js","CodeSnippet-RN1MTdfk.js","CodeSnippets-DKLPHxJA.js","getPastedJson-bz0M41mU.js","icon-CsmhpPrv.js","MethodPill-CNGsVE77.js","DuplicateIcon-DilfU_Z2.js","createIcon-BdsYzQck.js","DynamicMarkdown-CbqEDjbV.js","SectionHeading-O6hXpFCN.js","axios-vUo_bRtp.js","Markdown-nKm-uidQ.js","clsx-ClVdStUn.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CIQkMg3R.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-ImrFS4Fy.js"]}