List broker posts with filtering and pagination
using System.Net.Http.Headers;var client = new HttpClient();var request = new HttpRequestMessage{ Method = HttpMethod.Get, RequestUri = new Uri("https://api.ethos.network/api/v2/broker/posts?level=BASIC&sortBy=newest&type=SELL&limit=50&offset=0"),};using (var response = await client.SendAsync(request)){ response.EnsureSuccessStatusCode(); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body);}package main
import ( "fmt" "net/http" "io")
func main() {
url := "https://api.ethos.network/api/v2/broker/posts?level=BASIC&sortBy=newest&type=SELL&limit=50&offset=0"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close() body, _ := io.ReadAll(res.Body)
fmt.Println(res) fmt.Println(string(body))
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder() .url("https://api.ethos.network/api/v2/broker/posts?level=BASIC&sortBy=newest&type=SELL&limit=50&offset=0") .get() .build();
Response response = client.newCall(request).execute();import axios from 'axios';
const options = { method: 'GET', url: 'https://api.ethos.network/api/v2/broker/posts', params: {level: 'BASIC', sortBy: 'newest', type: 'SELL', limit: '50', offset: '0'}};
try { const { data } = await axios.request(options); console.log(data);} catch (error) { console.error(error);}const url = 'https://api.ethos.network/api/v2/broker/posts?level=BASIC&sortBy=newest&type=SELL&limit=50&offset=0';const options = {method: 'GET'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}use reqwest;
#[tokio::main]pub async fn main() { let url = "https://api.ethos.network/api/v2/broker/posts";
let querystring = [ ("level", "BASIC"), ("sortBy", "newest"), ("type", "SELL"), ("limit", "50"), ("offset", "0"), ];
let client = reqwest::Client::new(); let response = client.get(url) .query(&querystring) .send() .await;
let results = response.unwrap() .json::<serde_json::Value>() .await .unwrap();
dbg!(results);}curl --request GET \ --url 'https://api.ethos.network/api/v2/broker/posts?level=BASIC&sortBy=newest&type=SELL&limit=50&offset=0'wget --quiet \ --method GET \ --output-document \ - 'https://api.ethos.network/api/v2/broker/posts?level=BASIC&sortBy=newest&type=SELL&limit=50&offset=0'Retrieve a paginated list of broker posts. Supports filtering by type (SELL, BUY, HIRE, FOR_HIRE), status, tags, author minimum score, and search functionality for title/description. Results can be sorted by newest, score, top (most votes), or expiresAt (expiring soon). When level is not specified (ALL), minScore acts as “author score >= minScore OR premium level”. For BASIC or PREMIUM level, minScore applies normally.
Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”Responses
Section titled “Responses”Successful response
object
object
object
object
object
object
object
@deprecated Native-currency lifetime totals only. Use stats.vouchTotals (per-token). Removed after 2026-10-20.
object
object
object
object
object
object
object
Example
{ "values": [ { "type": "SELL", "level": "BASIC", "status": "OPEN", "author": { "status": "ACTIVE", "humanVerificationStatus": "REQUESTED", "stats": { "vouchTotals": [ { "token": { "id": "eth" } } ], "whufGuarantee": { "status": "active" } } } } ]}Invalid input data
The error information
object
The error message
The error code
An array of issues that were responsible for the error
object
Example
{ "code": "BAD_REQUEST", "message": "Invalid input data", "issues": []}Not found
The error information
object
The error message
The error code
An array of issues that were responsible for the error
object
Example
{ "code": "NOT_FOUND", "message": "Not found", "issues": []}Internal server error
The error information
object
The error message
The error code
An array of issues that were responsible for the error
object
Example
{ "code": "INTERNAL_SERVER_ERROR", "message": "Internal server error", "issues": []}