OpenKarta
Example manifest · halcyon-shop

One JSON document. The agent's whole shape.

Every conformant agent serves a CapabilitiesManifest at /.well-known/openkarta-manifest. Below is the live document for our reference product agent.

Agent ID
halcyon-shop
Tier
http · custom server
Protocol
v0.1
Item types
product
Regions
IN · Bengaluru (560001, 560002, 560003)
Reachability
live · 99.99% over 30d

Wire format

GET https://halcyon-shop.fly.dev/.well-known/openkarta-manifest application/json
{
  "agentId":         "halcyon-shop",
  "displayName":     "Halcyon Shop",
  "protocolVersion": "0.1",
  "tier":            "http",
  "baseUrl":         "https://halcyon-shop.fly.dev",
  "actions":         ["discover","search","get","quote","checkout","status","cancel","return"],
  "supportedItemTypes": ["product"],
  "paymentRails":    ["razorpay_routes","stripe_connect","cod"],
  "languages":       ["en","hi"],
  "regions":         [{ "country": "IN", "pincodes": ["560001","560002","560003"] }],
  "inventoryVolatility": "realtime",
  "catalogSize":     "small",
  "priceRange":      { "minMinor": 10000, "maxMinor": 500000, "currency": "INR" },
  "productCapabilities": {
    "categories":    ["coffee","tea","snacks","groceries"],
    "serviceAreas":  [{ "country": "IN", "city": "Bengaluru", "radiusKm": 8 }],
    "deliveryModes": ["instant","same_day","scheduled","standard"],
    "returnWindow": 7
  }
}

Implemented verbs

discoversearchgetquotecheckoutstatuscancelreturn

All 8 verbs are implemented. The orchestrator's typed client maps each verb 1:1 to an HTTPS endpoint — no envelope, no JSON-RPC, no SOAP. Every response is Zod-checked against the wire schema before returning to the caller.

Operations telemetry

Inventory volatility
Realtime
< 1s replication
Catalog size
Small
< 1k items
Price range
₹100 – ₹5,000
INR · minor-units
Payment rails
razorpay_routes stripe_connect cod

Product capabilities

Property Value
categories coffee, tea, snacks, groceries
serviceAreas IN · Bengaluru · 8 km radius
deliveryModes instant same_day scheduled standard
returnWindow 7 days

Field reference

agentId

Stable identifier. Lower-kebab-case, namespaced by the merchant. Used everywhere — registry rows, signed quotes, conformance badges.

protocolVersion

The OpenKarta wire-format version this agent implements. Currently `0.1`. The orchestrator refuses unknown majors.

tier

One of `lite` (hosted), `http` (custom server), or `agentic` (LLM-fronted). Determines how the registry routes traffic.

baseUrl

HTTPS root for verb endpoints. The registry probes `/.well-known/openkarta-manifest` here during verification.

actions

Which of the 8 verbs this agent implements. `return` is optional and only meaningful for product orders.

supportedItemTypes

Closed enum: `product`, `stay`, `flight`, `bus`, `service`. Drives auto-detection in the conformance suite.

paymentRails

Closed enum of rails the agent can settle on. The orchestrator filters by user-allowed rails before quoting.

regions

ISO-3166 country codes plus optional pincodes / cities. Registry filters listings by region for region-aware search.

priceRange

Hint for orchestrators. Integer minor-units only — no floats. Helps consumer agents triage agents before fanning out.

productCapabilities

Type-specific block. `stay`, `flight`, `bus`, `service` each have their own analogous block with closed-enum fields.

Write your manifest. Get listed.

The full Zod schema for CapabilitiesManifest ships in @openkarta/spec. Wrap your existing API with the SDK, validate locally, then submit at the registry.