Expanded Limits, Across all tiers - Our Gift to you! Learn more →

AlterLab
SearchResearchPricingComparePlaygroundBlogDocsChangelog
    AlterLabAlterLab
    PricingComparePlaygroundBlogDocsChangelog
    IntroductionQuickstartInstallationYour First Request
    REST APICrawl APIMap APISearch APIResearch APINewSERP APINewExtract APIAIJob PollingDomain StatsNewGeocode APINewNews APIBatch ResultsNewAPI KeysSessions APINewEnterprise APIEnterprise
    AccountAutoAI VisibilityAutoAlertsAutoAuthAutoBillingAutoCrawlAutoExtractAutoIntegrationsAutoKeysAutoMapAutoMonitorsAutoOrganizationsAutoResearch SchedulesAutoRunsAutoSchedulesAutoScrapeAutoSearchAutoSearch SchedulesAutoSessionsAutoUser WebhooksAutoV1 EndpointsAutoAffiliatesAutoAgentAutoAgent OnboardingAutoAgent VisibilityAutoAnalyticsAutoApprovalsAutoArtifactsAutoAttributionAutoB2BAutoBatchAutoBeta FeaturesAutoBlogAutoBuyerAutoChatAutoConnectionsAutoConnectorsAutoContact ListsAutoCreatorAutoCross SellAutoDashboardAutoDefaultsAutoDomainsAutoEmail PreferencesAutoFcAutoHandsAutoHealthAutoJobsAutoListingsAutoMaintenanceAutoNewsAutoOauthAutoOauth GrantsAutoPage InspectAutoPlatformAutoPresetsAutoPricingAutoPrivacyAutoPublicAutoPublic PagesAutoReferralAutoReferralsAutoReportsAutoResearchAutoSecretsAutoSerpAutoSSOAutoStorefrontsAutoSupportAutoTemplatesAutoToolsAutoTrackAutoUsageAutoUsage TagsAutoUserAutoWorkflowsAutoWorkspacesAutoWebhooksAuto
    OverviewPythonNode.jsCLI
    Guides OverviewJavaScript RenderingBrowser ActionsOutput FormatsPDF & OCRCachingWebhooksJSON Schema FilteringWebSocket Real-TimeBring Your Own ProxyProSticky SessionsProAuthenticated ScrapingNewHTTP Methods & BodiesNewStructured ExtractionAIWeb SearchAgent and RAG GroundingResearch JobsAgent RunsSite MappingWeb CrawlingBatch ScrapingSchedulerData MarketplaceSelling DataAgent OnboardingEmbeddingsKeyword IdeasAI VisibilityWorkflowsChange DetectionCloud Storage ExportSpend LimitsOrganizations & TeamsScrape TemplatesCustom ConnectorsSecretsContact ListsPlatform Sub-AccountsReferrals & AffiliatesAlerts & NotificationsExtraction ProfilesAIBYOK ExtractionAIOAuth2 Machine-to-MachineSupport & TicketsUnsupported Targets
    Tutorials OverviewStructured ExtractionAIE-commerce ScrapingNews MonitoringPrice MonitoringMulti-Page CrawlingMonitoring DashboardAI Agent / MCPMCPAI Research AgentAISite CrawlingData Pipeline to Cloud
    E-commerceLead GenerationChange MonitoringRAG & AI PipelinesAIResearch
    Reference OverviewPricingRate LimitsReliabilityReliability ContractError CodesChangelogVersioning
    Migrations OverviewFrom FirecrawlFrom ApifyFrom ScrapingBee / ScraperAPIFrom Crawl4AIFrom SpiderSearch to SERPFirecrawl v0 API ReferenceLegacy
    OverviewMCP ServerAIn8n NodeLangChainAICrewAIAILlamaIndexAISupabaseChrome ExtensionSoon
    PlaygroundPricingStatus

    Up to 5,000 free requests · No credit card

    API Reference
    Auto-generated

    Workflows

    API reference for workflows endpoints.

    Auto-generated

    This page was generated from the OpenAPI spec. Runmake generate-docs to refresh after spec changes.

    POST /api/v1/workflows

    POST
    /api/v1/workflows

    Create Workflow

    Parameters

    NameTypeRequiredDescription
    namestring
    Required
    Name
    descriptionstringOptionaldescription
    graphobjectOptionalThe complete workflow DAG.
    settingsobjectOptionalSettings
    inputs_schemaobjectOptionalinputs_schema
    cron_expressionstringOptionalcron_expression
    timezonestringOptionalTimezoneDefault: UTC
    is_reusablebooleanOptionalWhen true, this workflow can be referenced as a sub_workflow node by other workflows belonging to the same user.Default: False

    Request Example

    Bash
    curl -X POST https://api.alterlab.io/api/v1/workflows \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "name": "example_name"
      }'

    Response Example

    JSON
    {
      "status": "ok"
    }

    GET /api/v1/workflows

    GET
    /api/v1/workflows

    List Workflows

    Parameters

    NameTypeRequiredDescription
    statusstringOptionalFilter by status
    limitintegerOptionallimitDefault: 50
    offsetintegerOptionaloffsetDefault: 0

    Request Example

    Bash
    curl -X GET https://api.alterlab.io/api/v1/workflows \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json"

    Response Example

    JSON
    {
      "workflows": [],
      "total": 0
    }

    POST /api/v1/workflows/from-recording

    POST
    /api/v1/workflows/from-recording

    Create Workflow From Recording

    Parameters

    NameTypeRequiredDescription
    namestring
    Required
    Name
    descriptionstringOptionaldescription
    start_urlstring
    Required
    Start Url
    sessionstringOptionalsession
    stepsobject[]
    Required
    Steps

    Request Example

    Bash
    curl -X POST https://api.alterlab.io/api/v1/workflows/from-recording \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "name": "example_name",
        "start_url": "example_start_url",
        "steps": []
      }'

    Response Example

    JSON
    {
      "status": "ok"
    }

    GET /api/v1/workflows/reusable

    GET
    /api/v1/workflows/reusable

    List Reusable Workflows

    Parameters

    NameTypeRequiredDescription
    limitintegerOptionallimitDefault: 200
    offsetintegerOptionaloffsetDefault: 0

    Request Example

    Bash
    curl -X GET https://api.alterlab.io/api/v1/workflows/reusable \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json"

    Response Example

    JSON
    {
      "workflows": [],
      "total": 0
    }

    GET /api/v1/workflows/runs/{run_id}

    GET
    /api/v1/workflows/runs/{run_id}

    Get Workflow Run

    Parameters

    NameTypeRequiredDescription
    run_idstring
    Required
    run_id

    Request Example

    Bash
    curl -X GET https://api.alterlab.io/api/v1/workflows/runs/<run_id> \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json"

    Response Example

    JSON
    {
      "id": "example",
      "workflow_id": "example",
      "status": "example",
      "node_states": {},
      "total_credits_used": "example",
      "triggered_by": "example"
    }

    DELETE /api/v1/workflows/runs/{run_id}

    DELETE
    /api/v1/workflows/runs/{run_id}

    Cancel Workflow Run

    Parameters

    NameTypeRequiredDescription
    run_idstring
    Required
    run_id

    Request Example

    Bash
    curl -X DELETE https://api.alterlab.io/api/v1/workflows/runs/<run_id> \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json"

    Response Example

    JSON
    {
      "status": "ok"
    }

    GET /api/v1/workflows/runs/{run_id}/export

    GET
    /api/v1/workflows/runs/{run_id}/export

    Export Workflow Run

    Parameters

    NameTypeRequiredDescription
    run_idstring
    Required
    run_id

    Request Example

    Bash
    curl -X GET https://api.alterlab.io/api/v1/workflows/runs/<run_id>/export \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json"

    Response Example

    JSON
    {
      "status": "ok"
    }

    POST /api/v1/workflows/runs/{run_id}/retry

    POST
    /api/v1/workflows/runs/{run_id}/retry

    Retry Workflow Run

    Parameters

    NameTypeRequiredDescription
    run_idstring
    Required
    run_id
    from_nodestringOptionalfrom_node

    Request Example

    Bash
    curl -X POST https://api.alterlab.io/api/v1/workflows/runs/<run_id>/retry \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json"

    Response Example

    JSON
    {
      "run_id": "example",
      "workflow_id": "example",
      "status": "example",
      "message": "example"
    }

    GET /api/v1/workflows/runs/{run_id}/stream

    GET
    /api/v1/workflows/runs/{run_id}/stream

    Stream Workflow Run

    Parameters

    NameTypeRequiredDescription
    run_idstring
    Required
    run_id

    Request Example

    Bash
    curl -X GET https://api.alterlab.io/api/v1/workflows/runs/<run_id>/stream \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json"

    Response Example

    JSON
    {
      "status": "ok"
    }

    GET /api/v1/workflows/templates

    GET
    /api/v1/workflows/templates

    List Templates

    Parameters

    NameTypeRequiredDescription
    categorystringOptionalFilter by category
    searchstringOptionalSearch by name or description
    featuredbooleanOptionalFilter featured only
    limitintegerOptionallimitDefault: 50
    offsetintegerOptionaloffsetDefault: 0

    Request Example

    Bash
    curl -X GET https://api.alterlab.io/api/v1/workflows/templates \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json"

    Response Example

    JSON
    {
      "templates": [],
      "total": 0,
      "categories": []
    }

    POST /api/v1/workflows/templates/publish

    POST
    /api/v1/workflows/templates/publish

    Publish Template

    Parameters

    NameTypeRequiredDescription
    workflow_idstring
    Required
    ID of the user-owned workflow to publish
    namestring
    Required
    Display name for the template
    descriptionstringOptionaldescription
    categorystring
    Required
    Category (e.g. Sales, Marketing, Real Estate, Recruiting, E-commerce, Research)
    tagsstring[]OptionalSearchable tags
    price_centsintegerOptionalBuyer price in USD cents (0 = free, max $99,999.99). Paid templates require a verified Stripe Connect account.Default: 0

    Request Example

    Bash
    curl -X POST https://api.alterlab.io/api/v1/workflows/templates/publish \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "workflow_id": "example_workflow_id",
        "name": "example_name",
        "category": "example_category"
      }'

    Response Example

    JSON
    {
      "status": "ok"
    }

    GET /api/v1/workflows/templates/{template_id}

    GET
    /api/v1/workflows/templates/{template_id}

    Get Template

    Parameters

    NameTypeRequiredDescription
    template_idstring
    Required
    template_id

    Request Example

    Bash
    curl -X GET https://api.alterlab.io/api/v1/workflows/templates/<template_id> \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json"

    Response Example

    JSON
    {
      "id": "example",
      "author_id": "example",
      "name": "example",
      "slug": "example",
      "description": "example",
      "category": "example"
    }

    POST /api/v1/workflows/templates/{template_id}/fork

    POST
    /api/v1/workflows/templates/{template_id}/fork

    Fork Template

    Parameters

    NameTypeRequiredDescription
    template_idstring
    Required
    template_id

    Request Example

    Bash
    curl -X POST https://api.alterlab.io/api/v1/workflows/templates/<template_id>/fork \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json"

    Response Example

    JSON
    {
      "status": "ok"
    }

    GET /api/v1/workflows/templates/{template_id}/reviews

    GET
    /api/v1/workflows/templates/{template_id}/reviews

    List Reviews

    Parameters

    NameTypeRequiredDescription
    template_idstring
    Required
    template_id
    limitintegerOptionallimitDefault: 20
    offsetintegerOptionaloffsetDefault: 0

    Request Example

    Bash
    curl -X GET https://api.alterlab.io/api/v1/workflows/templates/<template_id>/reviews \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json"

    Response Example

    JSON
    {
      "reviews": [],
      "total": 0,
      "avg_rating": 0,
      "review_count": 0
    }

    POST /api/v1/workflows/templates/{template_id}/reviews

    POST
    /api/v1/workflows/templates/{template_id}/reviews

    Create Review

    Parameters

    NameTypeRequiredDescription
    template_idstring
    Required
    template_id
    ratinginteger
    Required
    Star rating (1–5)
    bodystringOptionalbody

    Request Example

    Bash
    curl -X POST https://api.alterlab.io/api/v1/workflows/templates/<template_id>/reviews \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "rating": 0
      }'

    Response Example

    JSON
    {
      "status": "ok"
    }

    POST /api/v1/workflows/templates/{template_id}/use

    POST
    /api/v1/workflows/templates/{template_id}/use

    Use Template

    Parameters

    NameTypeRequiredDescription
    template_idstring
    Required
    template_id
    namestringOptionalname
    config_overridesobjectOptionalValues for template config fields (key → value)

    Request Example

    Bash
    curl -X POST https://api.alterlab.io/api/v1/workflows/templates/<template_id>/use \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json"

    Response Example

    JSON
    {
      "workflow_id": "example",
      "name": "example",
      "message": "example"
    }

    GET /api/v1/workflows/{workflow_id}

    GET
    /api/v1/workflows/{workflow_id}

    Get Workflow

    Parameters

    NameTypeRequiredDescription
    workflow_idstring
    Required
    workflow_id

    Request Example

    Bash
    curl -X GET https://api.alterlab.io/api/v1/workflows/<workflow_id> \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json"

    Response Example

    JSON
    {
      "id": "example",
      "name": "example",
      "description": "example",
      "graph": {},
      "settings": {},
      "inputs_schema": "example"
    }

    PATCH /api/v1/workflows/{workflow_id}

    PATCH
    /api/v1/workflows/{workflow_id}

    Update Workflow

    Parameters

    NameTypeRequiredDescription
    workflow_idstring
    Required
    workflow_id
    namestringOptionalname
    descriptionstringOptionaldescription
    graphobjectOptionalThe complete workflow DAG.
    settingsobjectOptionalsettings
    inputs_schemaobjectOptionalinputs_schema
    status"draft" | "active" | "paused" | "archived"Optionalstatus
    cron_expressionstringOptionalcron_expression
    timezonestringOptionaltimezone
    is_reusablebooleanOptionalis_reusable

    Request Example

    Bash
    curl -X PATCH https://api.alterlab.io/api/v1/workflows/<workflow_id> \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json"

    Response Example

    JSON
    {
      "id": "example",
      "name": "example",
      "description": "example",
      "graph": {},
      "settings": {},
      "inputs_schema": "example"
    }

    DELETE /api/v1/workflows/{workflow_id}

    DELETE
    /api/v1/workflows/{workflow_id}

    Delete Workflow

    Parameters

    NameTypeRequiredDescription
    workflow_idstring
    Required
    workflow_id

    Request Example

    Bash
    curl -X DELETE https://api.alterlab.io/api/v1/workflows/<workflow_id> \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json"

    Response Example

    JSON
    {
      "status": "ok"
    }

    GET /api/v1/workflows/{workflow_id}/analytics

    GET
    /api/v1/workflows/{workflow_id}/analytics

    Get Workflow Analytics

    Parameters

    NameTypeRequiredDescription
    workflow_idstring
    Required
    workflow_id
    daysintegerOptionaldaysDefault: 30

    Request Example

    Bash
    curl -X GET https://api.alterlab.io/api/v1/workflows/<workflow_id>/analytics \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json"

    Response Example

    JSON
    {
      "workflow_id": "example",
      "run_count": 0,
      "success_rate": 0,
      "avg_duration_ms": "example",
      "p50_duration_ms": "example",
      "p95_duration_ms": "example"
    }

    POST /api/v1/workflows/{workflow_id}/estimate

    POST
    /api/v1/workflows/{workflow_id}/estimate

    Estimate Workflow Cost

    Parameters

    NameTypeRequiredDescription
    workflow_idstring
    Required
    workflow_id

    Request Example

    Bash
    curl -X POST https://api.alterlab.io/api/v1/workflows/<workflow_id>/estimate \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json"

    Response Example

    JSON
    {
      "estimated_microcents": 0,
      "breakdown": {},
      "message": "example",
      "warnings": []
    }

    POST /api/v1/workflows/{workflow_id}/run

    POST
    /api/v1/workflows/{workflow_id}/run

    Trigger Workflow Run

    Parameters

    NameTypeRequiredDescription
    workflow_idstring
    Required
    workflow_id
    input_dataobjectOptionalinput_data
    inputsobjectOptionalinputs
    versionstringOptionalversion

    Request Example

    Bash
    curl -X POST https://api.alterlab.io/api/v1/workflows/<workflow_id>/run \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json"

    Response Example

    JSON
    {
      "run_id": "example",
      "workflow_id": "example",
      "status": "example",
      "message": "example"
    }

    GET /api/v1/workflows/{workflow_id}/runs

    GET
    /api/v1/workflows/{workflow_id}/runs

    List Workflow Runs

    Parameters

    NameTypeRequiredDescription
    workflow_idstring
    Required
    workflow_id
    limitintegerOptionallimitDefault: 20
    offsetintegerOptionaloffsetDefault: 0

    Request Example

    Bash
    curl -X GET https://api.alterlab.io/api/v1/workflows/<workflow_id>/runs \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json"

    Response Example

    JSON
    {
      "runs": [],
      "total": 0
    }

    POST /api/v1/workflows/{workflow_id}/sequences

    POST
    /api/v1/workflows/{workflow_id}/sequences

    Enroll Contact List

    Parameters

    NameTypeRequiredDescription
    workflow_idstring
    Required
    workflow_id
    contact_list_idstring
    Required
    Contact list to enroll into this sequence
    rate_limit_per_hourintegerOptionalrate_limit_per_hour
    auto_stop_on_replybooleanOptionalSkip contacts whose status is 'replied' at dispatch time.Default: True
    idempotency_keystringOptionalidempotency_key

    Request Example

    Bash
    curl -X POST https://api.alterlab.io/api/v1/workflows/<workflow_id>/sequences \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "contact_list_id": "example_contact_list_id",
        "auto_stop_on_reply": false
      }'

    Response Example

    JSON
    {
      "status": "ok"
    }

    GET /api/v1/workflows/{workflow_id}/sequences

    GET
    /api/v1/workflows/{workflow_id}/sequences

    List Sequence Enrollments

    Parameters

    NameTypeRequiredDescription
    workflow_idstring
    Required
    workflow_id
    pageintegerOptionalpageDefault: 1
    limitintegerOptionallimitDefault: 20

    Request Example

    Bash
    curl -X GET https://api.alterlab.io/api/v1/workflows/<workflow_id>/sequences \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json"

    Response Example

    JSON
    {
      "enrollments": [],
      "total": 0,
      "page": 0,
      "limit": 0,
      "total_pages": 0
    }

    PATCH /api/v1/workflows/{workflow_id}/sequences/{enrollment_id}

    PATCH
    /api/v1/workflows/{workflow_id}/sequences/{enrollment_id}

    Update Sequence Enrollment

    Parameters

    NameTypeRequiredDescription
    workflow_idstring
    Required
    workflow_id
    enrollment_idstring
    Required
    enrollment_id
    status"paused" | "active"
    Required
    'paused' = pause entire enrollment; 'active' = resume a paused enrollment

    Request Example

    Bash
    curl -X PATCH https://api.alterlab.io/api/v1/workflows/<workflow_id>/sequences/<enrollment_id> \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "status": "..."
      }'

    Response Example

    JSON
    {
      "id": "example",
      "workflow_id": "example",
      "contact_list_id": "example",
      "status": "example",
      "rate_limit_per_hour": "example",
      "total_contacts": 0
    }

    GET /api/v1/workflows/{workflow_id}/sequences/{enrollment_id}/analytics

    GET
    /api/v1/workflows/{workflow_id}/sequences/{enrollment_id}/analytics

    Get Sequence Enrollment Analytics

    Parameters

    NameTypeRequiredDescription
    workflow_idstring
    Required
    workflow_id
    enrollment_idstring
    Required
    enrollment_id

    Request Example

    Bash
    curl -X GET https://api.alterlab.io/api/v1/workflows/<workflow_id>/sequences/<enrollment_id>/analytics \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json"

    Response Example

    JSON
    {
      "enrollment_id": "example",
      "workflow_id": "example",
      "funnel": "example",
      "replies": "example",
      "conversions": "example",
      "variants": []
    }

    GET /api/v1/workflows/{workflow_id}/sequences/{enrollment_id}/contacts

    GET
    /api/v1/workflows/{workflow_id}/sequences/{enrollment_id}/contacts

    List Enrollment Contacts

    Parameters

    NameTypeRequiredDescription
    workflow_idstring
    Required
    workflow_id
    enrollment_idstring
    Required
    enrollment_id
    pageintegerOptionalpageDefault: 1
    limitintegerOptionallimitDefault: 50
    statusstringOptionalFilter by contact run status

    Request Example

    Bash
    curl -X GET https://api.alterlab.io/api/v1/workflows/<workflow_id>/sequences/<enrollment_id>/contacts \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json"

    Response Example

    JSON
    {
      "contacts": [],
      "total": 0,
      "page": 0,
      "limit": 0,
      "total_pages": 0
    }

    PATCH /api/v1/workflows/{workflow_id}/sequences/{enrollment_id}/contacts/{contact_id}

    PATCH
    /api/v1/workflows/{workflow_id}/sequences/{enrollment_id}/contacts/{contact_id}

    Update Enrollment Contact

    Parameters

    NameTypeRequiredDescription
    workflow_idstring
    Required
    workflow_id
    enrollment_idstring
    Required
    enrollment_id
    contact_idstring
    Required
    contact_id
    status"paused" | "active"
    Required
    'paused' = skip this contact; 'active' = re-enable a paused contact

    Request Example

    Bash
    curl -X PATCH https://api.alterlab.io/api/v1/workflows/<workflow_id>/sequences/<enrollment_id>/contacts/<contact_id> \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "status": "..."
      }'

    Response Example

    JSON
    {
      "id": "example",
      "contact_id": "example",
      "contact_email": "example",
      "contact_name": "example",
      "run_id": "example",
      "status": "example"
    }

    POST /api/v1/workflows/{workflow_id}/token

    POST
    /api/v1/workflows/{workflow_id}/token

    Generate Trigger Token

    Parameters

    NameTypeRequiredDescription
    workflow_idstring
    Required
    workflow_id

    Request Example

    Bash
    curl -X POST https://api.alterlab.io/api/v1/workflows/<workflow_id>/token \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json"

    Response Example

    JSON
    {
      "trigger_url": "example",
      "message": "example"
    }

    DELETE /api/v1/workflows/{workflow_id}/token

    DELETE
    /api/v1/workflows/{workflow_id}/token

    Revoke Trigger Token

    Parameters

    NameTypeRequiredDescription
    workflow_idstring
    Required
    workflow_id

    Request Example

    Bash
    curl -X DELETE https://api.alterlab.io/api/v1/workflows/<workflow_id>/token \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json"

    Response Example

    JSON
    {
      "status": "ok"
    }

    POST /api/v1/workflows/{workflow_id}/trigger

    POST
    /api/v1/workflows/{workflow_id}/trigger

    Webhook Trigger Workflow

    Parameters

    NameTypeRequiredDescription
    workflow_idstring
    Required
    workflow_id

    Request Example

    Bash
    curl -X POST https://api.alterlab.io/api/v1/workflows/<workflow_id>/trigger \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json"

    Response Example

    JSON
    {
      "run_id": "example",
      "workflow_id": "example",
      "status": "example",
      "message": "example"
    }

    POST /api/v1/workflows/{workflow_id}/validate

    POST
    /api/v1/workflows/{workflow_id}/validate

    Validate Workflow

    Parameters

    NameTypeRequiredDescription
    workflow_idstring
    Required
    workflow_id

    Request Example

    Bash
    curl -X POST https://api.alterlab.io/api/v1/workflows/<workflow_id>/validate \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json"

    Response Example

    JSON
    {
      "valid": true,
      "errors": [],
      "node_count": 0,
      "edge_count": 0
    }

    POST /api/v1/workflows/{workflow_id}/versions

    POST
    /api/v1/workflows/{workflow_id}/versions

    Create Workflow Version

    Parameters

    NameTypeRequiredDescription
    workflow_idstring
    Required
    workflow_id
    versionstring
    Required
    Version
    notesstringOptionalnotes

    Request Example

    Bash
    curl -X POST https://api.alterlab.io/api/v1/workflows/<workflow_id>/versions \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "version": "example_version"
      }'

    Response Example

    JSON
    {
      "status": "ok"
    }

    GET /api/v1/workflows/{workflow_id}/versions

    GET
    /api/v1/workflows/{workflow_id}/versions

    List Workflow Versions

    Parameters

    NameTypeRequiredDescription
    workflow_idstring
    Required
    workflow_id

    Request Example

    Bash
    curl -X GET https://api.alterlab.io/api/v1/workflows/<workflow_id>/versions \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json"

    Response Example

    JSON
    {
      "items": [],
      "total": 0
    }
    Last updated: June 2026

    On this page