curl --request POST \
--url https://api.openpulse.cloud/v1/signals/{id}/save \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.openpulse.cloud/v1/signals/{id}/save"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.openpulse.cloud/v1/signals/{id}/save', 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.openpulse.cloud/v1/signals/{id}/save",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
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.openpulse.cloud/v1/signals/{id}/save"
req, _ := http.NewRequest("POST", 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.post("https://api.openpulse.cloud/v1/signals/{id}/save")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.openpulse.cloud/v1/signals/{id}/save")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "<string>",
"orgId": "<string>",
"collectionId": "<string>",
"signalId": "<string>",
"addedBy": "<string>",
"addedAt": "2023-11-07T05:31:56Z",
"note": "<string>"
}{
"message": "<string>",
"code": "<string>",
"detail": "<unknown>"
}{
"message": "<string>",
"code": "<string>",
"detail": "<unknown>"
}{
"message": "<string>",
"code": "<string>",
"detail": "<unknown>"
}Save a signal to a list
Adds one signal to the workspace’s saved list, creating that list on first use. Takes no request body — the signal is the path parameter, and there is nothing else to say.
Idempotent: saving a signal already saved is not an error and does not duplicate it. The response is 201 either way, carrying the existing membership when there was one, because “already saved” is not news anybody needs.
curl --request POST \
--url https://api.openpulse.cloud/v1/signals/{id}/save \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.openpulse.cloud/v1/signals/{id}/save"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.openpulse.cloud/v1/signals/{id}/save', 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.openpulse.cloud/v1/signals/{id}/save",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
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.openpulse.cloud/v1/signals/{id}/save"
req, _ := http.NewRequest("POST", 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.post("https://api.openpulse.cloud/v1/signals/{id}/save")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.openpulse.cloud/v1/signals/{id}/save")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "<string>",
"orgId": "<string>",
"collectionId": "<string>",
"signalId": "<string>",
"addedBy": "<string>",
"addedAt": "2023-11-07T05:31:56Z",
"note": "<string>"
}{
"message": "<string>",
"code": "<string>",
"detail": "<unknown>"
}{
"message": "<string>",
"code": "<string>",
"detail": "<unknown>"
}{
"message": "<string>",
"code": "<string>",
"detail": "<unknown>"
}Authorizations
A workspace API key, created in workspace settings and sent as Authorization: Bearer op_live_…. Session cookies are not accepted. Scopes: signals:read, accounts:read, listeners:read, listeners:analyse, pipeline:read, pipeline:write, collections:write, export:read.
Path Parameters
The id of the resource.
Response
The membership row — note that id identifies the membership, not the signal.
One signal's membership of one list.
Stable identifier for the membership, not for the signal.
The workspace this belongs to (org_…).
The list it is in.
The signal that was added.
Clerk user id of whoever added it.
When it was added. The pagination sort key.
Why it was added, if the person said. Distinct from a note on the signal.
Was this page helpful?