Awzor Media LLC Alerts API

The alerts API from Awzor Media LLC — 4 operation(s) for alerts.

GitHub OpenAPI

Operations 7

POST /v1/alerts Save a search and get alerts on new outliers #
GET /v1/alerts Your saved searches and their newest hits #
GET /v1/alerts/{alert_id} One saved search and its hits #
PATCH /v1/alerts/{alert_id} Change a saved search #
DELETE /v1/alerts/{alert_id} Delete a saved search #
POST /v1/alerts/{alert_id}/run Check a saved search now #
GET /v1/ideas/daily Your daily ideas, newest day first #

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/hookdetector-com:hookdetector-com-alerts-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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

hookdetector-com-alerts-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Hook Detector Alerts API
  description: 'Find short-form hooks that already work.


    Sign up with a beta access code (ask at https://hookdetector.com/access): one POST to

    `/v1/accounts` with `access_code` gives an API key and free credits. The same operations are available as MCP tools at `/mcp`.


    Full guide, always current, at `/llms.txt`.'
  contact:
    name: Hook Detector
    url: https://hookdetector.com/
    email: contact@hookdetector.com
  version: 3.0.0
tags:
- name: Alerts
paths:
  /v1/alerts:
    post:
      tags:
      - Alerts
      summary: Save a search and get alerts on new outliers
      description: 'Words Hook Detector checks daily or weekly: this week''s YouTube uploads for them, each

        measured against its own channel; a new video at your line (default 3x its channel''s

        usual, or a views-per-hour since posting) is a hit, shown here and emailed, and Mondays

        bring a digest. Up to 20 an account. 1 credit a check. MCP: create_alert.'
      operationId: create_alert_v1_alerts_post
      parameters:
      - name: authorization
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Bearer hd_... from POST /v1/accounts or POST /v1/keys
          title: Authorization
        description: Bearer hd_... from POST /v1/accounts or POST /v1/keys
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AlertIn'
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AlertOut'
        '401':
          description: missing, invalid, revoked or expired API key (code key_expired)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
        '403':
          description: the key lacks the scope this call needs (insufficient_scope), or its credit_limit is spent (key_credit_limit_reached)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
        '409':
          description: conflict with the account's state
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
        '413':
          description: request body over the size cap
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
        '422':
          description: invalid input
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
        '500':
          description: our fault; names the request id
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
    get:
      tags:
      - Alerts
      summary: Your saved searches and their newest hits
      description: 'Every saved search of this account with its hit count and next check, and the 24 newest

        hits across them. Free. MCP: list_alerts.'
      operationId: list_alerts_v1_alerts_get
      parameters:
      - name: authorization
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Bearer hd_... from POST /v1/accounts or POST /v1/keys
          title: Authorization
        description: Bearer hd_... from POST /v1/accounts or POST /v1/keys
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AlertList'
        '401':
          description: missing, invalid, revoked or expired API key (code key_expired)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
        '403':
          description: the key lacks the scope this call needs (insufficient_scope), or its credit_limit is spent (key_credit_limit_reached)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
        '413':
          description: request body over the size cap
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
        '422':
          description: invalid input
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
        '500':
          description: our fault; names the request id
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
  /v1/alerts/{alert_id}:
    get:
      tags:
      - Alerts
      summary: One saved search and its hits
      description: 'One saved search with its 50 newest hits, each with the video, its multiple and its views

        per hour since posting. Free. MCP: get_alert.'
      operationId: get_alert_v1_alerts__alert_id__get
      parameters:
      - name: alert_id
        in: path
        required: true
        schema:
          type: string
          title: Alert Id
      - name: authorization
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Bearer hd_... from POST /v1/accounts or POST /v1/keys
          title: Authorization
        description: Bearer hd_... from POST /v1/accounts or POST /v1/keys
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AlertOut'
        '401':
          description: missing, invalid, revoked or expired API key (code key_expired)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
        '403':
          description: the key lacks the scope this call needs (insufficient_scope), or its credit_limit is spent (key_credit_limit_reached)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
        '404':
          description: not found on this account
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
        '413':
          description: request body over the size cap
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
        '422':
          description: invalid input
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
        '500':
          description: our fault; names the request id
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
    patch:
      tags:
      - Alerts
      summary: Change a saved search
      description: 'Change a saved search''s words, line, frequency or email. Free. MCP: update_alert.'
      operationId: update_alert_v1_alerts__alert_id__patch
      parameters:
      - name: alert_id
        in: path
        required: true
        schema:
          type: string
          title: Alert Id
      - name: authorization
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Bearer hd_... from POST /v1/accounts or POST /v1/keys
          title: Authorization
        description: Bearer hd_... from POST /v1/accounts or POST /v1/keys
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AlertPatch'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AlertOut'
        '401':
          description: missing, invalid, revoked or expired API key (code key_expired)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
        '403':
          description: the key lacks the scope this call needs (insufficient_scope), or its credit_limit is spent (key_credit_limit_reached)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
        '404':
          description: not found on this account
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
        '413':
          description: request body over the size cap
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
        '422':
          description: invalid input
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
        '500':
          description: our fault; names the request id
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
    delete:
      tags:
      - Alerts
      summary: Delete a saved search
      description: 'Delete a saved search and its hits. Free. MCP: delete_alert.'
      operationId: delete_alert_v1_alerts__alert_id__delete
      parameters:
      - name: alert_id
        in: path
        required: true
        schema:
          type: string
          title: Alert Id
      - name: authorization
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Bearer hd_... from POST /v1/accounts or POST /v1/keys
          title: Authorization
        description: Bearer hd_... from POST /v1/accounts or POST /v1/keys
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeletedOut'
        '401':
          description: missing, invalid, revoked or expired API key (code key_expired)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
        '403':
          description: the key lacks the scope this call needs (insufficient_scope), or its credit_limit is spent (key_credit_limit_reached)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
        '404':
          description: not found on this account
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
        '413':
          description: request body over the size cap
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
        '422':
          description: invalid input
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
        '500':
          description: our fault; names the request id
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
  /v1/alerts/{alert_id}/run:
    post:
      tags:
      - Alerts
      summary: Check a saved search now
      description: 'Check one saved search now, as a background job (read it back with GET /v1/jobs/{job_id});

        6 an hour an account. 1 credit. MCP: run_alert.'
      operationId: run_alert_v1_alerts__alert_id__run_post
      parameters:
      - name: alert_id
        in: path
        required: true
        schema:
          type: string
          title: Alert Id
      - name: authorization
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Bearer hd_... from POST /v1/accounts or POST /v1/keys
          title: Authorization
        description: Bearer hd_... from POST /v1/accounts or POST /v1/keys
      responses:
        '202':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AlertRunOut'
        '401':
          description: missing, invalid, revoked or expired API key (code key_expired)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
        '403':
          description: the key lacks the scope this call needs (insufficient_scope), or its credit_limit is spent (key_credit_limit_reached)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
        '404':
          description: not found on this account
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
        '413':
          description: request body over the size cap
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
        '422':
          description: invalid input
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
        '500':
          description: our fault; names the request id
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
        '429':
          description: rate limited; see Retry-After
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
  /v1/ideas/daily:
    get:
      tags:
      - Alerts
      summary: Your daily ideas, newest day first
      description: 'A set of ideas a day for each saved search or tracker with daily_ideas on (turn it on with

        PATCH /v1/alerts/{id} or /v1/trackers/{id}): titles and thumbnail concepts written from the

        newest real outliers, each with the finds it is built on and a band from their multiples,

        never repeating an idea of the last 7 days. Each set costs the idea writer''s price (1 credit).

        Free to read. MCP: daily_ideas.'
      operationId: daily_ideas_v1_ideas_daily_get
      parameters:
      - name: source_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: one saved search or tracker
          title: Source Id
        description: one saved search or tracker
      - name: days
        in: query
        required: false
        schema:
          type: integer
          maximum: 60
          minimum: 1
          default: 7
          title: Days
      - name: authorization
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Bearer hd_... from POST /v1/accounts or POST /v1/keys
          title: Authorization
        description: Bearer hd_... from POST /v1/accounts or POST /v1/keys
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DailyIdeasOut'
        '401':
          description: missing, invalid, revoked or expired API key (code key_expired)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
        '403':
          description: the key lacks the scope this call needs (insufficient_scope), or its credit_limit is spent (key_credit_limit_reached)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
        '404':
          description: not found on this account
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
        '413':
          description: request body over the size cap
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
        '422':
          description: invalid input
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
        '500':
          description: our fault; names the request id
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
components:
  schemas:
    AlertIn:
      properties:
        query:
          type: string
          maxLength: 200
          minLength: 3
          title: Query
        min_multiple:
          anyOf:
          - type: number
          - type: 'null'
          title: Min Multiple
          description: alert at this many times the channel's median (default 3)
        min_vph:
          anyOf:
          - type: number
          - type: 'null'
          title: Min Vph
          description: or at this many views an hour since posting
        frequency:
          anyOf:
          - type: string
          - type: 'null'
          title: Frequency
          description: daily (default) or weekly
        email:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Email
          description: email new hits (default true)
      type: object
      required:
      - query
      title: AlertIn
    ErrorOut:
      properties:
        detail:
          type: string
          title: Detail
          description: one sentence a person can read
        code:
          type: string
          title: Code
          description: stable machine code; see the Errors section of /llms.txt
        errors:
          anyOf:
          - items:
              additionalProperties: true
              type: object
            type: array
          - type: 'null'
          title: Errors
          description: 'on a 422 only: the field level list'
      additionalProperties: true
      type: object
      required:
      - detail
      - code
      title: ErrorOut
      examples:
      - code: run_not_found
        detail: no such run for this account
    AlertList:
      properties:
        alerts:
          items:
            additionalProperties: true
            type: object
          type: array
          title: Alerts
        recent_hits:
          items:
            additionalProperties: true
            type: object
          type: array
          title: Recent Hits
      additionalProperties: true
      type: object
      required:
      - alerts
      - recent_hits
      title: AlertList
      examples:
      - alerts:
        - alert_id: 8f1e2d3c-4b5a-6978-8a9b-0c1d2e3f4a5b
          created_at: '2026-10-26T14:00:00+00:00'
          email: true
          frequency: daily
          hits_total: 0
          min_multiple: 3.0
          next_run_at: '2026-10-26T15:00:00+00:00'
          query: budget travel
        credits: 0
        recent_hits: []
    AlertOut:
      properties:
        alert_id:
          type: string
          title: Alert Id
        query:
          type: string
          title: Query
      additionalProperties: true
      type: object
      required:
      - alert_id
      - query
      title: AlertOut
      examples:
      - alert_id: 8f1e2d3c-4b5a-6978-8a9b-0c1d2e3f4a5b
        created_at: '2026-10-26T14:00:00+00:00'
        email: true
        frequency: daily
        hits_total: 0
        min_multiple: 3.0
        next_run_at: '2026-10-26T15:00:00+00:00'
        query: budget travel
    AlertRunOut:
      properties:
        job_id:
          type: string
          title: Job Id
        status:
          type: string
          title: Status
      additionalProperties: true
      type: object
      required:
      - job_id
      - status
      title: AlertRunOut
      examples:
      - alert_id: 8f1e2d3c-4b5a-6978-8a9b-0c1d2e3f4a5b
        job_id: 7b0f1c9e-1d2a-4f00-9c1e-2b9f6d1a0c11
        status: queued
    AlertPatch:
      properties:
        daily_ideas:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Daily Ideas
          description: a set of ideas every day for these words (P4.6)
        query:
          anyOf:
          - type: string
          - type: 'null'
          title: Query
        min_multiple:
          anyOf:
          - type: number
          - type: 'null'
          title: Min Multiple
        min_vph:
          anyOf:
          - type: number
          - type: 'null'
          title: Min Vph
        frequency:
          anyOf:
          - type: string
          - type: 'null'
          title: Frequency
        email:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Email
      type: object
      title: AlertPatch
    DailyIdeasOut:
      properties:
        days:
          items:
            additionalProperties: true
            type: object
          type: array
          title: Days
        credits:
          type: integer
          title: Credits
          default: 0
      additionalProperties: true
      type: object
      required:
      - days
      title: DailyIdeasOut
      examples:
      - credits: 0
        days:
        - day: '2026-10-27'
          dropped_repeats: 0
          ideas: []
          source: alert
          source_id: 8f1e2d3c-4b5a-6978-8a9b-0c1d2e3f4a5b
          subject: budget travel
        label: Written by Hook Detector from real outliers, not found on YouTube
    DeletedOut:
      properties:
        deleted:
          type: boolean
          title: Deleted
      additionalProperties: true
      type: object
      required:
      - deleted
      title: DeletedOut
      examples:
      - deleted: true
        tracker_id: 5d3c2a1b-0f9e-4d8c-b7a6-112233445566