GoodMemGoodMem
ReferenceAPIREST APIPing

Stream ping probe results

POST /v1/ping:stream: Opens a streaming ping session and returns per-probe results plus a terminal summary.

POST
/v1/ping:stream

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.

Authorization

ApiKeyAuth
headerx-api-key<token>

Header Parameters

Accept?string

Response format: 'text/event-stream' for Server-Sent Events or 'application/x-ndjson' for newline-delimited JSON

GoodMem-Timeout-Ms?integer

Optional 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.

Formatint64
Range1 <= value <= 86400000
GoodMem-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.

Value in"true"

Request Body

Ping stream configuration

application/json
  1. body

Request payload for a streaming ping session

targetId*string

Target resource ID (UUID)

Formatuuid
Example"550e8400-e29b-41d4-a716-446655440000"
targetTypeHint?|

Optional hint for the target resource type

Example"EMBEDDER"
count?|

Number of probes to run (0 uses server default)

Formatint32
Range0 <= value
Default4
intervalMs?|

Delay between probes in milliseconds (0 uses server default)

Formatint32
Range0 <= value
Default1000
timeoutMs?|

Per-probe timeout in milliseconds (0 uses server default)

Formatint32
Range0 <= value
Default5000
payloadType?|

Desired payload type (defaults to provider-specific value)

Example"TEXT"
payload?|

Explicit UTF-8 payload to send with each probe (mutually exclusive with payloadSizeBytes)

Example"ping"
payloadSizeBytes?|

Synthetic payload size in bytes (mutually exclusive with payload)

Formatint32
Range0 <= value
Example64
maxInFlight?|

Maximum concurrent probes (defaults to 1)

Formatint32
Range1 <= value
Default1
jitter?|

Add jitter to probe scheduling

Examplefalse
labels?|

Optional labels to attach to the ping session

Propertiesproperties <= 20
Example
{  "origin": "console"}

Response Body

Streaming ping results (SSE or NDJSON)

  1. response

Streaming event from a ping session

result*|

Probe result event

Example
{  "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  }}
Example Request
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"  }}'
Example Response
{  "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    }  }}