Funnels
Create and analyze multi-step conversion funnels
See the API Reference for authentication, common parameters, and filters.
Endpoints
/api/funnels/:sitePOST/api/funnels/analyze/:sitePOST/api/funnels/:stepNumber/sessions/:sitePOST/api/funnels/:siteDELETE/api/funnels/:funnelId/:siteGet Funnels
GET /api/funnels/:siteReturns all saved funnels for a site.
Path Parameters
Prop
Type
Response
Prop
Type
Funnel Object
Prop
Type
curl -X GET "https://api.rybbit.io/api/funnels/123" \
-H "Authorization: Bearer your_api_key_here"const response = await fetch(
'https://api.rybbit.io/api/funnels/123',
{
headers: {
'Authorization': 'Bearer your_api_key_here'
}
}
);
const data = await response.json();import requests
response = requests.get(
'https://api.rybbit.io/api/funnels/123',
headers={
'Authorization': 'Bearer your_api_key_here'
}
)
data = response.json()$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.rybbit.io/api/funnels/123');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer your_api_key_here'
]);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);require 'net/http'
require 'json'
uri = URI('https://api.rybbit.io/api/funnels/123')
request = Net::HTTP::Get.new(uri)
request['Authorization'] = 'Bearer your_api_key_here'
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end
data = JSON.parse(response.body)package main
import (
"encoding/json"
"io"
"net/http"
)
func main() {
client := &http.Client{}
req, _ := http.NewRequest("GET", "https://api.rybbit.io/api/funnels/123", nil)
req.Header.Set("Authorization", "Bearer your_api_key_here")
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
var data map[string]interface{}
json.Unmarshal(body, &data)
}use reqwest;
use serde_json::Value;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = reqwest::Client::new();
let response = client
.get("https://api.rybbit.io/api/funnels/123")
.header("Authorization", "Bearer your_api_key_here")
.send()
.await?;
let data: Value = response.json().await?;
Ok(())
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.rybbit.io/api/funnels/123"))
.header("Authorization", "Bearer your_api_key_here")
.GET()
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
String data = response.body();using System.Net.Http;
using System.Net.Http.Headers;
var client = new HttpClient();
client.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", "your_api_key_here");
var response = await client.GetAsync(
"https://api.rybbit.io/api/funnels/123");
var data = await response.Content.ReadAsStringAsync();{
"data": [
{
"id": 1,
"name": "Signup Funnel",
"steps": [
{ "type": "page", "value": "/", "name": "Homepage" },
{ "type": "page", "value": "/pricing", "name": "Pricing" },
{ "type": "page", "value": "/signup", "name": "Signup" },
{ "type": "page", "value": "/signup/complete", "name": "Complete" }
],
"createdAt": "2024-01-10T12:00:00.000Z",
"updatedAt": "2024-01-15T09:30:00.000Z"
}
]
}Analyze Funnel
POST /api/funnels/analyze/:siteAnalyzes a funnel and returns step-by-step conversion data. Sessions must complete steps in order (step 2 must occur after step 1, etc.).
Path Parameters
Prop
Type
Query Parameters
Accepts all Common Parameters (time and filters).
Request Body
Prop
Type
FunnelStep Object
Prop
Type
Response
Prop
Type
FunnelStepResult Object
Prop
Type
curl -X POST "https://api.rybbit.io/api/funnels/analyze/123?start_date=2024-01-01&end_date=2024-01-31" \
-H "Authorization: Bearer your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"steps": [
{ "type": "page", "value": "/", "name": "Homepage" },
{ "type": "page", "value": "/pricing", "name": "Pricing" },
{ "type": "page", "value": "/signup", "name": "Signup" },
{ "type": "event", "value": "signup_complete", "name": "Complete" }
]
}'const response = await fetch(
'https://api.rybbit.io/api/funnels/analyze/123?start_date=2024-01-01&end_date=2024-01-31',
{
method: 'POST',
headers: {
'Authorization': 'Bearer your_api_key_here',
'Content-Type': 'application/json'
},
body: JSON.stringify({
steps: [
{ type: 'page', value: '/', name: 'Homepage' },
{ type: 'page', value: '/pricing', name: 'Pricing' },
{ type: 'page', value: '/signup', name: 'Signup' },
{ type: 'event', value: 'signup_complete', name: 'Complete' }
]
})
}
);
const data = await response.json();import requests
response = requests.post(
'https://api.rybbit.io/api/funnels/analyze/123',
params={
'start_date': '2024-01-01',
'end_date': '2024-01-31'
},
json={
'steps': [
{ 'type': 'page', 'value': '/', 'name': 'Homepage' },
{ 'type': 'page', 'value': '/pricing', 'name': 'Pricing' },
{ 'type': 'page', 'value': '/signup', 'name': 'Signup' },
{ 'type': 'event', 'value': 'signup_complete', 'name': 'Complete' }
]
},
headers={
'Authorization': 'Bearer your_api_key_here'
}
)
data = response.json()$body = [
'steps' => [
['type' => 'page', 'value' => '/', 'name' => 'Homepage'],
['type' => 'page', 'value' => '/pricing', 'name' => 'Pricing'],
['type' => 'page', 'value' => '/signup', 'name' => 'Signup'],
['type' => 'event', 'value' => 'signup_complete', 'name' => 'Complete']
]
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.rybbit.io/api/funnels/analyze/123?start_date=2024-01-01&end_date=2024-01-31');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($body));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer your_api_key_here',
'Content-Type: application/json'
]);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);require 'net/http'
require 'json'
uri = URI('https://api.rybbit.io/api/funnels/analyze/123?start_date=2024-01-01&end_date=2024-01-31')
request = Net::HTTP::Post.new(uri)
request['Authorization'] = 'Bearer your_api_key_here'
request['Content-Type'] = 'application/json'
request.body = {
steps: [
{ type: 'page', value: '/', name: 'Homepage' },
{ type: 'page', value: '/pricing', name: 'Pricing' },
{ type: 'page', value: '/signup', name: 'Signup' },
{ type: 'event', value: 'signup_complete', name: 'Complete' }
]
}.to_json
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end
data = JSON.parse(response.body)package main
import (
"bytes"
"encoding/json"
"io"
"net/http"
)
func main() {
body := map[string]interface{}{
"steps": []map[string]string{
{"type": "page", "value": "/", "name": "Homepage"},
{"type": "page", "value": "/pricing", "name": "Pricing"},
{"type": "page", "value": "/signup", "name": "Signup"},
{"type": "event", "value": "signup_complete", "name": "Complete"},
},
}
jsonBody, _ := json.Marshal(body)
client := &http.Client{}
req, _ := http.NewRequest("POST", "https://api.rybbit.io/api/funnels/analyze/123?start_date=2024-01-01&end_date=2024-01-31", bytes.NewBuffer(jsonBody))
req.Header.Set("Authorization", "Bearer your_api_key_here")
req.Header.Set("Content-Type", "application/json")
resp, _ := client.Do(req)
defer resp.Body.Close()
respBody, _ := io.ReadAll(resp.Body)
var data map[string]interface{}
json.Unmarshal(respBody, &data)
}use reqwest;
use serde_json::{json, Value};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let body = json!({
"steps": [
{"type": "page", "value": "/", "name": "Homepage"},
{"type": "page", "value": "/pricing", "name": "Pricing"},
{"type": "page", "value": "/signup", "name": "Signup"},
{"type": "event", "value": "signup_complete", "name": "Complete"}
]
});
let client = reqwest::Client::new();
let response = client
.post("https://api.rybbit.io/api/funnels/analyze/123?start_date=2024-01-01&end_date=2024-01-31")
.header("Authorization", "Bearer your_api_key_here")
.header("Content-Type", "application/json")
.json(&body)
.send()
.await?;
let data: Value = response.json().await?;
Ok(())
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
String json = """
{
"steps": [
{"type": "page", "value": "/", "name": "Homepage"},
{"type": "page", "value": "/pricing", "name": "Pricing"},
{"type": "page", "value": "/signup", "name": "Signup"},
{"type": "event", "value": "signup_complete", "name": "Complete"}
]
}
""";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.rybbit.io/api/funnels/analyze/123?start_date=2024-01-01&end_date=2024-01-31"))
.header("Authorization", "Bearer your_api_key_here")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(json))
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
String data = response.body();using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Text.Json;
var body = new
{
steps = new[]
{
new { type = "page", value = "/", name = "Homepage" },
new { type = "page", value = "/pricing", name = "Pricing" },
new { type = "page", value = "/signup", name = "Signup" },
new { type = "event", value = "signup_complete", name = "Complete" }
}
};
var client = new HttpClient();
client.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", "your_api_key_here");
var content = new StringContent(
JsonSerializer.Serialize(body),
Encoding.UTF8,
"application/json");
var response = await client.PostAsync(
"https://api.rybbit.io/api/funnels/analyze/123?start_date=2024-01-01&end_date=2024-01-31",
content);
var data = await response.Content.ReadAsStringAsync();{
"data": [
{
"step_number": 1,
"step_name": "Homepage",
"visitors": 10000,
"conversion_rate": 100,
"dropoff_rate": 0
},
{
"step_number": 2,
"step_name": "Pricing",
"visitors": 4500,
"conversion_rate": 45,
"dropoff_rate": 55
},
{
"step_number": 3,
"step_name": "Signup",
"visitors": 1800,
"conversion_rate": 18,
"dropoff_rate": 60
},
{
"step_number": 4,
"step_name": "Complete",
"visitors": 720,
"conversion_rate": 7.2,
"dropoff_rate": 60
}
]
}Get Funnel Step Sessions
POST /api/funnels/:stepNumber/sessions/:siteReturns sessions that either reached or dropped off at a specific funnel step. Useful for analyzing user behavior at each stage.
Path Parameters
Prop
Type
Query Parameters
Accepts all Common Parameters plus the following:
Prop
Type
Request Body
Prop
Type
Response
Prop
Type
curl -X POST "https://api.rybbit.io/api/funnels/2/sessions/123?mode=dropped&page=1" \
-H "Authorization: Bearer your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"steps": [
{ "type": "page", "value": "/", "name": "Homepage" },
{ "type": "page", "value": "/pricing", "name": "Pricing" },
{ "type": "page", "value": "/signup", "name": "Signup" }
]
}'const response = await fetch(
'https://api.rybbit.io/api/funnels/3/sessions/123?mode=reached&page=1',
{
method: 'POST',
headers: {
'Authorization': 'Bearer your_api_key_here',
'Content-Type': 'application/json'
},
body: JSON.stringify({
steps: [
{ type: 'page', value: '/', name: 'Homepage' },
{ type: 'page', value: '/pricing', name: 'Pricing' },
{ type: 'page', value: '/signup', name: 'Signup' }
]
})
}
);
const data = await response.json();import requests
response = requests.post(
'https://api.rybbit.io/api/funnels/2/sessions/123',
params={
'mode': 'dropped',
'page': 1
},
json={
'steps': [
{ 'type': 'page', 'value': '/', 'name': 'Homepage' },
{ 'type': 'page', 'value': '/pricing', 'name': 'Pricing' },
{ 'type': 'page', 'value': '/signup', 'name': 'Signup' }
]
},
headers={
'Authorization': 'Bearer your_api_key_here'
}
)
data = response.json()$body = [
'steps' => [
['type' => 'page', 'value' => '/', 'name' => 'Homepage'],
['type' => 'page', 'value' => '/pricing', 'name' => 'Pricing'],
['type' => 'page', 'value' => '/signup', 'name' => 'Signup']
]
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.rybbit.io/api/funnels/2/sessions/123?mode=dropped&page=1');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($body));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer your_api_key_here',
'Content-Type: application/json'
]);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);require 'net/http'
require 'json'
uri = URI('https://api.rybbit.io/api/funnels/2/sessions/123?mode=dropped&page=1')
request = Net::HTTP::Post.new(uri)
request['Authorization'] = 'Bearer your_api_key_here'
request['Content-Type'] = 'application/json'
request.body = {
steps: [
{ type: 'page', value: '/', name: 'Homepage' },
{ type: 'page', value: '/pricing', name: 'Pricing' },
{ type: 'page', value: '/signup', name: 'Signup' }
]
}.to_json
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end
data = JSON.parse(response.body)body := map[string]interface{}{
"steps": []map[string]string{
{"type": "page", "value": "/", "name": "Homepage"},
{"type": "page", "value": "/pricing", "name": "Pricing"},
{"type": "page", "value": "/signup", "name": "Signup"},
},
}
jsonBody, _ := json.Marshal(body)
req, _ := http.NewRequest("POST", "https://api.rybbit.io/api/funnels/2/sessions/123?mode=dropped&page=1", bytes.NewBuffer(jsonBody))
req.Header.Set("Authorization", "Bearer your_api_key_here")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
var data map[string]interface{}
json.NewDecoder(resp.Body).Decode(&data)let body = serde_json::json!({
"steps": [
{"type": "page", "value": "/", "name": "Homepage"},
{"type": "page", "value": "/pricing", "name": "Pricing"},
{"type": "page", "value": "/signup", "name": "Signup"}
]
});
let client = reqwest::Client::new();
let res = client
.post("https://api.rybbit.io/api/funnels/2/sessions/123?mode=dropped&page=1")
.header("Authorization", "Bearer your_api_key_here")
.json(&body)
.send()
.await?;
let data: serde_json::Value = res.json().await?;String json = """
{
"steps": [
{"type": "page", "value": "/", "name": "Homepage"},
{"type": "page", "value": "/pricing", "name": "Pricing"},
{"type": "page", "value": "/signup", "name": "Signup"}
]
}
""";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.rybbit.io/api/funnels/2/sessions/123?mode=dropped&page=1"))
.header("Authorization", "Bearer your_api_key_here")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(json))
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());var body = new
{
steps = new[]
{
new { type = "page", value = "/", name = "Homepage" },
new { type = "page", value = "/pricing", name = "Pricing" },
new { type = "page", value = "/signup", name = "Signup" }
}
};
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer your_api_key_here");
var content = new StringContent(
JsonSerializer.Serialize(body),
Encoding.UTF8,
"application/json");
var response = await client.PostAsync(
"https://api.rybbit.io/api/funnels/2/sessions/123?mode=dropped&page=1",
content);
var data = await response.Content.ReadAsStringAsync();{
"data": [
{
"session_id": "sess_abc123",
"user_id": "user_xyz789",
"country": "US",
"browser": "Chrome",
"operating_system": "macOS",
"device_type": "desktop",
"entry_page": "/",
"exit_page": "/pricing",
"pageviews": 3,
"session_duration": 125,
"session_start": "2024-01-31T14:00:00.000Z",
"session_end": "2024-01-31T14:02:05.000Z",
"referrer": "https://google.com",
"channel": "organic"
}
]
}Create Funnel
POST /api/funnels/:siteCreates or updates a saved funnel. If reportId is provided, updates the existing funnel.
Path Parameters
Prop
Type
Request Body
Prop
Type
Response
Prop
Type
curl -X POST "https://api.rybbit.io/api/funnels/123" \
-H "Authorization: Bearer your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"name": "Checkout Funnel",
"steps": [
{ "type": "page", "value": "/products/*", "name": "Product Page" },
{ "type": "page", "value": "/cart", "name": "Cart" },
{ "type": "page", "value": "/checkout", "name": "Checkout" },
{ "type": "event", "value": "purchase", "name": "Purchase" }
]
}'const response = await fetch(
'https://api.rybbit.io/api/funnels/123',
{
method: 'POST',
headers: {
'Authorization': 'Bearer your_api_key_here',
'Content-Type': 'application/json'
},
body: JSON.stringify({
reportId: 1, // Update existing funnel
name: 'Checkout Funnel (Updated)',
steps: [
{ type: 'page', value: '/products/*', name: 'Product Page' },
{ type: 'page', value: '/cart', name: 'Cart' },
{ type: 'page', value: '/checkout', name: 'Checkout' },
{ type: 'page', value: '/checkout/success', name: 'Success' }
]
})
}
);
const data = await response.json();import requests
response = requests.post(
'https://api.rybbit.io/api/funnels/123',
json={
'name': 'Onboarding Funnel',
'steps': [
{ 'type': 'page', 'value': '/signup', 'name': 'Signup' },
{ 'type': 'event', 'value': 'account_created', 'name': 'Account Created' },
{ 'type': 'page', 'value': '/onboarding/*', 'name': 'Onboarding' },
{ 'type': 'event', 'value': 'onboarding_complete', 'name': 'Complete' }
]
},
headers={
'Authorization': 'Bearer your_api_key_here'
}
)
data = response.json()$body = [
'name' => 'Checkout Funnel',
'steps' => [
['type' => 'page', 'value' => '/products/*', 'name' => 'Product Page'],
['type' => 'page', 'value' => '/cart', 'name' => 'Cart'],
['type' => 'page', 'value' => '/checkout', 'name' => 'Checkout'],
['type' => 'event', 'value' => 'purchase', 'name' => 'Purchase']
]
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.rybbit.io/api/funnels/123');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($body));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer your_api_key_here',
'Content-Type: application/json'
]);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);require 'net/http'
require 'json'
uri = URI('https://api.rybbit.io/api/funnels/123')
request = Net::HTTP::Post.new(uri)
request['Authorization'] = 'Bearer your_api_key_here'
request['Content-Type'] = 'application/json'
request.body = {
name: 'Checkout Funnel',
steps: [
{ type: 'page', value: '/products/*', name: 'Product Page' },
{ type: 'page', value: '/cart', name: 'Cart' },
{ type: 'page', value: '/checkout', name: 'Checkout' },
{ type: 'event', value: 'purchase', name: 'Purchase' }
]
}.to_json
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end
data = JSON.parse(response.body)body := map[string]interface{}{
"name": "Checkout Funnel",
"steps": []map[string]string{
{"type": "page", "value": "/products/*", "name": "Product Page"},
{"type": "page", "value": "/cart", "name": "Cart"},
{"type": "page", "value": "/checkout", "name": "Checkout"},
{"type": "event", "value": "purchase", "name": "Purchase"},
},
}
jsonBody, _ := json.Marshal(body)
req, _ := http.NewRequest("POST", "https://api.rybbit.io/api/funnels/123", bytes.NewBuffer(jsonBody))
req.Header.Set("Authorization", "Bearer your_api_key_here")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
var data map[string]interface{}
json.NewDecoder(resp.Body).Decode(&data)let body = serde_json::json!({
"name": "Checkout Funnel",
"steps": [
{"type": "page", "value": "/products/*", "name": "Product Page"},
{"type": "page", "value": "/cart", "name": "Cart"},
{"type": "page", "value": "/checkout", "name": "Checkout"},
{"type": "event", "value": "purchase", "name": "Purchase"}
]
});
let client = reqwest::Client::new();
let res = client
.post("https://api.rybbit.io/api/funnels/123")
.header("Authorization", "Bearer your_api_key_here")
.json(&body)
.send()
.await?;
let data: serde_json::Value = res.json().await?;String json = """
{
"name": "Checkout Funnel",
"steps": [
{"type": "page", "value": "/products/*", "name": "Product Page"},
{"type": "page", "value": "/cart", "name": "Cart"},
{"type": "page", "value": "/checkout", "name": "Checkout"},
{"type": "event", "value": "purchase", "name": "Purchase"}
]
}
""";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.rybbit.io/api/funnels/123"))
.header("Authorization", "Bearer your_api_key_here")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(json))
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());var body = new
{
name = "Checkout Funnel",
steps = new[]
{
new { type = "page", value = "/products/*", name = "Product Page" },
new { type = "page", value = "/cart", name = "Cart" },
new { type = "page", value = "/checkout", name = "Checkout" },
new { type = "event", value = "purchase", name = "Purchase" }
}
};
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer your_api_key_here");
var content = new StringContent(
JsonSerializer.Serialize(body),
Encoding.UTF8,
"application/json");
var response = await client.PostAsync("https://api.rybbit.io/api/funnels/123", content);
var data = await response.Content.ReadAsStringAsync();{
"success": true,
"funnelId": 2
}Delete Funnel
DELETE /api/funnels/:funnelId/:siteDeletes a saved funnel. This action cannot be undone.
Path Parameters
Prop
Type
Response
Prop
Type
curl -X DELETE "https://api.rybbit.io/api/funnels/1/123" \
-H "Authorization: Bearer your_api_key_here"const response = await fetch(
'https://api.rybbit.io/api/funnels/1/123',
{
method: 'DELETE',
headers: {
'Authorization': 'Bearer your_api_key_here'
}
}
);
const data = await response.json();import requests
response = requests.delete(
'https://api.rybbit.io/api/funnels/1/123',
headers={
'Authorization': 'Bearer your_api_key_here'
}
)
data = response.json()$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.rybbit.io/api/funnels/1/123');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer your_api_key_here'
]);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);require 'net/http'
require 'json'
uri = URI('https://api.rybbit.io/api/funnels/1/123')
request = Net::HTTP::Delete.new(uri)
request['Authorization'] = 'Bearer your_api_key_here'
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end
data = JSON.parse(response.body)req, _ := http.NewRequest("DELETE", "https://api.rybbit.io/api/funnels/1/123", nil)
req.Header.Set("Authorization", "Bearer your_api_key_here")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
var data map[string]interface{}
json.NewDecoder(resp.Body).Decode(&data)let client = reqwest::Client::new();
let res = client
.delete("https://api.rybbit.io/api/funnels/1/123")
.header("Authorization", "Bearer your_api_key_here")
.send()
.await?;
let data: serde_json::Value = res.json().await?;HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.rybbit.io/api/funnels/1/123"))
.header("Authorization", "Bearer your_api_key_here")
.DELETE()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());using var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer your_api_key_here");
var response = await client.DeleteAsync("https://api.rybbit.io/api/funnels/1/123");
var data = await response.Content.ReadAsStringAsync();{
"success": true
}