Stytch · Arazzo Workflow

Stytch B2B Email OTP Login

Version 1.0.0

Send an email OTP to an organization member and authenticate the code.

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

Provider

stytch

Workflows

email-otp-login
Send an organization email OTP and authenticate the code.
Dispatches a one-time passcode by email to a member of an organization and exchanges the member-entered code for an authenticated member session.
2 steps inputs: code, email_address, organization_id, session_duration_minutes outputs: memberId, organizationId, sessionToken
1
sendEmailOtp
Send a one-time passcode by email to the member, creating the member if no account exists yet in the organization.
2
authenticateEmailOtp
Authenticate the email one-time passcode the member entered to mint a member session.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Stytch B2B Email OTP Login
  summary: Send an email OTP to an organization member and authenticate the code.
  description: >-
    A passwordless email OTP login flow for B2B apps. The workflow sends a
    one-time passcode by email to a member of an organization (creating the
    member if they do not yet exist) and then authenticates the code the member
    enters to mint a 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: email-otp-login
  summary: Send an organization email OTP and authenticate the code.
  description: >-
    Dispatches a one-time passcode by email to a member of an organization and
    exchanges the member-entered code for an authenticated member session.
  inputs:
    type: object
    required:
    - organization_id
    - email_address
    - code
    properties:
      organization_id:
        type: string
        description: The id of the organization the member belongs to.
      email_address:
        type: string
        description: The member's email address to send the passcode to.
      code:
        type: string
        description: The one-time passcode the member received by email and entered.
      session_duration_minutes:
        type: integer
        description: Optional session lifetime in minutes for the member session.
  steps:
  - stepId: sendEmailOtp
    description: >-
      Send a one-time passcode by email to the member, creating the member if no
      account exists yet in the organization.
    operationId: api_b2b_otp_v1_b2b_otp_email_LoginOrSignup
    requestBody:
      contentType: application/json
      payload:
        organization_id: $inputs.organization_id
        email_address: $inputs.email_address
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      memberId: $response.body#/member_id
      memberCreated: $response.body#/member_created
  - stepId: authenticateEmailOtp
    description: >-
      Authenticate the email one-time passcode the member entered to mint a
      member session.
    operationId: api_b2b_otp_v1_b2b_otp_email_Authenticate
    requestBody:
      contentType: application/json
      payload:
        organization_id: $inputs.organization_id
        email_address: $inputs.email_address
        code: $inputs.code
        session_duration_minutes: $inputs.session_duration_minutes
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      memberId: $response.body#/member_id
      organizationId: $response.body#/organization_id
      sessionToken: $response.body#/session_token
  outputs:
    memberId: $steps.authenticateEmailOtp.outputs.memberId
    organizationId: $steps.authenticateEmailOtp.outputs.organizationId
    sessionToken: $steps.authenticateEmailOtp.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-email-otp-login-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.