Rybbit
Goals

Get Goal Sessions

Returns sessions that completed a specific goal. Useful for analyzing the behavior of converting users.

GET /api/sites/:site/goals/:goalId/sessions

Returns sessions that completed a specific goal. Useful for analyzing the behavior of converting users.

Path Parameters

Prop

Type

Query Parameters

Accepts all Common Parameters plus the following:

Prop

Type

Response

Prop

Type

Session Object

Prop

Type

Request
curl -X GET "https://app.rybbit.io/api/sites/1/goals/1/sessions?page=1&limit=10" \
  -H "Authorization: Bearer your_api_key_here"
Request
const response = await fetch(
  'https://app.rybbit.io/api/sites/1/goals/1/sessions?page=1&limit=10',
  {
    headers: {
      'Authorization': 'Bearer your_api_key_here'
    }
  }
);

const data = await response.json();
Request
import requests

response = requests.get(
    'https://app.rybbit.io/api/sites/1/goals/1/sessions',
    params={
        'page': 1,
        'limit': 10
    },
    headers={
        'Authorization': 'Bearer your_api_key_here'
    }
)

data = response.json()
Request
<?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'https://app.rybbit.io/api/sites/1/goals/1/sessions?page=1&limit=10');
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);
?>
Request
require 'net/http'
require 'json'
require 'uri'

uri = URI('https://app.rybbit.io/api/sites/1/goals/1/sessions?page=1&limit=10')
req = Net::HTTP::Get.new(uri)
req['Authorization'] = 'Bearer your_api_key_here'

res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
  http.request(req)
end

data = JSON.parse(res.body)
Request
package main

import (
    "encoding/json"
    "io"
    "net/http"
)

func main() {
    url := "https://app.rybbit.io/api/sites/1/goals/1/sessions?page=1&limit=10"

    req, _ := http.NewRequest("GET", url, nil)
    req.Header.Add("Authorization", "Bearer your_api_key_here")

    client := &http.Client{}
    resp, _ := client.Do(req)
    defer resp.Body.Close()

    body, _ := io.ReadAll(resp.Body)

    var data map[string]interface{}
    json.Unmarshal(body, &data)
}
Request
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://app.rybbit.io/api/sites/1/goals/1/sessions?page=1&limit=10")
        .header("Authorization", "Bearer your_api_key_here")
        .send()
        .await?;

    let data: Value = response.json().await?;

    Ok(())
}
Request
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class Main {
    public static void main(String[] args) throws Exception {
        HttpClient client = HttpClient.newHttpClient();

        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create("https://app.rybbit.io/api/sites/1/goals/1/sessions?page=1&limit=10"))
            .header("Authorization", "Bearer your_api_key_here")
            .GET()
            .build();

        HttpResponse<String> response = client.send(request,
            HttpResponse.BodyHandlers.ofString());

        String data = response.body();
    }
}
Request
using System;
using System.Net.Http;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        using var client = new HttpClient();

        client.DefaultRequestHeaders.Add("Authorization", "Bearer your_api_key_here");

        var response = await client.GetAsync(
            "https://app.rybbit.io/api/sites/1/goals/1/sessions?page=1&limit=10");

        var data = await response.Content.ReadAsStringAsync();
    }
}
Response
{
  "data": [
    {
      "session_id": "sess_abc123",
      "user_id": "user_xyz789",
      "country": "US",
      "browser": "Chrome",
      "operating_system": "macOS",
      "device_type": "desktop",
      "entry_page": "/",
      "exit_page": "/signup/complete",
      "pageviews": 5,
      "session_duration": 245,
      "session_start": "2024-01-31T14:00:00.000Z",
      "session_end": "2024-01-31T14:04:05.000Z",
      "referrer": "https://google.com",
      "channel": "organic"
    }
  ]
}