> ## Documentation Index
> Fetch the complete documentation index at: https://feather.mupeni.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Ingest Evaluation Events

> Ingests a batch of SDK evaluation events for analytics aggregation.

This endpoint is called by the SDK automatically — you do not need to call it directly. Events are processed asynchronously in under 50ms. The response does not wait for aggregation to complete.

**Auth**: API key only.

## Body

<ParamField body="events" type="EvalEvent[]" required>
  1–100 events per batch.
</ParamField>

Each `EvalEvent`:

| Field             | Type                             | Required | Description                                                                                            |
| ----------------- | -------------------------------- | -------- | ------------------------------------------------------------------------------------------------------ |
| `flagKey`         | string                           | ✓        |                                                                                                        |
| `flagId`          | string                           | ✓        |                                                                                                        |
| `environmentId`   | string                           | ✓        |                                                                                                        |
| `orgId`           | string                           | ✓        | Must match the authenticated org                                                                       |
| `value`           | `boolean \| string \| number`    | ✓        | The resolved value                                                                                     |
| `reason`          | string                           | ✓        | One of: `DISABLED`, `CLIENT_RESTRICTED`, `RULE_MATCH`, `ROLLOUT`, `DEFAULT`, `FLAG_NOT_FOUND`, `ERROR` |
| `ruleId`          | string                           |          | Present when `reason` is `RULE_MATCH` or `ROLLOUT`                                                     |
| `userIdHash`      | string                           |          | SHA-256 of the user ID                                                                                 |
| `anonymousIdHash` | string                           |          | SHA-256 of the anonymous ID                                                                            |
| `sdkType`         | `"server" \| "client" \| "edge"` | ✓        |                                                                                                        |
| `sdkVersion`      | string                           | ✓        |                                                                                                        |
| `evaluatedAt`     | string                           | ✓        | ISO 8601                                                                                               |

<Warning>
  Events attributed to a different `orgId` than the authenticated key are silently dropped. Always
  use the `orgId` returned by [Get SDK Context](/docs/api-reference/sdk/get-sdk-context).
</Warning>

<RequestExample>
  ```bash theme={null}
  curl -X POST https://nest.feather.mupeni.dev/v1/telemetry/events \
    -H "Authorization: Bearer <server_key>" \
    -H "Content-Type: application/json" \
    -d '{
      "events": [
        {
          "flagKey": "new-checkout",
          "flagId": "flag_01hx...",
          "environmentId": "env_01hx...",
          "orgId": "org_01hx...",
          "value": true,
          "reason": "RULE_MATCH",
          "ruleId": "rule-beta",
          "sdkType": "server",
          "sdkVersion": "1.0.0",
          "evaluatedAt": "2024-04-11T10:00:00.000Z"
        }
      ]
    }'
  ```
</RequestExample>

<ResponseExample>`http 202 `</ResponseExample>
