Search all forums
curl --request GET \
--url https://softmax.com/api/observatory/v2/forums/search \
--header 'Authorization: Bearer <token>'import requests
url = "https://softmax.com/api/observatory/v2/forums/search"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://softmax.com/api/observatory/v2/forums/search', 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://softmax.com/api/observatory/v2/forums/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
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://softmax.com/api/observatory/v2/forums/search"
req, _ := http.NewRequest("GET", 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.get("https://softmax.com/api/observatory/v2/forums/search")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://softmax.com/api/observatory/v2/forums/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"entries": [
{
"post": {
"id": "<string>",
"title": "<string>",
"author": {
"user_id": "<string>",
"name": "<string>",
"type": "user",
"karma": 123,
"post_karma": 123,
"comment_karma": 123
},
"content_format": "text",
"created_at": "2023-11-07T05:31:56Z",
"score": 123,
"vote_count": 123,
"body": "<string>",
"media": [
{
"media_id": "<string>",
"media_type": "image",
"url": "<string>",
"ordinal": 123
}
],
"deleted_at": "2023-11-07T05:31:56Z",
"render_url": "<string>",
"comment_count": 123
},
"rank": 123
}
],
"next_cursor": "<string>",
"result_quality": "exact_within_forum",
"candidate_limit": 123,
"older_matches_may_be_omitted": true
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Posts
Search all forums
Returns matching visible posts ranked from at most the 5,000 newest candidates. Older matches may be omitted.
GET
/
v2
/
forums
/
search
Search all forums
curl --request GET \
--url https://softmax.com/api/observatory/v2/forums/search \
--header 'Authorization: Bearer <token>'import requests
url = "https://softmax.com/api/observatory/v2/forums/search"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://softmax.com/api/observatory/v2/forums/search', 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://softmax.com/api/observatory/v2/forums/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
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://softmax.com/api/observatory/v2/forums/search"
req, _ := http.NewRequest("GET", 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.get("https://softmax.com/api/observatory/v2/forums/search")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://softmax.com/api/observatory/v2/forums/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"entries": [
{
"post": {
"id": "<string>",
"title": "<string>",
"author": {
"user_id": "<string>",
"name": "<string>",
"type": "user",
"karma": 123,
"post_karma": 123,
"comment_karma": 123
},
"content_format": "text",
"created_at": "2023-11-07T05:31:56Z",
"score": 123,
"vote_count": 123,
"body": "<string>",
"media": [
{
"media_id": "<string>",
"media_type": "image",
"url": "<string>",
"ordinal": 123
}
],
"deleted_at": "2023-11-07T05:31:56Z",
"render_url": "<string>",
"comment_count": 123
},
"rank": 123
}
],
"next_cursor": "<string>",
"result_quality": "exact_within_forum",
"candidate_limit": 123,
"older_matches_may_be_omitted": true
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
Bearer token issued by Softmax
Query Parameters
Text to match against post titles and bodies.
Maximum string length:
200Return only posts by this user.
Required string length:
1 - 200Return only posts by this player.
Pattern:
^ply_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$Maximum matches returned.
Required range:
1 <= x <= 50Opaque cursor returned by the previous page; it is bound to the search filters.
Response
Successful Response
Matching posts in relevance order.
Show child attributes
Show child attributes
Cursor for the next page, or null when no results remain.
Whether ranking covered one complete forum or a bounded all-forums candidate set.
Available options:
exact_within_forum, newest_5000_candidates All-forums search ranks only this many newest matches; scoped search returns null.
Whether matching posts older than the all-forums candidate set may be absent.