Skip to content

Other Data

Miscellaneous AMFI data — investor complaints, AMC directors & trustees, group companies, scheme dividends, scheme profiles, and account disclosures.

Data dictionary: Other Data field reference →


Investor Complaints

amfipy.other_data.OtherDataClient.investor_complaints_monthly(month, mf_id=0, part=1, as_df=False)

Fetch monthly investor complaints report.

Parameters:

Name Type Description Default
month str

Month in "MonthName-YYYY" format, e.g. "March-2026".

required
mf_id int | str

Fund ID. 0 = All AMCs; use a specific numeric ID for one AMC.

0
part int

Report part: 1=Part A, 2=Part B, 3=Part C, 4=Part D.

1
as_df bool

Return polars DataFrame.

False

Returns:

Type Description
Any

Complaint statistics for the requested month/part.

amfipy.other_data.OtherDataClient.investor_complaints_yearly(year, mf_id=0, as_df=False)

Fetch annual investor complaints report.

Parameters:

Name Type Description Default
year int | str

Financial year string "YYYY-YYYY", e.g. "2019-2020". Note: Only covers historical data up to FY 2021.

required
mf_id int | str

Fund ID. 0 = All AMCs.

0
as_df bool

Return polars DataFrame.

False

Directors & Trustees

amfipy.other_data.OtherDataClient.amc_directors(mf_id=0, as_df=False)

Fetch combined AMC directors list.

Parameters:

Name Type Description Default
mf_id int | str

Fund ID. 0 = All AMCs.

0
as_df bool

Return polars DataFrame.

False

Returns:

Type Description
Any

List of director records for the specified AMC(s).

amfipy.other_data.OtherDataClient.trustees(mf_id=0, as_df=False)

Fetch combined AMC trustees list.

Parameters:

Name Type Description Default
mf_id int | str

Fund ID. 0 = All AMCs.

0
as_df bool

Return polars DataFrame.

False

Returns:

Type Description
Any

List of trustee records for the specified AMC(s).


Group Companies

amfipy.other_data.OtherDataClient.group_companies(page=1, size=10, as_df=False)

Fetch one page of the group companies list.

The full dataset has ~599 records. Default page size is 10 (60 pages total). Use :meth:group_companies_all to fetch everything.

Parameters:

Name Type Description Default
page int

1-based page number.

1
size int

Records per page (default 10).

10
as_df bool

Return polars DataFrame.

False

Returns:

Type Description
Any

Dict with data (list of company records) and totalCount.

amfipy.other_data.OtherDataClient.group_companies_all(size=100, as_df=False)

Fetch the full group companies list (auto-paginate).

Parameters:

Name Type Description Default
size int

Records per request (higher = fewer round-trips).

100
as_df bool

Return polars DataFrame of all records.

False

Returns:

Type Description
Any

List of all company records (or polars DataFrame).


Scheme Dividends

amfipy.other_data.OtherDataClient.populate_schemes(mf_id)

Fetch the list of schemes for an AMC, for use with :meth:scheme_dividends.

Parameters:

Name Type Description Default
mf_id int | str

Numeric AMC ID (required; no "All" option).

required

Returns:

Type Description
list[dict]

List of scheme dicts. Use the scheme_id field as sd_id in

list[dict]

meth:scheme_dividends.

Example::

schemes = client.other_data.populate_schemes(mf_id=62)
# → [{"scheme_id": "13771", "scheme_name": "..."}, ...]

amfipy.other_data.OtherDataClient.scheme_dividends(mf_id, sd_id, year, as_df=False)

Fetch dividend history for a specific scheme.

You must first call :meth:populate_schemes to get the sd_id (the scheme_id field from each scheme entry).

Parameters:

Name Type Description Default
mf_id int | str

Numeric AMC ID.

required
sd_id int | str

Scheme ID from :meth:populate_schemes (the scheme_id field).

required
year int | str

4-digit financial year end, e.g. 2026 for FY 2025-26.

required
as_df bool

Return polars DataFrame.

False

Example::

schemes = client.other_data.populate_schemes(mf_id=62)
divs = client.other_data.scheme_dividends(
    mf_id=62, sd_id=schemes[0]["scheme_id"], year=2026
)

Scheme Data & Details

amfipy.other_data.OtherDataClient.scheme_data(mf_id, sd_id, as_df=False)

Fetch NAV data for all plan/option variants of a scheme.

Returns one record per NAV option (Direct Growth, Regular IDCW, etc.) with ISIN codes, latest NAV price, repurchase/sales price, and date.

Parameters:

Name Type Description Default
mf_id int | str

Numeric AMC ID.

required
sd_id int | str

Scheme ID from :meth:populate_schemes (scheme_id field).

required
as_df bool

Return polars DataFrame.

False

Example::

schemes = client.other_data.populate_schemes(mf_id=62)
nav_rows = client.other_data.scheme_data(
    mf_id=62, sd_id=schemes[0]["scheme_id"]
)
# → [{"Scheme_NAV_Name": "...", "ISIN_Div_Payout_ISIN_Growth": "...",
#     "Net_Asset_Value": "13.32", "Date": "2026-05-08T...", ...}, ...]

amfipy.other_data.OtherDataClient.scheme_details(mf_id, sd_id)

Fetch full profile for a specific scheme.

Returns a single dict with scheme objective, type, category, load structure, minimum investment amount, and AMC website.

Parameters:

Name Type Description Default
mf_id int | str

Numeric AMC ID.

required
sd_id int | str

Scheme ID from :meth:populate_schemes (scheme_id field).

required

Returns:

Type Description
dict

Dict with keys: MF_Name, Scheme_Name, Scheme_Objective,

dict

SchemeType_Desc, SchemeCat_Desc, Launch_Date,

dict

Scheme_load, Scheme_min_amt, AMC_Website.

Example::

schemes = client.other_data.populate_schemes(mf_id=62)
info = client.other_data.scheme_details(
    mf_id=62, sd_id=schemes[0]["scheme_id"]
)
print(info["Scheme_Objective"])

AMC Accounts

amfipy.other_data.OtherDataClient.accounts_annual(mf_id)

Fetch annual account disclosure links for an AMC.

Returns a list of dicts with external URL references (not raw financials).

Parameters:

Name Type Description Default
mf_id int | str

Numeric AMC ID (required).

required

amfipy.other_data.OtherDataClient.accounts_half_yearly(mf_id)

Fetch half-yearly account disclosure links for an AMC.

Returns a list of dicts with external URL references (not raw financials).

Parameters:

Name Type Description Default
mf_id int | str

Numeric AMC ID (required).

required