run402-com · Schema

StableHostResolveResponse

AIInfrastructureBackendOpen-sourceAgents

Properties

Name Type Description
hostname string
host_binding_id stringnull
binding_status stringnull
project_id stringnull
channel stringnull
release_id stringnull
release_generation integernull
route_manifest_sha256 stringnull
static_manifest_sha256 stringnull
static_manifest_metadata object
normalized_path stringnull
static_continuity object
current_host_release_id stringnull
current_host_release_generation integernull
match string
static_sha256 stringnull
asset_path stringnull Private release static asset path backing the matched public path. Present only on authenticated diagnostics.
reachability_authority stringnull
direct booleannull
content_type stringnull
cache_class stringnull
cache_policy stringnull
authorized boolean
authorization_result stringnull Static CAS authorization/health result when a static object was matched, or the reason no static object is authorized.
cas_object objectnull CAS object health for matched static objects. Never exposes internal storage URLs.
response_variant objectnull Present for transformed/static HTML responses whose public response identity can vary by hostname.
fallback_state string
error_code stringnull
legacy_immutable_risk array
embedding object The framing opt-in of the release this host serves, as catalog keys, or null (deny).
noindex boolean Whether the release this host serves declared `site.noindex` (every response carries `X-Robots-Tag: noindex, nofollow, nosnippet`).
emergency_fallback object
edge_propagation object Binding propagation diagnosis for hosts served through eventually consistent edge stores. Fresh bindings can report propagating or sync_pending to explain an expected public URL edge miss.
allow arraynull
route_pattern stringnull
target_type stringnull
target_name stringnull
target_file stringnull
host_kind stringnull `deployment` when the host is a deployment host (`dpl-*.sites.run402.com`); absent for stable hosts.
deployment_id stringnull Deployment hosts: the `dpl_` deployment the host serves.
deployment_status stringnull Deployment hosts: `live` while the active release or a subdomain serves the deployment, `retained` once replaced (serving until `origin_available_until`), `retired` after that deadline (every request
origin_available_until stringnull Deployment hosts: when a replaced deployment stops (or stopped) serving; null while live.
origin_retention_seconds integernull Deployment hosts: how long a replaced deployment keeps serving (3600).
path_evaluated boolean Deployment hosts: `true` when the path was resolved against the deployment's release (its static manifest and public paths); `false` for a retired host or a deployment no release names, reported per h
route_gates array Function routes: what stands before the function's response (`require_auth`, `require_role`, `priced`); empty when anyone reaches it. `authorized: true` on a function route means the host dispatches t
routes_active boolean Deployment hosts: `false` once the deployment was replaced; its routes no longer run there and a matched route reports result 404.
result integer
View JSON Schema on GitHub

JSON Schema

run402-com-stable-host-resolve-response-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/run402-com/json-schema/run402-com-stable-host-resolve-response-schema.json",
  "title": "StableHostResolveResponse",
  "x-generated": "2026-10-29",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/run402-com-openapi.json#/components/schemas/StableHostResolveResponse",
  "type": "object",
  "required": [
    "hostname",
    "result",
    "match",
    "authorized",
    "fallback_state"
  ],
  "properties": {
    "hostname": {
      "type": "string"
    },
    "host_binding_id": {
      "type": [
        "string",
        "null"
      ]
    },
    "binding_status": {
      "type": [
        "string",
        "null"
      ]
    },
    "project_id": {
      "type": [
        "string",
        "null"
      ]
    },
    "channel": {
      "type": [
        "string",
        "null"
      ]
    },
    "release_id": {
      "type": [
        "string",
        "null"
      ]
    },
    "release_generation": {
      "type": [
        "integer",
        "null"
      ]
    },
    "route_manifest_sha256": {
      "type": [
        "string",
        "null"
      ]
    },
    "static_manifest_sha256": {
      "type": [
        "string",
        "null"
      ]
    },
    "static_manifest_metadata": {
      "allOf": [
        {
          "$ref": "#/$defs/StaticManifestMetadata"
        }
      ],
      "nullable": true
    },
    "normalized_path": {
      "type": [
        "string",
        "null"
      ]
    },
    "static_continuity": {
      "$ref": "#/$defs/StaticContinuity"
    },
    "current_host_release_id": {
      "type": [
        "string",
        "null"
      ]
    },
    "current_host_release_generation": {
      "type": [
        "integer",
        "null"
      ]
    },
    "match": {
      "type": "string",
      "enum": [
        "host_missing",
        "manifest_missing",
        "active_release_missing",
        "unsupported_manifest_version",
        "path_error",
        "none",
        "route_function",
        "route_static_alias",
        "route_method_miss",
        "static_exact",
        "static_index",
        "spa_fallback",
        "retained_public_path",
        "spa_fallback_missing",
        "deployment_host",
        "deployment_retired"
      ]
    },
    "static_sha256": {
      "type": [
        "string",
        "null"
      ]
    },
    "asset_path": {
      "type": [
        "string",
        "null"
      ],
      "description": "Private release static asset path backing the matched public path. Present only on authenticated diagnostics."
    },
    "reachability_authority": {
      "type": [
        "string",
        "null"
      ],
      "enum": [
        "implicit_file_path",
        "explicit_public_path",
        "route_static_alias",
        null
      ]
    },
    "direct": {
      "type": [
        "boolean",
        "null"
      ]
    },
    "content_type": {
      "type": [
        "string",
        "null"
      ]
    },
    "cache_class": {
      "type": [
        "string",
        "null"
      ],
      "enum": [
        "html",
        "immutable_versioned",
        "revalidating_asset",
        null
      ]
    },
    "cache_policy": {
      "type": [
        "string",
        "null"
      ]
    },
    "authorized": {
      "type": "boolean"
    },
    "authorization_result": {
      "type": [
        "string",
        "null"
      ],
      "enum": [
        "authorized",
        "not_public",
        "not_applicable",
        "manifest_missing",
        "target_missing",
        "active_release_missing",
        "unsupported_manifest_version",
        "path_error",
        "missing_cas_object",
        "unfinalized_or_deleting_cas_object",
        "size_mismatch",
        "unauthorized_cas_object",
        "route_inactive",
        null
      ],
      "description": "Static CAS authorization/health result when a static object was matched, or the reason no static object is authorized."
    },
    "cas_object": {
      "type": [
        "object",
        "null"
      ],
      "description": "CAS object health for matched static objects. Never exposes internal storage URLs.",
      "properties": {
        "sha256": {
          "type": "string"
        },
        "exists": {
          "type": "boolean"
        },
        "expected_size": {
          "type": "integer"
        },
        "actual_size": {
          "type": [
            "integer",
            "null"
          ]
        }
      },
      "additionalProperties": true
    },
    "response_variant": {
      "type": [
        "object",
        "null"
      ],
      "description": "Present for transformed/static HTML responses whose public response identity can vary by hostname.",
      "properties": {
        "kind": {
          "type": "string",
          "enum": [
            "hostname_static_html"
          ]
        },
        "varies_by": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "hostname": {
          "type": "string"
        },
        "release_id": {
          "type": [
            "string",
            "null"
          ]
        },
        "release_generation": {
          "type": [
            "integer",
            "null"
          ]
        },
        "path": {
          "type": "string"
        },
        "raw_static_sha256": {
          "type": "string"
        },
        "variant_inputs_hash": {
          "type": "string"
        }
      },
      "additionalProperties": true
    },
    "fallback_state": {
      "type": "string",
      "enum": [
        "unavailable",
        "active_release_missing",
        "unsupported_manifest_version",
        "negative_cache_hit",
        "path_error",
        "method_not_static",
        "not_used",
        "target_missing",
        "used",
        "not_configured",
        "not_eligible"
      ]
    },
    "error_code": {
      "type": [
        "string",
        "null"
      ]
    },
    "legacy_immutable_risk": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    },
    "embedding": {
      "description": "The framing opt-in of the release this host serves, as catalog keys, or null (deny).",
      "nullable": true,
      "allOf": [
        {
          "$ref": "#/$defs/SiteEmbeddingSpec"
        }
      ]
    },
    "noindex": {
      "type": "boolean",
      "description": "Whether the release this host serves declared `site.noindex` (every response carries `X-Robots-Tag: noindex, nofollow, nosnippet`)."
    },
    "emergency_fallback": {
      "type": "object",
      "additionalProperties": true
    },
    "edge_propagation": {
      "allOf": [
        {
          "$ref": "#/$defs/EdgePropagationDiagnostics"
        }
      ],
      "nullable": true,
      "description": "Binding propagation diagnosis for hosts served through eventually consistent edge stores. Fresh bindings can report propagating or sync_pending to explain an expected public URL edge miss."
    },
    "allow": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "string"
      }
    },
    "route_pattern": {
      "type": [
        "string",
        "null"
      ]
    },
    "target_type": {
      "type": [
        "string",
        "null"
      ],
      "enum": [
        "function",
        "static",
        null
      ]
    },
    "target_name": {
      "type": [
        "string",
        "null"
      ]
    },
    "target_file": {
      "type": [
        "string",
        "null"
      ]
    },
    "host_kind": {
      "type": [
        "string",
        "null"
      ],
      "description": "`deployment` when the host is a deployment host (`dpl-*.sites.run402.com`); absent for stable hosts."
    },
    "deployment_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "Deployment hosts: the `dpl_` deployment the host serves."
    },
    "deployment_status": {
      "type": [
        "string",
        "null"
      ],
      "enum": [
        "live",
        "retained",
        "retired"
      ],
      "description": "Deployment hosts: `live` while the active release or a subdomain serves the deployment, `retained` once replaced (serving until `origin_available_until`), `retired` after that deadline (every request answers 404)."
    },
    "origin_available_until": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time",
      "description": "Deployment hosts: when a replaced deployment stops (or stopped) serving; null while live."
    },
    "origin_retention_seconds": {
      "type": [
        "integer",
        "null"
      ],
      "description": "Deployment hosts: how long a replaced deployment keeps serving (3600)."
    },
    "path_evaluated": {
      "type": "boolean",
      "description": "Deployment hosts: `true` when the path was resolved against the deployment's release (its static manifest and public paths); `false` for a retired host or a deployment no release names, reported per host."
    },
    "route_gates": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Function routes: what stands before the function's response (`require_auth`, `require_role`, `priced`); empty when anyone reaches it. `authorized: true` on a function route means the host dispatches the request to the function."
    },
    "routes_active": {
      "type": "boolean",
      "description": "Deployment hosts: `false` once the deployment was replaced; its routes no longer run there and a matched route reports result 404."
    },
    "result": {
      "type": "integer"
    }
  },
  "$defs": {
    "EdgePropagationDiagnostics": {
      "type": "object",
      "required": [
        "binding",
        "claimed_at",
        "kvs_synced_at",
        "kvs_source",
        "status",
        "expected_visible_by",
        "hint"
      ],
      "properties": {
        "binding": {
          "type": "string"
        },
        "claimed_at": {
          "type": "string",
          "format": "date-time"
        },
        "kvs_synced_at": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "kvs_source": {
          "type": "string",
          "enum": [
            "present",
            "missing",
            "unknown"
          ]
        },
        "status": {
          "type": "string",
          "enum": [
            "settled",
            "propagating",
            "sync_pending"
          ]
        },
        "expected_visible_by": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "hint": {
          "type": "string"
        }
      }
    },
    "SiteEmbeddingSpec": {
      "type": "object",
      "description": "Framing opt-in for the site (tenant-site-embedding). `frame_ancestors` lists platform embedding catalog KEYS, never raw origins; the gateway expands them into the `Content-Security-Policy: frame-ancestors` the host sends and drops `X-Frame-Options`. Catalog: `localhost` (http://localhost:* and http://127.0.0.1:*). Omitted on a later apply = carry the base release's declaration forward; `null` = clear back to the default deny. Unknown keys, duplicates, an empty array, or any other member fail with INVALID_SPEC naming the valid keys.",
      "required": [
        "frame_ancestors"
      ],
      "properties": {
        "frame_ancestors": {
          "type": "array",
          "minItems": 1,
          "uniqueItems": true,
          "items": {
            "type": "string",
            "enum": [
              "localhost"
            ]
          }
        }
      },
      "additionalProperties": false
    },
    "StaticContinuity": {
      "type": "object",
      "description": "Automatic one-hour origin availability for previously direct-public non-HTML paths absent from the active release. Cached copies may outlive the deadline. Plans omit the deadline until supersession.",
      "required": [
        "mode",
        "origin_retention_seconds",
        "scope",
        "source_release_id",
        "source_release_generation",
        "retained_path_count"
      ],
      "properties": {
        "mode": {
          "type": "string",
          "enum": [
            "absent_public_paths"
          ]
        },
        "origin_retention_seconds": {
          "type": "integer",
          "enum": [
            3600
          ]
        },
        "scope": {
          "type": "string",
          "enum": [
            "previously_public_non_html"
          ]
        },
        "source_release_id": {
          "type": [
            "string",
            "null"
          ]
        },
        "source_release_generation": {
          "type": [
            "integer",
            "null"
          ]
        },
        "retained_path_count": {
          "type": "integer",
          "minimum": 0
        },
        "origin_available_until": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time",
          "description": "Omitted for candidate supersessions; null for an active release."
        }
      }
    },
    "StaticManifestMetadata": {
      "type": "object",
      "required": [
        "file_count",
        "total_bytes",
        "cache_classes",
        "cache_class_sources",
        "spa_fallback"
      ],
      "properties": {
        "file_count": {
          "type": "integer",
          "minimum": 0
        },
        "total_bytes": {
          "type": "integer",
          "minimum": 0
        },
        "cache_classes": {
          "type": "object",
          "additionalProperties": {
            "type": "integer",
            "minimum": 0
          }
        },
        "cache_class_sources": {
          "type": "object",
          "additionalProperties": {
            "type": "integer",
            "minimum": 0
          }
        },
        "spa_fallback": {
          "type": [
            "string",
            "null"
          ]
        }
      }
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/run402-com-stable-host-resolve-response"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.