From 617826d1d1d2187b62c47a0dac32cec1ab75fe65 Mon Sep 17 00:00:00 2001 From: Sakina Roufid Date: Sat, 29 Aug 2026 03:07:41 -0400 Subject: [PATCH] docs(location): document required REST headers The Location REST binding is the only one of the five REST bindings without an HTTP Headers section. Cart, catalog, checkout and order each render the header table and state the UCP-Agent requirement explicitly. source/services/common/rest.openapi.json marks Request-Id and UCP-Agent as required for both search_locations and lookup_locations, but the binding never said so. Those headers appeared only inside two envelope examples, so an implementer working from this page could reasonably read them as optional and ship a client that omits them. Add the section using the same header_fields macro and the same wording as the other bindings. The table is generated from the OpenAPI document, so it stays in sync with the contract rather than drifting from it. --- docs/specification/common/location/rest.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/docs/specification/common/location/rest.md b/docs/specification/common/location/rest.md index 7dc5ccd8e..8e8026f3c 100644 --- a/docs/specification/common/location/rest.md +++ b/docs/specification/common/location/rest.md @@ -167,6 +167,20 @@ Maps to the [Location Lookup](lookup.md) capability. See the } ``` +## HTTP Headers + +The following headers are defined for the HTTP binding and apply to all +operations unless otherwise noted. + +{{ header_fields('search_locations', 'common/rest.openapi.json') }} + +### Specific Header Requirements + +* **UCP-Agent**: All requests **MUST** include the `UCP-Agent` header + containing the platform profile URI using Dictionary Structured Field syntax + ([RFC 8941](https://datatracker.ietf.org/doc/html/rfc8941){target="_blank"}). + Format: `profile="https://platform.example/profile"`. + ## Error Handling UCP uses a two-layer error model separating transport-level errors from business outcomes.