Integration documentation
From a property question
to a trusted result.
One public contract for people, applications, and AI agents. Discover live capabilities, search maintained property snapshots, preserve provenance, and keep every machine request inside an explicit Unit budget.
For people
Use the console
Explore markets, search, save, and inspect usage without code.For applications
Call the REST API
Use stable schemas, bounded requests, and durable receipts.For AI systems
Connect through MCP
Expose five workspace-scoped tools with typed output and explicit Unit boundaries.Integration architecture
Discover first. Bound the request. Accept the delivery.
Every integration path follows the same operating contract, whether the caller is a person, application, or agent.
- 01Capabilities
Markets, schemas, limits, Unit costs and machine gate.
- 02Credential boundary
Workspace-scoped session, API key, MCP or webhook secret.
- 03Bounded request
Resolved location, explicit filters, limits and idempotency.
- 04Canonical delivery
Property identity, source offers, provenance and timestamps.
- 05Acceptance
Saved-row parity, completeness, receipt and recovery state.
Choose your responsibility
The shortest path to the contract you own.
Discover runtime truth before tool use.
Recover without hiding partial delivery.
Inspect credentials and trust boundaries.
Start in the workspace console.
The console is the fastest way to confirm access and learn the data shape. It uses your signed-in workspace session and shows only entitled, ready markets.
-
1
Sign in.Sign in ↗
Open the console with your workspace account.
-
2
Confirm runtime access.
Check that the workspace, market, and Search status are active.
-
3
Run a narrow search.
Inspect canonical IDs, sources, snapshot time, and Unit receipt before automating.
-
4
Create a machine key when enabled.
Open API keys, name the credential, and copy its one-time secret into a secret manager.
Browser requests use the signed-in session. Server applications use a workspace Bearer key only when runtime machine access is enabled. Never put cookies or API-key secrets in prompts, URLs, logs, or client-side code.
Discover, then search.
The manifest is public and uncached. Read it before constructing a request so your client uses the current market list, filters, limits, schemas, and Unit costs.
Read live capabilities
Do not replace a failed manifest request with an empty market list.
curl --fail-with-body --silent --show-error \
https://app.cleanedweb.com/v1/capabilities
Keep the key outside your code
Create it in the console and inject it from a server-side secret manager.
export CLEANEDWEB_API_KEY="cw_live_…"
Send a bounded search
A machine search requires limit, max_units, and an idempotency key.
curl --fail-with-body --silent --show-error \
--request POST \
--header "Authorization: Bearer ${CLEANEDWEB_API_KEY}" \
--header "Content-Type: application/json" \
--header "Idempotency-Key: search-lu-belair-001" \
--data '{
"market": "LU",
"response_schema": "property-profile-v2",
"deal_type": ["buy"],
"property_categories": ["apartment"],
"limit": 100,
"max_units": 100
}' \
https://app.cleanedweb.com/v1/properties/search
A 200 response is only the beginning.
Accept a property snapshot only after its identity, count, freshness, and completeness checks pass. Preserve source provenance beside every canonical record.
Envelope
returned === results.length
Schema
Every row is property-profile-v2.
Identity
Every property_entity_id is present and unique.
Freshness
snapshot.dataUpdatedAt passes your policy.
Completeness
Follow next_cursor until has_more is false.
Receipt
Persist request ID, Units, balance, and usage classification.
Give agents narrow tools, not raw access.
When the runtime gate is enabled, connect a trusted MCP client to the stateless Streamable HTTP endpoint. The client owns the Bearer key; it must never become a prompt, tool argument, tool result, URL, or trace.
cleanedweb_capabilitiesDiscover runtime truthFree readcleanedweb_list_marketsList entitled, ready marketsFree readcleanedweb_search_propertiesSearch a bounded snapshotMeteredcleanedweb_get_propertyRead one canonical propertyFree readcleanedweb_list_property_changesRead finalized changesFree readAgent handoff
Give the model an index. Keep secrets in the adapter.
Start with the compact index for discovery. Use the consolidated file when the agent needs the complete contract, then validate actual calls against OpenAPI and the runtime manifest.
Budget every delivery. Retry without paying twice.
Unit ceiling
Read unit_costs from capabilities and set max_units
on every machine search. An empty Unit-cost object means machine charging is
not ready; do not estimate a price from marketing copy.
Durable idempotency
Retry the exact request with the same key. A matching retry returns its stored
receipt without another charge. Reusing the key for a changed request returns
idempotency_conflict.
Rate limits
A shared key limit returns 429 with Retry-After. Wait,
keep the same idempotency key, and do not spread retries across processes.
Availability
Retry 503 with bounded exponential backoff and jitter. Never turn
an availability failure into an empty result set or empty capability manifest.
Evaluate the boundary, not a sales claim.
Review field semantics, credential isolation, compatibility rules, operational recovery, deterministic workflows, and explicit non-guarantees in one implementation-facing contract.
Modern overview of semantics, security, lifecycle, operations, and trust boundaries.
DataProperty profile field catalog v2Machine-readable meanings, units, omission policy, identity, and provenance.
WorkflowArazzoDeterministic bounded-search and property-history procedures.
EventsAsyncAPISigned webhook messages, headers, duplicate behavior, and retry contract.
LifecycleMachine changelogCurrent contract additions, clarifications, and breaking-change markers.
CodeReference clientsDependency-free Python and TypeScript-compatible safe integration examples.
Build against contracts, not examples alone.
Coverage, normalization, identity, provenance, freshness, and delivery acceptance.
GuidesProperty data engineeringHuman-readable guides to canonical identity, deduplication, change tracking, and API evaluation.
RuntimeCapabilities manifestMarkets, filters, versions, limits, Unit costs, and machine gate.
HTTPOpenAPI contractAuthoritative property operations, parameters, and responses.
SchemaGlobal property profile v2Canonical property identity, grouped listings, history, context, and provenance.
CatalogProperty profile semantics v2Units, missing-value behavior, identity, and provenance boundaries.
SchemaProperty event v1Finalized observed change structure.
DeliveryWebhook guideEvent envelopes, signature verification, deduplication, and retries.
RecoveryError guideStable codes, retry boundaries, and safe agent behavior.