Stream ping probe results
POST /v1/ping:stream: Opens a streaming ping session and returns per-probe results plus a terminal summary.
Opens a streaming ping session and returns per-probe results plus a terminal summary. Supports SSE (text/event-stream) and NDJSON (application/x-ndjson) formats. Requires both the target-specific PING operation and its corresponding EXECUTE operation: PING_EMBEDDER plus EXECUTE_EMBEDDER, PING_RERANKER plus EXECUTE_RERANKER, or PING_LLM plus EXECUTE_LLM. Decision models require READ_DECISION_MODEL, PING_DECISION_MODEL, and EXECUTE_DECISION_MODEL. Probes make real provider calls and may incur charges.
ApiKeyAuthx-api-key<token>Accept?stringResponse format: 'text/event-stream' for Server-Sent Events or 'application/x-ndjson' for newline-delimited JSON
GoodMem-Timeout-Ms?integerOptional waiting budget in milliseconds, measured from REST servlet ingress and shared across all internal gRPC calls. Supply one decimal integer from 1 to 86400000. Omission adds no deadline. Existing shorter deadlines still apply. Expiry returns HTTP 504 before streaming starts; after streaming starts, no successful completion event is sent. Use SSE or opt into GoodMem-Stream-Terminal for an explicit terminal outcome. Retrieval work is cooperatively cancelled. An accepted mutation may still commit after timeout or disconnect; a failed response does not imply rollback.
int641 <= value <= 86400000GoodMem-Stream-Terminal?"true"Set true to receive a final NDJSON transport record. The response echoes this header when enabled. Require a completed record to establish stream success; EOF alone and a result-set END do not establish success. SSE uses close on success and error on failure.
"true"Ping stream configuration
application/json- body
Request payload for a streaming ping session
targetId*stringTarget resource ID (UUID)
uuid"550e8400-e29b-41d4-a716-446655440000"targetTypeHint?|Optional hint for the target resource type
"EMBEDDER"count?|Number of probes to run (0 uses server default)
int320 <= value4intervalMs?|Delay between probes in milliseconds (0 uses server default)
int320 <= value1000timeoutMs?|Per-probe timeout in milliseconds (0 uses server default)
int320 <= value5000payloadType?|Desired payload type (defaults to provider-specific value)
"TEXT"payload?|Explicit UTF-8 payload to send with each probe (mutually exclusive with payloadSizeBytes)
"ping"payloadSizeBytes?|Synthetic payload size in bytes (mutually exclusive with payload)
int320 <= value64maxInFlight?|Maximum concurrent probes (defaults to 1)
int321 <= value1jitter?|Add jitter to probe scheduling
falselabels?|Optional labels to attach to the ping session
properties <= 20{ "origin": "console"}Streaming ping results (SSE or NDJSON)
- response
Streaming event from a ping session
result*|Probe result event
{ "endpoint": { "targetType": "EMBEDDER", "targetId": "550e8400-e29b-41d4-a716-446655440000", "resolvedEndpoint": "https://api.openai.com/v1/embeddings", "provider": "OPENAI", "modelIdentifier": "text-embedding-3-small" }, "seq": 1, "bytesSent": 64, "bytesReceived": 64, "ok": true, "httpStatus": 200, "errorMessage": "Probe exceeded timeout of 5000 ms", "rttMs": 123.4, "timing": { "clientSendTimeUnixNanos": 1712082300123456800, "serverReceivedTimeUnixNanos": 1712082301123456800, "serverSendTimeUnixNanos": 1712082302123456800, "clientReceiveTimeUnixNanos": 1712082303123456800 }}curl -X POST 'https://your-goodmem-server.example.com/v1/ping:stream' \ -H 'Accept: application/x-ndjson' \ -H 'GoodMem-Timeout-Ms: 30000' \ -H 'Content-Type: application/json' \ -d '{ "targetId": "550e8400-e29b-41d4-a716-446655440000", "targetTypeHint": "EMBEDDER", "count": 4, "intervalMs": 1000, "timeoutMs": 5000, "payloadType": "TEXT", "payload": "ping", "payloadSizeBytes": 64, "maxInFlight": 1, "jitter": false, "labels": { "origin": "console" }}'{ "result": { "endpoint": { "targetType": "EMBEDDER", "targetId": "550e8400-e29b-41d4-a716-446655440000", "resolvedEndpoint": "https://api.openai.com/v1/embeddings", "provider": "OPENAI", "modelIdentifier": "text-embedding-3-small" }, "seq": 1, "bytesSent": 64, "bytesReceived": 64, "ok": true, "httpStatus": 200, "errorMessage": "Probe exceeded timeout of 5000 ms", "rttMs": 123.4, "timing": { "clientSendTimeUnixNanos": 1712082300123456800, "serverReceivedTimeUnixNanos": 1712082301123456800, "serverSendTimeUnixNanos": 1712082302123456800, "clientReceiveTimeUnixNanos": 1712082303123456800 } }}