Shodan · Arazzo Workflow

Shodan Notifier Lifecycle

Version 1.0.0

Create a notifier, read it back, update it, then delete it.

1 workflow 1 source API 1 provider
View Spec View on GitHub SecuritySearchInternetDevicesIoTVulnerabilitiesCVEAttack SurfaceThreat IntelligenceReconnaissanceNetworkDNSScanningPublic APIsArazzoWorkflows

Provider

shodan

Workflows

notifier-lifecycle
Create, verify, update, and delete a Shodan notifier.
Creates a notifier, retrieves it to confirm configuration, updates it, and deletes it.
4 steps inputs: apiKey, description, notifierArgs, provider, updatedDescription outputs: deleted, notifierId, updatedDescription
1
createNotifier
Create a new notifier for receiving alerts.
2
getNotifier
Read the notifier back to confirm its configuration.
3
updateNotifier
Update the notifier with a revised description, keeping the same provider and arguments.
4
deleteNotifier
Delete the notifier to clean up.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Shodan Notifier Lifecycle
  summary: Create a notifier, read it back, update it, then delete it.
  description: >-
    A full notifier management pattern. The workflow creates a notifier, reads
    it back to confirm its configuration, updates its description and provider
    arguments, and finally deletes it. Every step spells out its request inline
    so the flow can be read and executed without opening the underlying OpenAPI
    description.
  version: 1.0.0
sourceDescriptions:
- name: notifiersApi
  url: ../openapi/shodan-notifiers-api-openapi.yml
  type: openapi
workflows:
- workflowId: notifier-lifecycle
  summary: Create, verify, update, and delete a Shodan notifier.
  description: >-
    Creates a notifier, retrieves it to confirm configuration, updates it, and
    deletes it.
  inputs:
    type: object
    required:
    - apiKey
    - provider
    - description
    - notifierArgs
    - updatedDescription
    properties:
      apiKey:
        type: string
        description: Shodan API key passed as the `key` query parameter.
      provider:
        type: string
        description: The notifier provider type (e.g. "email", "slack").
      description:
        type: string
        description: A human-readable description for the notifier.
      notifierArgs:
        type: object
        description: Provider-specific configuration arguments for the notifier.
      updatedDescription:
        type: string
        description: The revised description to apply when updating the notifier.
  steps:
  - stepId: createNotifier
    description: >-
      Create a new notifier for receiving alerts.
    operationId: createNotifier
    requestBody:
      contentType: application/json
      payload:
        provider: $inputs.provider
        description: $inputs.description
        args: $inputs.notifierArgs
    parameters:
    - name: key
      in: query
      value: $inputs.apiKey
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      notifierId: $response.body#/id
  - stepId: getNotifier
    description: >-
      Read the notifier back to confirm its configuration.
    operationId: getNotifier
    parameters:
    - name: key
      in: query
      value: $inputs.apiKey
    - name: id
      in: path
      value: $steps.createNotifier.outputs.notifierId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      provider: $response.body#/provider
      description: $response.body#/description
  - stepId: updateNotifier
    description: >-
      Update the notifier with a revised description, keeping the same provider
      and arguments.
    operationId: updateNotifier
    requestBody:
      contentType: application/json
      payload:
        provider: $inputs.provider
        description: $inputs.updatedDescription
        args: $inputs.notifierArgs
    parameters:
    - name: key
      in: query
      value: $inputs.apiKey
    - name: id
      in: path
      value: $steps.createNotifier.outputs.notifierId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      updatedDescription: $response.body#/description
  - stepId: deleteNotifier
    description: >-
      Delete the notifier to clean up.
    operationId: deleteNotifier
    parameters:
    - name: key
      in: query
      value: $inputs.apiKey
    - name: id
      in: path
      value: $steps.createNotifier.outputs.notifierId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      success: $response.body#/success
  outputs:
    notifierId: $steps.createNotifier.outputs.notifierId
    updatedDescription: $steps.updateNotifier.outputs.updatedDescription
    deleted: $steps.deleteNotifier.outputs.success

Work with this as data

Every workflow 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 arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • 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 workflow
curl "https://apis.io/api/v1/arazzo/shodan-notifier-lifecycle-workflow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?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.