Data Layer
The Reseller Intelligence API is built on a source-agnostic data adapter layer. Data sources — sold comp providers, active market data, platform APIs — are swappable without modifying the pipeline above them.
Every data source adapter implements the same interface. The adapter takes a query, calls the underlying data source, and returns data in the normalized internal schema. The pipeline above the adapter consumes only the normalized schema — it never reads raw API responses directly.
This means the data source powering any given deployment can change — from a third-party aggregator to a direct platform API — without the pipeline or the API response shape changing. Operators receive the same intelligence schema regardless of what's powering it underneath.
class CompDataAdapter:
async def get_sold_comps(
self,
keywords: str,
condition: str,
days: int
) -> dict:
# Returns normalized sold comp data
async def get_active_market(
self,
keywords: str,
condition: str
) -> dict:
# Returns active listing count + sample prices Deployments of the API are offered in three tiers, defined by capability scope rather than data source. The specific data sources powering each deployment are documented in a source schedule attached to the deployment agreement — not baked into the tier definition. This allows sources to evolve as direct platform API access is approved without contract renegotiation.
Full — Complete intelligence stack. All data sourced through Acine. Partial — Identification + cache. Operator provides comp data pipeline. Minimal — Cache + canonical dataset as read layer only.