{"openapi":"3.1.0","info":{"title":"Waypoint Reference API","version":"2026.10.3","description":"Read-only operations over fictional, synthetic relay fixtures. Requests are recorded for research; see /privacy. No account or model call is required."},"servers":[{"url":"/"}],"paths":{"/api/v1/catalog":{"get":{"operationId":"getCatalog","summary":"List available reference resources and limits","responses":{"200":{"description":"Versioned catalog","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Catalog"}}}},"503":{"description":"The request was rejected or the resource service is unavailable.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"required":["error"]}}}}}}},"/api/v1/reference/search":{"post":{"operationId":"searchReference","summary":"Search resource descriptions, not fixture rows","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["query"],"properties":{"query":{"type":"string","minLength":1,"description":"At most 256 UTF-8 bytes."},"limit":{"type":"integer","minimum":1,"maximum":5,"default":5}}},"example":{"query":"Waypoint directory","limit":5}}}},"responses":{"200":{"description":"Matching resource descriptions","content":{"application/json":{"schema":{"type":"object","required":["version","results"],"properties":{"version":{"type":"string"},"results":{"type":"array","maxItems":5,"items":{"$ref":"#/components/schemas/ResourceSummary"}}}}}}},"400":{"description":"The request was rejected or the resource service is unavailable.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"required":["error"]}}}},"413":{"description":"The request was rejected or the resource service is unavailable.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"required":["error"]}}}},"415":{"description":"The request was rejected or the resource service is unavailable.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"required":["error"]}}}},"503":{"description":"The request was rejected or the resource service is unavailable.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"required":["error"]}}}}}}},"/api/v1/fixtures/validate":{"post":{"operationId":"validateRecords","summary":"Validate synthetic rows against one fixture schema","description":"Row schema validation only; relationship checks require joining the published fixtures.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["dataset","records"],"properties":{"dataset":{"type":"string","enum":["waypoints","relay-batches","relay-events"]},"records":{"type":"array","minItems":1,"maxItems":20,"items":{}}}}}}},"responses":{"200":{"description":"Per-row validation results without submitted values","content":{"application/json":{"schema":{"type":"object","required":["version","dataset","scope","valid","rows","issueCount","errorsTruncated"],"properties":{"version":{"type":"string"},"dataset":{"type":"string","enum":["waypoints","relay-batches","relay-events"]},"scope":{"const":"row-schema-only"},"valid":{"type":"boolean"},"rows":{"type":"array","items":{"type":"object","required":["index","valid","errors"],"properties":{"index":{"type":"integer"},"valid":{"type":"boolean"},"errors":{"type":"array","items":{"type":"object","properties":{"field":{"type":["string","null"]},"code":{"type":"string"}}}}}}},"issueCount":{"type":"integer"},"errorsTruncated":{"type":"boolean"}}}}}},"400":{"description":"The request was rejected or the resource service is unavailable.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"required":["error"]}}}},"413":{"description":"The request was rejected or the resource service is unavailable.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"required":["error"]}}}},"415":{"description":"The request was rejected or the resource service is unavailable.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"required":["error"]}}}},"503":{"description":"The request was rejected or the resource service is unavailable.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"required":["error"]}}}}}}},"/resources/datasets/{slug}.json":{"get":{"operationId":"getDataset","summary":"Fetch one complete synthetic dataset","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","enum":["waypoints","relay-batches","relay-events"]}}],"responses":{"200":{"description":"Versioned resource envelope with fields, row schema and records","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Dataset"}}}},"404":{"description":"The request was rejected or the resource service is unavailable.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"required":["error"]}}}},"503":{"description":"The request was rejected or the resource service is unavailable.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"required":["error"]}}}}}}}},"components":{"schemas":{"ResourceSummary":{"type":"object","required":["kind","slug","title","excerpt","url"],"properties":{"kind":{"type":"string","enum":["documentation","dataset"]},"slug":{"type":"string"},"title":{"type":"string"},"excerpt":{"type":"string"},"url":{"type":"string"}}},"Catalog":{"type":"object","required":["version","synthetic","resources","operations","limits","privacy"],"properties":{"version":{"type":"string"},"synthetic":{"const":true},"resources":{"type":"array","items":{"type":"object"}},"operations":{"type":"object"},"limits":{"type":"object"},"privacy":{"const":"/privacy"}}},"Dataset":{"type":"object","required":["kind","slug","title","summary","version","fields","schema","records"],"properties":{"kind":{"const":"dataset"},"slug":{"type":"string","enum":["waypoints","relay-batches","relay-events"]},"title":{"type":"string"},"summary":{"type":"string"},"version":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}},"schema":{"type":"object"},"records":{"type":"array","items":{"type":"object"}}}}}}}