owlsinsight-com Webhooks API

The Webhooks API from owlsinsight-com — 5 operation(s) for webhooks.

Operations 8

GET /api/v1/webhooks Lists your webhook endpoints with their status, filters and delivery health. #
POST /api/v1/webhooks Registers an HTTPS endpoint for signed event notifications: Pinnacle line… #
DELETE /api/v1/webhooks/{id} Deletes a webhook endpoint. #
GET /api/v1/webhooks/{id} Returns one webhook endpoint: url, event types, filters, status and delivery… #
PATCH /api/v1/webhooks/{id} Changes a webhook endpoint: url, event_types, description, filters, or enabled… #
GET /api/v1/webhooks/{id}/deliveries Lists recent deliveries to one endpoint, newest first: status, attempts, the… #
POST /api/v1/webhooks/{id}/rotate-secret Issues a new signing secret for the endpoint and returns it once. #
POST /api/v1/webhooks/{id}/test Queues a webhook.test event to the endpoint, signed like every other event, so… #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/owlsinsight-com:owlsinsight-com-webhooks-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

owlsinsight-com-webhooks-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: 'Generated from the Owls Insight API manifest and the owls-insight-ts SDK types. Schemas are deliberately lenient: every field is optional, enums are open (x-extensible-enum), and unknown fields may appear. Decode accordingly.'
  title: Owls Insight Webhooks API
  version: 0.78.0
  x-owls-manifest-commit: c93b0756
servers:
- url: https://api.owlsinsight.com
security:
- bearerAuth: []
tags:
- name: Webhooks
paths:
  /api/v1/webhooks:
    get:
      description: Lists your webhook endpoints with their status, filters and delivery health. Never returns signing secrets.
      operationId: listWebhooks
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookListResponse'
          description: OK
      summary: Lists your webhook endpoints with their status, filters and delivery health.
      tags:
      - Webhooks
      x-owls-access: MVP and above
      x-owls-sdk-method: listWebhooks
    post:
      description: 'Registers an HTTPS endpoint for signed event notifications: Pinnacle line moves, positive EV prices, game start and final, and graded player props. Returns the signing secret once. Coverage by event type (a sport listed in filters.sports that one of your event types does not cover is a 400): line.moved: mlb, nba, ncaab, ncaaf, nfl, nhl, soccer, tennis, wnba; ev.found: cs2, dota2, lol, mlb, mma, nba, ncaab, ncaaf, nfl, nhl, soccer, tennis, valorant, wnba; game.started: mlb, nba, ncaab, nhl, soccer, tennis, nfl, ncaaf; game.final: mlb, nba, ncaab, nhl, soccer, tennis, nfl, ncaaf; props.graded: mlb, nfl. line.moved: Pinnacle''s main moneyline, spread or total for a game that has not started moved by at least your step since the last line.moved you were sent for that market, so small moves add up. price_step_pp is the change in implied probability in percentage points (0.5, 1, 2, 3, 5), point_step the change in the spread or total line (0.5, 1, 1.5, 2, 3). A line change smaller than point_step restarts the price comparison at the new line. After a line.moved the market is quiet for 60 seconds, and a move inside that window is sent once at its end if it still clears your step. data: { sport, league, event_id, source_event_id, home_team, away_team, commence_time, book, market, reason, previous, current, max_probability_change_pp, point_change, thresholds }, where previous and current map each side (home, away, draw, over, under) to { price, point }. ev.found: a price on the EV board became tradeable at or above your min_ev, in percent (1, 2, 3, 5, 8), by the same fair-value math as the EV endpoint. Tradeable means it clears the trade bar: a sportsbook price needs an EV of at least 2%; an exchange or prediction-market price needs at least 4% on its cost, a bid, a spread of 4 cents or less and $50 at the ask, so a min_ev below those floors adds nothing. It fires when the price crosses min_ev, again only after its EV has fallen more than 1 point below min_ev, or the price has been gone or stopped clearing the trade bar for two consecutive reads (about 40 seconds), and at most once per 15 minutes for one event, venue and side. After an alert, the same price for that event, venue and side is not sent again for 2 hours unless its EV has risen by at least 1 point. Nothing fires while the odds behind the board are out of date. kinds narrows to book (sportsbook) or venue (exchange and prediction market) prices; venues narrows to the listed keys, which must be among fanduel, draftkings, betmgm, bet365, caesars, kalshi, novig, 1xbet, betonline, betr, bovada (other keys can never produce an event, so they are refused). data: { sport, league, event_id, odds_event_id, home_team, away_team, commence_time, min_ev, signal: { kind, venue, side, team, price, implied_probability, fair_probability, fair_low, ev_percent, ev, fee, route, size, link, quote_age_ms }, board_age_ms }. game.started: sent once per game when the live scores show it in play on two reads at least 15 seconds apart. game.final: sent once per game when they show it final on two reads at least 60 seconds apart and the final is believable: in tennis a player has won 2 sets, so a match that ends by retirement or walkover before that is not announced; in the other sports the game has run at least 80 minutes (soccer), 90 minutes (nba), 80 minutes (ncaab), 90 minutes (nhl), 90 minutes (mlb), 120 minutes (nfl), 150 minutes (ncaaf) from its start. A game reported final earlier than that, as an interrupted one can be, is not announced then; if the live scores show it in play again, its final is sent when it ends. A postponed or cancelled game never sends it. Status changes can trail the real moment by a few minutes. data: { sport, event_id, league, home_team, away_team, start_time, status: { state, detail }, score: { home, away } }; for tennis the score is sets won.'
      operationId: createWebhook
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateWebhookParams'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookCreateResponse'
          description: Created
      summary: 'Registers an HTTPS endpoint for signed event notifications: Pinnacle line…'
      tags:
      - Webhooks
      x-owls-access: MVP and above
      x-owls-sdk-method: createWebhook
  /api/v1/webhooks/{id}:
    delete:
      description: Deletes a webhook endpoint. Undelivered events for it are cancelled and nothing more is sent.
      operationId: deleteWebhook
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookDeleteResponse'
          description: OK
      summary: Deletes a webhook endpoint.
      tags:
      - Webhooks
      x-owls-access: MVP and above
      x-owls-sdk-method: deleteWebhook
    get:
      description: 'Returns one webhook endpoint: url, event types, filters, status and delivery health (consecutive_failures, failing_since, last_success_at).'
      operationId: getWebhook
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookResponse'
          description: OK
      summary: 'Returns one webhook endpoint: url, event types, filters, status and delivery…'
      tags:
      - Webhooks
      x-owls-access: MVP and above
      x-owls-sdk-method: getWebhook
    patch:
      description: 'Changes a webhook endpoint: url, event_types, description, filters, or enabled to turn deliveries off and on.


        enabled: false stops deliveries and cancels the undelivered ones. enabled: true resumes an endpoint that you disabled or that was disabled after failing (status auto_disabled), and resets its failure count.


        The same url and coverage checks as create apply.'
      operationId: updateWebhook
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateWebhookParams'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookResponse'
          description: OK
      summary: 'Changes a webhook endpoint: url, event_types, description, filters, or enabled…'
      tags:
      - Webhooks
      x-owls-access: MVP and above
      x-owls-sdk-method: updateWebhook
  /api/v1/webhooks/{id}/deliveries:
    get:
      description: 'Lists recent deliveries to one endpoint, newest first: status, attempts, the last response code and latency, and the exact payload sent.


        status is pending (queued or between retries), delivered, failed (retries exhausted), expired (past expires_at), cancelled (the endpoint was disabled or deleted) or shadow (recorded while the event type was held back, never sent). Deliveries are kept for 14 days.


        response_excerpt is up to the first 512 bytes your receiver answered with.'
      operationId: listWebhookDeliveries
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      - description: Only deliveries in this status.
        in: query
        name: status
        schema:
          type: string
          x-extensible-enum:
          - cancelled
          - delivered
          - expired
          - failed
          - pending
          - shadow
      - description: Only this event type.
        in: query
        name: type
        schema:
          type: string
          x-extensible-enum:
          - ev.found
          - game.final
          - game.started
          - line.moved
          - props.graded
          - webhook.test
      - description: Page size, 1 to 50 (default 20).
        in: query
        name: limit
        schema:
          type: string
      - description: 'An event id (evt_...) from the previous page: returns the deliveries older than it.'
        in: query
        name: starting_after
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookDeliveriesResponse'
          description: OK
      summary: 'Lists recent deliveries to one endpoint, newest first: status, attempts, the…'
      tags:
      - Webhooks
      x-owls-access: MVP and above
      x-owls-sdk-method: listWebhookDeliveries
  /api/v1/webhooks/{id}/rotate-secret:
    post:
      description: 'Issues a new signing secret for the endpoint and returns it once. The previous secret keeps signing alongside it until it expires.


        While the previous secret is live, Owls-Signature carries two v1 values, one per secret. Accept either, then switch your receiver to the new secret.'
      operationId: rotateWebhookSecret
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RotateWebhookSecretParams'
        required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookRotateSecretResponse'
          description: OK
      summary: Issues a new signing secret for the endpoint and returns it once.
      tags:
      - Webhooks
      x-owls-access: MVP and above
      x-owls-sdk-method: rotateWebhookSecret
  /api/v1/webhooks/{id}/test:
    post:
      description: 'Queues a webhook.test event to the endpoint, signed like every other event, so you can check your receiver and its signature check.


        One test event per endpoint every 10 seconds (429 with Retry-After otherwise). The endpoint must be enabled (409 otherwise).


        data is { message }. A test event retries like game.final and expires after 1 hour.'
      operationId: testWebhook
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookTestResponse'
          description: Accepted
      summary: Queues a webhook.test event to the endpoint, signed like every other event, so…
      tags:
      - Webhooks
      x-owls-access: MVP and above
      x-owls-sdk-method: testWebhook
components:
  schemas:
    WebhookLineMovedFilters:
      description: '`line.moved` filters as stored: every field is set.'
      properties:
        markets:
          description: The markets watched (default all three).
          items:
            $ref: '#/components/schemas/WebhookLineMarket'
          type: array
        point_step:
          description: 'The spread or total line move that fires: 0.5, 1, 1.5, 2 or 3 (default 1).'
          format: double
          type: number
        price_step_pp:
          description: 'The implied-probability move that fires, in percentage points: 0.5, 1, 2, 3 or 5 (default 2).'
          format: double
          type: number
      type: object
      x-owls-required:
      - price_step_pp
      - point_step
      - markets
    WebhookRotateSecretResponse:
      properties:
        data:
          $ref: '#/components/schemas/WebhookRotatedSecret'
        success:
          type: boolean
      type: object
      x-owls-required:
      - success
      - data
    WebhookEvFoundFilters:
      description: '`ev.found` filters as stored: every field is set.'
      properties:
        kinds:
          description: The price kinds that fire (default both).
          items:
            $ref: '#/components/schemas/WebhookEvKind'
          type: array
        min_ev:
          description: 'The least EV that fires, in percent: 1, 2, 3, 5 or 8 (default 3).'
          format: double
          type: number
        venues:
          description: Sportsbook or venue keys; empty (the default) means every one the EV board scores.
          items:
            type: string
          type: array
      type: object
      x-owls-required:
      - min_ev
      - kinds
      - venues
    RotateWebhookSecretParams:
      properties:
        expire_previous_after_hours:
          description: 'How long the previous secret keeps signing beside the new one: 0 to 168 hours (default 24). 0 retires it at once.'
          format: double
          type: number
      type: object
    WebhookDelivery:
      description: One delivery to an endpoint, as the deliveries listing returns it.
      properties:
        attempts:
          format: double
          type: number
        created_at:
          type:
          - string
          - 'null'
        delivered_at:
          type:
          - string
          - 'null'
        expires_at:
          type:
          - string
          - 'null'
        id:
          description: The event id (`Owls-Webhook-Id`).
          type: string
        last_error:
          type:
          - string
          - 'null'
        last_latency_ms:
          format: double
          type:
          - number
          - 'null'
        last_status_code:
          description: Your receiver's last HTTP status, or null.
          format: double
          type:
          - number
          - 'null'
        next_attempt_at:
          description: When the next attempt is due, while `pending`; otherwise null.
          type:
          - string
          - 'null'
        occurred_at:
          type:
          - string
          - 'null'
        payload:
          anyOf:
          - $ref: '#/components/schemas/WebhookDeliveryPayload'
          - type: 'null'
          description: The exact body sent, or null.
        response_excerpt:
          description: Up to the first 512 bytes of your receiver's last answer.
          type:
          - string
          - 'null'
        status:
          $ref: '#/components/schemas/WebhookDeliveryStatus'
        type:
          type: string
          x-extensible-enum:
          - ev.found
          - game.final
          - game.started
          - line.moved
          - props.graded
          - webhook.test
      type: object
      x-owls-required:
      - id
      - type
      - status
      - attempts
      - next_attempt_at
      - expires_at
      - last_status_code
      - last_error
      - last_latency_ms
      - response_excerpt
      - occurred_at
      - created_at
      - delivered_at
      - payload
    WebhookDeleteResponse:
      properties:
        data:
          $ref: '#/components/schemas/WebhookDeleted'
        success:
          type: boolean
      type: object
      x-owls-required:
      - success
      - data
    WebhookEvFoundFiltersInput:
      description: '`ev.found` filters as sent: an omitted field keeps its default (create) or its stored value (update).'
      properties:
        kinds:
          items:
            $ref: '#/components/schemas/WebhookEvKind'
          type: array
        min_ev:
          description: 1, 2, 3, 5 or 8 percent.
          format: double
          type: number
        venues:
          description: Keys the EV board scores; a key that can never produce an event is refused with a 400.
          items:
            type: string
          type: array
      type: object
    WebhookFiltersInput:
      description: 'Filters as sent. On create, an omitted field takes its default. On update they merge

        into the stored filters: a section you send (`line_moved`, `ev_found`) changes only the

        fields you send, and `sports` replaces the list (`[]` means every covered sport). A sport

        that one of the endpoint''s event types does not cover is refused with a 400

        (`sport_not_covered`).'
      properties:
        ev_found:
          $ref: '#/components/schemas/WebhookEvFoundFiltersInput'
        line_moved:
          $ref: '#/components/schemas/WebhookLineMovedFiltersInput'
        sports:
          items:
            type: string
          type: array
      type: object
    WebhookListResponse:
      properties:
        data:
          items:
            $ref: '#/components/schemas/WebhookEndpoint'
          type: array
        meta:
          $ref: '#/components/schemas/WebhookListMeta'
        success:
          type: boolean
      type: object
      x-owls-required:
      - success
      - data
      - meta
    WebhookEvKind:
      description: '`ev.found` price kinds: `book` (a sportsbook) or `venue` (an exchange or prediction market).'
      type: string
      x-extensible-enum:
      - book
      - venue
    WebhookResponse:
      properties:
        data:
          $ref: '#/components/schemas/WebhookEndpoint'
        success:
          type: boolean
      type: object
      x-owls-required:
      - success
      - data
    WebhookDeliveryPayload:
      description: 'A delivery body as stored, with `data` untyped: its shape depends on `type`.'
      properties:
        api_version:
          description: The payload version.
          type: string
        created:
          description: When the event was created (ISO 8601).
          type: string
        data: {}
        endpoint_id:
          description: The endpoint it was sent to, `whk_...`.
          type: string
        expires_at:
          description: No delivery is attempted after this (ISO 8601).
          type: string
        id:
          description: 'The event id, `evt_...`: identical on every retry and in the `Owls-Webhook-Id` header. Dedupe on it.'
          type: string
        occurred_at:
          description: When what it reports happened, as far as is known (ISO 8601).
          type: string
        type:
          description: The event type; a type added later arrives as a string this version does not list.
          type: string
          x-extensible-enum:
          - ev.found
          - game.final
          - game.started
          - line.moved
          - props.graded
          - webhook.test
      type: object
      x-owls-required:
      - data
      - id
      - type
      - api_version
      - created
      - occurred_at
      - expires_at
      - endpoint_id
    WebhookTestResponse:
      properties:
        data:
          $ref: '#/components/schemas/WebhookTestQueued'
        success:
          type: boolean
      type: object
      x-owls-required:
      - success
      - data
    WebhookDeleted:
      properties:
        deleted:
          type: boolean
        id:
          type: string
      type: object
      x-owls-required:
      - id
      - deleted
    WebhookTestQueued:
      properties:
        id:
          description: 'The test event''s id: find it in the endpoint''s deliveries.'
          type: string
        status:
          type: string
          x-extensible-enum:
          - pending
        type:
          type: string
          x-extensible-enum:
          - webhook.test
      type: object
      x-owls-required:
      - id
      - type
      - status
    CreateWebhookParams:
      properties:
        description:
          description: Up to 200 characters.
          type:
          - string
          - 'null'
        event_types:
          description: One or more event types. A type that is not open yet is refused with a 400 (`event_type_unavailable`).
          items:
            $ref: '#/components/schemas/WebhookSubscribableEventType'
          type: array
        filters:
          $ref: '#/components/schemas/WebhookFiltersInput'
        url:
          description: https on the default port with a public hostname. IP addresses and private or internal hosts are refused.
          type: string
      type: object
      x-owls-required:
      - url
      - event_types
    WebhookCreateResponse:
      properties:
        data:
          $ref: '#/components/schemas/WebhookEndpointWithSecret'
          description: The endpoint and its signing secret, which is returned here and by rotate-secret only.
        success:
          type: boolean
      type: object
      x-owls-required:
      - success
      - data
    WebhookListMeta:
      properties:
        count:
          format: double
          type: number
        limit:
          description: How many endpoints your plan allows.
          format: double
          type: number
      type: object
      x-owls-required:
      - count
      - limit
    WebhookRotatedSecret:
      properties:
        id:
          type: string
        previous_secret_expires_at:
          description: Until when the previous secret keeps signing (ISO 8601), or null when it was retired at once.
          type:
          - string
          - 'null'
        secret:
          description: 'The new signing secret, `whsec_...`. Returned once: store it now.'
          type: string
        secret_hint:
          type: string
      type: object
      x-owls-required:
      - id
      - secret
      - secret_hint
      - previous_secret_expires_at
    WebhookDeliveriesResponse:
      properties:
        data:
          items:
            $ref: '#/components/schemas/WebhookDelivery'
          type: array
        has_more:
          description: 'True when older deliveries remain: ask for the next page starting after the last `id`.'
          type: boolean
        success:
          type: boolean
      type: object
      x-owls-required:
      - success
      - data
      - has_more
    WebhookLineMarket:
      description: The markets `line.moved` watches.
      type: string
      x-extensible-enum:
      - moneyline
      - spread
      - total
    WebhookEndpoint:
      description: 'A webhook endpoint. It never carries the signing secret: create and rotate-secret return it once.'
      properties:
        api_version:
          description: The payload version this endpoint's deliveries carry.
          type: string
        consecutive_failures:
          description: Failed deliveries in a row.
          format: double
          type: number
        created_at:
          type: string
        description:
          type:
          - string
          - 'null'
        event_types:
          items:
            $ref: '#/components/schemas/WebhookSubscribableEventType'
          type: array
        failing_since:
          description: When the current run of failures began (ISO 8601), or null.
          type:
          - string
          - 'null'
        filters:
          $ref: '#/components/schemas/WebhookFilters'
        id:
          description: The endpoint id, `whk_...`.
          type: string
        last_success_at:
          type:
          - string
          - 'null'
        previous_secret_expires_at:
          description: While set, deliveries also carry a v1 signature made with the previous secret, until this time (ISO 8601).
          type:
          - string
          - 'null'
        secret_hint:
          description: The last 4 characters of the current signing secret, to tell secrets apart.
          type: string
        status:
          $ref: '#/components/schemas/WebhookEndpointStatus'
        status_reason:
          description: Why the endpoint is not enabled, or null.
          type:
          - string
          - 'null'
        updated_at:
          type: string
        url:
          type:
          - string
          - 'null'
      type: object
      x-owls-required:
      - id
      - url
      - description
      - event_types
      - filters
      - api_version
      - status
      - status_reason
      - secret_hint
      - previous_secret_expires_at
      - consecutive_failures
      - failing_since
      - last_success_at
      - created_at
      - updated_at
    WebhookSubscribableEventType:
      description: Event types an endpoint can subscribe to.
      type: string
      x-extensible-enum:
      - ev.found
      - game.final
      - game.started
      - line.moved
      - props.graded
    WebhookFilters:
      description: 'An endpoint''s filters as stored: the API fills in every default.'
      properties:
        ev_found:
          $ref: '#/components/schemas/WebhookEvFoundFilters'
        line_moved:
          $ref: '#/components/schemas/WebhookLineMovedFilters'
        sports:
          description: Sport keys; empty (the default) means every sport each subscribed event type covers.
          items:
            type: string
          type: array
      type: object
      x-owls-required:
      - sports
      - line_moved
      - ev_found
    UpdateWebhookParams:
      properties:
        description:
          description: Up to 200 characters; an empty string clears it.
          type:
          - string
          - 'null'
        enabled:
          description: 'false stops deliveries and cancels the undelivered ones. true resumes an endpoint

            that you disabled or that was disabled after failing, and resets its failure count.'
          type: boolean
        event_types:
          description: Replaces the list.
          items:
            $ref: '#/components/schemas/WebhookSubscribableEventType'
          type: array
        filters:
          $ref: '#/components/schemas/WebhookFiltersInput'
          description: Merged into the stored filters (see WebhookFiltersInput).
        url:
          type: string
      type: object
    WebhookEndpointStatus:
      description: '`enabled`; `disabled` (by you, or after your receiver answered 410 Gone); or

        `auto_disabled` (after 50 failed deliveries in a row and 3 days without a success). An

        update with `enabled` set to true resumes a disabled or auto-disabled endpoint.'
      type: string
      x-extensible-enum:
      - auto_disabled
      - disabled
      - enabled
    WebhookLineMovedFiltersInput:
      description: '`line.moved` filters as sent: an omitted field keeps its default (create) or its stored value (update).'
      properties:
        markets:
          items:
            $ref: '#/components/schemas/WebhookLineMarket'
          type: array
        point_step:
          description: 0.5, 1, 1.5, 2 or 3.
          format: double
          type: number
        price_step_pp:
          description: 0.5, 1, 2, 3 or 5 percentage points.
          format: double
          type: number
      type: object
    WebhookDeliveryStatus:
      description: '`pending` (queued or between retries), `delivered`, `failed` (retries exhausted),

        `expired` (past `expires_at`), `cancelled` (the endpoint was disabled or deleted) or

        `shadow` (recorded while the event type was held back, never sent).'
      type: string
      x-extensible-enum:
      - cancelled
      - delivered
      - expired
      - failed
      - pending
      - shadow
    WebhookEndpointWithSecret:
      description: 'What create returns: the endpoint and its signing secret.'
      properties:
        api_version:
          description: The payload version this endpoint's deliveries carry.
          type: string
        consecutive_failures:
          description: Failed deliveries in a row.
          format: double
          type: number
        created_at:
          type: string
        description:
          type:
          - string
          - 'null'
        event_types:
          items:
            $ref: '#/components/schemas/WebhookSubscribableEventType'
          type: array
        failing_since:
          description: When the current run of failures began (ISO 8601), or null.
          type:
          - string
          - 'null'
        filters:
          $ref: '#/components/schemas/WebhookFilters'
        id:
          description: The endpoint id, `whk_...`.
          type: string
        last_success_at:
          type:
          - string
          - 'null'
        previous_secret_expires_at:
          description: While set, deliveries also carry a v1 signature made with the previous secret, until this time (ISO 8601).
          type:
          - string
          - 'null'
        secret:
          description: 'The signing secret, `whsec_...`. Returned once: store it now.'
          type: string
        secret_hint:
          description: The last 4 characters of the current signing secret, to tell secrets apart.
          type: string
        status:
          $ref: '#/components/schemas/WebhookEndpointStatus'
        status_reason:
          description: Why the endpoint is not enabled, or null.
          type:
          - string
          - 'null'
        updated_at:
          type: string
        url:
          type:
          - string
          - 'null'
      type: object
      x-owls-required:
      - secret
      - id
      - url
      - description
      - event_types
      - filters
      - api_version
      - status
      - status_reason
      - secret_hint
      - previous_secret_expires_at
      - consecutive_failures
      - failing_since
      - last_success_at
      - created_at
      - updated_at
  securitySchemes:
    bearerAuth:
      description: Your Owls Insight API key.
      scheme: bearer
      type: http
x-owls-v2-books:
- book: 4casters
  sports:
  - cfl
  - esports
  - mlb
  - mma
  - nba
  - ncaab
  - ncaaf
  - nfl
  - nhl
  - soccer
  - tennis
  - wnba
  wsEvent: 4casters-v2-update
- book: 888sport
  sports:
  - mlb
  - nba
  - ncaab
  - ncaaf
  - nfl
  - nhl
  - soccer
  - tennis
  - wnba
  wsEvent: null
- book: ballybet
  sports:
  - aussie-rules
  - boxing
  - cricket
  - cycling
  - darts
  - formula1
  - golf
  - handball
  - mlb
  - mma
  - motorsport
  - nba
  - ncaab
  - ncaaf
  - nfl
  - nhl
  - rugby-league
  - rugby-union
  - snooker
  - soccer
  - specials
  - surfing
  - table-tennis
  - tennis
  - wnba
  wsEvent: ballybet-v2-update
- book: bet105
  sports:
  - alpine-skiing
  - archery
  - athletics
  - aussie-rules
  - badminton
  - bandy
  - baseball
  - basketball
  - basketball-3x3
  - biathlon
  - bowls
  - boxing
  - cfl
  - chess
  - cricket
  - curling
  - cycling
  - darts
  - esports
  - fencing
  - field-hockey
  - floorball
  - football
  - formula1
  - futsal
  - gaelic-sports
  - golf
  - greyhounds
  - handball
  - hockey
  - horse-racing
  - hurling
  - judo
  - kabaddi
  - kbo
  - lacrosse
  - mlb
  - mma
  - motorbikes
  - motorsport
  - nascar
  - nba
  - ncaab
  - ncaaf
  - netball
  - nfl
  - nhl
  - npb
  - olympics
  - padel
  - pool
  - rugby-league
  - rugby-union
  - sailing
  - ski-jumping
  - snooker
  - soccer
  - softball
  - speedway
  - squash
  - sumo
  - supercars
  - surfing
  - table-tennis
  - taekwondo
  - tennis
  - triathlon
  - trotting
  - ultimate
  - volleyball
  - water-polo
  - wnba
  wsEvent: bet105-v2-update
- book: bet365
  sports:
  - mlb
  - nba
  - nfl
  - nhl
  - soccer
  wsEvent: bet365-v2-update
- book: betonline
  sports:
  - mlb
  - nba
  - ncaaf
  - nfl
  - nhl
  - soccer
  - tennis
  wsEvent: betonline-realtime
- book: betrivers
  sports:
  - aussie-rules
  - boxing
  - cricket
  - cycling
  - darts
  - formula1
  - golf
  - handball
  - mlb
  - mma
  - motorsport
  - nba
  - ncaab
  - ncaaf
  - nfl
  - nhl
  - rugby-league
  - rugby-union
  - snooker
  - soccer
  - specials
  - surfing
  - table-tennis


# --- truncated at 32 KB (36 KB total) ---
# Full source: https://artifacts.apis.io/owlsinsight-com/openapi/owlsinsight-com-webhooks-api-openapi.yml