Await a request
Long-poll: blocks until a request matching the filters arrives, then returns it (200). If nothing matching arrives within timeoutSeconds, returns 204 No Content. Retry or fail your check.
By default only requests arriving after this call starts match. That leaves a race if the webhook can fire before your await begins: close it by reading the newest stored id first and passing it as afterId (or pass afterId=0 to accept anything already stored).
Typical CI shape:
- Create an ephemeral endpoint (
ttlSeconds). - Point the system under test at its capture
url. - Trigger the action.
GET …/requests/await?q=order.created&timeoutSeconds=60and assert on the body.
Authorization
apiKey API key in the Authorization header: Authorization: Bearer wv_live_…. Keys are created on the API keys page in the app, shown once, and scoped to your workspace. X-Api-Key: wv_live_… is accepted as a fallback for tools that can't set Authorization.
In: header
Path Parameters
The endpoint id (also the capture token in its URL).
uuidQuery Parameters
Exact HTTP method, case-insensitive (e.g. POST).
Delivery state filter.
"NotAttempted" | "Pending" | "Succeeded" | "Failed" | "Errored" | "DeadLetter" | "Skipped"Signature verdict filter. none = requests that were not checked (no signing secret on the endpoint, or the plan lacks verification).
"verified" | "failed" | "unsigned" | "unverifiable" | "none"Case-insensitive substring. Matches path and query string on every plan; also matches non-binary bodies on plans with full payload search.
Match requests received at or after this instant instead of only future ones.
date-timeMatch requests with an id greater than this instead of only future ones. Pass the newest id you've already seen, or 0 to accept anything stored.
int64How long to block. 1–80; default 30.
301 <= value <= 80Response Body
application/json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
{
"id": 0,
"endpointId": "c8d2c7e1-e4b1-4108-9e29-3429a36a1ef3",
"receivedAt": "2019-08-24T14:15:22Z",
"method": "string",
"path": "string",
"queryString": "string",
"headers": {
"property1": "string",
"property2": "string"
},
"body": "string",
"bodyIsBinary": true,
"bodyTruncated": true,
"contentType": "string",
"sourceIp": "string",
"contentLength": 0,
"verification": {
"verdict": "verified",
"note": "string"
},
"delivery": {
"state": "NotAttempted",
"statusCode": 0,
"error": "string",
"url": "string",
"at": "2019-08-24T14:15:22Z",
"durationMs": 0
}
}{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"code": "string",
"traceId": "string"
}{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"code": "string",
"traceId": "string"
}{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"code": "string",
"traceId": "string"
}{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"code": "string",
"traceId": "string"
}{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"code": "string",
"traceId": "string"
}