Stytch · Arazzo Workflow

Stytch B2B SMS OTP Multi-Factor Authentication

Version 1.0.0

Send an SMS OTP to a member and authenticate the code to complete MFA.

1 workflow 1 source API 1 provider
View Spec View on GitHub AuthenticationIdentityPasswordlessSecurityB2BConnected AppsMCPAI AgentsDeveloper ToolsArazzoWorkflows

Provider

stytch

Workflows

sms-otp-mfa
Send an SMS OTP to a member and authenticate the code to finish MFA.
Dispatches a one-time passcode by SMS to a member and exchanges the member-entered code for an authenticated member session, completing the MFA step.
2 steps inputs: code, member_id, mfa_phone_number, organization_id, session_duration_minutes outputs: memberId, organizationId, sessionToken
1
sendSmsOtp
Send a one-time passcode by SMS to the member's MFA phone number, enrolling the supplied number if provided.
2
authenticateSmsOtp
Authenticate the SMS one-time passcode the member entered to complete the MFA step and mint a member session.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Stytch B2B SMS OTP Multi-Factor Authentication
  summary: Send an SMS OTP to a member and authenticate the code to complete MFA.
  description: >-
    A second-factor SMS OTP flow for B2B apps. The workflow sends a one-time
    passcode by SMS to a member of an organization and then authenticates the
    code the member enters, completing the MFA step and producing a full member
    session. Every step spells out its request inline so the flow can be read and
    executed without opening the underlying OpenAPI description. All calls
    authenticate with HTTP Basic auth using your Stytch project_id as the
    username and secret as the password.
  version: 1.0.0
  x-realizes-capability-ids:
  - BC-620.20
  x-capability-derivation:
    method: 'deterministic join: sourceDescriptions -> per-tag OpenAPI -> tag/capability edge. No classification at this step.'
    min_confidence: 0.7
    sources:
    - capability_id: BC-620.20
      capability_name: Identity & Access Management
      spec: stytch-b2b-otp-api-openapi.yml
      confidence: 0.85
    model: Turbo EA Capabilities by Vincent Verdet — Turbo EA, https://github.com/vincentmakes/turbo-ea-capabilities, CC BY 4.0
sourceDescriptions:
- name: b2bOtpApi
  url: ../openapi/stytch-b2b-otp-api-openapi.yml
  type: openapi
workflows:
- workflowId: sms-otp-mfa
  summary: Send an SMS OTP to a member and authenticate the code to finish MFA.
  description: >-
    Dispatches a one-time passcode by SMS to a member and exchanges the
    member-entered code for an authenticated member session, completing the MFA
    step.
  inputs:
    type: object
    required:
    - organization_id
    - member_id
    - code
    properties:
      organization_id:
        type: string
        description: The id of the organization the member belongs to.
      member_id:
        type: string
        description: The id of the member completing MFA.
      mfa_phone_number:
        type: string
        description: Optional E.164 phone number to enroll and send the passcode to.
      code:
        type: string
        description: The one-time passcode the member received by SMS and entered.
      session_duration_minutes:
        type: integer
        description: Optional session lifetime in minutes for the member session.
  steps:
  - stepId: sendSmsOtp
    description: >-
      Send a one-time passcode by SMS to the member's MFA phone number, enrolling
      the supplied number if provided.
    operationId: api_b2b_otp_v1_b2b_otp_sms_Send
    requestBody:
      contentType: application/json
      payload:
        organization_id: $inputs.organization_id
        member_id: $inputs.member_id
        mfa_phone_number: $inputs.mfa_phone_number
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      memberId: $response.body#/member_id
  - stepId: authenticateSmsOtp
    description: >-
      Authenticate the SMS one-time passcode the member entered to complete the
      MFA step and mint a member session.
    operationId: api_b2b_otp_v1_b2b_otp_sms_Authenticate
    requestBody:
      contentType: application/json
      payload:
        organization_id: $inputs.organization_id
        member_id: $inputs.member_id
        code: $inputs.code
        session_duration_minutes: $inputs.session_duration_minutes
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      memberId: $response.body#/member_id
      organizationId: $response.body#/organization/organization_id
      sessionToken: $response.body#/session_token
  outputs:
    memberId: $steps.authenticateSmsOtp.outputs.memberId
    organizationId: $steps.authenticateSmsOtp.outputs.organizationId
    sessionToken: $steps.authenticateSmsOtp.outputs.sessionToken

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/stytch-b2b-sms-otp-mfa-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.