# Noonum Developers ## Docs - [Backtest a portfolio of companies](https://docs.noonum.ai/api-reference-v2/backtest/backtest-a-portfolio-of-companies.md): Accepts a list of company IDs with weights, resolves each to a tradeable security, fetches historical price data, and computes buy-and-hold NAV and statistics over the requested period. - [Check if the API is healthy](https://docs.noonum.ai/api-reference-v2/helper/check-if-the-api-is-healthy.md) - [Enhance an investment objective](https://docs.noonum.ai/api-reference-v2/helper/enhance-an-investment-objective.md) - [Fast search for companies by name, symbol, ISIN, or FIGI](https://docs.noonum.ai/api-reference-v2/helper/fast-search-for-companies-by-name-symbol-isin-or-figi.md): Returns all active securities for matching organizations. Exact matches are ranked highest, followed by prefix matches. Securities are returned with the primary listing first, and US market listings prioritized within each group. Results are limited to the top 10. - [Look up companies by identifier](https://docs.noonum.ai/api-reference-v2/helper/look-up-companies-by-identifier.md): Search Noonum companies by providing either an ISIN or ticker symbol. At least one identifier must be provided in the request body. - [Reverse an investment objective](https://docs.noonum.ai/api-reference-v2/helper/reverse-an-investment-objective.md) - [Suggest exclusion phrases for a company](https://docs.noonum.ai/api-reference-v2/helper/suggest-exclusion-phrases-for-a-company.md) - [Create or overwrite a portfolio and replace holdings](https://docs.noonum.ai/api-reference-v2/portfolios/create-or-overwrite-a-portfolio-and-replace-holdings.md) - [Delete a portfolio (owner only)](https://docs.noonum.ai/api-reference-v2/portfolios/delete-a-portfolio-owner-only.md) - [Get a specific portfolio (owner or public)](https://docs.noonum.ai/api-reference-v2/portfolios/get-a-specific-portfolio-owner-or-public.md): Returns the details of a specific portfolio if it is public or owned by the authenticated user. Authentication is required even for public portfolios. For portfolios not owned by the requester, the `user_id` field is returned as null. - [List portfolios visible to the authenticated user (owned + public)](https://docs.noonum.ai/api-reference-v2/portfolios/list-portfolios-visible-to-the-authenticated-user-owned-+-public.md): Returns portfolios owned by the authenticated user and all public portfolios. For portfolios not owned by the requester, the `user_id` field is returned as null. - [Update a portfolio and replace holdings (owner only)](https://docs.noonum.ai/api-reference-v2/portfolios/update-a-portfolio-and-replace-holdings-owner-only.md) - [Construct portfolio using score-tilt weighting with optional risk overlay](https://docs.noonum.ai/api-reference-v2/userstrategies/construct-portfolio-using-score-tilt-weighting-with-optional-risk-overlay.md): Builds portfolio weights by tilting scores with a power exponent (industry-standard score-tilt approach). Optionally applies a covariance-based risk overlay that reduces concentration in highly correlated stocks while staying close to the signal-driven target weights. - [Create a new strategy for the authenticated user](https://docs.noonum.ai/api-reference-v2/userstrategies/create-a-new-strategy-for-the-authenticated-user.md) - [Enumerate a strategy's versions (newest first)](https://docs.noonum.ai/api-reference-v2/userstrategies/enumerate-a-strategys-versions-newest-first.md): The owner sees all versions; a non-owner of a public strategy sees only the active version. Each item carries the version's metadata plus its latest run state. - [Get a specific strategy](https://docs.noonum.ai/api-reference-v2/userstrategies/get-a-specific-strategy.md) - [Get a version's metadata and run state](https://docs.noonum.ai/api-reference-v2/userstrategies/get-a-versions-metadata-and-run-state.md): Without asOfDate: reports the version's overall run state — the status of its most recent run, plus latest_run_date and runs_count. With asOfDate: reports the state of that version's run on the given date (the rollup-only fields are null); returns 404 if there is no run on that date. - [Get all included companies' evidences for the resolved run](https://docs.noonum.ai/api-reference-v2/userstrategies/get-all-included-companies-evidences-for-the-resolved-run.md) - [Get reasoning/evidence for a specific company in a strategy](https://docs.noonum.ai/api-reference-v2/userstrategies/get-reasoningevidence-for-a-specific-company-in-a-strategy.md) - [List strategies — the caller's own (default), the public catalog, or both](https://docs.noonum.ai/api-reference-v2/userstrategies/list-strategies-—-the-callers-own-default-the-public-catalog-or-both.md) - [List taxonomy groups for strategy creation](https://docs.noonum.ai/api-reference-v2/userstrategies/list-taxonomy-groups-for-strategy-creation.md) - [List the dates that have a completed run for the resolved version](https://docs.noonum.ai/api-reference-v2/userstrategies/list-the-dates-that-have-a-completed-run-for-the-resolved-version.md) - [List the result companies for a strategy run](https://docs.noonum.ai/api-reference-v2/userstrategies/list-the-result-companies-for-a-strategy-run.md): Returns the result companies for a run of the strategy. Defaults to the strategy's active version and its latest completed run; pass asOfDate and/or versionId to select a different run. A completed run with no qualifying companies returns an empty array; when there is no completed run for the select… - [List the user's archived strategies still within the 30-day grace window](https://docs.noonum.ai/api-reference-v2/userstrategies/list-the-users-archived-strategies-still-within-the-30-day-grace-window.md) - [Per-strategy exposure/overlap of a portfolio across visible strategies](https://docs.noonum.ai/api-reference-v2/userstrategies/per-strategy-exposureoverlap-of-a-portfolio-across-visible-strategies.md): For each of the caller's visible strategies (owned or public, non-archived), measures the supplied portfolio's overlap, exposure and returns against that strategy's latest completed run. Returns rows sorted by exposure descending. - [Request (re)generation of the factsheet for the resolved run](https://docs.noonum.ai/api-reference-v2/userstrategies/request-regeneration-of-the-factsheet-for-the-resolved-run.md) - [Retrieve the factsheet PDF (302 when ready) or its generation status](https://docs.noonum.ai/api-reference-v2/userstrategies/retrieve-the-factsheet-pdf-302-when-ready-or-its-generation-status.md): When the resolved run's factsheet is ready, redirects (302) to a short-lived presigned URL for the PDF. While it is still being produced, returns 200 with a status body instead of a misleading 404 — `generating` (a request is in flight) or `not_requested` (none has been asked for). 404 is reserved f… - [Revive an archived strategy within its grace window (owner only)](https://docs.noonum.ai/api-reference-v2/userstrategies/revive-an-archived-strategy-within-its-grace-window-owner-only.md) - [Soft-archive a strategy (owner only)](https://docs.noonum.ai/api-reference-v2/userstrategies/soft-archive-a-strategy-owner-only.md) - [Submit a LIVE or HISTORICAL run for a version of the strategy](https://docs.noonum.ai/api-reference-v2/userstrategies/submit-a-live-or-historical-run-for-a-version-of-the-strategy.md): Enqueues a run for a version of the strategy. The run is LIVE when as_of_date is omitted or equals today (UTC), else HISTORICAL. LIVE submissions write the per-version pipeline trigger; HISTORICAL ones are rate-limited (weekly/monthly credits) and use the DB-poll path. - [Update the draft fields of a strategy (owner only)](https://docs.noonum.ai/api-reference-v2/userstrategies/update-the-draft-fields-of-a-strategy-owner-only.md) - [Connect an MCP Client](https://docs.noonum.ai/base/agentic/mcp-client-setup.md): Connect Claude Desktop or any MCP client to the Noonum MCP server using an API key or Auth0 OAuth. - [Noonum MCP Server](https://docs.noonum.ai/base/agentic/mcp-server.md): Connect MCP-compatible LLM clients to Noonum strategy and company analytics, with tools, prompts, and API-key or Auth0 OAuth authentication. - [Overview](https://docs.noonum.ai/base/agentic/overview.md): Connect AI agents to Noonum's strategy and company analytics over the Model Context Protocol (MCP). - [Changelog](https://docs.noonum.ai/base/changelog.md): Release notes for the Noonum API, MCP server, and documentation site. - [Methodology](https://docs.noonum.ai/base/concepts/overview.md): What Noonum's signals mean and how to use them across strategies, scores, and portfolios. - [Portfolio optimization](https://docs.noonum.ai/base/concepts/portfolio-optimization.md): How Noonum turns a strategy's ranked holdings into a weighted portfolio, using score-tilt weighting to tilt weight toward higher-scoring companies. - [Research papers](https://docs.noonum.ai/base/concepts/research-papers.md): Published Noonum research behind the linguistic-signal methodology, available as PDFs. - [Signals and scores](https://docs.noonum.ai/base/concepts/signals-and-scores.md): What each holding-level signal and the strategy-level LSI mean, how to read their ranges, and how to act on them. - [API Reference](https://docs.noonum.ai/v2/api-reference/introduction.md): Base URL, authentication, and endpoint reference for the Noonum REST API. - [Going to Production](https://docs.noonum.ai/v2/deployment/overview.md): Production deployment guide for teams integrating the Noonum REST API and MCP server. Covers auth, key hygiene, error handling, retries, and a pre-launch checklist. - [Authentication](https://docs.noonum.ai/v2/getting-started/authentication.md): Authenticate Noonum REST API and MCP server requests with your Noonum API key as a Bearer token. - [Quickstart](https://docs.noonum.ai/v2/getting-started/quickstart.md): Get a key, authenticate, and make your first authenticated Noonum REST API call in under 15 minutes. - [Analyze and compare strategies](https://docs.noonum.ai/v2/guides/analyze-strategies.md): View holdings, find outliers, compare two strategies, export data, and pull a factsheet for existing Noonum thematic strategies through the REST API and MCP server. - [Build a strategy](https://docs.noonum.ai/v2/guides/build-strategy.md): Turn an investment thesis into a grounded, ranked list of companies using the Noonum REST API or MCP server. - [Iterate a strategy](https://docs.noonum.ai/v2/guides/iterate-strategy.md): Refine a Noonum strategy with Python. Enhance the objective, review holdings and evidence, exclude what you don't want, resubmit, and generate historical results. - [Objective versioning](https://docs.noonum.ai/v2/guides/objective-versioning.md): How a strategy's draft becomes immutable versions, where run results live, and how to list and poll them. - [Guides](https://docs.noonum.ai/v2/guides/overview.md): Guides for building, iterating on, analyzing, and integrating Noonum strategies with the REST API and MCP server. - [End-to-end REST integration](https://docs.noonum.ai/v2/guides/rest-integration.md): A working end-to-end Noonum REST integration. Authenticate, build a strategy, fetch holdings, and run a backtest. - [Overview](https://docs.noonum.ai/v2/index.md): Noonum helps transform your thought/idea into an investment solution in a matter of minutes. Build, back-test, and manage them with the Noonum REST API and MCP server. ## OpenAPI Specs - [openapi](https://docs.noonum.ai/api-reference/openapi.json) - [openapi-v2](https://docs.noonum.ai/api-reference/openapi-v2.json)