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"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,
"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"
}