---
title: "Evaluate member features"
method: POST
path: "/api/v1alpha1/assistant/trademe/ofrep/v1/evaluate/flags"
tags: ["v1alpha1"]
---

# Evaluate member features

`POST /api/v1alpha1/assistant/trademe/ofrep/v1/evaluate/flags`

## Request

- Base URL: `https://api.trademeai.co.nz` (the document declares no server; this is the origin it was published from)
- URL: `https://api.trademeai.co.nz/api/v1alpha1/assistant/trademe/ofrep/v1/evaluate/flags`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/trademeai/apis/trade-me-ai-platform/docs/api/v1alpha1/assistant/trademe/ofrep/v1/evaluate/flags/post.ts> (a function with typed inputs; its response is checked against the schema)

Returns which variant of each app-visible feature the signed-in member gets, before a conversation exists. For example, whether to show the assistant entry point. The shape is bulk evaluation in the OpenFeature Remote Evaluation Protocol (OFREP 0.4.0), so a standard OFREP provider can point at this API.

Each flag has `key`, `value`, `variant`, `reason` and `metadata`. `reason` is `STATIC` (no rule applied, the default), `TARGETING_MATCH` (a rule chose the variant) or `SPLIT` (a percentage split chose it). Staff are marked with `{"context": {"staff": true}}` in the body; everything else in the context is ignored. The response is not cached (`Cache-Control: private, no-store`).

Answers 401 when signed out. Answers 503 when features cannot be read, which an OFREP provider takes as a cue to use the defaults in your code.

Error bodies are described in the [error contract](https://trademe.gitlab.io/shared/projects/ai-engineering/anvil/anvil/domains/assistant-gateway/concepts/error-contract.html).

## Headers

- `authorization` string, nullable

## Request body

- OfrepEvaluationRequest: OFREP's bulk request body. Only ``context.staff`` is read.
  - `context` object

## Response `200`

Successful Response

- OfrepBulkResponse: OFREP's ``bulkEvaluationSuccess``: every ``api_visible`` feature for the caller.
  - `flags` OfrepFlag[], required
    - `key` string, required
    - `value` string, required
    - `variant` string, required
    - `reason` 'STATIC' | 'TARGETING_MATCH' | 'SPLIT', required
    - `metadata` object

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-28** `5bb3a7ecd83b`: 2 warning, 1 info
  - deleted the `header` request parameter `if-none-match`
  - deleted the `header` request parameter `is-in-staff-group`
  - removed the non-success response with the status `304`
- **2026-10-22** `4e3368da0a74`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/trademeai/apis/trade-me-ai-platform/changes/api/v1alpha1/assistant/trademe/ofrep/v1/evaluate/flags/post.md)

---

[API](https://skmtc.dev/trademeai/apis/trade-me-ai-platform.md) - [All operations](https://skmtc.dev/trademeai/apis/trade-me-ai-platform/llms.txt) - [OpenAPI document](https://skmtc.dev/trademeai/apis/trade-me-ai-platform/revisions/1164c8a5c534?raw)
