get_frames#

async AsyncAPI.get_frames(taxonomy, tag, unit, period, instantaneous)#

Get frames for a period.

Retrieve aggregated XBRL facts across multiple companies for a specific period.

Parameters:
  • taxonomy (str) – A non-custom taxonomy identifier (e.g. ‘us-gaap’, ‘ifrs-full’, ‘dei’, or ‘srt’).

  • tag (str) – The specific disclosure concept tag to retrieve (e.g. ‘AccountsPayableCurrent’, ‘Assets’).

  • unit (str) – Unit of measurement for the requested data. Default is ‘pure’. Denominated units are separated by ‘-per-’ (e.g. ‘USD-per-shares’), non-denominated units are specified directly (e.g. ‘USD’).

  • period (str | datetime) – The reporting period as a datetime object or a string in the formats: “YYYY-MM-DD” or Annual (365 days ±30 days): CY#### (e.g. ‘CY2019’), Quarterly (91 days ±30 days): CY####Q# (e.g. ‘CY2019Q1’), Instantaneous: CY####Q#I (e.g. ‘CY2019Q1I’).

  • instantaneous (bool) – Whether the period is instantaneous (e.g. ‘CY2019Q1I’).

Returns:

An object containing facts from multiple companies for the specified concept and period.

Return type:

Frame

Raises:

ValueError – If the request fails or the response is not valid JSON format.

Example

>>> from edgar_sec import EdgarAPI
>>> import asyncio
>>> async def main():
>>>     api = EdgarAPI()
>>>     frame = await api.Async.get_frames("us-gaap", "AccountsPayableCurrent", "USD", "CY2019Q1I")
>>>     for i, disclosure in enumerate(frame.data[:3]):
>>>         print(f"{disclosure.entity_name}: ${disclosure.val}")
>>> asyncio.run(main())

Note

Due to varying company fiscal calendars, the frame data is assembled using the dates that best align with calendar periods. Be mindful that facts in a frame may have different exact reporting start and end dates.