# invezgo/invezgo-python-sdk architecture

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

- Interactive diagram: https://gitdiagram.com/invezgo/invezgo-python-sdk
- Repository: https://github.com/invezgo/invezgo-python-sdk

## Overview

Invezgo is a Python SDK for the Invezgo Indonesian-market API. A caller creates an authenticated client, selects a domain module, and receives typed API response data; the client centralizes HTTP transport and status/error handling. The README documents market-data, technical/broker, ownership, and financial-analysis capabilities, plus account, trading-workspace, and social features exposed by client modules. The supplied excerpts show transport and several module calls; wiring for unsampled module implementations is represented only where client construction is explicit.

Main entry points: [`invezgo/client.py`](https://github.com/invezgo/invezgo-python-sdk/blob/main/invezgo/client.py) (Invezgo client), [`invezgo/types.py`](https://github.com/invezgo/invezgo-python-sdk/blob/main/invezgo/types.py) (Response types), [`invezgo/modules/analysis.py`](https://github.com/invezgo/invezgo-python-sdk/blob/main/invezgo/modules/analysis.py) (Stock analysis), [`invezgo/modules/batch.py`](https://github.com/invezgo/invezgo-python-sdk/blob/main/invezgo/modules/batch.py) (Batch quotes)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["SDK entry and transport"]
  node_client["Invezgo client<br/>[client.py]"]
  node_errors["API exceptions<br/>[exceptions.py]"]
  node_types["Response types<br/>[types.py]"]
end

subgraph group_market["Market data and analysis"]
  node_analysis["Stock analysis<br/>[analysis.py]"]
  node_batch["Batch quotes<br/>[batch.py]"]
  node_screener["Stock screener<br/>[screener.py]"]
  node_search["Market search<br/>[search.py]"]
end

subgraph group_workspace["Trading workspace"]
  node_watchlists["Watchlists<br/>[watchlists.py]"]
  node_journals["Trading journals<br/>[journals.py]"]
  node_portfolios["Portfolios<br/>[portfolios.py]"]
  node_trades["Trades<br/>[trades.py]"]
  node_alerts["Alerts<br/>[alerts.py]"]
end

subgraph group_community["Account and community"]
  node_profile["User profile<br/>[profile.py]"]
  node_membership["Membership<br/>[membership.py]"]
  node_usage["Usage<br/>[usage.py]"]
  node_posts["Posts<br/>[posts.py]"]
  node_community_search["User search<br/>[search.py]"]
end

node_caller(("SDK caller"))
node_http["HTTP API"]

node_caller -->|"creates and uses"| node_client
node_client -->|"initializes"| node_analysis
node_client -->|"initializes"| node_batch
node_client -->|"initializes"| node_screener
node_client -->|"initializes"| node_search
node_client -->|"initializes"| node_watchlists
node_client -->|"initializes"| node_journals
node_client -->|"initializes"| node_portfolios
node_client -->|"initializes"| node_trades
node_client -->|"initializes"| node_alerts
node_client -->|"initializes"| node_posts
node_client -->|"initializes"| node_profile
node_client -->|"initializes"| node_membership
node_client -->|"initializes"| node_usage
node_analysis -->|"requests data"| node_client
node_batch -->|"requests batches"| node_client
node_search -->|"searches"| node_client
node_watchlists -->|"manages lists"| node_client
node_journals -->|"manages journals"| node_client
node_posts -->|"fetches posts"| node_client
node_client -->|"sends authenticated requests"| node_http
node_http -->|"returns responses"| node_client
node_client -->|"raises on API errors"| node_errors
node_analysis -->|"annotates responses"| node_types
node_batch -->|"annotates responses"| node_types
node_watchlists -->|"uses request types"| node_types
node_journals -->|"uses request types"| node_types

click node_client "https://github.com/invezgo/invezgo-python-sdk/blob/main/invezgo/client.py"
click node_errors "https://github.com/invezgo/invezgo-python-sdk/blob/main/invezgo/exceptions.py"
click node_analysis "https://github.com/invezgo/invezgo-python-sdk/blob/main/invezgo/modules/analysis.py"
click node_batch "https://github.com/invezgo/invezgo-python-sdk/blob/main/invezgo/modules/batch.py"
click node_screener "https://github.com/invezgo/invezgo-python-sdk/blob/main/invezgo/modules/screener.py"
click node_search "https://github.com/invezgo/invezgo-python-sdk/blob/main/invezgo/modules/search.py"
click node_types "https://github.com/invezgo/invezgo-python-sdk/blob/main/invezgo/types.py"
click node_watchlists "https://github.com/invezgo/invezgo-python-sdk/blob/main/invezgo/modules/watchlists.py"
click node_journals "https://github.com/invezgo/invezgo-python-sdk/blob/main/invezgo/modules/journals.py"
click node_portfolios "https://github.com/invezgo/invezgo-python-sdk/blob/main/invezgo/modules/portfolios.py"
click node_trades "https://github.com/invezgo/invezgo-python-sdk/blob/main/invezgo/modules/trades.py"
click node_alerts "https://github.com/invezgo/invezgo-python-sdk/blob/main/invezgo/modules/alerts.py"
click node_profile "https://github.com/invezgo/invezgo-python-sdk/blob/main/invezgo/modules/profile.py"
click node_membership "https://github.com/invezgo/invezgo-python-sdk/blob/main/invezgo/modules/membership.py"
click node_usage "https://github.com/invezgo/invezgo-python-sdk/blob/main/invezgo/modules/usage.py"
click node_posts "https://github.com/invezgo/invezgo-python-sdk/blob/main/invezgo/modules/posts.py"
click node_community_search "https://github.com/invezgo/invezgo-python-sdk/blob/main/invezgo/modules/search.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_client,node_errors,node_types toneBlue
class node_analysis,node_batch,node_screener,node_search toneAmber
class node_watchlists,node_journals,node_portfolios,node_trades,node_alerts,node_http toneMint
class node_profile,node_membership,node_usage,node_posts,node_community_search toneRose
class node_caller toneIndigo
```

## Components

### SDK entry and transport

- [Invezgo client](https://github.com/invezgo/invezgo-python-sdk/blob/main/invezgo/client.py): `invezgo/client.py`
- [API exceptions](https://github.com/invezgo/invezgo-python-sdk/blob/main/invezgo/exceptions.py): `invezgo/exceptions.py`
- [Response types](https://github.com/invezgo/invezgo-python-sdk/blob/main/invezgo/types.py): `invezgo/types.py`

### Market data and analysis

- [Stock analysis](https://github.com/invezgo/invezgo-python-sdk/blob/main/invezgo/modules/analysis.py): `invezgo/modules/analysis.py`
- [Batch quotes](https://github.com/invezgo/invezgo-python-sdk/blob/main/invezgo/modules/batch.py): `invezgo/modules/batch.py`
- [Stock screener](https://github.com/invezgo/invezgo-python-sdk/blob/main/invezgo/modules/screener.py): `invezgo/modules/screener.py`
- [Market search](https://github.com/invezgo/invezgo-python-sdk/blob/main/invezgo/modules/search.py): `invezgo/modules/search.py`

### Trading workspace

- [Watchlists](https://github.com/invezgo/invezgo-python-sdk/blob/main/invezgo/modules/watchlists.py): `invezgo/modules/watchlists.py`
- [Trading journals](https://github.com/invezgo/invezgo-python-sdk/blob/main/invezgo/modules/journals.py): `invezgo/modules/journals.py`
- [Portfolios](https://github.com/invezgo/invezgo-python-sdk/blob/main/invezgo/modules/portfolios.py): `invezgo/modules/portfolios.py`
- [Trades](https://github.com/invezgo/invezgo-python-sdk/blob/main/invezgo/modules/trades.py): `invezgo/modules/trades.py`
- [Alerts](https://github.com/invezgo/invezgo-python-sdk/blob/main/invezgo/modules/alerts.py): `invezgo/modules/alerts.py`

### Account and community

- [User profile](https://github.com/invezgo/invezgo-python-sdk/blob/main/invezgo/modules/profile.py): `invezgo/modules/profile.py`
- [Membership](https://github.com/invezgo/invezgo-python-sdk/blob/main/invezgo/modules/membership.py): `invezgo/modules/membership.py`
- [Usage](https://github.com/invezgo/invezgo-python-sdk/blob/main/invezgo/modules/usage.py): `invezgo/modules/usage.py`
- [Posts](https://github.com/invezgo/invezgo-python-sdk/blob/main/invezgo/modules/posts.py): `invezgo/modules/posts.py`
- [User search](https://github.com/invezgo/invezgo-python-sdk/blob/main/invezgo/modules/search.py): `invezgo/modules/search.py`

### Other components

- **SDK caller**
- **HTTP API**

## Connections

- SDK caller → Invezgo client: creates and uses
- Invezgo client → Stock analysis: initializes
- Invezgo client → Batch quotes: initializes
- Invezgo client → Stock screener: initializes
- Invezgo client → Market search: initializes
- Invezgo client → Watchlists: initializes
- Invezgo client → Trading journals: initializes
- Invezgo client → Portfolios: initializes
- Invezgo client → Trades: initializes
- Invezgo client → Alerts: initializes
- Invezgo client → Posts: initializes
- Invezgo client → User profile: initializes
- Invezgo client → Membership: initializes
- Invezgo client → Usage: initializes
- Stock analysis → Invezgo client: requests data
- Batch quotes → Invezgo client: requests batches
- Market search → Invezgo client: searches
- Watchlists → Invezgo client: manages lists
- Trading journals → Invezgo client: manages journals
- Posts → Invezgo client: fetches posts
- Invezgo client → HTTP API: sends authenticated requests
- HTTP API → Invezgo client: returns responses
- Invezgo client → API exceptions: raises on API errors
- Stock analysis → Response types: annotates responses
- Batch quotes → Response types: annotates responses
- Watchlists → Response types: uses request types
- Trading journals → Response types: uses request types
