BizDB โ business intelligence database + read-only API
Context
BizDB is Aspire's PostgreSQL-backed database of business entities + relationships, originally built for the brand-ecosystem outreach project (mapping 6 Aspire brands to relevant Thai businesses). It exposes a read-only HTTP API so other Aspire apps + agents can query the data without direct DB access.
Architecture
graph LR
SC["Scrapers / Apify"] --> DB[("BizDB Postgres<br/>180 records")]
DB --> API["Read-only API<br/>bizdb.aspiredigital.group<br/>X-API-Key"]
API --> C["Consumers + agents"]
classDef gw fill:#715EE3,color:#fff,stroke:#291F50;
class API gw;
Detail
What's in it
- 180 business records (Thai businesses mapped to Aspire's 6 brands)
- 623 relevance scores (brand โ business fit)
- Community-first outreach strategy data
- Per MEMORY.md
project_brand_ecosystem
The read-only API (LIVE)
- URL:
https://bizdb.aspiredigital.group(migrated 2026-05-20 fromapi.bizdb.aspiredigitalgroup.com.au) - Coolify app:
d111t6mg2dgilmvrmk2imh09 - 7 endpoints +
X-API-Keyauth + audit log - Consumer keys stored in Aspire Hub Secrets vault under
bizdb-api/<consumer>(per aspire-hub-secrets-vault-default)
Pending Apify scrape (per MEMORY.md project_bizdb_apify_pending)
- 452 Facebook + 133 Instagram scrape approved (~$4 AUD)
- Deferred to a single future session for "fire + writeback together"
- Per the paid-API-approval rule (ask-before-paid-api โ to be authored), every metered API run needs explicit per-run approval
Stack
- PostgreSQL (per use-postgresql-by-default)
- Read-only HTTP API + X-API-Key
- Coolify deploy
- Per-consumer credential isolation via Hub vault
Relationship to other projects
- smart-dashboard could integrate BizDB data (currently separate โ see smart-dashboard coverage gaps)
- Alby outreach uses similar business-targeting data but separate pipeline
- Brand Ecosystem is genuinely Thai-focused โ the geography exception noted in aspire-venue-geography
Open questions
- When to fire the pending Apify scrape (452 FB + 133 IG, ~$4 AUD)?
- Should BizDB feed smart-dashboard, or stay a separate outreach tool?
- Data freshness โ how often to re-scrape business records?
Related
- aspire-hub-secrets-vault-default โ where consumer keys live
- use-postgresql-by-default โ the DB choice
- smart-dashboard โ potential consumer
- aspire-venue-geography โ why this data is legitimately Thai
๐ Relationships
graph LR
bizdb["bizdb"]:::self
bizdb --> aspire_hub_secrets_vault_default["aspire-hub-secrets-vault-default"]
bizdb --> ask_before_paid_api["ask-before-paid-api"]
bizdb --> use_postgresql_by_default["use-postgresql-by-default"]
bizdb --> smart_dashboard["smart-dashboard"]
bizdb --> aspire_venue_geography["aspire-venue-geography"]
classDef self fill:#715EE3,color:#fff,stroke:#291F50;