Equity Rank Watchlist API

The watchlist API from Equity Rank — 8 operation(s) for watchlist.

GitHub OpenAPI

Operations 11

GET /api/watchlist Get Watchlist #
POST /api/watchlist Add To Watchlist #
DELETE /api/watchlist/{symbol} Remove From Watchlist #
PATCH /api/watchlist/{symbol}/alerts Update Alert Prefs #
POST /api/watchlist/alerts/disable-all Disable All Alerts #
PATCH /api/watchlist/{symbol}/threshold Update Alert Threshold #
GET /api/watchlist/{symbol}/note Get Watchlist Note #
PUT /api/watchlist/{symbol}/note Upsert Watchlist Note #
DELETE /api/watchlist/{symbol}/note Delete Watchlist Note #
POST /api/watchlist/share Toggle Share #
GET /api/watchlist/share-state Get Share State #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/equity-rank-com:equity-rank-com-watchlist-api"
All apis
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.

Get an API 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 Specification

equity-rank-com-watchlist-api-openapi.yml Raw ↑
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