evidinvest-com Portfolio API

The Portfolio API from evidinvest-com — 2 operation(s) for portfolio.

Operations 2

POST /v1/tools/optimize_portfolio Optimize portfolio weights using Markowitz Modern Portfolio Theory (MPT) #
POST /v1/tools/portfolio_risk_decomposition Decompose portfolio risk by position: marginal contribution to risk (MCR), VaR… #

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/evidinvest-com:evidinvest-com-portfolio-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

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

evidinvest-com-portfolio-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: EvidInvest Financial Data Portfolio API
  version: 1.0.0
  description: 'REST API exposing 54 financial data, valuation, SEC filing, and portfolio tools, every figure traceable to an SEC filing. Designed for AI agents and external LLMs. Two ways to pay: (1) Bearer API key from https://evidinvest.com/settings/api-keys, 1 MCP credit per call; (2) NO ACCOUNT NEEDED — pay per request with the Machine Payments Protocol (https://mpp.dev) on the /v1/paid/* routes. Prices are dynamic and quoted free at GET /v1/quote.'
  contact:
    name: EvidInvest
    url: https://evidinvest.com
servers:
- url: https://mcp.evidinvest.com
  description: Production
security:
- BearerAuth: []
tags:
- name: Portfolio
paths:
  /v1/tools/optimize_portfolio:
    post:
      operationId: call_optimize_portfolio
      summary: Optimize portfolio weights using Markowitz Modern Portfolio Theory (MPT)
      tags:
      - Portfolio
      x-mcp-title: Optimize portfolio
      x-mcp-annotations:
        title: Optimize portfolio
        readOnlyHint: true
        destructiveHint: false
        idempotentHint: true
        openWorldHint: false
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                arguments:
                  type: object
                  properties:
                    symbols:
                      type: array
                      items:
                        type: string
                      minItems: 2
                      maxItems: 30
                      description: Array of 2–30 stock symbols
                    lookback_days:
                      type: number
                      description: 'Days of price history to use (default: 365)'
                    risk_free_rate:
                      type: number
                      description: 'Annual risk-free rate (default: 0.05 = 5%)'
                    optimization_target:
                      type: string
                      enum:
                      - max_sharpe
                      - min_variance
                      - efficient_frontier
                      description: 'Optimization objective (default: max_sharpe)'
                  required:
                  - symbols
              required:
              - arguments
      responses:
        '200':
          description: Tool result
          content:
            application/json:
              schema:
                type: object
                properties:
                  result: {}
                  toolName:
                    type: string
                  creditsUsed:
                    type: integer
                required:
                - result
                - toolName
                - creditsUsed
        '400':
          description: Invalid arguments — e.g. a fetch-mode filing search (no `query`) that names no document; the body says which fields to pass
        '401':
          description: Missing or invalid API key
        '402':
          description: No MCP credits remaining
        '404':
          description: Tool not found
        '429':
          description: Rate limit or monthly tool call limit reached
        '500':
          description: Tool execution error
  /v1/tools/portfolio_risk_decomposition:
    post:
      operationId: call_portfolio_risk_decomposition
      summary: 'Decompose portfolio risk by position: marginal contribution to risk (MCR), VaR…'
      description: 'Decompose portfolio risk by position: marginal contribution to risk (MCR), VaR 95%, CVaR 95%, and diversification ratio'
      tags:
      - Portfolio
      x-mcp-title: Portfolio risk decomposition
      x-mcp-annotations:
        title: Portfolio risk decomposition
        readOnlyHint: true
        destructiveHint: false
        idempotentHint: true
        openWorldHint: false
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                arguments:
                  type: object
                  properties:
                    symbols:
                      type: array
                      items:
                        type: string
                      minItems: 2
                      description: Array of stock symbols
                    weights:
                      type: object
                      additionalProperties:
                        type: number
                      description: Optional dict of symbol → weight (will be normalized to sum to 1)
                    lookback_days:
                      type: number
                      description: 'Days of price history (default: 252)'
                  required:
                  - symbols
              required:
              - arguments
      responses:
        '200':
          description: Tool result
          content:
            application/json:
              schema:
                type: object
                properties:
                  result: {}
                  toolName:
                    type: string
                  creditsUsed:
                    type: integer
                required:
                - result
                - toolName
                - creditsUsed
        '400':
          description: Invalid arguments — e.g. a fetch-mode filing search (no `query`) that names no document; the body says which fields to pass
        '401':
          description: Missing or invalid API key
        '402':
          description: No MCP credits remaining
        '404':
          description: Tool not found
        '429':
          description: Rate limit or monthly tool call limit reached
        '500':
          description: Tool execution error
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: EvidInvest API key (evid_sk_...)