ProspectAPIs Watchlists API

The Watchlists API from ProspectAPIs — 3 operation(s) for watchlists.

Operations 6

DELETE /v1/watchlists/{id} Delete a watchlist #
GET /v1/watchlists/{id} Read a watchlist #
GET /v1/watchlists/{id}/deliveries Get watchlist deliveries #
POST /v1/watchlists/{id}/test Test a watchlist webhook #
POST /v1/watchlists Create a watchlist #
GET /v1/watchlists List watchlists #

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/prospectapis:prospectapis-watchlists-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

prospectapis-watchlists-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Prospectapis Watchlists API
  x-refined-note:
  - x-authored-by differs across the merged source definitions and was not carried
  - x-engine differs across the merged source definitions and was not carried
  - x-evidence-tiers differs across the merged source definitions and was not carried
  - x-generated differs across the merged source definitions and was not carried
  - x-generated-from differs across the merged source definitions and was not carried
  - x-generator differs across the merged source definitions and was not carried
  - x-provenance differs across the merged source definitions and was not carried
  - x-sources differs across the merged source definitions and was not carried
  version: '1.0'
  description: 'Operations tagged Watchlists across 2 of this provider''s published API definitions: prospectapis-openapi-generated.yml, prospectapis-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.prospectapis.com
tags:
- name: Watchlists
paths:
  /v1/watchlists/{id}:
    delete:
      operationId: delete_v1_watchlists_id
      tags:
      - Watchlists
      summary: Delete a watchlist
      x-source: https://prospectapis.com/docs
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
      security:
      - bearer: []
    get:
      tags:
      - Watchlists
      summary: Read a watchlist
      description: One watchlist, without its signing secret. Free.
      operationId: getWatchlist
      parameters:
      - $ref: '#/components/parameters/id'
      responses:
        '200':
          description: The watchlist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Watchlist'
              example:
                id: 6f0c2b1e-7a1d-4c55-9a3e-1b2c3d4e5f60
                name: Jane Doe
                kind: funding
                filters:
                  round: series_a,series_b
                  min_amount_usd: 1000000
                  max_amount_usd: 50000000
                  company: Acme
                  domain: acme.com
                  investor: investor
                  country: US
                  stage: stage
                  launch_type: launch type
                  category: category
                  platform: platform
                  level: company
                webhook_url: https://acme.com
                active: true
                paused_reason: paused reason
                created_at: '2026-11-01T12:00:00Z'
          headers:
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/RateLimited'
      x-agentic-access:
        action-class: connected
        consequence: read
        subject: optional
        token:
          max-ttl: 3600
        audit: none
      security:
      - bearer: []
    servers:
    - url: https://api.prospectapis.com
  /v1/watchlists/{id}/deliveries:
    get:
      operationId: get_v1_watchlists_id_deliveries
      tags:
      - Watchlists
      summary: Get watchlist deliveries
      x-source: https://prospectapis.com/docs
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
      security:
      - bearer: []
    servers:
    - url: https://api.prospectapis.com
  /v1/watchlists/{id}/test:
    post:
      operationId: post_v1_watchlists_id_test
      tags:
      - Watchlists
      summary: Test a watchlist webhook
      x-source: https://prospectapis.com/docs
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
      security:
      - bearer: []
    servers:
    - url: https://api.prospectapis.com
  /v1/watchlists:
    post:
      tags:
      - Watchlists
      summary: Create a watchlist
      description: Save a set of funding filters plus an https webhook. New matches are pushed as signed `funding_event.matched` events. Free to create; each delivered record costs one record, charged only when your webhook answers 2xx. The signing `secret` is in this response and nowhere else. At most 20 active watchlists per account.
      operationId: createWatchlist
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WatchlistRequest'
            example:
              name: Seed rounds in Germany
              filters:
                round: seed
                country: Germany
              webhook_url: https://hooks.example.com/funding
      responses:
        '201':
          description: The watchlist, including its signing secret (shown only here).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WatchlistWithSecret'
              example:
                id: 6f0c2b1e-7a1d-4c55-9a3e-1b2c3d4e5f60
                name: Jane Doe
                kind: funding
                filters:
                  round: series_a,series_b
                  min_amount_usd: 1000000
                  max_amount_usd: 50000000
                  company: Acme
                  domain: acme.com
                  investor: investor
                  country: US
                  stage: stage
                  launch_type: launch type
                  category: category
                  platform: platform
                  level: company
                webhook_url: https://acme.com
                active: true
                paused_reason: paused reason
                created_at: '2026-11-01T12:00:00Z'
                secret: <signing secret, shown once>
          headers:
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '409':
          $ref: '#/components/responses/WatchlistLimit'
        '429':
          $ref: '#/components/responses/RateLimited'
      parameters:
      - $ref: '#/components/parameters/IdempotencyKey'
      x-agentic-access:
        action-class: acting
        consequence: write
        subject: required
        audience: null
        token:
          max-ttl: 900
        escalation:
          human-in-the-loop: conditional
          triggers:
          - abnormal
          - high-value
        audit: required
        idempotency-key: Idempotency-Key header, replayed for 24 hours
      security:
      - bearerAuth: []
    get:
      tags:
      - Watchlists
      summary: List watchlists
      description: This account's watchlists, newest first, without their signing secrets. Free.
      operationId: listWatchlists
      responses:
        '200':
          description: The account's watchlists.
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Watchlist'
              example:
                data:
                - id: 6f0c2b1e-7a1d-4c55-9a3e-1b2c3d4e5f60
                  name: Jane Doe
                  kind: funding
                  filters:
                    round: series_a,series_b
                    min_amount_usd: 1000000
                    max_amount_usd: 50000000
                    company: Acme
                    domain: acme.com
                    investor: investor
                    country: US
                    stage: stage
                    launch_type: launch type
                    category: category
                    platform: platform
                    level: company
                  webhook_url: https://acme.com
                  active: true
                  paused_reason: paused reason
                  created_at: '2026-11-01T12:00:00Z'
          headers:
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
      x-agentic-access:
        action-class: connected
        consequence: read
        subject: optional
        token:
          max-ttl: 3600
        audit: none
      security:
      - bearerAuth: []
    servers:
    - url: https://api.prospectapis.com
      description: Production
components:
  parameters:
    id:
      name: id
      in: path
      required: true
      description: A UUID.
      schema:
        type: string
        format: uuid
      example: 3f6c1d2e-8b4a-4f7e-9c21-5a0d7e9b4c13
    IdempotencyKey:
      name: Idempotency-Key
      in: header
      required: false
      description: 'Optional, 1 to 255 printable ASCII characters. A retry with the same key and body within 24 hours gets the first answer back with Idempotent-Replayed: true and is never charged again. The same key with a different body is 422; a retry while the first call is still running is 409.'
      schema:
        type: string
        minLength: 1
        maxLength: 255
      example: order-42
  responses:
    Unauthorized:
      description: The API key is missing or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    RateLimited:
      description: Too many requests; retry after the window.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: The request was invalid (e.g. a bad filter or input); nothing was charged.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: No such record for this account.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    WatchlistLimit:
      description: The account already has the maximum number of active watchlists.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    Delivery:
      type: object
      required:
      - id
      - event_id
      - status
      - attempts
      - created_at
      properties:
        id:
          type: string
          format: uuid
        event_id:
          type: string
          format: uuid
          description: The funding round that matched.
        status:
          type: string
          description: pending, sending, delivered, retry, no_credit or failed.
        attempts:
          type: integer
        http_status:
          type:
          - integer
          - 'null'
        error:
          type:
          - string
          - 'null'
        created_at:
          type: string
          format: date-time
        delivered_at:
          type:
          - string
          - 'null'
          format: date-time
    Watchlist:
      type: object
      required:
      - id
      - name
      - filters
      - webhook_url
      - active
      - created_at
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        kind:
          type: string
          enum:
          - funding
          - ads
        filters:
          $ref: '#/components/schemas/WatchlistFilters'
        webhook_url:
          type: string
          format: uri
        active:
          type: boolean
        paused_reason:
          type:
          - string
          - 'null'
          description: Why it was paused, if it was (revoked key, repeated webhook failures, filters no longer valid).
        created_at:
          type: string
          format: date-time
    WatchlistFilters:
      type: object
      description: The GET /v1/funding filters a watchlist may hold (date windows and paging belong to the API call, not to an alert). At least one is required. Values may be strings or numbers. An ads watchlist (kind ads) takes domain (required) and platform. An events watchlist (kind events) takes city (required) and optionally platform, category, min_guests, max_guests, host, speaker, q and free.
      properties:
        round:
          type: string
          example: series_a,series_b
        min_amount_usd:
          type:
          - number
          - string
        max_amount_usd:
          type:
          - number
          - string
        company:
          type: string
        domain:
          type: string
        investor:
          type: string
        country:
          type: string
          description: 'As the country filter of GET /v1/funding: a country name or ISO code matches country_code.'
        stage:
          type: string
          description: 'Launch watchlists: post, pre or both.'
        launch_type:
          type: string
          description: 'Launch watchlists: comma-separated launch types.'
        category:
          type: string
          description: 'Launch watchlists: a category.'
        platform:
          type: string
          description: 'Ads watchlists: one or more of meta, google, linkedin, tiktok. Events watchlists: luma, partiful or both. Comma separated; omit for all.'
        level:
          type: string
          enum:
          - company
          - ad
          description: 'Ads watchlists only: company (default) delivers advertiser_started, advertiser_stopped and new_creatives; ad delivers every ad''s ad_started, ad_stopped and new_creative.'
        city:
          type: string
          description: 'Events watchlists: a city slug or name (required).'
        min_guests:
          type:
          - string
          - number
          - boolean
          description: 'Events watchlists: at least this many guests.'
        max_guests:
          type:
          - string
          - number
          - boolean
          description: 'Events watchlists: at most this many guests.'
        host:
          type: string
          description: 'Events watchlists: a host name or handle.'
        speaker:
          type: string
          description: 'Events watchlists: a speaker, host or name in the title.'
        q:
          type: string
          description: 'Events watchlists: the title contains this text.'
        free:
          type:
          - string
          - number
          - boolean
          description: 'Events watchlists: true or false.'
      additionalProperties: false
    WatchlistTestResult:
      type: object
      required:
      - delivered
      properties:
        delivered:
          type: boolean
        http_status:
          type:
          - integer
          - 'null'
          description: The status your webhook answered, if it responded.
        error:
          type:
          - string
          - 'null'
    WatchlistWithSecret:
      allOf:
      - $ref: '#/components/schemas/Watchlist'
      - type: object
        required:
        - secret
        properties:
          secret:
            type: string
            description: The webhook signing secret (whsec_...). Shown only in this create response.
    WatchlistRequest:
      type: object
      example:
        name: Seed rounds in Germany
        filters:
          round: seed
          country: Germany
        webhook_url: https://hooks.example.com/funding
      required:
      - name
      - filters
      - webhook_url
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 100
        filters:
          $ref: '#/components/schemas/WatchlistFilters'
        webhook_url:
          type: string
          format: uri
          description: An https URL on a public host that receives signed match events.
        kind:
          type: string
          enum:
          - funding
          - launches
          - ads
          - events
          default: funding
          description: 'What to watch. funding (default): GET /v1/funding filters, $0.009 per delivered record. launches: launch events (filters stage, launch_type, domain, company, category, country), refused with 503 while launches are not available. ads: filters {domain, platform, level}, $0.006 per delivered event, refused with 503 while the ads family is off. events: new public events in a city (filters city plus optionally platform, category, min_guests, max_guests, host, speaker, q, free), one delivery per event at GET /pricing events.price_per_delivered_event_usd, refused with 503 while events are not available.'
      additionalProperties: false
    Error:
      type: object
      required:
      - error
      description: Every error answers with this shape. `error` is a human-readable message; `code` is a stable machine code when present.
      properties:
        error:
          type: string
        code:
          type: string
          description: A stable error code, e.g. INVALID_FILTER, INVALID_INPUT, INVALID_ID, NOT_FOUND, INSUFFICIENT_CREDITS, WATCHLIST_LIMIT, RATE_LIMITED.
        message:
          type: string
          description: Extra guidance on some errors (401, 402).
        field:
          type: string
          description: The offending field, on some 400s.
        top_up_url:
          type: string
          format: uri
          description: Where to add credits, on a 402.
      additionalProperties: true
  headers:
    RateLimit-Reset:
      description: Seconds until the current window resets.
      schema:
        type: integer
    RateLimit-Remaining:
      description: Requests left in the current one-minute window.
      schema:
        type: integer
    RateLimit-Limit:
      description: Requests this API key may make per minute.
      schema:
        type: integer
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Your API key as a bearer token: `Authorization: Bearer pa_live_<48 hex>`. Create and manage keys in the dashboard at https://prospectapis.com.'
externalDocs:
  description: API reference and quickstart
  url: https://prospectapis.com/docs
x-refined-from:
- prospectapis-openapi-generated.yml
- prospectapis-openapi.yml