{
  "id": "serve-features",
  "title": "Serve features",
  "url": "https://redis.io/docs/latest/develop/ai/featureform/serve-features/",
  "summary": "Read materialized features from a Redis Feature Form feature view at inference time.",
  "tags": [],
  "last_updated": "2026-07-30T11:11:54+01:00",
  "page_type": "content",
  "content_hash": "bfb42bf5439c57ddff2d6da24825c7d8c0cd430723ed92e48ddd22899cb25abc",
  "sections": [
    {
      "id": "overview",
      "title": "Overview",
      "role": "overview",
      "text": "Read materialized features from a feature view by calling `ff.Client.serve(...)`. This page assumes the feature view exists and the online store is ready — the [Quickstart](https://redis.io/docs/latest/develop/ai/featureform/quickstart)'s `demo_customer_feature_view` is the canonical example.\n\nThe examples use `<workspace-id>` as the workspace UUID. Get yours with `ff workspace list`. See [Manage workspaces](https://redis.io/docs/latest/develop/ai/featureform/manage-workspace) for the full workspace lifecycle."
    },
    {
      "id": "verify-the-feature-view-exists",
      "title": "Verify the feature view exists",
      "role": "content",
      "text": "[code example]"
    },
    {
      "id": "minimal-python-workflow",
      "title": "Minimal Python workflow",
      "role": "content",
      "text": "[code example]\n\nThe example connects to a local server with TLS off. For a deployed server, change `host` and set `insecure=False`."
    },
    {
      "id": "if-serving-fails",
      "title": "If serving fails",
      "role": "content",
      "text": "- The feature view isn't ready. Confirm with `ff graph feature-view get` and re-check after materialization completes.\n- The online provider is unavailable or not registered. Confirm with `ff provider list --workspace <workspace-id>`.\n- The caller lacks the required RBAC permission. Serving values and reading serving metadata are governed by separate permissions; see the [Permissions table](https://redis.io/docs/latest/develop/ai/featureform/reference#permissions)."
    }
  ],
  "examples": [
    {
      "id": "verify-the-feature-view-exists-ex0",
      "language": "bash",
      "code": "ff graph feature-view get demo_customer_feature_view --workspace <workspace-id>",
      "section_id": "verify-the-feature-view-exists"
    },
    {
      "id": "minimal-python-workflow-ex0",
      "language": "python",
      "code": "import featureform as ff\n\nclient = ff.Client(host=\"127.0.0.1:9090\", insecure=True, workspace=\"<workspace-id>\")\nfeatures = client.serve(\"demo_customer_feature_view\", entity=\"C1001\")\nprint(features)",
      "section_id": "minimal-python-workflow"
    }
  ]
}
