{"id":29571626,"url":"https://github.com/e-roy/fmp-node-wrapper","last_synced_at":"2025-07-19T04:06:52.017Z","repository":{"id":303686719,"uuid":"1013114444","full_name":"e-roy/fmp-node-wrapper","owner":"e-roy","description":"A node wrapper for the Financial Modeling Prep API","archived":false,"fork":false,"pushed_at":"2025-07-16T02:41:46.000Z","size":419,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-17T05:14:54.303Z","etag":null,"topics":["financial-modeling-prep","financial-modeling-prep-api","fmp"],"latest_commit_sha":null,"homepage":"https://fmp-node-wrapper-docs.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/e-roy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-03T11:33:09.000Z","updated_at":"2025-07-16T02:41:46.000Z","dependencies_parsed_at":"2025-07-08T22:36:09.464Z","dependency_job_id":"1ff69fc3-b9a6-41b0-b6a3-ecb71b63defe","html_url":"https://github.com/e-roy/fmp-node-wrapper","commit_stats":null,"previous_names":["e-roy/fmp-node-wrapper"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/e-roy/fmp-node-wrapper","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/e-roy%2Ffmp-node-wrapper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/e-roy%2Ffmp-node-wrapper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/e-roy%2Ffmp-node-wrapper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/e-roy%2Ffmp-node-wrapper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/e-roy","download_url":"https://codeload.github.com/e-roy/fmp-node-wrapper/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/e-roy%2Ffmp-node-wrapper/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265887907,"owners_count":23844497,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["financial-modeling-prep","financial-modeling-prep-api","fmp"],"created_at":"2025-07-19T04:06:51.555Z","updated_at":"2025-07-19T04:06:52.004Z","avatar_url":"https://github.com/e-roy.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FMP Node Wrapper\n\n[![npm version](https://img.shields.io/npm/v/fmp-node-api.svg)](https://www.npmjs.com/package/fmp-node-api)\n[![npm downloads](https://img.shields.io/npm/dm/fmp-node-api.svg)](https://www.npmjs.com/package/fmp-node-api)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.3-blue.svg)](https://www.typescriptlang.org/)\n[![Node.js](https://img.shields.io/badge/Node.js-18+-green.svg)](https://nodejs.org/)\n[![Build Status](https://img.shields.io/badge/build-passing-brightgreen.svg)](https://github.com/e-roy/fmp-node-wrapper)\n[![Test Coverage](https://img.shields.io/badge/tests-45+-brightgreen.svg)](https://github.com/e-roy/fmp-node-wrapper)\n\nA modern, comprehensive Node.js wrapper for the Financial Modeling Prep (FMP) API with full TypeScript support.\n\n## Features\n\n- 🚀 **Complete TypeScript Support** - Full type safety for all API responses\n- 📦 **Organized Structure** - Clean separation of concerns with dedicated modules\n- 🔧 **Easy to Use** - Simple, intuitive API with minimal boilerplate\n- 📊 **Comprehensive Coverage** - Support for all FMP stable endpoints\n- 🛡️ **Input Validation** - Built-in validation for all parameters\n- 🎯 **Modular Design** - Import only what you need\n- 🧪 **Comprehensive Testing** - Full test suite with 45+ tests covering all endpoints\n\n## Installation\n\n```bash\nnpm install fmp-node-api\n# or\nyarn add fmp-node-api\n# or\npnpm add fmp-node-api\n```\n\n## Quick Start\n\n### 1. Get Your API Key\n\nSign up at [Financial Modeling Prep](https://site.financialmodelingprep.com/developer/docs/stable) and get your API key.\n\n### 2. Basic Usage\n\n```typescript\nimport { FMP } from 'fmp-node-api';\n\n// Initialize the client\nconst fmp = new FMP({\n  apiKey: 'your-api-key-here',\n});\n\n// Get stock quote\nconst quote = await fmp.stock.getQuote({ symbol: 'AAPL' });\nif (quote.success) {\n  console.log('Price:', quote.data[0].price);\n}\n\n// Get company profile\nconst profile = await fmp.stock.getCompanyProfile({ symbol: 'AAPL' });\nif (profile.success) {\n  console.log('Company:', profile.data[0].companyName);\n}\n```\n\n## API Examples\n\n### Stock Data\n\n```typescript\n// Get real-time quote\nconst quote = await fmp.stock.getQuote({ symbol: 'AAPL' });\n\n// Get company profile\nconst profile = await fmp.stock.getCompanyProfile({ symbol: 'AAPL' });\n\n// Get historical prices\nconst historical = await fmp.stock.getHistoricalPrice({\n  symbol: 'AAPL',\n  from: '2024-01-01',\n  to: '2024-12-31',\n});\n\n// Get stock splits\nconst splits = await fmp.stock.getStockSplits({ symbol: 'AAPL' });\n\n// Get dividend history\nconst dividends = await fmp.stock.getDividendHistory({ symbol: 'AAPL' });\n```\n\n### Financial Statements\n\n```typescript\n// Get income statement\nconst income = await fmp.financial.getIncomeStatement({\n  symbol: 'AAPL',\n  period: 'annual',\n  limit: 10,\n});\n\n// Get balance sheet\nconst balance = await fmp.financial.getBalanceSheet({\n  symbol: 'AAPL',\n  period: 'quarter',\n});\n\n// Get cash flow statement\nconst cashFlow = await fmp.financial.getCashFlowStatement({\n  symbol: 'AAPL',\n  period: 'annual',\n});\n\n// Get key metrics\nconst metrics = await fmp.financial.getKeyMetrics({ symbol: 'AAPL' });\n```\n\n### Market Data\n\n```typescript\n// Get market hours\nconst hours = await fmp.market.getMarketHours();\n\n// Get market performance\nconst performance = await fmp.market.getMarketPerformance();\n\n// Get gainers and losers\nconst gainers = await fmp.market.getGainers();\nconst losers = await fmp.market.getLosers();\n\n// Get most active stocks\nconst mostActive = await fmp.market.getMostActive();\n```\n\n### Other Asset Classes\n\n```typescript\n// Forex\nconst forexQuote = await fmp.forex.getQuote({ symbol: 'EURUSD' });\n\n// Cryptocurrency\nconst cryptoQuote = await fmp.crypto.getQuote({ symbol: 'BTCUSD' });\n\n// ETFs\nconst etfQuote = await fmp.etf.getQuote({ symbol: 'SPY' });\n\n// Economic indicators\nconst treasury = await fmp.economic.getTreasuryRates({\n  from: '2024-01-01',\n  to: '2024-12-31',\n});\n\n// Stock lists and indices\nconst sp500 = await fmp.list.getSP500();\nconst nasdaq = await fmp.list.getNasdaq100();\n\n// Earnings calendar\nconst earnings = await fmp.calendar.getEarningsCalendar({\n  from: '2024-01-01',\n  to: '2024-12-31',\n});\n\n// Company search\nconst companies = await fmp.company.searchCompany({ query: 'Apple' });\n```\n\n## Response Format\n\nAll API methods return a standardized response format:\n\n```typescript\ninterface APIResponse\u003cT\u003e {\n  success: boolean;\n  data?: T;\n  error?: string;\n  status?: number;\n}\n```\n\n### Example Response\n\n```typescript\n{\n  success: true,\n  data: [\n    {\n      symbol: 'AAPL',\n      price: 150.25,\n      change: 2.15,\n      changePercent: 1.45,\n      // ... other fields\n    }\n  ],\n  status: 200\n}\n```\n\n## Error Handling\n\n```typescript\ntry {\n  const quote = await fmp.stock.getQuote({ symbol: 'INVALID' });\n\n  if (!quote.success) {\n    console.error('API Error:', quote.error);\n    return;\n  }\n\n  console.log('Quote:', quote.data);\n} catch (error) {\n  console.error('Network Error:', error);\n}\n```\n\n## Available Modules\n\n- **`fmp.quote`** - Quote data for stocks, forex, crypto, commodities, and ETFs\n- **`fmp.stock`** - Stock market data (quotes, profiles, historical prices, etc.)\n- **`fmp.financial`** - Financial statements (income, balance sheet, cash flow)\n- **`fmp.crypto`** - Cryptocurrency data\n- **`fmp.etf`** - ETF data and holdings\n- **`fmp.mutualFund`** - Mutual fund data\n- **`fmp.economic`** - Economic indicators\n- **`fmp.market`** - Market-wide data and performance\n- **`fmp.list`** - Stock lists and indices\n- **`fmp.calendar`** - Earnings and economic calendar\n- **`fmp.company`** - Company information and search\n\n## Documentation\n\n- **📚 [Full Documentation](https://fmp-node-wrapper-docs.vercel.app)** - Complete API reference and examples\n- **📦 [NPM Package](https://www.npmjs.com/package/fmp-node-api)** - Package information and downloads\n- **🐛 [Issues](https://github.com/e-roy/fmp-node-wrapper/issues)** - Report bugs or request features\n\n## Support\n\n- **🐛 [GitHub Issues](https://github.com/e-roy/fmp-node-wrapper/issues)**: For bug reports and feature requests\n- **📧 [FMP Official Support](https://site.financialmodelingprep.com/developer/docs/stable)**: For issues with the underlying FMP API service\n\n## Contributing\n\nWe welcome contributions! This is a community-driven project, and your help is greatly appreciated.\n\n### Quick Start\n\n1. **Fork the repository**\n2. **Create a feature branch**: `git checkout -b feature/your-feature-name`\n3. **Make your changes** following our development guidelines\n4. **Run quality checks**: `pnpm lint \u0026\u0026 pnpm test \u0026\u0026 pnpm type-check`\n5. **Open a Pull Request** with a clear description of your changes\n\n### Getting Help\n\n- **📖 [Contributing Guide](CONTRIBUTING.md)**: Detailed guidelines and development setup\n- **🐛 [Issues](https://github.com/e-roy/fmp-node-wrapper/issues)**: Report bugs or request features\n- **📚 [Documentation](https://fmp-node-wrapper-docs.vercel.app)**: Check the docs first\n\n### Before Contributing\n\n- [ ] Read the [Contributing Guide](CONTRIBUTING.md)\n- [ ] Check existing issues to avoid duplicates\n- [ ] Test with the latest version of the library\n- [ ] Follow our coding standards and testing requirements\n\n---\n\n## Development\n\n_This section is for developers working on the library itself._\n\n### Project Structure\n\nThis is a monorepo containing:\n\n- **`packages/api/`**: Main FMP API wrapper (`fmp-node-api`)\n- **`apps/docs/`**: Next.js documentation site\n\n### Development Setup\n\n```bash\n# Install dependencies\npnpm install\n\n# Set up environment\ncp .env.example .env\n# Add your FMP_API_KEY to .env\n\n# Build and test\npnpm build\npnpm test\n```\n\n### Available Scripts\n\n```bash\n# Development \u0026 Build\npnpm dev              # All packages\npnpm docs:dev         # Just docs\npnpm api:dev          # Just API\npnpm build            # Build all packages\npnpm clean            # Clean build artifacts\npnpm clean:install    # Clean all node_modules and reinstall\n\n# Testing\npnpm test             # All tests\npnpm test:watch       # Watch mode\npnpm test:coverage    # Run tests with coverage report\npnpm test:api         # Manual API tests\npnpm test:endpoint    # Run specific endpoint test (requires cd to packages/api)\npnpm test:unit        # Run unit tests for API package\npnpm test:integration # Run integration tests for API package\npnpm test:endpoints   # Run all endpoint tests\npnpm test:stock       # Run stock endpoint tests\npnpm test:financial   # Run financial endpoint tests\npnpm test:market      # Run market endpoint tests\npnpm test:forex       # Run forex endpoint tests\npnpm test:economic    # Run economic endpoint tests\npnpm test:list        # Run list endpoint tests\npnpm test:calendar    # Run calendar endpoint tests\npnpm test:company     # Run company endpoint tests\n\n# Code Quality\npnpm lint             # Check linting\npnpm lint:fix         # Auto-fix\npnpm format           # Format code\npnpm format:check     # Check code formatting\npnpm type-check       # Type checking\n\n# Publishing\npnpm publish-packages # Build, lint, test, version, and publish packages\n```\n\n### Tech Stack\n\n- **Build Tool**: Turborepo\n- **Package Manager**: pnpm\n- **Language**: TypeScript\n- **Framework**: Next.js 15 + React 19\n- **Styling**: Tailwind CSS v4\n- **Testing**: Jest + ts-jest\n- **Linting**: ESLint\n- **Formatting**: Prettier\n- **Versioning**: Changesets\n\n## License\n\nMIT\n\n## Disclaimer\n\n**This project is not affiliated with, endorsed by, or sponsored by Financial Modeling Prep (FMP).** This is an independent, community-developed Node.js wrapper for the FMP API.\n\n### Important Legal Information\n\n- **No Affiliation**: This library is developed independently and is not officially associated with Financial Modeling Prep\n- **No Warranty**: This software is provided \"as is\" without any warranties, express or implied\n- **User Responsibility**: Users are responsible for:\n  - Complying with FMP's terms of service and API usage limits\n  - Obtaining and maintaining valid API keys from Financial Modeling Prep\n  - Ensuring their usage complies with applicable laws and regulations\n- **Limitation of Liability**: The developers of this wrapper are not responsible for:\n  - Any issues with the underlying FMP API service\n  - Data accuracy or availability from the FMP API\n  - Any financial losses or damages resulting from the use of this library\n  - API rate limiting, downtime, or service interruptions\n- **Official Support**: For official support, documentation, or API issues, please contact Financial Modeling Prep directly at their official channels\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fe-roy%2Ffmp-node-wrapper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fe-roy%2Ffmp-node-wrapper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fe-roy%2Ffmp-node-wrapper/lists"}