# bennythadikaran/bseindiaapi architecture

> Architecture diagram of the GitHub repository bennythadikaran/bseindiaapi, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-09). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/bennythadikaran/bseindiaapi
- Repository: https://github.com/bennythadikaran/bseindiaapi

## Overview

BseIndiaApi is an unofficial Python client for retrieving BSE India market and company information. A typical user creates a BSE client, looks up a scrip code, then requests data such as corporate actions, quotes, or market movers; report methods can also download files locally. The sampled implementation places these capabilities in one main module, alongside shared constants and a symbol parser. The README and excerpts establish the broad API surface, but the partial source excerpt does not expose every method’s internal call details.

Main entry points: [`src/bse/BSE.py`](https://github.com/bennythadikaran/bseindiaapi/blob/main/src/bse/BSE.py) (BSE client), [`src/bse/constants.py`](https://github.com/bennythadikaran/bseindiaapi/blob/main/src/bse/constants.py) (Market constants)

## Diagram (Mermaid)

```mermaid
flowchart TD

node_user(("Python caller"))
node_client["BSE client<br/>[BSE.py]"]
node_lookup["Symbol lookup<br/>[BSE.py]"]
node_corporate["Corporate actions<br/>[BSE.py]"]
node_quotes["Quotes and market data<br/>[BSE.py]"]
node_companydata["Company and security data<br/>[BSE.py]"]
node_announcements["Announcements and results<br/>[BSE.py]"]
node_reports["Exchange reports<br/>[BSE.py]"]
node_parser["Symbol parser<br/>[BSE.py]"]
node_constants["Market constants<br/>[constants.py]"]
node_exchange{{"BSE services"}}
node_localfiles[("Downloaded reports")]

node_user -->|"creates and uses"| node_client
node_client -->|"offers lookup"| node_lookup
node_client -->|"requests actions"| node_corporate
node_client -->|"requests quotes"| node_quotes
node_client -->|"sends HTTP requests"| node_exchange
node_client -->|"writes reports"| node_localfiles
node_user -->|"uses query values"| node_constants

click node_client "https://github.com/bennythadikaran/bseindiaapi/blob/main/src/bse/BSE.py"
click node_lookup "https://github.com/bennythadikaran/bseindiaapi/blob/main/src/bse/BSE.py"
click node_corporate "https://github.com/bennythadikaran/bseindiaapi/blob/main/src/bse/BSE.py"
click node_quotes "https://github.com/bennythadikaran/bseindiaapi/blob/main/src/bse/BSE.py"
click node_companydata "https://github.com/bennythadikaran/bseindiaapi/blob/main/src/bse/BSE.py"
click node_announcements "https://github.com/bennythadikaran/bseindiaapi/blob/main/src/bse/BSE.py"
click node_reports "https://github.com/bennythadikaran/bseindiaapi/blob/main/src/bse/BSE.py"
click node_parser "https://github.com/bennythadikaran/bseindiaapi/blob/main/src/bse/BSE.py"
click node_constants "https://github.com/bennythadikaran/bseindiaapi/blob/main/src/bse/constants.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_user,node_exchange toneIndigo
class node_client toneBlue
class node_lookup,node_corporate,node_quotes,node_companydata,node_announcements,node_reports,node_parser,node_constants toneTeal
class node_localfiles toneAmber
```

## Components

### Other components

- **Python caller**
- [BSE client](https://github.com/bennythadikaran/bseindiaapi/blob/main/src/bse/BSE.py): `src/bse/BSE.py`
- [Symbol lookup](https://github.com/bennythadikaran/bseindiaapi/blob/main/src/bse/BSE.py): `src/bse/BSE.py`
- [Corporate actions](https://github.com/bennythadikaran/bseindiaapi/blob/main/src/bse/BSE.py): `src/bse/BSE.py`
- [Quotes and market data](https://github.com/bennythadikaran/bseindiaapi/blob/main/src/bse/BSE.py): `src/bse/BSE.py`
- [Company and security data](https://github.com/bennythadikaran/bseindiaapi/blob/main/src/bse/BSE.py): `src/bse/BSE.py`
- [Announcements and results](https://github.com/bennythadikaran/bseindiaapi/blob/main/src/bse/BSE.py): `src/bse/BSE.py`
- [Exchange reports](https://github.com/bennythadikaran/bseindiaapi/blob/main/src/bse/BSE.py): `src/bse/BSE.py`
- [Symbol parser](https://github.com/bennythadikaran/bseindiaapi/blob/main/src/bse/BSE.py): `src/bse/BSE.py`
- [Market constants](https://github.com/bennythadikaran/bseindiaapi/blob/main/src/bse/constants.py): `src/bse/constants.py`
- **BSE services**
- **Downloaded reports**

## Connections

- Python caller → BSE client: creates and uses (evidence: `README.md`)
- BSE client → Symbol lookup: offers lookup (evidence: `README.md`)
- BSE client → Corporate actions: requests actions (evidence: `README.md`)
- BSE client → Quotes and market data: requests quotes (evidence: `README.md`)
- BSE client → BSE services: sends HTTP requests (evidence: `src/bse/BSE.py`)
- BSE client → Downloaded reports: writes reports (evidence: `src/bse/BSE.py`)
- Python caller → Market constants: uses query values (evidence: `README.md`)
