[**@s4ai/core Documentation v0.3.23**](../../../README.md)

***

[@s4ai/core Documentation](../../../modules.md) / [@s4ai/core](../README.md) / PublicAPIIntegrator

# Class: PublicAPIIntegrator

Defined in: infrastructure/public-api-integrator.js:12

## Extends

- [`Revenue`](../business/variables/Revenue.md)

## Constructors

### Constructor

> **new PublicAPIIntegrator**(`config?`): `PublicAPIIntegrator`

Defined in: infrastructure/public-api-integrator.js:13

#### Parameters

##### config?

#### Returns

`PublicAPIIntegrator`

#### Overrides

`EventEmitter.constructor`

## Properties

### cache

> **cache**: `Map`\<`any`, `any`\>

Defined in: infrastructure/public-api-integrator.js:147

***

### config

> **config**: `object`

Defined in: infrastructure/public-api-integrator.js:16

#### cacheTTL

> **cacheTTL**: `any`

#### maxRetries

> **maxRetries**: `any`

#### respectRateLimits

> **respectRateLimits**: `boolean`

#### retryDelay

> **retryDelay**: `any`

***

### failures

> **failures**: `object`

Defined in: infrastructure/public-api-integrator.js:150

***

### initializePromise

> **initializePromise**: `Promise`\<`void`\>

Defined in: infrastructure/public-api-integrator.js:164

***

### mlm

> **mlm**: `any`

Defined in: infrastructure/public-api-integrator.js:163

***

### rateLimitTracking

> **rateLimitTracking**: `object`

Defined in: infrastructure/public-api-integrator.js:144

***

### sources

> **sources**: `object`

Defined in: infrastructure/public-api-integrator.js:25

#### ai

> **ai**: `object`[]

#### financial

> **financial**: `object`[]

#### news

> **news**: `object`[]

#### physics

> **physics**: `object`[]

#### research

> **research**: `object`[]

***

### stats

> **stats**: `object`

Defined in: infrastructure/public-api-integrator.js:153

#### apiCalls

> **apiCalls**: `number` = `0`

#### bySource

> **bySource**: `object` = `{}`

#### cacheHits

> **cacheHits**: `number` = `0`

#### failures

> **failures**: `number` = `0`

#### fallbacks

> **fallbacks**: `number` = `0`

#### totalRequests

> **totalRequests**: `number` = `0`

## Methods

### buildURL()

> **buildURL**(`source`, `query`, `options?`): `any`

Defined in: infrastructure/public-api-integrator.js:344

Build URL for specific source

#### Parameters

##### source

`any`

##### query

`any`

##### options?

#### Returns

`any`

***

### canMakeRequest()

> **canMakeRequest**(`sourceName`): `boolean`

Defined in: infrastructure/public-api-integrator.js:419

Rate limit management

#### Parameters

##### sourceName

`any`

#### Returns

`boolean`

***

### checkRateLimits()

> **checkRateLimits**(): `void`

Defined in: infrastructure/public-api-integrator.js:524

#### Returns

`void`

***

### clearCache()

> **clearCache**(): `void`

Defined in: infrastructure/public-api-integrator.js:510

#### Returns

`void`

***

### fetchFromSource()

> **fetchFromSource**(`source`, `query`, `options?`): `Promise`\<`any`\>

Defined in: infrastructure/public-api-integrator.js:286

Fetch from specific source

#### Parameters

##### source

`any`

##### query

`any`

##### options?

#### Returns

`Promise`\<`any`\>

***

### fetchWithFallback()

> **fetchWithFallback**(`category`, `query`, `options?`): `Promise`\<`any`\>

Defined in: infrastructure/public-api-integrator.js:204

Fetch data with intelligent fallback chains

#### Parameters

##### category

`string`

Category: financial, research, physics, news, ai

##### query

`string`

Query parameters or endpoint path

##### options?

`object` = `{}`

Additional options

#### Returns

`Promise`\<`any`\>

***

### findSource()

> **findSource**(`sourceName`): `any`

Defined in: infrastructure/public-api-integrator.js:470

#### Parameters

##### sourceName

`any`

#### Returns

`any`

***

### getAvailableSources()

> **getAvailableSources**(`category`): `any`

Defined in: infrastructure/public-api-integrator.js:569

Get available sources by category

#### Parameters

##### category

`any`

#### Returns

`any`

***

### getFromCache()

> **getFromCache**(`category`, `query`): `any`

Defined in: infrastructure/public-api-integrator.js:481

Cache management

#### Parameters

##### category

`any`

##### query

`any`

#### Returns

`any`

***

### getRemainingCalls()

> **getRemainingCalls**(`sourceName`): `number`

Defined in: infrastructure/public-api-integrator.js:580

#### Parameters

##### sourceName

`any`

#### Returns

`number`

***

### getStats()

> **getStats**(): `object`

Defined in: infrastructure/public-api-integrator.js:553

Get statistics

#### Returns

`object`

##### apiCalls

> **apiCalls**: `number` = `0`

##### bySource

> **bySource**: `object` = `{}`

##### cacheHitRate

> **cacheHitRate**: `string`

##### cacheHits

> **cacheHits**: `number` = `0`

##### cacheSize

> **cacheSize**: `number`

##### failureRate

> **failureRate**: `string`

##### failures

> **failures**: `number` = `0`

##### fallbacks

> **fallbacks**: `number` = `0`

##### totalRequests

> **totalRequests**: `number` = `0`

***

### initialize()

> **initialize**(): `Promise`\<`void`\>

Defined in: infrastructure/public-api-integrator.js:167

#### Returns

`Promise`\<`void`\>

***

### isSourceAvailable()

> **isSourceAvailable**(`sourceName`): `boolean`

Defined in: infrastructure/public-api-integrator.js:442

#### Parameters

##### sourceName

`any`

#### Returns

`boolean`

***

### makeRequestWithRetry()

> **makeRequestWithRetry**(`url`, `source`, `options?`, `attempt?`): `any`

Defined in: infrastructure/public-api-integrator.js:305

Make HTTP request with automatic retry

#### Parameters

##### url

`any`

##### source

`any`

##### options?

##### attempt?

`number` = `1`

#### Returns

`any`

***

### recordFailure()

> **recordFailure**(`sourceName`): `void`

Defined in: infrastructure/public-api-integrator.js:458

#### Parameters

##### sourceName

`any`

#### Returns

`void`

***

### recordRequest()

> **recordRequest**(`sourceName`): `void`

Defined in: infrastructure/public-api-integrator.js:433

#### Parameters

##### sourceName

`any`

#### Returns

`void`

***

### setCache()

> **setCache**(`category`, `query`, `data`): `void`

Defined in: infrastructure/public-api-integrator.js:496

#### Parameters

##### category

`any`

##### query

`any`

##### data

`any`

#### Returns

`void`

***

### sleep()

> **sleep**(`ms`): `Promise`\<`any`\>

Defined in: infrastructure/public-api-integrator.js:592

Utility: Sleep

#### Parameters

##### ms

`any`

#### Returns

`Promise`\<`any`\>

***

### startRateLimitMonitoring()

> **startRateLimitMonitoring**(): `void`

Defined in: infrastructure/public-api-integrator.js:518

Start monitoring rate limits

#### Returns

`void`
