From f1e47bc67a6b44ecdb86710854befec605d68be6 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Thu, 10 Apr 2025 21:01:16 +0200 Subject: [PATCH] Improve service * Set maximum number of symbols per request * Migrate getQuotes to stable API version --- .../financial-modeling-prep.service.ts | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/apps/api/src/services/data-provider/financial-modeling-prep/financial-modeling-prep.service.ts b/apps/api/src/services/data-provider/financial-modeling-prep/financial-modeling-prep.service.ts index 119e8ea67..d6eaec076 100644 --- a/apps/api/src/services/data-provider/financial-modeling-prep/financial-modeling-prep.service.ts +++ b/apps/api/src/services/data-provider/financial-modeling-prep/financial-modeling-prep.service.ts @@ -325,6 +325,10 @@ export class FinancialModelingPrepService implements DataProviderInterface { } } + public getMaxNumberOfSymbolsPerRequest() { + return 20; + } + public getName(): DataSource { return DataSource.FINANCIAL_MODELING_PREP; } @@ -341,7 +345,7 @@ export class FinancialModelingPrepService implements DataProviderInterface { try { const quotes = await fetch( - `${this.URL}/quote/${symbols.join(',')}?apikey=${this.apiKey}`, + `${this.getUrl({ version: 'stable' })}/batch-quote-short?symbols=${symbols.join(',')}&apikey=${this.apiKey}`, { signal: AbortSignal.timeout(requestTimeout) } @@ -451,8 +455,14 @@ export class FinancialModelingPrepService implements DataProviderInterface { return name; } - private getUrl({ version }: { version: number }) { - return `https://financialmodelingprep.com/api/v${version}`; + private getUrl({ version }: { version: number | 'stable' }) { + const baseUrl = 'https://financialmodelingprep.com'; + + if (version === 'stable') { + return `${baseUrl}/stable`; + } + + return `${baseUrl}/api/v${version}`; } private parseAssetClass(profile: any): {