Svix · Arazzo Workflow

Svix Send Message and Confirm Delivery

Version 1.0.0

Send a message to an existing application and poll its attempts until delivery succeeds.

1 workflow 2 source APIs 1 provider
View Spec View on GitHub WebhookWebhooks As A ServiceWebhook DeliveryWebhook SendingEvent-DrivenEventingMessagingPub-SubStreamingIngestIntegrationReliabilityRetriesDeliverabilitySigningVerificationHMACStandard WebhooksMulti-TenantMulti-RegionEnterpriseSoftware-as-a-ServiceDeveloper PlatformRESTSOC 2HIPAAPCI DSSGDPROpen-SourceRustPolyglot SDKTerraformCLIArazzoWorkflows

Provider

svix

Workflows

send-message-and-confirm-delivery
Publish a message and poll its attempts until a successful delivery is seen.
Sends a message to the application, confirms the message exists, then polls the attempts filtered to the succeeded status, retrying until one appears.
3 steps inputs: appId, eventType, payload outputs: messageId, succeededAttempts
1
sendMessage
Publish the message to the application for fan-out. Returns 202 Accepted with the message object.
2
getMessage
Fetch the message back to confirm Svix accepted and stored it. Returns 200 with the message object.
3
pollSuccess
Poll the message's attempts filtered to the succeeded status, retrying until at least one successful delivery is recorded. Returns 200.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Svix Send Message and Confirm Delivery
  summary: Send a message to an existing application and poll its attempts until delivery succeeds.
  description: >-
    A delivery-confirmation flow for an application that already has endpoints
    configured. The workflow publishes a message, fetches it back to confirm it
    was accepted, and then polls the message's delivery attempts until a
    successful attempt is recorded. 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: messageApi
  url: ../openapi/svix-message-api-openapi.yml
  type: openapi
- name: messageAttemptApi
  url: ../openapi/svix-message-attempt-api-openapi.yml
  type: openapi
workflows:
- workflowId: send-message-and-confirm-delivery
  summary: Publish a message and poll its attempts until a successful delivery is seen.
  description: >-
    Sends a message to the application, confirms the message exists, then polls
    the attempts filtered to the succeeded status, retrying until one appears.
  inputs:
    type: object
    required:
    - appId
    - eventType
    - payload
    properties:
      appId:
        type: string
        description: The id or uid of the application to publish to.
      eventType:
        type: string
        description: The event type name of the message.
      payload:
        type: object
        description: The JSON payload to deliver to subscribers.
  steps:
  - stepId: sendMessage
    description: >-
      Publish the message to the application for fan-out. Returns 202 Accepted
      with the message object.
    operationId: v1.message.create
    parameters:
    - name: app_id
      in: path
      value: $inputs.appId
    requestBody:
      contentType: application/json
      payload:
        eventType: $inputs.eventType
        payload: $inputs.payload
    successCriteria:
    - condition: $statusCode == 202
    outputs:
      messageId: $response.body#/id
  - stepId: getMessage
    description: >-
      Fetch the message back to confirm Svix accepted and stored it. Returns 200
      with the message object.
    operationId: v1.message.get
    parameters:
    - name: app_id
      in: path
      value: $inputs.appId
    - name: msg_id
      in: path
      value: $steps.sendMessage.outputs.messageId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      eventType: $response.body#/eventType
  - stepId: pollSuccess
    description: >-
      Poll the message's attempts filtered to the succeeded status, retrying
      until at least one successful delivery is recorded. Returns 200.
    operationId: v1.message-attempt.list-by-msg
    parameters:
    - name: app_id
      in: path
      value: $inputs.appId
    - name: msg_id
      in: path
      value: $steps.sendMessage.outputs.messageId
    - name: status
      in: query
      value: 0
    successCriteria:
    - condition: $statusCode == 200
    - context: $response.body
      condition: $.data.length > 0
      type: jsonpath
    onFailure:
    - name: retryPoll
      type: retry
      retryAfter: 3
      retryLimit: 10
      criteria:
      - condition: $statusCode == 200
    outputs:
      succeededAttempts: $response.body#/data
  outputs:
    messageId: $steps.sendMessage.outputs.messageId
    succeededAttempts: $steps.pollSuccess.outputs.succeededAttempts

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/svix-send-message-and-confirm-delivery-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.