# Quote schema (/docs/schema/quote) {/* AUTO-GENERATED. Do not hand-edit. Source: packages/social-api/src/docs/generate-schema-pages.ts Regenerate with: pnpm -F @repo/social-api generate:docs Field tables derive from the canonical Zod schemas (packages/social-api/src/schemas/canonical.ts); availability + equivalence derive from the registry fieldMaps. */} Quote schema [#quote-schema] Every SocialCrawl endpoint that returns a financial quote gives you this exact shape, whatever the source platform. Write your parser once and the same code reads quote data from every platform below. That is the unified schema: one contract instead of a dozen raw upstream formats. Field reference [#field-reference] | Field | Type | Nullable | Description | | ------------------------------ | ---------- | -------- | -------------------------------------------------------------------------------------------------------------- | | `id` | `string` | No | Instrument identifier — re-feed into /v1/google\_finance/quote ("GOOGL:NASDAQ" \| ".INX:INDEXSP" \| "EUR-USD") | | `ticker` | `string` | Yes | Ticker symbol (null for forex/crypto asset pairs) | | `exchange` | `string` | Yes | Primary exchange / market identifier | | `name` | `string` | Yes | Display name (e.g. 'Alphabet Inc Class A') | | `type` | `string` | No | Instrument class: stock \| etf \| index \| crypto \| forex \| futures \| fund \| unknown | | `url` | `string` | Yes | | | `currency` | `string` | Yes | Price currency (null for asset pairs) | | `pair.base_symbol` | `string` | Yes | | | `pair.quote_symbol` | `string` | Yes | | | `pair.base_display_name` | `string` | Yes | | | `pair.quote_display_name` | `string` | Yes | | | `price.current` | `integer` | Yes | | | `price.previous_close` | `integer` | Yes | | | `price.delta` | `integer` | Yes | | | `price.percentage_delta` | `integer` | Yes | | | `price.trend` | `string` | Yes | | | `price.day_low` | `integer` | Yes | | | `price.day_high` | `integer` | Yes | | | `price.year_low` | `integer` | Yes | | | `price.year_high` | `integer` | Yes | | | `price.timestamp` | `string` | Yes | | | `metrics.market_cap` | `integer` | Yes | | | `metrics.volume` | `integer` | Yes | | | `metrics.avg_volume` | `integer` | Yes | | | `metrics.pe_ratio` | `integer` | Yes | | | `metrics.dividend_yield` | `integer` | Yes | | | `metrics.ytd_return` | `integer` | Yes | | | `metrics.expense_ratio` | `integer` | Yes | | | `metrics.net_assets` | `integer` | Yes | | | `metrics.yield` | `integer` | Yes | | | `metrics.open_interest` | `integer` | Yes | | | `metrics.category` | `string` | Yes | | | `metrics.metrics_currency` | `string` | Yes | | | `about.description` | `string` | Yes | | | `about.description_source_url` | `string` | Yes | | | `about.ceo` | `string` | Yes | | | `about.founded` | `string` | Yes | | | `about.headquarters` | `string` | Yes | | | `about.website` | `string` | Yes | | | `about.employees` | `integer` | Yes | | | `graph` | `object[]` | Yes | Intraday price series (\{ timestamp, value, volume }) | | `financials.quarterly` | `string[]` | Yes | | | `financials.annual` | `string[]` | Yes | | | `peers` | `object[]` | Yes | Related instruments (compare\_to) | Platform availability [#platform-availability] 1 platform returns the `Quote` shape. `id`, `type` are never null on any platform. The fields below vary: **yes** means the platform populates it (the value may still be null); a blank means the platform never provides it, so it is always null.