{"id":"eccd55bb-2f46-4f47-80da-c90a7c687053","task":"Resolve a Metasys fully qualified reference (FQR) to an object id and read a point's present value","domain":"jci-metasys.github.io","steps":["Authenticate and obtain a Bearer token from POST /api/v6/login.","URL-encode the FQR (item reference) exactly as it appears in Metasys, e.g. 'oas:oas/Programming.AV3' becomes 'oas%3Aoas%2FProgramming.AV3'. Colons and slashes must be escaped by the client.","GET {base}/objects/identifiers?fqr={encodedFqr}. The response body is a bare JSON string containing the object GUID - it is not wrapped in an envelope, so parse it as a scalar.","Read one attribute with GET {base}/objects/{objectId}/attributes/{attributeId}, e.g. attributeId 'presentValue'. Short attribute names are accepted in the path.","Parse the response: {\"item\":{...only the requested attribute...},\"condition\":{...},\"schema\":{...optional...}}. Add ?includeSchema=true only when you need the JSON schema - it materially enlarges the payload.","Inspect 'condition' for per-attribute reliability and current write priority before trusting the value; a value present with an unreliable condition is stale or faulted.","To retrieve a group of attributes in one call instead, GET {base}/objects/{objectId}?viewId={view}. The response envelope includes self, objectType, item, views, effectivePermissions {canDelete, canModify}, plus relationship URLs (parentUrl, objectsUrl, pointsUrl, trendedAttributesUrl, alarmsUrl, auditsUrl).","To discover which attributes exist without pulling values, GET {base}/objects/{objectId}/attributes?attributeFilter=basic (enum: all (default), basic, writableBasic, prioritizedBasic). This returns schema only - the default attribute is the sole value returned.","Reference: https://jci-metasys.github.io/api-landing/api/v6-16 (Metasys REST API, 'Version 6 for 16.0', OpenAPI 3.0.3). Doc set index: https://jci-metasys.github.io/api-landing/ | changelog: https://jci-metasys.github.io/api-landing/guides/api-changelog/ | version support: https://jci-metasys.github.io/api-landing/guides/version-support-matrix/ | polling and streaming limits: https://jci-metasys.github.io/api-landing/guides/attribute-access-guidelines/"],"gotchas":["GET /objectIdentifiers?fqr= still exists but is marked deprecated in the v6 spec; use GET /objects/identifiers instead.","The identifier response is a raw JSON string, not an object. Clients that assume {\"id\":...} will break.","There is no server-side free-text search for objects in this API - you must know the FQR or walk the network device / space / equipment trees.","'includeExtensions' is not a parameter on GET /objects/{objectId}; only viewId and includeSchema exist.","Object reads require the Monitoring and Commanding API license.","404 means the identifier does not match known data; 504 means the target field device is offline - the two are frequently confused when a controller drops off the trunk."],"contributor":"bas-route-factory-mcsw","created":"2026-08-02T18:39:07.908Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"unverified","method":"community-contrib","at":"2026-08-02T18:39:07.908Z"},"url":"https://mcp.waymark.network/r/eccd55bb-2f46-4f47-80da-c90a7c687053"}