Publish product discovery without publishing your policy.
One stable installation connects confirmed facts to published membership paths, products, pricing, and evidence. No customer endpoint or backend is required.
Create a managed project
Enterprise customers create one project per experience in Routes Studio. Each project has a mutable draft plus stable preview and production installations. The installation identifier is public and revocable; it is not an API credential.
Managed hosting is the default
RateAPI owns strict operation validation, request deadlines, response-size limits, rate limiting, private no-store headers, and upstream API authentication. The customer browser never receives a RateAPI API key.
Set server-owned policy
Select the exact products and relationship types this experience can use. Product scope spans cash, home, mobility, borrowing, and cards; selectors can carry amount or balance, term, intent, audience, occupancy, and vehicle condition where relevant.
Set the theme, semantic design tokens, and three copy fields in the same draft. Browser markup does not control those values, so a visitor cannot broaden product access or remove the evidence contract.
| Policy area | Allowed scope | Enforcement |
|---|---|---|
| Products | 19 explicit product families and selector details | Requests outside the published selectors fail closed. |
| Relationships | Employer, association, school, worship | Browse, typeahead, and resolution are limited to enabled types. |
| Attribution | RateAPI or licensed publisher | Institution identity, proof, dates, and disclosures always remain. |
| Presentation | Three themes, copy, 11 semantic tokens | Resolved from the published server version. |
Allow your exact origin
Add the precise HTTPS origin in Routes Studio—for example, https://www.example.com. It is allowed immediately. Wildcards, paths, localhost, credentials, and IP addresses are rejected. Preview and production have separate origin lists.
No DNS or file challenge
You do not need to publish a TXT record, host a challenge file, create a proxy route, or expose a credential. The allowlist is enforced together with the installation entitlement, published policy, revocation state, and per-installation limits.
Publish an immutable version
Preview the draft against the authenticated dashboard runtime, then publish its revision to preview or production. Publishing creates an immutable configuration version and moves the selected environment pointer. The stable installation URL does not change.
A revision conflict stops the publish instead of overwriting newer work. Rollback moves the pointer to a previous project version; revoke immediately disables an environment without deleting history.
Copy and paste
Copy the exact two-line snippet from the production environment. It contains no API key, policy object, or customer facts. Paste it into the page where Routes should appear; no customer endpoint is involved.
<script src="https://rateapi.dev/widgets/v1/access-graph.js?v=bf67438d6f4ee8ea59b9d39bb8ded6ce308cfff0074e6380a50d39477bf708a9" defer></script><rateapi-routes-widget installation-id="rwi_YOUR_INSTALLATION_ID"></rateapi-routes-widget>The installation ID stays the same. Change product policy, relationship types, copy, themes, or design tokens in Routes Studio and publish again—the same installation code resolves the new immutable version on its next load. Rollback and revoke require no site release either.
The widget collects only facts the person confirms. Browse before typing, or search the canonical employers, associations, schools, and houses of worship currently connected to published membership rules. A profile can preserve one confirmed relationship per enabled type; school selections are explicitly typed as student, alumni, or school employee. Every selection is resolved before it becomes a fact, and every add, replacement, role change, or removal can drive a same-snapshot comparison. Unknown remains unresolved; it is never rendered as rejection.
Operate safely
| Runtime operation | Purpose |
|---|---|
access-graph-config | Loads the immutable published project configuration. |
access-catalog | Evaluates the confirmed profile against server-approved product selectors. |
access-catalog-compare | Shows the exact change caused by one newly confirmed fact. |
entity-search | Browse or type ahead across supported employers, associations, schools, and houses of worship. |
entity-resolve | Confirms one selected entity identity before it becomes a profile fact. |
access-graph-health | Returns dated graph coverage and publication health. |
access-graph-changes | Reads a bounded publication-change feed for freshness signals. |
Expected failure states
403 origin_not_allowed means the requesting origin is not allowed for that installation. 409 management responses protect version or publication state. 429 is a bounded per-installation admission limit. 503 temporarily_unavailable fails closed when policy, the limiter, or the upstream API is unavailable.
Personalized runtime responses use private, no-store. RateAPI telemetry records project, environment, operation, stage, status, and timing—not request or response facts.
Organizations with exceptional network-isolation or compliance requirements can discuss a private deployment boundary with RateAPI. That is an enterprise exception, not part of the standard installation path.
Map the design system once
Routes Studio stores a deliberately small semantic token set. Components derive their internal states from these values, keeping white-label implementations maintainable without exposing dozens of presentation props.
| Token | Role |
|---|---|
--rateapi-font | Body font stack |
--rateapi-heading-font | Heading font stack |
--rateapi-font-size | Base type size |
--rateapi-primary | Accent and focus color |
--rateapi-primary-contrast | Text placed on the accent |
--rateapi-bg | Canvas background |
--rateapi-surface | Card and control surface |
--rateapi-text | Primary text |
--rateapi-muted | Secondary text |
--rateapi-border | Rules and control borders |
--rateapi-radius | Shared corner radius |
The primary state event is rateapi-routes-state. The compatibility alias rateapi-access-graph-state carries the same detail. Neither event exposes the API key or changes the authoritative result.
Move from sample to a governed installation.
Create a project, allow an origin, publish, and paste the unchanged installation code.