---
title: "Bulk Evaluate All Feature Flags"
method: POST
path: "/ofrep/v1/evaluate/flags"
tags: ["OFREP Core"]
---

# Bulk Evaluate All Feature Flags

`POST /ofrep/v1/evaluate/flags`

Evaluates all feature flags in a single request using a static context. This endpoint is 
used by **client-side providers** for static context evaluation, where all flags are evaluated 
once and then cached locally for subsequent use.

The endpoint returns an array of all flag evaluations, where each flag can be either a 
successful evaluation or an evaluation failure. The response includes an ETag header for 
cache validation, allowing clients to use the `If-None-Match` header to avoid unnecessary 
re-evaluation when flags haven't changed.

## Query parameters

- `flagConfigEtag` string
- `flagConfigLastModified` union
  - integer
  - string, date-time

## Headers

- `If-None-Match` string

## Request body

- BulkEvaluationRequest — Request body for bulk flag evaluation. Contains a static context that will be used to evaluate all flags.
  - `context` Context, required — Evaluation context containing information used to evaluate feature flags. The context includes a `targetingKey` (required) along with additional properties such as user attributes, session data, or request metadata that can be used for targeting rules.
    - `targetingKey` string, required

## Response `200`

Successful bulk evaluation.

- BulkEvaluationSuccess — unresolved $ref

## Other responses

- `304` — Not Modified. The flags haven't changed since the last evaluation (ETag matches). No response body is returned.
- `400` — Bad evaluation request. The request is malformed or contains invalid context.
- `401` — Unauthorized. Authentication credentials are missing, invalid, or expired.
- `403` — Forbidden. The client does not have permission to access the requested resource.
- `429` — Too Many Requests. Rate limit has been exceeded.
- `500` — Internal server error. An unexpected error occurred on the server that prevented flag evaluation.

## Changes

- **2026-07-17** `e5f560c5194c` — 3 info
  - added the new optional `query` request parameter `flagConfigEtag`
  - added the new optional `query` request parameter `flagConfigLastModified`
  - added the optional property `eventStreams` to the response with the `200` status
- **2025-11-07** `a43d06a57adb` — 8 breaking, 2 info
  - request body became required
  - the request's body type/format changed from ``/`` to `object`/``
  - the request property `context` became required
  - the request property `context/targetingKey` became required
  - …6 more
- **2025-08-21** `ace2bf25318d` — 1 breaking
  - added `#/components/schemas/codeDefaultFlag` to the `flags/items/oneOf[#/components/schemas/evaluationSuccess]/allOf[subschema #2]/` response property `oneOf` list for the response status `200`
- **2025-02-07** `113e9501a7dc` — 3 info
  - api operation id `evaluateFlagsBulk` was added
  - api tag `OFREP Core` added
  - api tag `OFREP core` removed
- …earlier changes not shown

[Full history](https://skmtc.dev/open-feature/apis/openfeature-remote-evaluation-protocol-ofrep/changes/ofrep/v1/evaluate/flags/post.md)

---

[API](https://skmtc.dev/open-feature/apis/openfeature-remote-evaluation-protocol-ofrep.md) · [All operations](https://skmtc.dev/open-feature/apis/openfeature-remote-evaluation-protocol-ofrep/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/open-feature/openfeature-remote-evaluation-protocol-ofrep/revisions/e5f560c5194c/schema)
