Equity Rank Watchlist API
The watchlist API from Equity Rank — 8 operation(s) for watchlist.
The watchlist API from Equity Rank — 8 operation(s) for watchlist.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/equity-rank-com:equity-rank-com-watchlist-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Equity Rank Com Watchlist API
version: 0.1.0
description: 'Operations tagged watchlist across 2 of this provider''s published API definitions: openapi.json, equity-rank-com-openapi.yml. Each path carries the servers of the definition it was published in.'
tags:
- name: watchlist
paths:
/api/watchlist:
get:
tags:
- watchlist
summary: Get Watchlist
description: 'Return all symbols in the user''s watchlist with enriched score/trend data.
Also returns legacy `symbols` list for backwards compatibility.'
operationId: get_watchlist_api_watchlist_get
responses:
'200':
description: Successful Response
content:
application/json:
schema:
additionalProperties: true
type: object
title: Response Get Watchlist Api Watchlist Get
security:
- HTTPBearer: []
post:
tags:
- watchlist
summary: Add To Watchlist
description: 'Add a symbol to the user''s watchlist (idempotent — duplicate silently ignored).
Free-plan accounts (no-card free tier, post-preview) are capped at
FREE_WATCHLIST_TICKER_CAP tickers. All other users keep existing behavior.'
operationId: add_to_watchlist_api_watchlist_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AddSymbolRequest'
required: true
responses:
'201':
description: Successful Response
content:
application/json:
schema:
additionalProperties: true
type: object
title: Response Add To Watchlist Api Watchlist Post
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- HTTPBearer: []
/api/watchlist/{symbol}:
delete:
tags:
- watchlist
summary: Remove From Watchlist
description: Remove a symbol from the user's watchlist.
operationId: remove_from_watchlist_api_watchlist__symbol__delete
security:
- HTTPBearer: []
parameters:
- name: symbol
in: path
required: true
schema:
type: string
title: Symbol
responses:
'200':
description: Successful Response
content:
application/json:
schema:
type: object
additionalProperties: true
title: Response Remove From Watchlist Api Watchlist Symbol Delete
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/watchlist/{symbol}/alerts:
patch:
tags:
- watchlist
summary: Update Alert Prefs
description: Update alert preferences for a specific watchlist entry.
operationId: update_alert_prefs_api_watchlist__symbol__alerts_patch
security:
- HTTPBearer: []
parameters:
- name: symbol
in: path
required: true
schema:
type: string
title: Symbol
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AlertPrefsRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
type: object
additionalProperties: true
title: Response Update Alert Prefs Api Watchlist Symbol Alerts Patch
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/watchlist/alerts/disable-all:
post:
tags:
- watchlist
summary: Disable All Alerts
description: Disable alerts for every watchlist entry belonging to the user (one-click unsubscribe).
operationId: disable_all_alerts_api_watchlist_alerts_disable_all_post
responses:
'200':
description: Successful Response
content:
application/json:
schema:
additionalProperties: true
type: object
title: Response Disable All Alerts Api Watchlist Alerts Disable All Post
security:
- HTTPBearer: []
/api/watchlist/{symbol}/threshold:
patch:
tags:
- watchlist
summary: Update Alert Threshold
description: Update the daily move alert threshold for a watchlist entry.
operationId: update_alert_threshold_api_watchlist__symbol__threshold_patch
security:
- HTTPBearer: []
parameters:
- name: symbol
in: path
required: true
schema:
type: string
title: Symbol
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateThresholdRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
type: object
additionalProperties: true
title: Response Update Alert Threshold Api Watchlist Symbol Threshold Patch
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/watchlist/{symbol}/note:
get:
tags:
- watchlist
summary: Get Watchlist Note
description: 'Return the caller''s private note for a symbol; note: null if none exists.
RLS (`auth.uid() = user_id`) is the primary isolation boundary. This query
ALSO carries an explicit `user_id=eq.{caller}` filter as defense-in-depth
(T-89-11-01) — the service-role key used by `_supabase_headers()` bypasses
RLS, so the router-level filter is what actually scopes this query today.'
operationId: get_watchlist_note_api_watchlist__symbol__note_get
security:
- HTTPBearer: []
parameters:
- name: symbol
in: path
required: true
schema:
type: string
title: Symbol
responses:
'200':
description: Successful Response
content:
application/json:
schema:
type: object
additionalProperties: true
title: Response Get Watchlist Note Api Watchlist Symbol Note Get
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
put:
tags:
- watchlist
summary: Upsert Watchlist Note
description: 'Upsert the caller''s private note for a symbol (defense-in-depth: user_id
is always the authenticated caller''s id, never client-supplied).'
operationId: upsert_watchlist_note_api_watchlist__symbol__note_put
security:
- HTTPBearer: []
parameters:
- name: symbol
in: path
required: true
schema:
type: string
title: Symbol
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/NoteRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
type: object
additionalProperties: true
title: Response Upsert Watchlist Note Api Watchlist Symbol Note Put
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
delete:
tags:
- watchlist
summary: Delete Watchlist Note
description: 'Remove the caller''s private note for a symbol. Scoped by user_id=eq.{caller}
as defense-in-depth alongside RLS (T-89-11-01).'
operationId: delete_watchlist_note_api_watchlist__symbol__note_delete
security:
- HTTPBearer: []
parameters:
- name: symbol
in: path
required: true
schema:
type: string
title: Symbol
responses:
'200':
description: Successful Response
content:
application/json:
schema:
type: object
additionalProperties: true
title: Response Delete Watchlist Note Api Watchlist Symbol Note Delete
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/watchlist/share:
post:
tags:
- watchlist
summary: Toggle Share
description: 'SHARE-01 + SHARE-05: toggle the user''s `public.watchlists` row to shared/unshared.
On enabling, generates a 12-char URL-safe slug if one does not yet exist.
On disabling, sets is_shared=false (slug remains in DB to preserve uniqueness).
Targets `public.watchlists` (plural) — the user-keyed table extended by 16-01.'
operationId: toggle_share_api_watchlist_share_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ShareToggleRequest'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
additionalProperties: true
type: object
title: Response Toggle Share Api Watchlist Share Post
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- HTTPBearer: []
/api/watchlist/share-state:
get:
tags:
- watchlist
summary: Get Share State
description: 'Returns the current share state for the authenticated user''s watchlist.
Used by the frontend WatchlistPage useEffect on mount to render the correct
toggle label ("Share watchlist" vs "Stop sharing") + URL pill.'
operationId: get_share_state_api_watchlist_share_state_get
responses:
'200':
description: Successful Response
content:
application/json:
schema:
additionalProperties: true
type: object
title: Response Get Share State Api Watchlist Share State Get
security:
- HTTPBearer: []
components:
schemas:
ShareToggleRequest:
properties:
is_shared:
type: boolean
title: Is Shared
name:
anyOf:
- type: string
- type: 'null'
title: Name
type: object
required:
- is_shared
title: ShareToggleRequest
UpdateThresholdRequest:
properties:
alert_threshold:
type: number
title: Alert Threshold
type: object
required:
- alert_threshold
title: UpdateThresholdRequest
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
AddSymbolRequest:
properties:
symbol:
type: string
title: Symbol
type: object
required:
- symbol
title: AddSymbolRequest
NoteRequest:
properties:
note:
type: string
maxLength: 5000
title: Note
type: object
required:
- note
title: NoteRequest
AlertPrefsRequest:
properties:
alerts_enabled:
anyOf:
- type: boolean
- type: 'null'
title: Alerts Enabled
alert_threshold:
anyOf:
- type: number
- type: 'null'
title: Alert Threshold
type: object
title: AlertPrefsRequest
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
input:
title: Input
ctx:
type: object
title: Context
type: object
required:
- loc
- msg
- type
title: ValidationError
securitySchemes:
HTTPBearer:
type: http
scheme: bearer
x-refined-from:
- openapi.json
- equity-rank-com-openapi.yml