"use client"; import { useState } from "react"; import { useApi } from "@/lib/api"; import { fmtDate } from "@/lib/format"; import { Empty, Panel, Skeleton, Table, Tag } from "@/components/ui"; interface Schema { platform: string; shape_hash: string; fingerprint: { hostname: string; path_pattern: string; method: string; graphql_operation?: string; observed_entity_types?: string[] }; schema: { candidate_entity_types: { type: string; confidence: number; path: string }[]; fields: { path: string; semantic?: { kind: string; confidence: number }; example?: string; types?: string[] }[]; object_count: number; repeated_object_paths: string[] }; observed_count: number; sample_url: string; first_seen: string; last_seen: string; } export default function Schemas() { const [platform, setPlatform] = useState(""); const { data, loading } = useApi(`/schemas${platform ? `?platform=${platform}` : ""}`, { refreshMs: 15_000 }); const platforms = [...new Set((data ?? []).map((s) => s.platform))]; return (

Runtime APIs

Response shapes the browser received while a human-like session unfolded. Endpoints are fingerprinted by (host, path pattern, method, structure hash) and their fields are semantically inferred — nothing here was written by hand.

{loading ? ( ) : data?.length ? (
{data.map((sc) => (
{sc.platform} {sc.fingerprint.method} {sc.fingerprint.hostname} {sc.fingerprint.path_pattern} {sc.fingerprint.graphql_operation && {sc.fingerprint.graphql_operation}} {sc.schema.candidate_entity_types.slice(0, 5).map((c) => ( {c.type} {Number(c.confidence).toFixed(2)} ))} seen {sc.observed_count}× · {sc.schema.object_count} objects · #{sc.shape_hash.slice(0, 8)}
sample {sc.sample_url} · first {fmtDate(sc.first_seen)} · last {fmtDate(sc.last_seen)}
{sc.schema.repeated_object_paths?.length ? (
repeated object arrays (entity lists): {sc.schema.repeated_object_paths.slice(0, 5).join(" · ")}
) : null} {sc.schema.fields.slice(0, 80).map((f) => ( ))}
{f.path} {f.semantic ? {f.semantic.kind} : "—"} {f.semantic ? Number(f.semantic.confidence).toFixed(2) : ""} {f.types?.join("|")} {f.example}
))}
) : ( No schemas discovered yet. )}
); }