Create posts

Takes the address of a post of yours, reads it from its network, and holds it for a week if it is public, is yours, and carries your own referral link.

POST /v1/reward/me/posts

Addresshttps://api.hanzo.ai/v1/reward/me/posts
MethodPOST
Operationpost_reward_me_posts
AuthAuthorization: Bearer $HANZO_API_KEY

Takes the address of a post of yours, reads it from its network, and holds it for a week if it is public, is yours, and carries your own referral link. A held post is not points: it is looked at every day, and one found gone, private or without your link is removed and earns nothing. One still up after seven days is put to staff, who decide it. Pasting a post again answers the first.

Request

2 fields, body application/json (required).

FieldInTypeRequiredDescription
handlebodystring—Handle is who you are on that network, so the post's author can be matched.
urlbodystring—URL is the address of the post, on X, Bluesky, Reddit, Hacker News, Mastodon or LinkedIn.

Response

StatusBodyMeaning
201reward.postViewcreated
defaultproblem-detailsrefused

201 body — 15 fields.

FieldInTypeAlwaysDescription
checksbodyreward.Check[]—Checks is every look at the post, oldest first.
checks[].author_matchbodystring—AuthorMatch is whether the author is the member's linked identity: yes, no or unknown.
checks[].fetched_atbodystring (date-time)—FetchedAt is when the source was fetched.
checks[].publicbodyboolean—Public is whether the source is readable by anyone.
checks[].ref_foundbodyboolean—RefFound is whether the member's own ref code was found.
checks[].statusbodyinteger (int64)—Status is the HTTP status the fetch answered.
countsAtbodystring (date-time)—
daysLeftbodyinteger (int64)—
idbodystring—
networkbodystring—
notebodystring—Note says why a post was removed.
sincebodystring (date-time)—Since is when the post's week began; CountsAt when it counts, and DaysLeft the days until then.
statusbodystring—Status is pending (held for its week, counts for nothing), verified (it stayed up and was put to staff), removed (it earns nothing) or review (staff decide it by hand).
urlbodystring—
weekbodystring—Week is the ISO week the post was published in; a post in a later week can earn again.

Failure carries the platform error shape — see Errors.

Examples

hanzo reward me posts create
import { Configuration, RewardApi } from 'hanzoai';

const api = new RewardApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.postRewardMePosts({ handle: "<handle>", url: "<url>" });
from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import RewardApi

client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = RewardApi(client).post_reward_me_posts(handle="<handle>", url="<url>")
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.RewardAPI.PostRewardMePosts(context.Background()).Execute()
if err != nil {
	return err
}
use hanzo_client::apis::{configuration::Configuration, reward_api};

let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();

let result = reward_api::post_reward_me_posts(&cfg, Default::default()).await?;
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.RewardApi;

ApiClient client = new ApiClient();
client.setBearerToken(System.getenv("HANZO_API_KEY"));

var result = new RewardApi(client).postRewardMePosts();

The method above is the one at the current release of the document. [email protected] (npm) and [email protected] (PyPI) were generated from an earlier release, where this operation carried a different id, so it spells the method differently — regenerating the clients is what makes the two agree. SDKs →

curl -X POST https://api.hanzo.ai/v1/reward/me/posts \
  -H "Authorization: Bearer $HANZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
       "handle": "<handle>",
       "url": "<url>"
     }'

MCP reaches reward through the reward tool, which names its 7 operations with its own verbs — this one among them, under a name only MCP declares. describe explains any of them:

curl -X POST https://api.hanzo.ai/v1/mcp \
  -H "Content-Type: application/json" \
  -d '{
       "jsonrpc": "2.0",
       "id": 1,
       "method": "tools/call",
       "params": {
         "name": "describe",
         "arguments": {
           "op": "list_reward_me_posts"
         }
       }
     }'

Reward API · All Hanzo APIs · Interactive reference

Was this page useful?
Broken link or missing step? Drop it in #docs on Discord or open a PR.