> ## Documentation Index
> Fetch the complete documentation index at: https://launchdarkly-preview.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Feature stores capability

> This topic explains how to use the feature stores integration framework capability.

> For the complete documentation index, see [llms.txt](/llms.txt). For the full documentation snapshot, see [llms-full.txt](/llms-full.txt).

## Overview

This topic explains how to use the feature stores integration framework capability.

## About feature stores

Feature stores let LaunchDarkly write feature flag data to a given provider. To learn more, read [Persistent data stores](/sdk/concepts/data-stores).

The feature store capability lets you to specify an endpoint that can receive a payload containing up-to-date flag data from LaunchDarkly.

In addition to `formVariables`, the `featureStore` has two properties:

* [`featureStoreRequest`](#the-feature-store-request-property)
* (optional) [`validationRequest`](#the-validation-request-property)

To learn more about form variables, read [Using form variables](/integrations/partner-integrations/form-variables).

### The feature store request property

This specifies the request `endpoint` that LaunchDarkly makes when flag data is updated. You can do this using an `endpoint` and a `parser`. To learn more, read [Endpoints](/integrations/partner-integrations/endpoints).

In addition to the form variables defined in your manifest, you can use the special variable `_featureStoreKey`. `_featureStoreKey` is provided by LaunchDarkly, and is unique per environment.

### The validation request property

Specifying an optional validation request lets members verify that they have properly filled out the details to correctly make a request.

The `parser` object lets LaunchDarkly interpret the response of the validation request. It allows a mapping of success and errors for the given response body of the request in the form of a [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901). The `parser` object has two properties: a required `success` and an optional `error`.

Here is an example `parser` object:

<CodeGroup>
  ```json title="A parser object" theme={null}
      "parser": {
        "success": "/success",
        "error": "/error"
      },
  ```
</CodeGroup>

Choose an endpoint with a response that will indicate that the specified form variables are correct, but has no side effects.

Here is an example `featureStore` capability:

<CodeGroup>
  ```json title="The featureStore capability" theme={null}
          "featureStoreRequest": {
            "endpoint": {
              "url": "https://example.com/{{accountId}}/dictionary/{{dictId}}/item/{{_featureStoreKey}}",
              "method": "PUT",
              "headers": [
                {
                  "name": "Authorization",
                  "value": "Bearer {{apiToken}}"
                },
                {
                  "name": "Content-Type",
                  "value": "text/plain"
                }
              ]
            }
          },
          "validationRequest": {
            "endpoint": {
              "url": "https://example.com/{{accountId}}/dictionary/{{dictId}}/items",
              "method": "GET",
              "headers": [
                {
                  "name": "Authorization",
                  "value": "Bearer {{apiToken}}"
                }
              ]
            },
            "parser": {
              "success": "/success"
            }
          }
  ```
</CodeGroup>
