Update broker post status/archive fields (author only)
using System.Net.Http.Headers;var client = new HttpClient();var request = new HttpRequestMessage{ Method = HttpMethod.Put, RequestUri = new Uri("https://api.ethos.network/api/v2/broker/posts/1/status"), Headers = { { "X-Ethos-Api-Key", "<X-Ethos-Api-Key>" }, }, Content = new StringContent("{ \"status\": \"OPEN\", \"isArchived\": true, \"imageUrl\": \"https://example.com\", \"transactedWithUserId\": 1 }") { Headers = { ContentType = new MediaTypeHeaderValue("application/json") } }};using (var response = await client.SendAsync(request)){ response.EnsureSuccessStatusCode(); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body);}package main
import ( "fmt" "strings" "net/http" "io")
func main() {
url := "https://api.ethos.network/api/v2/broker/posts/1/status"
payload := strings.NewReader("{ \"status\": \"OPEN\", \"isArchived\": true, \"imageUrl\": \"https://example.com\", \"transactedWithUserId\": 1 }")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("X-Ethos-Api-Key", "<X-Ethos-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(res) fmt.Println(string(body))
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");RequestBody body = RequestBody.create(mediaType, "{ \"status\": \"OPEN\", \"isArchived\": true, \"imageUrl\": \"https://example.com\", \"transactedWithUserId\": 1 }");Request request = new Request.Builder() .url("https://api.ethos.network/api/v2/broker/posts/1/status") .put(body) .addHeader("X-Ethos-Api-Key", "<X-Ethos-Api-Key>") .addHeader("Content-Type", "application/json") .build();
Response response = client.newCall(request).execute();import axios from 'axios';
const options = { method: 'PUT', url: 'https://api.ethos.network/api/v2/broker/posts/1/status', headers: {'X-Ethos-Api-Key': '<X-Ethos-Api-Key>', 'Content-Type': 'application/json'}, data: { status: 'OPEN', isArchived: true, imageUrl: 'https://example.com', transactedWithUserId: 1 }};
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/1/status';const options = { method: 'PUT', headers: {'X-Ethos-Api-Key': '<X-Ethos-Api-Key>', 'Content-Type': 'application/json'}, body: '{"status":"OPEN","isArchived":true,"imageUrl":"https://example.com","transactedWithUserId":1}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}use std::str::FromStr;use serde_json::json;use reqwest;
#[tokio::main]pub async fn main() { let url = "https://api.ethos.network/api/v2/broker/posts/1/status";
let payload = json!({ "status": "OPEN", "isArchived": true, "imageUrl": "https://example.com", "transactedWithUserId": 1 });
let mut headers = reqwest::header::HeaderMap::new(); headers.insert("X-Ethos-Api-Key", "<X-Ethos-Api-Key>".parse().unwrap()); headers.insert("Content-Type", "application/json".parse().unwrap());
let client = reqwest::Client::new(); let response = client.request(reqwest::Method::from_str("PUT").unwrap(), url) .headers(headers) .json(&payload) .send() .await;
let results = response.unwrap() .json::<serde_json::Value>() .await .unwrap();
dbg!(results);}curl --request PUT \ --url https://api.ethos.network/api/v2/broker/posts/1/status \ --header 'Content-Type: application/json' \ --header 'X-Ethos-Api-Key: <X-Ethos-Api-Key>' \ --data '{ "status": "OPEN", "isArchived": true, "imageUrl": "https://example.com", "transactedWithUserId": 1 }'wget --quiet \ --method PUT \ --header 'X-Ethos-Api-Key: <X-Ethos-Api-Key>' \ --header 'Content-Type: application/json' \ --body-data '{ "status": "OPEN", "isArchived": true, "imageUrl": "https://example.com", "transactedWithUserId": 1 }' \ --output-document \ - https://api.ethos.network/api/v2/broker/posts/1/statusUpdate off-chain fields like status, archived, and image URL that are not stored on blockchain. When changing status from EXPIRED to OPEN for BASIC posts, automatically resets expiration date to 30 days from now.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Request Bodyrequired
Section titled “Request Bodyrequired”Responses
Section titled “Responses”Successful response
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
{ "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": []}Authorization not provided
The error information
object
The error message
The error code
An array of issues that were responsible for the error
object
Example
{ "code": "UNAUTHORIZED", "message": "Authorization not provided", "issues": []}Insufficient access
The error information
object
The error message
The error code
An array of issues that were responsible for the error
object
Example
{ "code": "FORBIDDEN", "message": "Insufficient access", "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": []}