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

# Feature stores capability

<View title="Developer" />

<View title="Federal docs" />

<View title="EU docs" />

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](/docs/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](/docs/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](/docs/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" lines wrap 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" maxLines=0 expandable lines wrap 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>
