# Funnels

NOTE

The URI for the API endpoint is often the same for multiple endpoints, the difference being in HTTP methods.

# Create Funnel

POST https://api.wolfeo.me/v1/funnel

Creates a new funnel. The funnel is created blank (no default steps). Use Create Funnel Step to add steps.

# Example Request

curl --request POST "https://api.wolfeo.me/v1/funnel" \
  --header "Authorization: Bearer YOUR_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{"name": "My Launch Funnel"}'

# Parameters

Parameter Type Description
name* string Name of the funnel
type integer Funnel type (default: 0 — blank)

* denotes a required parameter

# Possible values for type

Value Description
0 Blank (no pages)
1 Lead funnel
2 Sales funnel

# Sample Return

HTTP 201 Created

{
    "success": true,
    "data": {
        "id": 17,
        "name": "My Launch Funnel",
        "type": 0
    }
}

# Possible Errors

Code HTTP Description
NO_SUBDOMAIN 400 No subdomain configured for this account

# Create Funnel Step

POST https://api.wolfeo.me/v1/funnel-step

Adds a new page/step to an existing funnel. A form is automatically created and linked to the step. The URL path is auto-generated from the name (and made unique if needed).

# Example Request

curl --request POST "https://api.wolfeo.me/v1/funnel-step" \
  --header "Authorization: Bearer YOUR_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{"funnel_id": 17, "name": "Landing Page"}'

# Parameters

Parameter Type Description
funnel_id* integer The funnel ID to add the step to
name* string Name of the step
type integer Step type (default: 1)

* denotes a required parameter

# Sample Return

HTTP 201 Created

{
    "success": true,
    "data": {
        "id": 88,
        "funnel_id": 17,
        "name": "Landing Page",
        "path": "landing-page",
        "order": 1
    }
}

TIP

path is the URL slug for this step. If landing-page is already taken in this funnel, it becomes landing-page-1, landing-page-2, etc.

# Possible Errors

Code HTTP Description
NOT_FOUND 404 Funnel not found

# Update Funnel Step Content

PUT https://api.wolfeo.me/v1/funnel-step-content

Sets or replaces the visual builder JSON content for a funnel step page.

# Example Request

curl --request PUT "https://api.wolfeo.me/v1/funnel-step-content" \
  --header "Authorization: Bearer YOUR_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{
    "step_id": 88,
    "template_json": { "version": 2, "sections": [] },
    "title": "My Landing Page",
    "description": "Discover our offer"
  }'

# Parameters

Parameter Type Description
step_id* integer The step ID to update
template_json* object or string Builder JSON content — sent as object or JSON string
title string HTML <title> for the page
description string SEO meta description

* denotes a required parameter

# Sample Return

{
    "success": true,
    "data": {
        "id": 88,
        "funnel_id": 17,
        "updated": true
    }
}

# Possible Errors

Code HTTP Description
NOT_FOUND 404 Funnel step not found

# List Funnels

GET https://api.wolfeo.me/v1/funnels

Returns a paginated list of all funnels in your account.

# Example Request

curl --request GET "https://api.wolfeo.me/v1/funnels?page=1&per_page=25" \
  --header "Authorization: Bearer YOUR_API_KEY"

# Parameters

Parameter Type Description
page integer Page number (default: 1)
per_page integer Results per page — max 100 (default: 50)

# Sample Return

{
    "success": true,
    "data": [
        {
            "id": 17,
            "name": "My Launch Funnel",
            "type": 0,
            "created_at": "2024-01-15T09:00:00.000000Z"
        },
        {
            "id": 18,
            "name": "Lead Magnet Funnel",
            "type": 1,
            "created_at": "2024-02-10T14:00:00.000000Z"
        }
    ],
    "meta": {
        "current_page": 1,
        "last_page": 1,
        "per_page": 50,
        "total": 2
    }
}

# Get a Funnel

GET https://api.wolfeo.me/v1/funnel

Returns a single funnel with all its steps.

# Example Request

curl --request GET "https://api.wolfeo.me/v1/funnel?funnel_id=17" \
  --header "Authorization: Bearer YOUR_API_KEY"

# Parameters

Parameter Type Description
funnel_id* integer The funnel ID

* denotes a required parameter

# Sample Return

{
    "success": true,
    "data": {
        "id": 17,
        "name": "My Launch Funnel",
        "type": 0,
        "created_at": "2024-01-15T09:00:00.000000Z",
        "steps": [
            {
                "id": 88,
                "name": "Landing Page",
                "path": "landing-page",
                "type": 1,
                "order": 1,
                "title": "My Landing Page"
            }
        ]
    }
}

# Possible Errors

Code HTTP Description
NOT_FOUND 404 Funnel not found

# Get a Funnel Step

GET https://api.wolfeo.me/v1/funnel-step

Returns a single funnel step.

# Example Request

curl --request GET "https://api.wolfeo.me/v1/funnel-step?step_id=88" \
  --header "Authorization: Bearer YOUR_API_KEY"

# Parameters

Parameter Type Description
step_id* integer The step ID

* denotes a required parameter

# Sample Return

{
    "success": true,
    "data": {
        "id": 88,
        "funnel_id": 17,
        "name": "Landing Page",
        "path": "landing-page",
        "type": 1,
        "order": 1,
        "title": "My Landing Page",
        "description": "Discover our offer"
    }
}

# Possible Errors

Code HTTP Description
NOT_FOUND 404 Funnel step not found

# Update Funnel

PUT https://api.wolfeo.me/v1/funnel

Updates an existing funnel's name or type.

# Example Request

curl --request PUT "https://api.wolfeo.me/v1/funnel" \
  --header "Authorization: Bearer YOUR_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{"funnel_id": 17, "name": "Renamed Funnel"}'

# Parameters

Parameter Type Description
funnel_id* integer The funnel ID to update
name string New name for the funnel
type integer Funnel type — 0, 1, or 2

* denotes a required parameter

# Sample Return

{
    "success": true,
    "data": {
        "id": 17,
        "name": "Renamed Funnel",
        "type": 0,
        "updated": true
    }
}

# Possible Errors

Code HTTP Description
NOT_FOUND 404 Funnel not found

# Update Funnel Step

PUT https://api.wolfeo.me/v1/funnel-step

Updates an existing funnel step's properties.

# Example Request

curl --request PUT "https://api.wolfeo.me/v1/funnel-step" \
  --header "Authorization: Bearer YOUR_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{"step_id": 88, "name": "Opt-in Page", "path": "opt-in"}'

# Parameters

Parameter Type Description
step_id* integer The step ID to update
name string New name for the step
type integer Step type
title string HTML <title> for the page
path string URL slug for the step

* denotes a required parameter

# Sample Return

{
    "success": true,
    "data": {
        "id": 88,
        "funnel_id": 17,
        "name": "Opt-in Page",
        "path": "opt-in",
        "type": 1,
        "order": 1,
        "title": "My Landing Page",
        "updated": true
    }
}

# Possible Errors

Code HTTP Description
NOT_FOUND 404 Funnel step not found
PATH_TAKEN 409 This URL path is already used in this funnel

# Delete Funnel

DELETE https://api.wolfeo.me/v1/funnel

Permanently deletes a funnel and all its associated steps.

WARNING

This action is irreversible. All steps belonging to the funnel will also be deleted.

Async cleanup

The funnel and its pages are removed synchronously, so the resource leaves listings as soon as the call returns. Historical analytics rows (visitors, popups) are cleaned up by a background job — they may stay around for a few minutes after the call but are not visible from any read endpoint.

# Example Request

curl --request DELETE "https://api.wolfeo.me/v1/funnel" \
  --header "Authorization: Bearer YOUR_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{"funnel_id": 17}'

# Parameters

Parameter Type Description
funnel_id* integer The funnel ID to delete

* denotes a required parameter

# Sample Return

{
    "success": true,
    "data": {
        "id": 17,
        "deleted": true
    }
}

# Possible Errors

Code HTTP Description
NOT_FOUND 404 Funnel not found

# Delete Funnel Step

DELETE https://api.wolfeo.me/v1/funnel-step

Permanently deletes a single funnel step.

# Example Request

curl --request DELETE "https://api.wolfeo.me/v1/funnel-step" \
  --header "Authorization: Bearer YOUR_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{"step_id": 88}'

# Parameters

Parameter Type Description
step_id* integer The step ID to delete

* denotes a required parameter

# Sample Return

{
    "success": true,
    "data": {
        "deleted": true
    }
}

# Possible Errors

Code HTTP Description
NOT_FOUND 404 Funnel step not found

# What's next