Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Register, list, test, and remove webhook endpoints. Configure event subscriptions (request.completed, provider.error, budget.exceeded, etc.) and manage delivery retries.
.claude/skills/diegosouzapw-omni-webhooks/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-20 | ✗→✓ | ▲ Improved | -42% | 0% |
| case-01 | ✗→✓ | ▲ Improved | 18% | 0% |
| case-15 | ✗→✓ | ▲ Improved | 38% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 2% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 41% | 0% |
<!-- generated by src/lib/agentSkills/generator.ts; manual edits will be overwritten -->
Register, list, test, and remove webhook endpoints. Configure event subscriptions (request.completed, request.failed, quota.exceeded, etc.) and manage delivery retries.
All requests require a valid Bearer token or session cookie. Obtain a token via POST /api/auth/login or configure REQUIRE_API_KEY=false for local development.
GET webhooks
bashcurl https://localhost:20128/api/webhooks \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
POST webhooks
bashcurl -X POST https://localhost:20128/api/webhooks \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
GET webhooks › <id>
bashcurl https://localhost:20128/api/webhooks/{id} \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
PUT webhooks › <id>
bashcurl -X PUT https://localhost:20128/api/webhooks/{id} \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
DELETE webhooks › <id>
bashcurl -X DELETE https://localhost:20128/api/webhooks/{id} \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET webhooks › <id> › deliveries
bashcurl https://localhost:20128/api/webhooks/{id}/deliveries \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
POST webhooks › <id> › test
bashcurl -X POST https://localhost:20128/api/webhooks/{id}/test \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
POST webhooks › validate url
bashcurl -X POST https://localhost:20128/api/webhooks/validate-url \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
See the full OpenAPI specification at GET /api/openapi/spec or docs/openapi.yaml for detailed request/response schemas.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-20 | fail→pass | 17,282 | 8,895 | -49% | 1 | 1 | 0% | 2,440 | 1,414 | -42% | 0 | 0 | — |
case-01 | fail→pass | 11,297 | 8,211 | -27% | 1 | 1 | 0% | 1,093 | 1,292 | +18% | 0 | 0 | — |
case-15 | fail→pass | 9,487 | 6,868 | -28% | 1 | 1 | 0% | 727 | 1,001 | +38% | 0 | 0 | — |
case-02 | fail→pass | 12,515 | 8,518 | -32% | 1 | 1 | 0% | 1,418 | 1,451 | +2% | 0 | 0 | — |
case-03 | fail→pass | 11,079 | 8,931 | -19% | 1 | 1 | 0% | 941 | 1,327 | +41% | 0 | 0 | — |
case-04 | fail→pass | 18,590 | 8,118 | -56% | 1 | 1 | 0% | 2,127 | 1,263 | -41% | 0 | 0 | — |
case-05 | fail→pass | 10,894 | 9,020 | -17% | 1 | 1 | 0% | 1,009 | 1,470 | +46% | 0 | 0 | — |
case-06 | fail→pass | 26,139 | 7,469 | -71% | 1 | 1 | 0% | 1,515 | 1,118 | -26% | 0 | 0 | — |
case-07 | fail→pass | 11,134 | 7,351 | -34% | 1 | 1 | 0% | 1,056 | 1,073 | +2% | 0 | 0 | — |
case-08 | fail→pass | 14,044 | 7,972 | -43% | 1 | 1 | 0% | 1,590 | 1,261 | -21% | 0 | 0 | — |
case-09 | fail→pass | 10,124 | 7,106 | -30% | 1 | 1 | 0% | 826 | 1,053 | +27% | 0 | 0 | — |
case-10 | fail→pass | 10,077 | 7,663 | -24% | 1 | 1 | 0% | 852 | 1,012 | +19% | 0 | 0 | — |
case-11 | fail→pass | 11,860 | 9,262 | -22% | 1 | 1 | 0% | 1,026 | 1,415 | +38% | 0 | 0 | — |
case-12 | fail→pass | 13,850 | 8,326 | -40% | 1 | 1 | 0% | 1,380 | 1,276 | -8% | 0 | 0 | — |
case-13 | pass→pass | 11,178 | 7,912 | -29% | 1 | 1 | 0% | 882 | 1,143 | +30% | 0 | 0 | — |
case-14 | fail→pass | 13,697 | 6,889 | -50% | 1 | 1 | 0% | 1,276 | 891 | -30% | 0 | 0 | — |
case-16 | pass→pass | 14,989 | 8,903 | -41% | 1 | 1 | 0% | 1,726 | 1,330 | -23% | 0 | 0 | — |
case-17 | fail→pass | 18,425 | 7,073 | -62% | 1 | 1 | 0% | 2,168 | 1,040 | -52% | 0 | 0 | — |
case-18 | fail→pass | 14,640 | 7,125 | -51% | 1 | 1 | 0% | 1,605 | 1,024 | -36% | 0 | 0 | — |
case-19 | pass→pass | 5,109 | 7,698 | +51% | 1 | 1 | 0% | 899 | 1,140 | +27% | 0 | 0 | — |
case-21 | fail→pass | 16,069 | 7,050 | -56% | 1 | 1 | 0% | 1,589 | 1,010 | -36% | 0 | 0 | — |
case-22 | fail→pass | 15,813 | 8,521 | -46% | 1 | 1 | 0% | 1,623 | 1,206 | -26% | 0 | 0 | — |
case-23 | fail→pass | 12,840 | 7,715 | -40% | 1 | 1 | 0% | 1,245 | 1,101 | -12% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted. The headline lift of +87 percentage points is the difference between those two pass rates over the 23 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
| Model | Method | Date | Lift |
|---|---|---|---|
| gemini-3.6-flash | verified | 8/24/2026 | +50% |
| gemini-3.6-flash | verified | 8/7/2026 | +57% |
Other measured skills in the registry, with their headline benchmark lift.