Python client for the Investify Data API (wos-data-api)
Project description
investify-data
Python client for the Investify Data API (wos-data-api) — an AI-agent-first financial-data platform covering Vietnamese market data, company profiles, financial ratios, and searchable document collections.
Installation
pip install investify-data
Python 3.10+ required.
Quickstart — Sync
from investify_data import DataClient
with DataClient(api_key="ifyu_...") as client:
# Discovery
categories = client.catalog.list_table_categories()
tables = client.catalog.list_tables(category="equities")
schema = client.catalog.describe_table("financial_ratio", group="valuation")
# Table query — same operators as REST (eq, in, not_in, gte/lte/gt/lt)
rows = client.tables.query(
"stock_price_history",
columns=["symbol", "date", "close"],
filters={"symbol": "VNM", "date": {"gte": "-30d"}},
sort="date.desc",
limit=5,
)
# Document search (semantic)
hits = client.collections.search(
"market_news",
q="lãi suất ngân hàng tác động đến cổ phiếu",
metadata_filters={"topic": {"in": ["banking", "macro"]}},
limit=5,
)
Async
import asyncio
from investify_data import AsyncDataClient
async def main():
async with AsyncDataClient(api_key="ifyu_...") as client:
rows = await client.tables.query("stock_price_history", filters={"symbol": "VNM"}, limit=5)
print(rows)
asyncio.run(main())
Authentication
Three credential types, picked up from the api_key prefix:
| Prefix | Role | Use |
|---|---|---|
ifyu_ |
User | Direct queries scoped to the user's permission |
ifys_ |
Tenant | on_behalf_of=<user_uuid> required for data; admin ops without |
ifym_ |
Super admin | System-wide; on_behalf_of=<user_uuid> for data queries |
# Tenant key querying on behalf of an end-user
DataClient(api_key="ifys_...", on_behalf_of="550e8400-e29b-41d4-a716-446655440000")
Error handling
from investify_data import DataClient, NotFound, InvalidRequest, Unauthorized
try:
client.tables.query("nonexistent")
except NotFound:
...
except InvalidRequest as err:
print(err.code, err.detail)
except Unauthorized:
...
All exceptions inherit from InvestifyDataError. APIError subclasses (Unauthorized, Forbidden, NotFound, InvalidRequest, RateLimited, ServerError) carry status_code, code, and detail. TransportError wraps network/TLS/timeout failures.
Security
- Never commit your API key. Read it from an env var or secret store.
- The SDK redacts keys in
repr(), logs, and error messages — only the 5-char prefix is shown (e.g.,ifyu_***). - HTTPS is the default (
https://data.investify.vn). Usinghttp://with a production key triggers a runtime warning; local/LAN hosts (localhost,127.0.0.1,investify.k8s) are exempt. - If you pin a custom
base_url, keep it behind TLS.
Configuration
DataClient(
api_key="ifyu_...",
base_url="https://data.investify.vn", # override for dev (e.g. http://investify.k8s:30702)
on_behalf_of=None, # set for tenant/master keys
timeout=30.0, # seconds
user_agent="my-app/1.0", # optional
)
Links
- Source: https://gitlab.com/investify-vn/core/investify-data
- Data API docs: internal
wos-docs/data-api/
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file investify_data-0.1.0a3.tar.gz.
File metadata
- Download URL: investify_data-0.1.0a3.tar.gz
- Upload date:
- Size: 11.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7870b714152e860db639ca66dcd8711a78f4693d9897d4f54642afc2284df53d
|
|
| MD5 |
c431e9d9691d0af7c03cd0dd795272df
|
|
| BLAKE2b-256 |
8b26bbe658ce77b5e99c11eacb2e1e1106ba84001e5fb818476abb281dde8a60
|
File details
Details for the file investify_data-0.1.0a3-py3-none-any.whl.
File metadata
- Download URL: investify_data-0.1.0a3-py3-none-any.whl
- Upload date:
- Size: 11.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2ea158c680293b0976692350d2178c36fab343431ae2c7a217d804307a824af0
|
|
| MD5 |
8ee7544bc1d788a2139a68a88a9dc595
|
|
| BLAKE2b-256 |
a860b81e5b4e6f80968e50a6215dbb7897d1ef61606ba11a16f1284825ec05d0
|