Get a member run
curl --request GET \
--url https://api.tented.ai/v1/email-flows/{flowId}/members/{membershipId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.tented.ai/v1/email-flows/{flowId}/members/{membershipId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.tented.ai/v1/email-flows/{flowId}/members/{membershipId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.tented.ai/v1/email-flows/{flowId}/members/{membershipId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.tented.ai/v1/email-flows/{flowId}/members/{membershipId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.tented.ai/v1/email-flows/{flowId}/members/{membershipId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tented.ai/v1/email-flows/{flowId}/members/{membershipId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"flow_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"membership_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"contact_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"flow_name": "<string>",
"contact_name": "<string>",
"contact_email": "<string>",
"run_status": "in_flow",
"status_label": "<string>",
"membership_status": "<string>",
"entered_at": "2023-11-07T05:31:56Z",
"exited_at": "2023-11-07T05:31:56Z",
"current_step_id": "<string>",
"current_step_label": "<string>",
"drop_reason": "<string>",
"failure_count": 123,
"last_error": "<string>",
"timeline": [
{
"type": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"step_id": "<string>",
"node_type": "<string>",
"step_label": "<string>",
"email_id": "<string>",
"email_name": "<string>",
"clicked_url": "<string>",
"drop_reason": "<string>",
"metadata": {}
}
]
}{
"error": "<string>",
"error_code": "<string>",
"message": "<string>",
"code": "<string>",
"details": {},
"limit": 123,
"current": 123
}{
"error": "<string>",
"error_code": "<string>",
"message": "<string>",
"code": "<string>",
"details": {},
"limit": 123,
"current": 123
}{
"error": "<string>",
"error_code": "<string>",
"message": "<string>",
"code": "<string>",
"details": {},
"limit": 123,
"current": 123
}Triggered Flows
Get a member run
One member’s full run: current position, failure info, and a chronological timeline of events (entered, step executed, email sent/opened/clicked, dropped).
GET
/
v1
/
email-flows
/
{flowId}
/
members
/
{membershipId}
Get a member run
curl --request GET \
--url https://api.tented.ai/v1/email-flows/{flowId}/members/{membershipId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.tented.ai/v1/email-flows/{flowId}/members/{membershipId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.tented.ai/v1/email-flows/{flowId}/members/{membershipId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.tented.ai/v1/email-flows/{flowId}/members/{membershipId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.tented.ai/v1/email-flows/{flowId}/members/{membershipId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.tented.ai/v1/email-flows/{flowId}/members/{membershipId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tented.ai/v1/email-flows/{flowId}/members/{membershipId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"flow_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"membership_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"contact_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"flow_name": "<string>",
"contact_name": "<string>",
"contact_email": "<string>",
"run_status": "in_flow",
"status_label": "<string>",
"membership_status": "<string>",
"entered_at": "2023-11-07T05:31:56Z",
"exited_at": "2023-11-07T05:31:56Z",
"current_step_id": "<string>",
"current_step_label": "<string>",
"drop_reason": "<string>",
"failure_count": 123,
"last_error": "<string>",
"timeline": [
{
"type": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"step_id": "<string>",
"node_type": "<string>",
"step_label": "<string>",
"email_id": "<string>",
"email_name": "<string>",
"clicked_url": "<string>",
"drop_reason": "<string>",
"metadata": {}
}
]
}{
"error": "<string>",
"error_code": "<string>",
"message": "<string>",
"code": "<string>",
"details": {},
"limit": 123,
"current": 123
}{
"error": "<string>",
"error_code": "<string>",
"message": "<string>",
"code": "<string>",
"details": {},
"limit": 123,
"current": 123
}{
"error": "<string>",
"error_code": "<string>",
"message": "<string>",
"code": "<string>",
"details": {},
"limit": 123,
"current": 123
}Authorizations
Workspace API key, e.g. Authorization: Bearer tented_.... Create keys in Workspace Settings → API Keys.
Path Parameters
Flow ID.
Membership (run) ID.
Response
Run details.
Flow ID.
Membership (run) ID.
Contact ID.
Flow name.
Contact display name.
Contact email.
Run outcome.
Available options:
in_flow, completed, failed, exited_flow Human-readable status.
Membership state.
Enrollment time.
Exit time.
Current step.
Current step label.
Drop reason.
Step execution failures.
Most recent execution error.
Chronological run events.
Show child attributes
Show child attributes