# 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 |