JavaScript
import Courier from '@trycourier/courier';
const client = new Courier({
apiKey: process.env['COURIER_API_KEY'], // This is the default and can be omitted
});
const audience = await client.audiences.update('audience_id', {
description: 'Users located in the US',
filter: {
operator: 'AND',
filters: [
{
operator: 'EQ',
path: 'profile.location',
value: 'US',
},
],
},
name: 'Engaged US Users',
operator: 'AND',
});
console.log(audience.audience);import os
from courier import Courier
client = Courier(
api_key=os.environ.get("COURIER_API_KEY"), # This is the default and can be omitted
)
audience = client.audiences.update(
audience_id="audience_id",
description="Users located in the US",
filter={
"operator": "AND",
"filters": [{
"operator": "EQ",
"path": "profile.location",
"value": "US",
}],
},
name="Engaged US Users",
operator="AND",
)
print(audience.audience)package main
import (
"context"
"fmt"
"github.com/trycourier/courier-go/v4"
"github.com/trycourier/courier-go/v4/option"
"github.com/trycourier/courier-go/v4/shared"
)
func main() {
client := courier.NewClient(
option.WithAPIKey("My API Key"),
)
audience, err := client.Audiences.Update(
context.TODO(),
"audience_id",
courier.AudienceUpdateParams{
Description: courier.String("Users located in the US"),
Filter: shared.AudienceFilterConfigParam{
Operator: shared.AudienceFilterConfigOperatorAnd,
Filters: []shared.FilterConfigParam{{
Operator: "EQ",
Path: courier.String("profile.location"),
Value: courier.String("US"),
}},
},
Name: courier.String("Engaged US Users"),
Operator: courier.AudienceUpdateParamsOperatorAnd,
},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", audience.Audience)
}
package com.courier.example;
import com.courier.client.CourierClient;
import com.courier.client.okhttp.CourierOkHttpClient;
import com.courier.models.audiences.AudienceUpdateParams;
import com.courier.models.audiences.AudienceUpdateResponse;
public final class Main {
private Main() {}
public static void main(String[] args) {
CourierClient client = CourierOkHttpClient.fromEnv();
AudienceUpdateResponse audience = client.audiences().update("audience_id");
}
}require "courier"
courier = Courier::Client.new(api_key: "My API Key")
audience = courier.audiences.update("audience_id")
puts(audience)<?php
require_once dirname(__DIR__) . '/vendor/autoload.php';
use Courier\Client;
use Courier\Core\Exceptions\APIException;
$client = new Client(apiKey: getenv('COURIER_API_KEY') ?: 'My API Key');
try {
$audience = $client->audiences->update(
'audience_id',
description: 'Users located in the US',
filter: [
'filters' => [
[
'operator' => 'EQ',
'filters' => [],
'path' => 'profile.location',
'value' => 'US',
],
],
'operator' => 'AND',
],
name: 'Engaged US Users',
operator: 'AND',
);
var_dump($audience);
} catch (APIException $e) {
echo $e->getMessage();
}using System;
using TryCourier;
using TryCourier.Models.Audiences;
CourierClient client = new();
AudienceUpdateParams parameters = new() { AudienceID = "audience_id" };
var audience = await client.Audiences.Update(parameters);
Console.WriteLine(audience);courier audiences update \
--api-key 'My API Key' \
--audience-id audience_idcurl --request PUT \
--url https://api.courier.com/audiences/{audience_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Engaged US Users",
"description": "Users located in the US",
"operator": "AND",
"filter": {
"operator": "AND",
"filters": [
{
"operator": "EQ",
"path": "profile.location",
"value": "US"
}
]
}
}
'{
"audience": {
"id": "aud_01H8M...",
"name": "Example Name",
"description": "An example description.",
"operator": "AND",
"filter": {
"operator": "AND",
"filters": [
{
"operator": "EQ",
"path": "profile.title",
"value": "Software Engineer"
},
{
"operator": "IS_AFTER",
"path": "profile.created_at",
"value": "2024-01-01"
}
]
},
"created_at": "2024-01-15T10:30:00.000Z",
"updated_at": "2024-01-15T10:30:00.000Z"
}
}Audiences
Update an audience
Creates or replaces an audience from a filter and an AND or OR operator. Membership recalculates automatically as profiles change.
PUT
/
audiences
/
{audience_id}
JavaScript
import Courier from '@trycourier/courier';
const client = new Courier({
apiKey: process.env['COURIER_API_KEY'], // This is the default and can be omitted
});
const audience = await client.audiences.update('audience_id', {
description: 'Users located in the US',
filter: {
operator: 'AND',
filters: [
{
operator: 'EQ',
path: 'profile.location',
value: 'US',
},
],
},
name: 'Engaged US Users',
operator: 'AND',
});
console.log(audience.audience);import os
from courier import Courier
client = Courier(
api_key=os.environ.get("COURIER_API_KEY"), # This is the default and can be omitted
)
audience = client.audiences.update(
audience_id="audience_id",
description="Users located in the US",
filter={
"operator": "AND",
"filters": [{
"operator": "EQ",
"path": "profile.location",
"value": "US",
}],
},
name="Engaged US Users",
operator="AND",
)
print(audience.audience)package main
import (
"context"
"fmt"
"github.com/trycourier/courier-go/v4"
"github.com/trycourier/courier-go/v4/option"
"github.com/trycourier/courier-go/v4/shared"
)
func main() {
client := courier.NewClient(
option.WithAPIKey("My API Key"),
)
audience, err := client.Audiences.Update(
context.TODO(),
"audience_id",
courier.AudienceUpdateParams{
Description: courier.String("Users located in the US"),
Filter: shared.AudienceFilterConfigParam{
Operator: shared.AudienceFilterConfigOperatorAnd,
Filters: []shared.FilterConfigParam{{
Operator: "EQ",
Path: courier.String("profile.location"),
Value: courier.String("US"),
}},
},
Name: courier.String("Engaged US Users"),
Operator: courier.AudienceUpdateParamsOperatorAnd,
},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", audience.Audience)
}
package com.courier.example;
import com.courier.client.CourierClient;
import com.courier.client.okhttp.CourierOkHttpClient;
import com.courier.models.audiences.AudienceUpdateParams;
import com.courier.models.audiences.AudienceUpdateResponse;
public final class Main {
private Main() {}
public static void main(String[] args) {
CourierClient client = CourierOkHttpClient.fromEnv();
AudienceUpdateResponse audience = client.audiences().update("audience_id");
}
}require "courier"
courier = Courier::Client.new(api_key: "My API Key")
audience = courier.audiences.update("audience_id")
puts(audience)<?php
require_once dirname(__DIR__) . '/vendor/autoload.php';
use Courier\Client;
use Courier\Core\Exceptions\APIException;
$client = new Client(apiKey: getenv('COURIER_API_KEY') ?: 'My API Key');
try {
$audience = $client->audiences->update(
'audience_id',
description: 'Users located in the US',
filter: [
'filters' => [
[
'operator' => 'EQ',
'filters' => [],
'path' => 'profile.location',
'value' => 'US',
],
],
'operator' => 'AND',
],
name: 'Engaged US Users',
operator: 'AND',
);
var_dump($audience);
} catch (APIException $e) {
echo $e->getMessage();
}using System;
using TryCourier;
using TryCourier.Models.Audiences;
CourierClient client = new();
AudienceUpdateParams parameters = new() { AudienceID = "audience_id" };
var audience = await client.Audiences.Update(parameters);
Console.WriteLine(audience);courier audiences update \
--api-key 'My API Key' \
--audience-id audience_idcurl --request PUT \
--url https://api.courier.com/audiences/{audience_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Engaged US Users",
"description": "Users located in the US",
"operator": "AND",
"filter": {
"operator": "AND",
"filters": [
{
"operator": "EQ",
"path": "profile.location",
"value": "US"
}
]
}
}
'{
"audience": {
"id": "aud_01H8M...",
"name": "Example Name",
"description": "An example description.",
"operator": "AND",
"filter": {
"operator": "AND",
"filters": [
{
"operator": "EQ",
"path": "profile.title",
"value": "Software Engineer"
},
{
"operator": "IS_AFTER",
"path": "profile.created_at",
"value": "2024-01-01"
}
]
},
"created_at": "2024-01-15T10:30:00.000Z",
"updated_at": "2024-01-15T10:30:00.000Z"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
A unique identifier representing the audience id
Body
application/json
The name of the audience
A description of the audience
The logical operator (AND/OR) combining the top-level filter.filters. Convenience alias for filter.operator: if set, it is applied to the top-level filter group. Prefer setting operator directly inside filter.
Available options:
AND, OR Filter configuration for audience membership containing an array of filter rules
Show child attributes
Show child attributes
Response
200 - application/json
Show child attributes
Show child attributes
⌘I