One authority for each decision.
Agents and applications should not scrape prose to discover a field, limit, workflow, or event. Static contracts below load from the public site without a portal session; runtime operations remain on the app API.
/v1/capabilitiesJSON ↗
HTTP operations/openapi.jsonOAS 3.1 ↗
Property structureproperty-profile-v2Schema ↗
Field semanticsproperty-profile-field-catalog-v2JSON ↗
Deterministic workflowsboundedPropertySearchArazzo ↗
Webhook deliveryproperty-event-v1AsyncAPI ↗
Contract historychangelog-v1JSON ↗
Know what a property value actually means.
Use property_entity_id for canonical upserts and retain
sources as advertisement provenance. A listing ID, address,
coordinate, title, or agent name is not a substitute canonical key.
No delivery-safe value exists. Never convert omission to zero, false, or an inferred fact.
An explicit classification only where the schema defines it. It is not permission to guess.
A retained CleanedWeb observation. It is not automatically a transaction or legal-event time.
An advertisement-level value. Presence does not guarantee reachability, ownership, consent, or future availability.
Market-specific definitions can still vary. Normalization does not erase the source-market boundary.
Credentials stay with the trusted client.
Browser sessions, server API keys, and MCP clients share the property
contract but not the credential boundary. A key belongs to one workspace,
carries properties:read, is shown once, stored as a hash, and can
be revoked.
__Host-cw_sessionSecure signed-in workspace session. Never expose it to model context.
cw_… Bearer keyTrusted server only. Use separate keys by application and environment.
cw_… Bearer keyClient adapter owns it. Never pass tokens through tools or prompts.
whsec_…Verify raw bytes, timestamp, and all supported v1 signatures before parsing.
OAuth discovery, SSO, SCIM, certifications, data residency, and numeric SLA claims are not published by this contract. They must not be inferred from API-key access or a successful health probe.
Independent versions, explicit breaking changes.
Capabilities, HTTP operations, property records, events, errors, fields, and MCP protocol negotiation have independent versions. Record them at workflow start and reject unsupported major versions.
- 1Announce
Publish affected operations and schemas in the changelog.
- 2Explain
Provide old/new examples and a migration guide.
- 3Date
Publish a support end date only when it is contractually established.
- 4Enforce
Use runtime or response signals before withdrawing the old contract.
Bound the request and preserve its evidence.
Limits and Unit prices come from capabilities. Entitlement comes from the authenticated market list. Billing truth comes from the committed receipt.
Wait for Retry-After and preserve the same idempotency key.
Retry with bounded exponential backoff and jitter. Never return empty data.
Do not raise max_units or replace an idempotency key without a changed plan.
Correct validation or obtain the user's location decision before retrying.
Redact credentials and unnecessary property or contact payloads.
Runnable paths with explicit stop conditions.
The Arazzo contract provides bounded search and property-history workflows. Human-readable recipes add location resolution, acceptance, recovery, and webhook processing decisions.
Move from contract review to operated delivery.
Keep credentials, customer decisions, CleanedWeb runtime contracts, and downstream persistence in explicit trust zones. Promotion requires evidence from the same workflow that will operate in production.
Store and rotate client credentials
Enforce workspace scope and entitlement
Verify the tested trust boundary
Choose permitted uses and interpretation
Preserve canonical identity and provenance
Validate schema, counts and freshness
Persist receipts and monitor consumers
Publish runtime capability and stable errors
Exercise recovery and escalation
Own licensing and compliance program
State published contractual boundaries
Record approved scope before launch
- 01Contract reviewScope, markets, security and legal boundaries
- 02IntegrationCapabilities, schemas and bounded workflows
- 03AcceptanceCounts, persistence, receipts and recovery
- 04ActivationApproved environment and credentials
- 05OperateFreshness, errors, versions and evidence
A green request alone is not acceptance. Retain the evidence needed to reproduce the decision.
Enterprise-grade means saying what is not established.
CleanedWeb publishes implementation truth that can be validated. It does not convert roadmap items, configuration, successful requests, or marketing coverage into unsupported availability, compliance, freshness, or legal claims.
Headers, messages, retries, duplicate behavior, and test delivery.
ClientsReference implementationsDependency-free Python and TypeScript-compatible examples.
AgentsMCP behaviorOutput schemas, resources, metering, and credential isolation.
RecoveryError contractStable codes, retry boundaries, and safe failure behavior.