{"openapi":"3.1.0","info":{"title":"Jylus Public API","version":"1.0.0","description":"Secure arbitrary-JSON ingestion, text discovery, structured retrieval, aggregation, time integration, relationship analysis and source-backed AI context for Jylus workspaces. Production and test API keys use separate data-plane scopes. Versioned /v1 routes define the request contract. Context Packs carry their own schema_version. Clients should tolerate additional response fields, check completeness and readiness, and review a documented version change before changing contracts. This specification covers the authenticated data APIs, not portal administration or anonymous trials."},"servers":[{"url":"https://api.jylus.ai/api"}],"paths":{"/v1/events":{"post":{"summary":"Ingest one or more events","security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["stream","events"],"properties":{"stream":{"type":"string","example":"telemetry"},"namespace":{"type":"string","description":"Optional searchable metadata. It does not select the workspace."},"site_id":{"type":"string","example":"site-sydney-01"},"source_id":{"type":"string","example":"edge-node-01"},"events":{"type":"array","minItems":1,"maxItems":100,"items":{"type":"object","required":["id","type","occurred_at","data"],"properties":{"id":{"type":"string"},"type":{"type":"string"},"occurred_at":{"type":"string","format":"date-time"},"data":{"description":"Any valid JSON value."}},"additionalProperties":true}}},"additionalProperties":true},"example":{"stream":"demo","namespace":"my-demo","events":[{"id":"record-1","type":"state","occurred_at":"2026-01-15T09:00:00Z","data":{"entity_id":"pump-a","status":"Warning","temperature":84}}]}}}},"responses":{"202":{"description":"Durably accepted; poll verify_url until status is verified","content":{"application/json":{"schema":{"type":"object","required":["receipt_id","status","accepted","verify_url","integrity"],"properties":{"receipt_id":{"type":"string","example":"req_0123456789abcdef"},"status":{"type":"string","const":"accepted"},"verification_status":{"type":"string","enum":["pending","unavailable"]},"submitted":{"type":"integer"},"accepted":{"type":"integer"},"duplicates":{"type":"integer"},"verify_url":{"type":"string"},"integrity":{"type":"object","properties":{"algorithm":{"type":"string"},"event_set_sha256":{"type":["string","null"]}}}}}}},"headers":{"X-RateLimit-Limit":{"description":"API-key plan limit for this operation per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Remaining requests in this operation window.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Window reset time as Unix seconds.","schema":{"type":"integer"}},"Idempotent-Replayed":{"description":"true when an existing completed receipt is replayed.","schema":{"type":"string","enum":["true"]}}}},"400":{"description":"Validation failed","headers":{"X-RateLimit-Limit":{"description":"API-key plan limit for this operation per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Remaining requests in this operation window.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Window reset time as Unix seconds.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Invalid API key","headers":{"X-RateLimit-Limit":{"description":"API-key plan limit for this operation per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Remaining requests in this operation window.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Window reset time as Unix seconds.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing scope","headers":{"X-RateLimit-Limit":{"description":"API-key plan limit for this operation per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Remaining requests in this operation window.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Window reset time as Unix seconds.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Idempotency key is already being processed","headers":{"X-RateLimit-Limit":{"description":"API-key plan limit for this operation per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Remaining requests in this operation window.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Window reset time as Unix seconds.","schema":{"type":"integer"}},"Retry-After":{"description":"Wait at least this many seconds before retrying.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Payload exceeds 1 MB","headers":{"X-RateLimit-Limit":{"description":"API-key plan limit for this operation per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Remaining requests in this operation window.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Window reset time as Unix seconds.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limit exceeded","headers":{"X-RateLimit-Limit":{"description":"API-key plan limit for this operation per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Remaining requests in this operation window.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Window reset time as Unix seconds.","schema":{"type":"integer"}},"Retry-After":{"description":"Wait at least this many seconds before retrying.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Ingest service is temporarily unavailable","headers":{"X-RateLimit-Limit":{"description":"API-key plan limit for this operation per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Remaining requests in this operation window.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Window reset time as Unix seconds.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"operationId":"post_v1_events","description":"Idempotency keys are workspace- and production/test-scoped. A completed key replays its original 202 receipt for 24 hours; use the same key only for retries of the same logical write. The key is not a payload comparison mechanism. An in-flight key returns 409; wait for Retry-After. Receipt acceptance is distinct from verified searchability."}},"/v1/receipts/{receiptId}":{"get":{"summary":"Verify that an accepted write is retained and queryable without corruption","description":"Receipts are workspace- and environment-scoped. The endpoint compares every submitted event ID and canonical payload digest with native searchable history. Receipt metadata is retained for 24 hours and does not duplicate customer payloads.","security":[{"bearerAuth":[]}],"parameters":[{"name":"receiptId","in":"path","required":true,"schema":{"type":"string","pattern":"^req_[a-f0-9]{16}$"}}],"responses":{"200":{"description":"Accepted, projecting, verified, conflict, or verification-unavailable state","headers":{"X-RateLimit-Limit":{"description":"API-key plan limit for this operation per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Remaining requests in this operation window.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Window reset time as Unix seconds.","schema":{"type":"integer"}}}},"400":{"description":"Invalid receipt ID","headers":{"X-RateLimit-Limit":{"description":"API-key plan limit for this operation per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Remaining requests in this operation window.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Window reset time as Unix seconds.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Invalid API key","headers":{"X-RateLimit-Limit":{"description":"API-key plan limit for this operation per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Remaining requests in this operation window.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Window reset time as Unix seconds.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing events:read or events:write scope","headers":{"X-RateLimit-Limit":{"description":"API-key plan limit for this operation per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Remaining requests in this operation window.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Window reset time as Unix seconds.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Receipt does not exist in this workspace and environment","headers":{"X-RateLimit-Limit":{"description":"API-key plan limit for this operation per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Remaining requests in this operation window.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Window reset time as Unix seconds.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate or concurrency limit exceeded","headers":{"X-RateLimit-Limit":{"description":"API-key plan limit for this operation per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Remaining requests in this operation window.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Window reset time as Unix seconds.","schema":{"type":"integer"}},"Retry-After":{"description":"Wait at least this many seconds before retrying.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Verification service is temporarily unavailable","headers":{"X-RateLimit-Limit":{"description":"API-key plan limit for this operation per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Remaining requests in this operation window.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Window reset time as Unix seconds.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"operationId":"get_v1_receipts__receiptId_"}},"/v1/search":{"post":{"summary":"Search events inside the API key workspace","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["query"],"properties":{"query":{"type":"string","minLength":1,"maxLength":500},"namespace":{"type":"string","description":"Optional metadata filter; it never selects the workspace."},"from":{"type":"string","default":"now-24h"},"to":{"type":"string","default":"now"},"limit":{"type":"integer","minimum":1,"maximum":100,"default":25}},"additionalProperties":false},"example":{"query":"pump-a","namespace":"my-demo","from":"now-24h","to":"now","limit":10}}}},"responses":{"200":{"description":"Workspace-scoped search results","headers":{"X-RateLimit-Limit":{"description":"API-key plan limit for this operation per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Remaining requests in this operation window.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Window reset time as Unix seconds.","schema":{"type":"integer"}},"X-Concurrency-Limit":{"description":"Plan concurrency limit; present after lease acquisition.","schema":{"type":"integer"}},"X-Concurrency-Active":{"description":"Active operation leases at acquisition.","schema":{"type":"integer"}}}},"400":{"description":"Invalid query","headers":{"X-RateLimit-Limit":{"description":"API-key plan limit for this operation per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Remaining requests in this operation window.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Window reset time as Unix seconds.","schema":{"type":"integer"}},"X-Concurrency-Limit":{"description":"Plan concurrency limit; present after lease acquisition.","schema":{"type":"integer"}},"X-Concurrency-Active":{"description":"Active operation leases at acquisition.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Invalid API key","headers":{"X-RateLimit-Limit":{"description":"API-key plan limit for this operation per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Remaining requests in this operation window.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Window reset time as Unix seconds.","schema":{"type":"integer"}},"X-Concurrency-Limit":{"description":"Plan concurrency limit; present after lease acquisition.","schema":{"type":"integer"}},"X-Concurrency-Active":{"description":"Active operation leases at acquisition.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing events:read scope","headers":{"X-RateLimit-Limit":{"description":"API-key plan limit for this operation per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Remaining requests in this operation window.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Window reset time as Unix seconds.","schema":{"type":"integer"}},"X-Concurrency-Limit":{"description":"Plan concurrency limit; present after lease acquisition.","schema":{"type":"integer"}},"X-Concurrency-Active":{"description":"Active operation leases at acquisition.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limit exceeded","headers":{"X-RateLimit-Limit":{"description":"API-key plan limit for this operation per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Remaining requests in this operation window.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Window reset time as Unix seconds.","schema":{"type":"integer"}},"Retry-After":{"description":"Wait at least this many seconds before retrying.","schema":{"type":"integer"}},"X-Concurrency-Limit":{"description":"Plan concurrency limit; present after lease acquisition.","schema":{"type":"integer"}},"X-Concurrency-Active":{"description":"Active operation leases at acquisition.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Search service is temporarily unavailable","headers":{"X-RateLimit-Limit":{"description":"API-key plan limit for this operation per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Remaining requests in this operation window.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Window reset time as Unix seconds.","schema":{"type":"integer"}},"X-Concurrency-Limit":{"description":"Plan concurrency limit; present after lease acquisition.","schema":{"type":"integer"}},"X-Concurrency-Active":{"description":"Active operation leases at acquisition.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"operationId":"post_v1_search"}},"/v1/query":{"post":{"summary":"Query current state or bounded history using structured field conditions","description":"The API key selects the workspace. Conditions may target canonical fields or validated nested payload.* paths; request fields cannot override tenant scope.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"source":{"type":"string","enum":["current","history"],"default":"current"},"where":{"type":"object","maxProperties":32,"additionalProperties":{"oneOf":[{"type":["string","number","boolean","null"]},{"type":"object","description":"One operator: eq, ieq, neq, in, not_in, gt, gte, lt, lte, exists, contains, or prefix.","additionalProperties":true}]}},"fields":{"type":"array","minItems":1,"maxItems":100,"description":"Return only these canonical, payload.*, or metrics.* fields.","items":{"type":"string","maxLength":256}},"order":{"type":"string","enum":["asc","desc"],"default":"desc"},"limit":{"type":"integer","minimum":1,"maximum":1000,"default":100}},"additionalProperties":false},"example":{"source":"current","where":{"namespace":"my-demo"},"fields":["id","payload.status"],"limit":10}}}},"responses":{"200":{"description":"Tenant-scoped structured query results","headers":{"X-RateLimit-Limit":{"description":"API-key plan limit for this operation per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Remaining requests in this operation window.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Window reset time as Unix seconds.","schema":{"type":"integer"}},"X-Concurrency-Limit":{"description":"Plan concurrency limit; present after lease acquisition.","schema":{"type":"integer"}},"X-Concurrency-Active":{"description":"Active operation leases at acquisition.","schema":{"type":"integer"}}}},"400":{"description":"Invalid or unbounded history query","headers":{"X-RateLimit-Limit":{"description":"API-key plan limit for this operation per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Remaining requests in this operation window.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Window reset time as Unix seconds.","schema":{"type":"integer"}},"X-Concurrency-Limit":{"description":"Plan concurrency limit; present after lease acquisition.","schema":{"type":"integer"}},"X-Concurrency-Active":{"description":"Active operation leases at acquisition.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Invalid API key","headers":{"X-RateLimit-Limit":{"description":"API-key plan limit for this operation per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Remaining requests in this operation window.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Window reset time as Unix seconds.","schema":{"type":"integer"}},"X-Concurrency-Limit":{"description":"Plan concurrency limit; present after lease acquisition.","schema":{"type":"integer"}},"X-Concurrency-Active":{"description":"Active operation leases at acquisition.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing events:read scope or query exceeds retention","headers":{"X-RateLimit-Limit":{"description":"API-key plan limit for this operation per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Remaining requests in this operation window.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Window reset time as Unix seconds.","schema":{"type":"integer"}},"X-Concurrency-Limit":{"description":"Plan concurrency limit; present after lease acquisition.","schema":{"type":"integer"}},"X-Concurrency-Active":{"description":"Active operation leases at acquisition.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate or concurrency limit exceeded","headers":{"X-RateLimit-Limit":{"description":"API-key plan limit for this operation per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Remaining requests in this operation window.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Window reset time as Unix seconds.","schema":{"type":"integer"}},"Retry-After":{"description":"Wait at least this many seconds before retrying.","schema":{"type":"integer"}},"X-Concurrency-Limit":{"description":"Plan concurrency limit; present after lease acquisition.","schema":{"type":"integer"}},"X-Concurrency-Active":{"description":"Active operation leases at acquisition.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Query service is temporarily unavailable","headers":{"X-RateLimit-Limit":{"description":"API-key plan limit for this operation per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Remaining requests in this operation window.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Window reset time as Unix seconds.","schema":{"type":"integer"}},"X-Concurrency-Limit":{"description":"Plan concurrency limit; present after lease acquisition.","schema":{"type":"integer"}},"X-Concurrency-Active":{"description":"Active operation leases at acquisition.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"operationId":"post_v1_query"}},"/v1/analyze":{"post":{"summary":"Analyze arbitrary event data and build Hybrid AI decision context","description":"Runs tenant-scoped analysis over current state or bounded history. Custom fields use payload.* or metrics.* paths. Hybrid AI decision mode rejects unverified and out-of-scope fields, collapses repeated observations, and returns deterministic token-budgeted facts, state transitions, contradictions, missing evidence, decision readiness, compaction metrics and proof references.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"source":{"type":"string","enum":["current","history"],"default":"history"},"where":{"type":"object","maxProperties":32,"additionalProperties":true},"text":{"type":"string","maxLength":500},"aggregations":{"type":"object","additionalProperties":{"type":"object","required":["op"],"properties":{"op":{"type":"string","enum":["count","distinct","sum","avg","min","max","integral"]},"field":{"type":"string","maxLength":256},"time_field":{"type":"string","maxLength":256,"default":"timestamp","description":"Timestamp path used by integral."},"unit":{"type":"string","enum":["ms","s","m","h"],"default":"h","description":"Time unit for the integral result."},"max_gap_ms":{"type":"integer","minimum":1,"maximum":86400000,"default":300000,"description":"Maximum duration attributed to one sampled value."}},"additionalProperties":false}},"group_by":{"type":"array","maxItems":8,"items":{"type":"string"}},"group_limit":{"type":"integer","minimum":1,"maximum":1000,"default":100},"time_bucket":{"type":"object","required":["interval"],"properties":{"field":{"type":"string","default":"timestamp"},"interval":{"type":"string","pattern":"^\\d+(?:ms|s|m|h|d)$","example":"5m"}},"additionalProperties":false},"vector":{"type":"object","description":"Feature-vector semantic ranking over arbitrary event content.","properties":{"text":{"type":"string","maxLength":32768}}},"temporal":{"type":"object","description":"Return source event IDs immediately before and after ranked anchors.","properties":{"before":{"type":"integer","minimum":0,"maximum":50},"after":{"type":"integer","minimum":0,"maximum":50}}},"relationship_fields":{"type":"array","maxItems":16,"items":{"type":"string"}},"relationship_limit":{"type":"integer","minimum":1,"maximum":1000,"default":100},"context":{"type":"object","properties":{"token_budget":{"type":"integer","minimum":256,"maximum":100000,"default":4000},"mode":{"type":"string","enum":["documents","decision"],"default":"documents","description":"Use decision to receive admitted, source-backed decision evidence instead of raw source documents."},"include_documents":{"type":"boolean","default":false},"max_facts":{"type":"integer","minimum":1,"maximum":100,"default":20},"max_timeline":{"type":"integer","minimum":1,"maximum":100,"default":16},"max_contradictions":{"type":"integer","minimum":1,"maximum":50,"default":12},"contradiction_window_ms":{"type":"integer","minimum":0,"maximum":120000,"default":5000},"expected_freshness_ms":{"type":"integer","minimum":1000,"maximum":31536000000,"default":900000}},"additionalProperties":false},"order":{"type":"string","enum":["asc","desc"],"default":"desc"},"limit":{"type":"integer","minimum":1,"maximum":1000,"default":100},"scan_limit":{"type":"integer","minimum":1,"maximum":50000,"default":10000},"excluded_document_ids":{"type":"array","maxItems":4096,"description":"Optional source document IDs to exclude from this analysis request.","items":{"type":"string","minLength":1,"maxLength":1024}},"include_results":{"type":"boolean","default":true,"description":"Include the ranked source-record array alongside the Context Pack."}},"additionalProperties":false},"example":{"source":"current","where":{"namespace":"my-demo"},"text":"What is pump-a status and temperature?","limit":10,"include_results":true,"context":{"mode":"decision","token_budget":4000}}}}},"responses":{"200":{"description":"Analysis with completeness, freshness, aggregation and source evidence","content":{"application/json":{"schema":{"type":"object","required":["success","execution_mode","complete","scanned","elapsed_ms"],"properties":{"success":{"type":"boolean"},"source":{"type":"string","enum":["current","history"]},"execution_mode":{"type":"string","enum":["optimized","semantic","bounded"],"description":"Stable public execution category. Internal planner details are not exposed."},"complete":{"type":"boolean","description":"False when scan_limit was reached and more matching history may exist."},"scanned":{"type":"integer"},"filtered":{"type":"integer"},"matched":{"type":"integer"},"elapsed_ms":{"type":"number"},"freshness":{"type":"object","additionalProperties":true},"aggregations":{"type":"object","additionalProperties":true},"groups":{"type":"array","items":{"type":"object","additionalProperties":true}},"relationships":{"type":"array","items":{"type":"object","additionalProperties":true}},"temporal_windows":{"type":"array","items":{"type":"object","additionalProperties":true}},"context":{"type":"object","description":"Token-budgeted source records or a compact Hybrid AI packet containing a deterministic context ID, decision readiness, admitted facts, exclusion counts, timeline, contradictions, missing evidence, compaction metrics, confidence and proof IDs.","properties":{"schema_version":{"type":"string","description":"Version of the returned Context Pack contract."},"audit_trace_id":{"type":"string","description":"Present only on sampled requests when private native compiler auditing is enabled. Operators can use it to locate the access-restricted trace; no public trace-download endpoint is provided."},"proof":{"type":"object","description":"Source references supporting the returned Context Pack. This completeness value is separate from the top-level scan completeness value.","properties":{"complete":{"type":"boolean"},"event_ids":{"type":"array","items":{"type":"string"}}},"additionalProperties":true}},"additionalProperties":true},"results":{"type":"array","description":"Source evidence in the authoritative order returned by Jylus.","items":{"type":"object","properties":{"id":{"type":"string"},"timestamp":{"type":"string","format":"date-time"},"evidence_rank":{"type":"integer","minimum":1,"description":"Jylus evidence-selection rank retained for traceability. Consume the result array in its returned order."},"source_roles":{"type":"array","description":"Machine-readable state or evidence roles supported by this source record.","items":{"type":"string"}},"proof_digest":{"type":"string"},"relevance":{"type":"object","properties":{"score":{"type":"number"}},"additionalProperties":false}},"additionalProperties":true}}},"additionalProperties":false}}},"headers":{"X-RateLimit-Limit":{"description":"API-key plan limit for this operation per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Remaining requests in this operation window.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Window reset time as Unix seconds.","schema":{"type":"integer"}},"X-Concurrency-Limit":{"description":"Plan concurrency limit; present after lease acquisition.","schema":{"type":"integer"}},"X-Concurrency-Active":{"description":"Active operation leases at acquisition.","schema":{"type":"integer"}}}},"400":{"description":"Invalid or unbounded analysis","headers":{"X-RateLimit-Limit":{"description":"API-key plan limit for this operation per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Remaining requests in this operation window.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Window reset time as Unix seconds.","schema":{"type":"integer"}},"X-Concurrency-Limit":{"description":"Plan concurrency limit; present after lease acquisition.","schema":{"type":"integer"}},"X-Concurrency-Active":{"description":"Active operation leases at acquisition.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Invalid API key","headers":{"X-RateLimit-Limit":{"description":"API-key plan limit for this operation per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Remaining requests in this operation window.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Window reset time as Unix seconds.","schema":{"type":"integer"}},"X-Concurrency-Limit":{"description":"Plan concurrency limit; present after lease acquisition.","schema":{"type":"integer"}},"X-Concurrency-Active":{"description":"Active operation leases at acquisition.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing events:read scope or analysis exceeds retention","headers":{"X-RateLimit-Limit":{"description":"API-key plan limit for this operation per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Remaining requests in this operation window.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Window reset time as Unix seconds.","schema":{"type":"integer"}},"X-Concurrency-Limit":{"description":"Plan concurrency limit; present after lease acquisition.","schema":{"type":"integer"}},"X-Concurrency-Active":{"description":"Active operation leases at acquisition.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate or concurrency limit exceeded","headers":{"X-RateLimit-Limit":{"description":"API-key plan limit for this operation per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Remaining requests in this operation window.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Window reset time as Unix seconds.","schema":{"type":"integer"}},"Retry-After":{"description":"Wait at least this many seconds before retrying.","schema":{"type":"integer"}},"X-Concurrency-Limit":{"description":"Plan concurrency limit; present after lease acquisition.","schema":{"type":"integer"}},"X-Concurrency-Active":{"description":"Active operation leases at acquisition.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Analysis service is temporarily unavailable","headers":{"X-RateLimit-Limit":{"description":"API-key plan limit for this operation per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Remaining requests in this operation window.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Window reset time as Unix seconds.","schema":{"type":"integer"}},"X-Concurrency-Limit":{"description":"Plan concurrency limit; present after lease acquisition.","schema":{"type":"integer"}},"X-Concurrency-Active":{"description":"Active operation leases at acquisition.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"operationId":"post_v1_analyze"}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"jyl_live_... or jyl_test_...","description":"Create a scoped key in the portal. The key selects both the workspace and its production or test data-plane scope."}},"schemas":{"ApiError":{"type":"object","required":["statusCode","statusMessage"],"properties":{"statusCode":{"type":"integer","minimum":400,"maximum":599},"statusMessage":{"type":"string"},"message":{"type":"string"},"data":{"description":"Optional validation details or retry metadata.","type":"object","additionalProperties":true}},"additionalProperties":true}}}}