Skip to content
api reference

gRPC

argand.agent_api.v1 on port :50100. Versioned and stable. Off by default on argand.org — self-hosters opt in.

Endpoint

  • Service: argand.agent_api.v1.AgentApi
  • Port: 50100
  • TLS: required for production deployments. Local dev runs plaintext.
  • Proto file: proto/agent_api.proto in the source tree.

argand.org's hosted gateway leaves :50100 closed by default — REST is the canonical public surface. gRPC is the stable contract for self-hosters and large-fleet integrators who set PUBLIC_GRPC_ENABLED=true on the gateway.

Service contract

proto/agent_api.proto protobuf
service AgentApi {
  rpc Search(SearchRequest) returns (SearchResponse);
  rpc Fetch(FetchRequest) returns (FetchResponse);
  rpc Cite(CiteRequest) returns (CiteResponse);
  rpc HealthCheck(HealthCheckRequest) returns (HealthCheckResponse);
}

Stability: bumping major implies a new package (v2, v3) shipped alongside; never an in-place breaking edit. Field numbers are reserved on removal and never reused. Optional fields are preferred so agent fleets tolerate version skew.

Search RPC

Mirrors the MCP search tool — same response shape including optional risk_signals on registry-scoped hits. Fields: query (required), limit, vertical, freshness, locale, min_weekly_downloads.

grpcurl bash
grpcurl \
  -H 'x-argand-key: your-argand-api-key' \
  -d '{"query":"rust async runtime","limit":5}' \
  argand.example.org:50100 \
  argand.agent_api.v1.AgentApi/Search

Fetch & Cite

Fetch takes a URL Argand vouches for (came back from a Search response) and returns the cached/canonicalized snapshot. Cite returns a citation block with archive timestamp + content hash. Both mirror the MCP tools of the same names.

HealthCheck RPC

For load balancers and sidecar probes:

grpcurl bash
grpcurl argand.example.org:50100 \
  argand.agent_api.v1.AgentApi/HealthCheck

Auth

Set the x-argand-key metadata entry to your opaque API key. Same anonymous-tier semantics as REST: no key works at the lower quota tier. The same opaque-string-only contract — no DID coupling.

Why gRPC

For high-throughput agent fleets running their own gateway, gRPC's wire compactness, HTTP/2 multiplexing, and explicit version contract beat HTTP/1.1 JSON. For everyone else, REST is simpler. Both surfaces hit the same backend.