---
title: "Runtime config for a tenant host, as a script"
method: GET
path: "/_run402/config.js"
tags: ["Stable Hosts"]
---

# Runtime config for a tenant host, as a script

`GET /_run402/config.js`

## Request

- Base URL: `https://api.run402.com`
- URL: `https://api.run402.com/_run402/config.js`
- Auth: none required

Tenant-host reserved path, served on every project subdomain, branch host, and custom domain before routes, static lookup, and SPA fallback. Returns `window.RUN402 = { project_id, api_base, anon_key, embedding, live };` (`live` is `{ path: '/_run402/live', tables: [...] }` or null: the tables that emit change hints on this host) for the project the host resolves to at request time — a branch host answers for the branch, a transferred project answers with its rotated anon key — so a static page never needs a key copied into its HTML: `<script src="/_run402/config.js"></script>`. `Cache-Control: public, max-age=60`. Never carries `service_key`. Not served from api.run402.com.

## Response `200`

A JavaScript document assigning `window.RUN402`.

## Other responses

- `404`: The host resolves to no project.

---

[API](https://skmtc.dev/run402/apis/run402-api.md) · [All operations](https://skmtc.dev/run402/apis/run402-api/llms.txt) · [OpenAPI document](https://skmtc.dev/run402/apis/run402-api/revisions/893607557f50?raw)
