Replace pipeline

Replaces the caller project's news pipeline and returns what was stored.

PUT /v1/world/pipeline

Addresshttps://api.hanzo.ai/v1/world/pipeline
MethodPUT
Operationput_world_pipeline
AuthAuthorization: Bearer $HANZO_API_KEY

Replaces the caller project's news pipeline and returns what was stored. It is a WHOLE replacement, not a patch: a field the request leaves out is stored empty, so sending only feeds clears the filters.

Every feed URL is validated HERE, at the write boundary — http(s) only, and the host must be on the server's allowlist — so a stored pipeline can never name a host the fetcher would later refuse, and the allowlist is one decision in one place rather than a check at each fetch.

Request

5 fields, body application/json (required).

FieldInTypeRequiredDescription
feedsbodystring[]—Feeds is the RSS/Atom feed URLs to read, at most 64.
filtersbodyworld.Filters—
filters.keywordsbodystring[]—Keywords keeps only items whose TITLE contains one of these, case-insensitively.
filters.regionsbodystring[]—Regions keeps only items whose TITLE contains one of these, matched case-insensitively as a substring.
filters.sourcesbodystring[]—Sources keeps only items whose outlet name contains one of these, case-insensitively.

Response

StatusBodyMeaning
200world.pipelineViewok
defaultproblem-detailsrefused

200 body — 10 fields.

FieldInTypeAlwaysDescription
createdAtbodystring—CreatedAt is when the pipeline was first stored, RFC3339 UTC.
defaultbodyboolean—Default is true when no pipeline is stored for this project and these are the built-in world feeds.
feedsbodystring[]—Feeds is the RSS/Atom feed URLs the pipeline reads.
filtersbodyworld.Filters—
filters.keywordsbodystring[]—Keywords keeps only items whose TITLE contains one of these, case-insensitively.
filters.regionsbodystring[]—Regions keeps only items whose TITLE contains one of these, matched case-insensitively as a substring.
filters.sourcesbodystring[]—Sources keeps only items whose outlet name contains one of these, case-insensitively.
orgbodystring—Org is the tenant the pipeline belongs to, resolved server-side from the validated principal.
projectbodystring—Project is the org sub-scope the pipeline belongs to.
updatedAtbodystring—UpdatedAt is when it was last written, RFC3339 UTC.

Failure carries the platform error shape — see Errors.

Examples

hanzo world pipeline replace
import { Configuration, WorldApi } from 'hanzoai';

const api = new WorldApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.putWorldPipeline({ feeds: ["<feeds>"], filters: {"keywords":["<keywords>"],"regions":["<regions>"],"sources":["<sources>"]} });
from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import WorldApi

client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = WorldApi(client).put_world_pipeline(feeds=["<feeds>"], filters={"keywords":["<keywords>"],"regions":["<regions>"],"sources":["<sources>"]})
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

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

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

let result = world_api::put_world_pipeline(&cfg, Default::default()).await?;
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.WorldApi;

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

var result = new WorldApi(client).putWorldPipeline();
curl -X PUT https://api.hanzo.ai/v1/world/pipeline \
  -H "Authorization: Bearer $HANZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
       "feeds": [
         "<feeds>"
       ],
       "filters": {
         "keywords": [
           "<keywords>"
         ],
         "regions": [
           "<regions>"
         ],
         "sources": [
           "<sources>"
         ]
       }
     }'

MCP reaches world through the world tool, which names its 5 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_worlds"
         }
       }
     }'

World API · All Hanzo APIs · Interactive reference

Was this page useful?