Subscribe a single user to a list
Subscribe a user to an existing list (note: if the List does not exist, it will be automatically created).
URL: https://api.courier.com/lists/:list_id/subscriptions/:user_id
Method: PUT
Path Parameters
list_idstringrequired
A unique identifier associated with the list you wish to retrieve.
user_idstringrequired
A unique identifier representing the recipient associated with the list
Body Parameters
notificationsrecord
json object that contains notification ids with the respective preferences
categoriesrecord
json object that contains category ids with the respective preferences
Response
status: 204 Successfully created
Request Example
- cURL
- Node.js
- Ruby
- Python
- Go
- PHP
curl --request PUT \
--url https://api.courier.com/lists/example.list.id/subscriptions/0460766e-8463-4905-ae98-b72c7aef41d6 \
--header 'Accept: application/json'
// Dependencies to install:
// $ npm install node-fetch --save
const fetch = require('node-fetch');
const options = {
method: 'PUT',
headers: {
Accept: 'application/json'
},
};
fetch('https://api.courier.com/lists/example.list.id/subscriptions/0460766e-8463-4905-ae98-b72c7aef41d6', options)
.then(response => response.json())
.then(response => console.log(response))
.catch(err => console.error(err));
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://api.courier.com/lists/example.list.id/subscriptions/0460766e-8463-4905-ae98-b72c7aef41d6")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Accept"] = 'application/json'
response = http.request(request)
puts response.read_body
# Dependencies to install:
# $ python -m pip install requests
import requests
url = "https://api.courier.com/lists/example.list.id/subscriptions/0460766e-8463-4905-ae98-b72c7aef41d6"
headers = {
"Accept": "application/json"
}
response = requests.request("PUT", url, headers=headers)
print(response.text)
package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.courier.com/lists/example.list.id/subscriptions/0460766e-8463-4905-ae98-b72c7aef41d6"
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Accept", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
<?php
// Dependencies to install:
// $ composer require guzzlehttp/guzzle
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('PUT', 'https://api.courier.com/lists/example.list.id/subscriptions/0460766e-8463-4905-ae98-b72c7aef41d6', [
'headers' => [
'Accept' => 'application/json',
],
]);
echo $response->getBody();
Responses Example
Empty
Example
Method: PUT
URL: https://api.courier.com/lists/abcdefgh12345678/subscriptions/0460766e-8463-4905-ae98-b72c7aef41d6
Body:
{
"preferences": {
"notifications": {
"abcdefgh12345678": {
"channel_preferences": [
{
"channel": "direct_message"
}
],
"rules": [
{
"type": "snooze"
}
],
"status": "OPTED_IN"
}
},
"categories": {
"cooking": {
"channel_preferences": [
{
"channel": "direct_message"
}
],
"rules": [
{
"type": "snooze"
}
],
"status": "OPTED_IN"
}
}
}
}