Create a user subscription
curl --request POST \
--url https://api.extole.io/v6/users/{user_id}/subscriptions \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"channels": [
{
"type": "EMAIL"
}
],
"dedupe_duration_ms": 1,
"filter_expression": true,
"filtering_level": "ALL",
"having_all_tags": [
"having_all_tag"
]
}
'import requests
url = "https://api.extole.io/v6/users/{user_id}/subscriptions"
payload = {
"channels": [{ "type": "EMAIL" }],
"dedupe_duration_ms": 1,
"filter_expression": True,
"filtering_level": "ALL",
"having_all_tags": ["having_all_tag"]
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
channels: [{type: 'EMAIL'}],
dedupe_duration_ms: 1,
filter_expression: true,
filtering_level: 'ALL',
having_all_tags: ['having_all_tag']
})
};
fetch('https://api.extole.io/v6/users/{user_id}/subscriptions', 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.extole.io/v6/users/{user_id}/subscriptions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'channels' => [
[
'type' => 'EMAIL'
]
],
'dedupe_duration_ms' => 1,
'filter_expression' => true,
'filtering_level' => 'ALL',
'having_all_tags' => [
'having_all_tag'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.extole.io/v6/users/{user_id}/subscriptions"
payload := strings.NewReader("{\n \"channels\": [\n {\n \"type\": \"EMAIL\"\n }\n ],\n \"dedupe_duration_ms\": 1,\n \"filter_expression\": true,\n \"filtering_level\": \"ALL\",\n \"having_all_tags\": [\n \"having_all_tag\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.extole.io/v6/users/{user_id}/subscriptions")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"channels\": [\n {\n \"type\": \"EMAIL\"\n }\n ],\n \"dedupe_duration_ms\": 1,\n \"filter_expression\": true,\n \"filtering_level\": \"ALL\",\n \"having_all_tags\": [\n \"having_all_tag\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.extole.io/v6/users/{user_id}/subscriptions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"channels\": [\n {\n \"type\": \"EMAIL\"\n }\n ],\n \"dedupe_duration_ms\": 1,\n \"filter_expression\": true,\n \"filtering_level\": \"ALL\",\n \"having_all_tags\": [\n \"having_all_tag\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"channels": [
{
"id": "<string>",
"type": "EMAIL"
}
],
"dedupe_duration_ms": 123,
"filter_expression": true,
"filtering_level": "ALL",
"having_all_tags": [
"<string>"
],
"subscription_id": "<string>"
}User Subscriptions
Create a user subscription
Creates a new notification subscription for the specified user. The request body specifies the event type to subscribe to and the delivery channel (email, Slack, or webhook). Returns the created subscription.
POST
https://api.extole.io
/
v6
/
users
/
{user_id}
/
subscriptions
Create a user subscription
curl --request POST \
--url https://api.extole.io/v6/users/{user_id}/subscriptions \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"channels": [
{
"type": "EMAIL"
}
],
"dedupe_duration_ms": 1,
"filter_expression": true,
"filtering_level": "ALL",
"having_all_tags": [
"having_all_tag"
]
}
'import requests
url = "https://api.extole.io/v6/users/{user_id}/subscriptions"
payload = {
"channels": [{ "type": "EMAIL" }],
"dedupe_duration_ms": 1,
"filter_expression": True,
"filtering_level": "ALL",
"having_all_tags": ["having_all_tag"]
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
channels: [{type: 'EMAIL'}],
dedupe_duration_ms: 1,
filter_expression: true,
filtering_level: 'ALL',
having_all_tags: ['having_all_tag']
})
};
fetch('https://api.extole.io/v6/users/{user_id}/subscriptions', 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.extole.io/v6/users/{user_id}/subscriptions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'channels' => [
[
'type' => 'EMAIL'
]
],
'dedupe_duration_ms' => 1,
'filter_expression' => true,
'filtering_level' => 'ALL',
'having_all_tags' => [
'having_all_tag'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.extole.io/v6/users/{user_id}/subscriptions"
payload := strings.NewReader("{\n \"channels\": [\n {\n \"type\": \"EMAIL\"\n }\n ],\n \"dedupe_duration_ms\": 1,\n \"filter_expression\": true,\n \"filtering_level\": \"ALL\",\n \"having_all_tags\": [\n \"having_all_tag\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.extole.io/v6/users/{user_id}/subscriptions")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"channels\": [\n {\n \"type\": \"EMAIL\"\n }\n ],\n \"dedupe_duration_ms\": 1,\n \"filter_expression\": true,\n \"filtering_level\": \"ALL\",\n \"having_all_tags\": [\n \"having_all_tag\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.extole.io/v6/users/{user_id}/subscriptions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"channels\": [\n {\n \"type\": \"EMAIL\"\n }\n ],\n \"dedupe_duration_ms\": 1,\n \"filter_expression\": true,\n \"filtering_level\": \"ALL\",\n \"having_all_tags\": [\n \"having_all_tag\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"channels": [
{
"id": "<string>",
"type": "EMAIL"
}
],
"dedupe_duration_ms": 123,
"filter_expression": true,
"filtering_level": "ALL",
"having_all_tags": [
"<string>"
],
"subscription_id": "<string>"
}Authorizations
HEADERQUERYCOOKIE
Path Parameters
The unique identifier of this user at Extole.
Body
application/json
Available options:
ALL, NONE, NOTEWORTHY, SOME - Option 1
- Option 2
- Option 3
- Option 4
- Option 5
Show child attributes
Show child attributes
Choose between static or dynamic filter expression. Runtime expressions use UserSubscriptionFilterContext.
Response
Successful response
- Option 1
- Option 2
- Option 3
- Option 4
- Option 5
Show child attributes
Show child attributes
filter_expression
Static Value · booleanRuntime - Handlebars · stringRuntime - Javascript · string
required
The filter expression as configured: a literal value, or an expression (type:string) when defined dynamically. Runtime expressions use UserSubscriptionFilterContext.
Available options:
ALL, NONE, NOTEWORTHY, SOME 