curl --request POST \
--url https://api.nephia.cc/v1/reddit/watches \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"refresh_interval_seconds": 43230,
"query": "<string>",
"terms": [
"<string>"
],
"subreddit": "<string>",
"include_nsfw": true,
"webhook_url": "<string>",
"backfill": true
}
'import requests
url = "https://api.nephia.cc/v1/reddit/watches"
payload = {
"refresh_interval_seconds": 43230,
"query": "<string>",
"terms": ["<string>"],
"subreddit": "<string>",
"include_nsfw": True,
"webhook_url": "<string>",
"backfill": True
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
refresh_interval_seconds: 43230,
query: '<string>',
terms: ['<string>'],
subreddit: '<string>',
include_nsfw: true,
webhook_url: '<string>',
backfill: true
})
};
fetch('https://api.nephia.cc/v1/reddit/watches', 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.nephia.cc/v1/reddit/watches",
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([
'refresh_interval_seconds' => 43230,
'query' => '<string>',
'terms' => [
'<string>'
],
'subreddit' => '<string>',
'include_nsfw' => true,
'webhook_url' => '<string>',
'backfill' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$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.nephia.cc/v1/reddit/watches"
payload := strings.NewReader("{\n \"refresh_interval_seconds\": 43230,\n \"query\": \"<string>\",\n \"terms\": [\n \"<string>\"\n ],\n \"subreddit\": \"<string>\",\n \"include_nsfw\": true,\n \"webhook_url\": \"<string>\",\n \"backfill\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<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.nephia.cc/v1/reddit/watches")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"refresh_interval_seconds\": 43230,\n \"query\": \"<string>\",\n \"terms\": [\n \"<string>\"\n ],\n \"subreddit\": \"<string>\",\n \"include_nsfw\": true,\n \"webhook_url\": \"<string>\",\n \"backfill\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.nephia.cc/v1/reddit/watches")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"refresh_interval_seconds\": 43230,\n \"query\": \"<string>\",\n \"terms\": [\n \"<string>\"\n ],\n \"subreddit\": \"<string>\",\n \"include_nsfw\": true,\n \"webhook_url\": \"<string>\",\n \"backfill\": true\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"accountId": "<string>",
"source": "x",
"market": "<string>",
"criteria": {
"market": "<string>",
"query": "<string>",
"priceMin": 123,
"priceMax": 123,
"sort": "<string>",
"page": 123,
"perPage": 123,
"filters": {}
},
"criteriaHash": "<string>",
"refreshIntervalSeconds": 123,
"webhookUrl": "<string>",
"billingMode": "subscription",
"isActive": true,
"createdAt": "<string>",
"updatedAt": "<string>",
"pausedReason": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "Rate limit exceeded",
"code": "TOO_MANY_REQUESTS"
}Create a Reddit watch
Requires query and/or subreddit. Set types to comments to poll a subreddit’s newest comments instead of its posts, or to all to read both in one tick — either mode needs a subreddit (several are allowed, Reddit-style: webdev+reactjs), and a search term then filters the comments page on our side. Metered per tick at the search credit rate, doubled for types=all because it makes two requests a tick. Minimum interval 60s. NSFW content is included by default; set include_nsfw to false to opt out.
curl --request POST \
--url https://api.nephia.cc/v1/reddit/watches \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"refresh_interval_seconds": 43230,
"query": "<string>",
"terms": [
"<string>"
],
"subreddit": "<string>",
"include_nsfw": true,
"webhook_url": "<string>",
"backfill": true
}
'import requests
url = "https://api.nephia.cc/v1/reddit/watches"
payload = {
"refresh_interval_seconds": 43230,
"query": "<string>",
"terms": ["<string>"],
"subreddit": "<string>",
"include_nsfw": True,
"webhook_url": "<string>",
"backfill": True
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
refresh_interval_seconds: 43230,
query: '<string>',
terms: ['<string>'],
subreddit: '<string>',
include_nsfw: true,
webhook_url: '<string>',
backfill: true
})
};
fetch('https://api.nephia.cc/v1/reddit/watches', 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.nephia.cc/v1/reddit/watches",
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([
'refresh_interval_seconds' => 43230,
'query' => '<string>',
'terms' => [
'<string>'
],
'subreddit' => '<string>',
'include_nsfw' => true,
'webhook_url' => '<string>',
'backfill' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$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.nephia.cc/v1/reddit/watches"
payload := strings.NewReader("{\n \"refresh_interval_seconds\": 43230,\n \"query\": \"<string>\",\n \"terms\": [\n \"<string>\"\n ],\n \"subreddit\": \"<string>\",\n \"include_nsfw\": true,\n \"webhook_url\": \"<string>\",\n \"backfill\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<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.nephia.cc/v1/reddit/watches")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"refresh_interval_seconds\": 43230,\n \"query\": \"<string>\",\n \"terms\": [\n \"<string>\"\n ],\n \"subreddit\": \"<string>\",\n \"include_nsfw\": true,\n \"webhook_url\": \"<string>\",\n \"backfill\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.nephia.cc/v1/reddit/watches")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"refresh_interval_seconds\": 43230,\n \"query\": \"<string>\",\n \"terms\": [\n \"<string>\"\n ],\n \"subreddit\": \"<string>\",\n \"include_nsfw\": true,\n \"webhook_url\": \"<string>\",\n \"backfill\": true\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"accountId": "<string>",
"source": "x",
"market": "<string>",
"criteria": {
"market": "<string>",
"query": "<string>",
"priceMin": 123,
"priceMax": 123,
"sort": "<string>",
"page": 123,
"perPage": 123,
"filters": {}
},
"criteriaHash": "<string>",
"refreshIntervalSeconds": 123,
"webhookUrl": "<string>",
"billingMode": "subscription",
"isActive": true,
"createdAt": "<string>",
"updatedAt": "<string>",
"pausedReason": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "Rate limit exceeded",
"code": "TOO_MANY_REQUESTS"
}Authorizations
API key created from the Nephia dashboard for your Account.
Headers
Unique key (e.g. UUID) making this POST safe to retry for 24 hours. Replays return the original response with an Idempotency-Replayed: true header; reusing a key with a different body returns 422.
255Body
60 <= x <= 864001Several search texts, OR'd into one upstream request. Mutually exclusive with query, and billed as one tick — the cost does not scale with the number of terms. Your plan caps how many a single search may carry.
21 - 601posts, comments, all Show child attributes
Show child attributes
How strictly results must carry your query. Omit for the platform's own matching (default). word keeps only items containing the query as a whole word (and quotes it upstream where the platform honours quotes); contains keeps items containing it as a substring.
platform, word, contains Response
Watch created
x, reddit, youtube, tiktok, bluesky, hackernews, mastodon, lemmy, github, producthunt, stackoverflow, rss, ai_answers, vinted Show child attributes
Show child attributes
subscription, payg, deferred, metered Was this page helpful?